X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=14b472fdb44c89fc21b34ac114ca4175ca9eb1a1;hb=332e327b6613bf762b34d841442378de255d946b;hp=b4e1a7bcd9a76f00aed9592c04817965e1025741;hpb=d94bf8b49ed07c32af387f63596d299068015ebc;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index b4e1a7bcd..14b472fdb 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -336,6 +336,13 @@ sub setup_is_action_bar { $has_final_invoice = any {'SL::DB::Invoice' eq ref $_ && "final_invoice" eq $_->invoice_type} @$lr; } + my $is_invoice_for_advance_payment_from_order; + if ($form->{id} && $form->{type} eq "invoice_for_advance_payment") { + my $invoice_obj = SL::DB::Invoice->load_cached($form->{id}); + my $lr = $invoice_obj->linked_records(direction => 'from', from => ['Order']); + $is_invoice_for_advance_payment_from_order = scalar @$lr >= 1; + } + for my $bar ($::request->layout->get('actionbar')) { $bar->add( action => [ @@ -424,22 +431,24 @@ sub setup_is_action_bar { t8('Further Invoice for Advance Payment'), submit => [ '#form', { action => "further_invoice_for_advance_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.') - : $has_further_invoice_for_advance_payment ? t8('This invoice has already a further invoice for advanced payment.') - : $has_final_invoice ? t8('This invoice has already a final invoice.') - : undef, + disabled => !$may_edit_create ? t8('You must not change this invoice.') + : !$form->{id} ? t8('This invoice has not been posted yet.') + : $has_further_invoice_for_advance_payment ? t8('This invoice has already a further invoice for advanced payment.') + : $has_final_invoice ? t8('This invoice has already a final invoice.') + : $is_invoice_for_advance_payment_from_order ? t8('This invoice was added from an order. See there.') + : undef, only_if => $form->{type} eq "invoice_for_advance_payment", ], action => [ t8('Final Invoice'), submit => [ '#form', { action => "final_invoice" } ], 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.') - : $has_further_invoice_for_advance_payment ? t8('This invoice has a further invoice for advanced payment.') - : $has_final_invoice ? t8('This invoice has already a final invoice.') - : undef, + disabled => !$may_edit_create ? t8('You must not change this invoice.') + : !$form->{id} ? t8('This invoice has not been posted yet.') + : $has_further_invoice_for_advance_payment ? t8('This invoice has a further invoice for advanced payment.') + : $has_final_invoice ? t8('This invoice has already a final invoice.') + : $is_invoice_for_advance_payment_from_order ? t8('This invoice was added from an order. See there.') + : undef, only_if => $form->{type} eq "invoice_for_advance_payment", ], action => [ @@ -615,7 +624,7 @@ sub form_header { $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/; } - $TMPL_VAR{is_type_invoice_for_advance_payment} = $form->{type} eq "invoice_for_advance_payment"; + $TMPL_VAR{is_type_normal_invoice} = $form->{type} eq "invoice"; $TMPL_VAR{is_type_credit_note} = $form->{type} eq "credit_note"; $TMPL_VAR{is_format_html} = $form->{format} eq 'html'; $TMPL_VAR{dateformat} = $myconfig{dateformat}; @@ -759,18 +768,18 @@ sub form_footer { } print $form->parse_html_template('is/form_footer', { - is_type_invoice_for_advance_payment => ($form->{type} eq "invoice_for_advance_payment"), - is_type_credit_note => ($form->{type} eq "credit_note"), - totalpaid => $totalpaid, - paid_missing => $form->{invtotal} - $totalpaid, - print_options => setup_sales_purchase_print_options(), - show_storno => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar") && !$totalpaid, - show_delete => ($::instance_conf->get_is_changeable == 2) - ? ($form->current_date(\%myconfig) eq $form->{gldate}) - : ($::instance_conf->get_is_changeable == 1), - today => DateTime->today, - vc_obj => $form->{customer_id} ? SL::DB::Customer->load_cached($form->{customer_id}) : undef, - shipto_cvars => $shipto_cvars, + is_type_normal_invoice => ($form->{type} eq "invoice"), + is_type_credit_note => ($form->{type} eq "credit_note"), + totalpaid => $totalpaid, + paid_missing => $form->{invtotal} - $totalpaid, + print_options => setup_sales_purchase_print_options(), + show_storno => $form->{id} && !$form->{storno} && !IS->has_storno(\%myconfig, $form, "ar") && !$totalpaid, + show_delete => ($::instance_conf->get_is_changeable == 2) + ? ($form->current_date(\%myconfig) eq $form->{gldate}) + : ($::instance_conf->get_is_changeable == 1), + today => DateTime->today, + vc_obj => $form->{customer_id} ? SL::DB::Customer->load_cached($form->{customer_id}) : undef, + shipto_cvars => $shipto_cvars, }); ##print $form->parse_html_template('is/_payments'); # parser ##print $form->parse_html_template('webdav/_list'); # parser @@ -1213,11 +1222,6 @@ sub final_invoice { $main::auth->assert('invoice_edit'); - # search all related invoices for advance payment - # - # (order) -> invoice for adv. payment 1 -> invoice for adv. payment 2 -> invoice for adv. payment 3 -> final invoice - # - # we are currently in the last invoice for adv. payment (3 in this example) my $related_invoices = IS->_get_invoices_for_advance_payment($form->{id}); delete @{ $form }{qw(printed emailed queued invnumber invdate exchangerate forex deliverydate datepaid_1 gldate_1 acc_trans_id_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno locked)};