X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FPaymentTerm.pm;h=4f4c6ca89bfb38ba629415609ef59b4aac2825a5;hb=f15f5e4321df31d2279edb480e9c7fc15c3af31c;hp=b504bb7ad0897e5518c9cdfe53c881936ec45cc2;hpb=7647d46acbc2a8253c0afeac5c706c3eb76995d5;p=kivitendo-erp.git diff --git a/SL/Controller/PaymentTerm.pm b/SL/Controller/PaymentTerm.pm index b504bb7ad..4f4c6ca89 100644 --- a/SL/Controller/PaymentTerm.pm +++ b/SL/Controller/PaymentTerm.pm @@ -7,6 +7,7 @@ use parent qw(SL::Controller::Base); use SL::DB::PaymentTerm; use SL::DB::Language; use SL::Helper::Flash; +use SL::Locale::String qw(t8); use Rose::Object::MakeMethods::Generic ( @@ -16,6 +17,7 @@ use Rose::Object::MakeMethods::Generic __PACKAGE__->run_before('check_auth'); __PACKAGE__->run_before('load_payment_term', only => [ qw( edit update destroy) ]); __PACKAGE__->run_before('load_languages', only => [ qw(new list edit create update) ]); +__PACKAGE__->run_before('setup', only => [ qw(new edit) ]); # # actions @@ -24,20 +26,24 @@ __PACKAGE__->run_before('load_languages', only => [ qw(new list edit create u sub action_list { my ($self) = @_; + $self->setup_list_action_bar; $self->render('payment_term/list', - title => $::locale->text('Payment terms'), + title => $::locale->text('Payment terms'), PAYMENT_TERMS => SL::DB::Manager::PaymentTerm->get_all_sorted); } sub action_new { my ($self) = @_; - $self->{payment_term} = SL::DB::PaymentTerm->new; + $self->{payment_term} = SL::DB::PaymentTerm->new(auto_calculation => 1); + $self->setup_form_action_bar; $self->render('payment_term/form', title => $::locale->text('Create a new payment term')); } sub action_edit { my ($self) = @_; + + $self->setup_form_action_bar; $self->render('payment_term/form', title => $::locale->text('Edit payment term')); } @@ -81,6 +87,10 @@ sub check_auth { $::auth->assert('config'); } +sub setup { + $::request->layout->use_javascript("kivi.PaymentTerm.js"); +} + # # helpers # @@ -91,6 +101,7 @@ sub create_or_update { my $params = delete($::form->{payment_term}) || { }; $self->{payment_term}->assign_attributes(%{ $params }); + $self->{payment_term}->terms_netto(0) if !$self->{payment_term}->auto_calculation; my @errors = $self->{payment_term}->validate; @@ -103,6 +114,7 @@ sub create_or_update { $self->{payment_term}->save; foreach my $language (@{ $self->{languages} }) { $self->{payment_term}->save_attribute_translation('description_long', $language, $::form->{"translation_" . $language->id}); + $self->{payment_term}->save_attribute_translation('description_long_invoice', $language, $::form->{"translation_invoice_" . $language->id}); } flash_later('info', $is_new ? $::locale->text('The payment term has been created.') : $::locale->text('The payment term has been saved.')); @@ -119,4 +131,49 @@ sub load_languages { $self->{languages} = SL::DB::Manager::Language->get_all_sorted; } +sub setup_list_action_bar { + my ($self) = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + link => [ + t8('Add'), + link => $self->url_for(action => 'new'), + ], + ); + } +} + +sub setup_form_action_bar { + my ($self) = @_; + + my $is_new = !$self->payment_term->id; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Save'), + submit => [ '#form', { action => 'PaymentTerm/' . ($is_new ? 'create' : 'update') } ], + checks => [ 'kivi.validate_form' ], + accesskey => 'enter', + ], + + action => [ + t8('Delete'), + submit => [ '#form', { action => 'PaymentTerm/destroy' } ], + confirm => t8('Do you really want to delete this object?'), + disabled => $is_new ? t8('This object has not been saved yet.') : undef, + ], + + 'separator', + + link => [ + t8('Abort'), + link => $self->url_for(action => 'list'), + ], + ); + } + $::request->layout->add_javascripts('kivi.Validator.js'); +} + 1;