X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fir.pl;h=239a85942c779390c936292a1033d135159523d9;hb=9dc9cfefd45e66cb4298dd572e3582613ae547a6;hp=ad850892238eb16f5ba8c7bfcf86951dc3fc931c;hpb=1e25131315e72036aa6df1d626011a761218d233;p=kivitendo-erp.git diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl index ad8508922..239a85942 100644 --- a/bin/mozilla/ir.pl +++ b/bin/mozilla/ir.pl @@ -31,12 +31,14 @@ # #====================================================================== +use SL::FU; use SL::IR; use SL::IS; use SL::PE; -use List::Util qw(max); +use List::Util qw(max sum); require "bin/mozilla/io.pl"; +require "bin/mozilla/invoice_io.pl"; require "bin/mozilla/arap.pl"; require "bin/mozilla/common.pl"; require "bin/mozilla/drafts.pl"; @@ -48,6 +50,8 @@ require "bin/mozilla/drafts.pl"; sub add { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + return $lxdebug->leave_sub() if (load_draft_maybe()); $form->{title} = $locale->text('Add Vendor Invoice'); @@ -61,7 +65,9 @@ sub add { sub edit { $lxdebug->enter_sub(); - $form->{"Watchdog::qty_1"} = 1; + + $auth->assert('vendor_invoice_edit'); + # show history button $form->{javascript} = qq||; #/show hhistory button @@ -78,6 +84,8 @@ sub edit { sub invoice_links { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + # create links $form->{webdav} = $webdav; $form->{jsscript} = 1; @@ -181,6 +189,8 @@ sub invoice_links { sub prepare_invoice { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + if ($form->{id}) { map { $form->{$_} =~ s/\"/"/g } qw(invnumber ordnumber quonumber); @@ -214,6 +224,8 @@ sub prepare_invoice { sub form_header { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + # set option selected foreach $item (qw(AP vendor currency department)) { $form->{"select$item"} =~ s/ selected//; @@ -381,7 +393,7 @@ sub form_header { text('button') . qq|>\n|; $button2 = qq| - text('button') . qq|>\n|; + text('button') . qq|>\n|; #write Trigger $jsscript = @@ -389,9 +401,14 @@ sub form_header { "invdate", "BL", "trigger1", "duedate", "BL", "trigger2"); + my $follow_up_vc = $form->{vendor}; + $follow_up_vc =~ s/--.*?//; + my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)"; + $form->{javascript} .= qq||; $form->{javascript} .= qq||; $form->{javascript} .= qq||; + $form->{javascript} .= qq||; $jsscript .= $form->write_trigger(\%myconfig, 2, "orddate", "BL", "trigger_orddate", "quodate", "BL", "trigger_quodate"); @@ -498,6 +515,8 @@ $jsscript sub form_footer { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + $form->{invtotal} = $form->{invsubtotal}; if (($rows = $form->numtextrows($form->{notes}, 25, 8)) < 2) { @@ -595,6 +614,20 @@ sub form_footer { $form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2, 0); + my $follow_ups_block; + if ($form->{id}) { + my $follow_ups = FU->follow_ups('trans_id' => $form->{id}); + + if (@{ $follow_ups} ) { + my $num_due = sum map { $_->{due} * 1 } @{ $follow_ups }; + $follow_ups_block = qq| + + | . $locale->text("There are #1 unfinished follow-ups of which #2 are due.", scalar @{ $follow_ups }, $num_due) . qq| + +|; + } + } + print qq| @@ -610,6 +643,7 @@ sub form_footer { $notes $intnotes + $follow_ups_block @@ -798,6 +832,9 @@ sub form_footer { } print qq| + |; } @@ -810,7 +847,7 @@ sub form_footer { } print $form->write_trigger(\%myconfig, scalar(@triggers) / 3, @triggers); - $form->hide_form(qw(rowcount callback draft_id draft_description login password)); + $form->hide_form(qw(rowcount callback draft_id draft_description)); # button for saving history if($form->{id} ne "") { @@ -839,13 +876,19 @@ print qq| sub mark_as_paid { $lxdebug->enter_sub(); + + $auth->assert('vendor_invoice_edit'); + &mark_as_paid_common(\%myconfig,"ap"); + $lxdebug->leave_sub(); } sub update { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining); &check_name(vendor); @@ -935,6 +978,8 @@ sub update { sub storno { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + if ($form->{storno}) { $form->error($locale->text('Cannot storno storno invoice!')); } @@ -974,6 +1019,8 @@ sub storno { sub use_as_template { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + map { delete $form->{$_} } qw(printed emailed queued invnumber invdate deliverydate id datepaid_1 source_1 memo_1 paid_1 exchangerate_1 AP_paid_1 storno); $form->{paidaccounts} = 1; $form->{rowcount}--; @@ -986,6 +1033,8 @@ sub use_as_template { sub post_payment { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); for $i (1 .. $form->{paidaccounts}) { if ($form->{"paid_$i"}) { @@ -1028,6 +1077,8 @@ sub post_payment { sub post { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + $form->{defaultcurrency} = $form->get_default_currency(\%myconfig); $form->isblank("invdate", $locale->text('Invoice Date missing!')); @@ -1101,6 +1152,8 @@ sub post { sub delete { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + $form->header; print qq| @@ -1112,6 +1165,7 @@ sub delete { map { delete $form->{$_} } qw(action header); foreach $key (keys %$form) { + next if (($key eq 'login') || ($key eq 'password') || ('' ne ref $form->{$key})); $form->{$key} =~ s/\"/"/g; print qq|\n|; } @@ -1133,6 +1187,9 @@ sub delete { sub yes { $lxdebug->enter_sub(); + + $auth->assert('vendor_invoice_edit'); + if (IR->delete_invoice(\%myconfig, \%$form)) { # saving the history if(!exists $form->{addition}) {