X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fir.pl;h=c5f6da63a980a55861bbce77ff8589d304151a33;hb=c51f2b805bc4e7a2e105ee5e73ecab75aa8f048a;hp=ad850892238eb16f5ba8c7bfcf86951dc3fc931c;hpb=1e25131315e72036aa6df1d626011a761218d233;p=kivitendo-erp.git diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl index ad8508922..c5f6da63a 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"); @@ -401,13 +418,13 @@ sub form_header { $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|; print qq| - +
{script}> |; $form->hide_form(qw(id title vc type level creditlimit creditremaining closedto locked shippted storno storno_id max_dunning_level dunning_amount vendor_id oldvendor selectvendor taxaccounts - fxgain_accno fxloss_accno taxpart taxservice), + fxgain_accno fxloss_accno taxpart taxservice cursor_fokus), map { $_.'_rate', $_.'_description' } split / /, $form->{taxaccounts} ); print qq|

$form->{saved_message}

| if $form->{saved_message}; @@ -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,25 +876,31 @@ 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); - $form->{exchangerate} = $exchangerate if - $form->{forex} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'sell'); + $form->{forex} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{invdate}, 'sell'); + $form->{exchangerate} = $form->{forex} if $form->{forex}; for $i (1 .. $form->{paidaccounts}) { next unless $form->{"paid_$i"}; map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(paid exchangerate); - $form->{"exchangerate_$i"} = $exchangerate if - $form->{"forex_$i"} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'sell'); + $form->{"forex_$i"} = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{"datepaid_$i"}, 'sell'); + $form->{"exchangerate_$i"} = $form->{"forex_$i"} if $form->{"forex_$i"}; } $i = $form->{rowcount}; @@ -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"}) { @@ -994,7 +1043,7 @@ sub post_payment { $form->isblank("datepaid_$i", $locale->text('Payment date missing!')); $form->error($locale->text('Cannot post payment for a closed period!')) - if ($datepaid <= $closedto); + if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig)); if ($form->{currency} ne $form->{defaultcurrency}) { $form->{"exchangerate_$i"} = $form->{exchangerate} @@ -1028,10 +1077,13 @@ 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!')); - $form->isblank("vendor", $locale->text('Vendor missing!')); + $form->isblank("invdate", $locale->text('Invoice Date missing!')); + $form->isblank("vendor", $locale->text('Vendor missing!')); + $form->isblank("invnumber", $locale->text('Invnumber missing!')); $form->{invnumber} =~ s/^\s*//g; $form->{invnumber} =~ s/\s*$//g; @@ -1048,7 +1100,7 @@ sub post { $invdate = $form->datetonum($form->{invdate}, \%myconfig); $form->error($locale->text('Cannot post invoice for a closed period!')) - if ($invdate <= $closedto); + if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig)); $form->isblank("exchangerate", $locale->text('Exchangerate missing!')) if ($form->{currency} ne $form->{defaultcurrency}); @@ -1060,7 +1112,7 @@ sub post { $form->isblank("datepaid_$i", $locale->text('Payment date missing!')); $form->error($locale->text('Cannot post payment for a closed period!')) - if ($datepaid <= $closedto); + if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig)); if ($form->{currency} ne $form->{defaultcurrency}) { $form->{"exchangerate_$i"} = $form->{exchangerate} @@ -1101,6 +1153,8 @@ sub post { sub delete { $lxdebug->enter_sub(); + $auth->assert('vendor_invoice_edit'); + $form->header; print qq| @@ -1112,6 +1166,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 +1188,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}) {