X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=31f9c74c5b6a80235c019a2354bf69781e4f170e;hb=4a852cb1ba0225e6e086786d3950fc7a3c068f38;hp=abbcef771e8a65dc1aad6e959c0ce7a7b132c5b8;hpb=614c48e031ff86a158dfea7eeb2bc255d806c972;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index abbcef771..31f9c74c5 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -43,6 +43,7 @@ use List::Util qw(max sum); use List::UtilsBy qw(sort_by); use English qw(-no_match_vars); +use SL::DB::BankTransactionAccTrans; use SL::DB::Default; use SL::DB::Customer; use SL::DB::Department; @@ -278,6 +279,13 @@ sub setup_is_action_bar { my $payments_balanced = ($::form->{oldtotalpaid} == 0); my $has_storno = ($::form->{storno} && !$::form->{storno_id}); my $may_edit_create = $::auth->assert('invoice_edit', 1); + my $is_linked_bank_transaction; + if ($::form->{id} + && SL::DB::Default->get->payments_changeable != 0 + && SL::DB::Manager::BankTransactionAccTrans->find_by(ar_id => $::form->{id})) { + + $is_linked_bank_transaction = 1; + } for my $bar ($::request->layout->get('actionbar')) { $bar->add( @@ -288,7 +296,6 @@ sub setup_is_action_bar { : $form->{locked} ? t8('The billing period has already been locked.') : undef, id => 'update_button', - checks => [ 'kivi.validate_form' ], accesskey => 'enter', ], @@ -302,15 +309,17 @@ sub setup_is_action_bar { : $form->{storno} ? t8('A canceled invoice cannot be posted.') : ($form->{id} && $change_never) ? t8('Changing invoices has been disabled in the configuration.') : ($form->{id} && $change_on_same_day_only) ? t8('Invoices can only be changed on the day they are posted.') + : $is_linked_bank_transaction ? t8('This transaction is linked with a bank transaction. Please undo and redo the bank transaction booking if needed.') : undef, ], action => [ t8('Post Payment'), submit => [ '#form', { action => "post_payment" } ], checks => [ 'kivi.validate_form' ], - disabled => !$may_edit_create ? t8('You must not change this invoice.') - : !$form->{id} ? t8('This invoice has not been posted yet.') - : undef, + disabled => !$may_edit_create ? t8('You must not change this invoice.') + : !$form->{id} ? t8('This invoice has not been posted yet.') + : $is_linked_bank_transaction ? t8('This transaction is linked with a bank transaction. Please undo and redo the bank transaction booking if needed.') + : undef, ], action => [ t8('Mark as paid'), submit => [ '#form', { action => "mark_as_paid" } ], @@ -329,6 +338,8 @@ sub setup_is_action_bar { checks => [ 'kivi.validate_form' ], disabled => !$may_edit_create ? t8('You must not change this invoice.') : !$form->{id} ? t8('This invoice has not been posted yet.') + : $form->{storno} ? t8('Cannot storno storno invoice!') + : $form->{locked} ? t8('The billing period has already been locked.') : !$payments_balanced ? t8('Cancelling is disallowed. Either undo or balance the current payments until the open amount matches the invoice amount') : undef, ], @@ -365,6 +376,7 @@ sub setup_is_action_bar { disabled => !$may_edit_create ? t8('You must not change this invoice.') : $form->{type} eq "credit_note" ? t8('Credit notes cannot be converted into other credit notes.') : !$form->{id} ? t8('This invoice has not been posted yet.') + : $form->{storno} ? t8('A canceled invoice cannot be used. Please undo the cancellation first.') : undef, ], action => [ @@ -388,15 +400,20 @@ sub setup_is_action_bar { action => [ t8('Print and Post'), call => [ 'kivi.SalesPurchase.show_print_dialog', $form->{id} ? 'print' : 'print_and_post' ], checks => [ 'kivi.validate_form' ], - disabled => !$may_edit_create ? t8('You must not print this invoice.') - : $form->{id} ? t8('This invoice has already been posted.') - : undef,, + disabled => !$may_edit_create ? t8('You must not change this invoice.') + : $form->{locked} ? t8('The billing period has already been locked.') + : $form->{storno} ? t8('A canceled invoice cannot be posted.') + : ($form->{id} && $change_never) ? t8('Changing invoices has been disabled in the configuration.') + : ($form->{id} && $change_on_same_day_only) ? t8('Invoices can only be changed on the day they are posted.') + : $is_linked_bank_transaction ? t8('This transaction is linked with a bank transaction. Please undo and redo the bank transaction booking if needed.') + : undef, ], action => [ t8('E Mail'), call => [ 'kivi.SalesPurchase.show_email_dialog' ], checks => [ 'kivi.validate_form' ], - disabled => !$may_edit_create ? t8('You must not print this invoice.') - : !$form->{id} ? t8('This invoice has not been posted yet.') + disabled => !$may_edit_create ? t8('You must not print this invoice.') + : !$form->{id} ? t8('This invoice has not been posted yet.') + : $form->{postal_invoice} ? t8('This customer wants a postal invoices.') : undef, ], ], # end of combobox "Export" @@ -443,6 +460,9 @@ sub form_header { $TMPL_VAR{customer_obj} = SL::DB::Customer->load_cached($form->{customer_id}) if $form->{customer_id}; $TMPL_VAR{invoice_obj} = SL::DB::Invoice->load_cached($form->{id}) if $form->{id}; + # only print, no mail + $form->{postal_invoice} = $TMPL_VAR{customer_obj}->postal_invoice if ref $TMPL_VAR{customer_obj} eq 'SL::DB::Customer'; + my $current_employee = SL::DB::Manager::Employee->current; $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id}; $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id}; @@ -456,6 +476,7 @@ sub form_header { "price_factors" => "ALL_PRICE_FACTORS"); $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all_sorted; + $form->{ALL_LANGUAGES} = SL::DB::Manager::Language->get_all_sorted; # Projects my @old_project_ids = uniq grep { $_ } map { $_ * 1 } ($form->{"globalproject_id"}, map { $form->{"project_id_$_"} } 1..$form->{"rowcount"}); @@ -527,7 +548,7 @@ sub form_header { invoice_id show_details ), @custom_hiddens, - map { $_.'_rate', $_.'_description', $_.'_taxnumber' } split / /, $form->{taxaccounts}]; + map { $_.'_rate', $_.'_description', $_.'_taxnumber', $_.'_tax_id' } split / /, $form->{taxaccounts}]; $::request->{layout}->use_javascript(map { "${_}.js" } qw(kivi.Draft kivi.File kivi.SalesPurchase kivi.Part kivi.CustomerVendor kivi.Validator ckeditor/ckeditor ckeditor/adapters/jquery kivi.io client_js)); @@ -573,12 +594,6 @@ sub form_footer { $form->{invtotal} = $form->{invsubtotal}; - # note rows - $form->{rows} = max 2, - $form->numtextrows($form->{notes}, 26, 8), - $form->numtextrows($form->{intnotes}, 35, 8); - - # tax, total and subtotal calculations my ($tax, $subtotal); $form->{taxaccounts_array} = [ split(/ /, $form->{taxaccounts}) ]; @@ -724,10 +739,7 @@ sub update { for my $i (1 .. $form->{paidaccounts}) { next unless $form->{"paid_$i"}; - map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(paid exchangerate); - if (!$form->{"forex_$i"}) { #read exchangerate from input field (not hidden) - $form->{exchangerate} = $form->{"exchangerate_$i"}; - } + map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(paid exchangerate); $form->{"forex_$i"} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'buy'); $form->{"exchangerate_$i"} = $form->{"forex_$i"} if $form->{"forex_$i"}; }