X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fis.pl;h=12deb267bbb9969d2699db3c3d48e8916ec64bea;hb=d8d909892ba302d142df9430786242502fa437fe;hp=551c1d8692224742846b7a8a587385de239dda65;hpb=3a868c370f430267080ceaa2ea5d433447ec217b;p=kivitendo-erp.git diff --git a/bin/mozilla/is.pl b/bin/mozilla/is.pl index 551c1d869..12deb267b 100644 --- a/bin/mozilla/is.pl +++ b/bin/mozilla/is.pl @@ -97,7 +97,7 @@ sub add { $form->{callback} = "$form->{script}?action=add&type=$form->{type}" unless $form->{callback}; - &invoice_links; + invoice_links(is_new => 1); &prepare_invoice; &display_form; @@ -154,6 +154,7 @@ sub invoice_links { # Delay access check to after the invoice's been loaded so that # project-specific invoice rights can be evaluated. + my %params = @_; my $form = $main::form; my %myconfig = %main::myconfig; @@ -172,6 +173,8 @@ sub invoice_links { IS->get_customer(\%myconfig, \%$form); + $form->{billing_address_id} = $form->{default_billing_address_id} if $params{is_new}; + $form->restore_vars(qw(id)); IS->retrieve_invoice(\%myconfig, \%$form); @@ -273,12 +276,14 @@ sub prepare_invoice { } sub setup_is_action_bar { + my ($tmpl_var) = @_; my $form = $::form; my $change_never = $::instance_conf->get_is_changeable == 0; my $change_on_same_day_only = $::instance_conf->get_is_changeable == 2 && ($form->current_date(\%::myconfig) ne $form->{gldate}); my $payments_balanced = ($::form->{oldtotalpaid} == 0); my $has_storno = ($::form->{storno} && !$::form->{storno_id}); my $may_edit_create = $::auth->assert('invoice_edit', 1); + my $factur_x_enabled = $tmpl_var->{invoice_obj} && $tmpl_var->{invoice_obj}->customer->create_zugferd_invoices_for_this_customer; my ($is_linked_bank_transaction, $warn_unlinked_delivery_order); if ($::form->{id} && SL::DB::Default->get->payments_changeable != 0 @@ -420,6 +425,14 @@ sub setup_is_action_bar { : $form->{postal_invoice} ? t8('This customer wants a postal invoices.') : undef, ], + action => [ t8('Factur-X/ZUGFeRD'), + submit => [ '#form', { action => "download_factur_x_xml" } ], + 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.') + : !$factur_x_enabled ? t8('Creating Factur-X/ZUGFeRD invoices is not enabled for this customer.') + : undef, + ], ], # end of combobox "Export" combobox => [ @@ -559,7 +572,7 @@ sub form_header { $TMPL_VAR{payment_terms_obj} = get_payment_terms_for_invoice(); $form->{duedate} = $TMPL_VAR{payment_terms_obj}->calc_date(reference_date => $form->{invdate}, due_date => $form->{duedate})->to_kivitendo if $TMPL_VAR{payment_terms_obj}; - setup_is_action_bar(); + setup_is_action_bar(\%TMPL_VAR); $form->header(); @@ -731,6 +744,7 @@ sub update { $::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id}; IS->get_customer(\%myconfig, $form); + $::form->{billing_address_id} = $::form->{default_billing_address_id}; } $form->{taxincluded} ||= $taxincluded;