X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Fir.pl;h=87225eb043f7e3cce2cecec7daab2a8f5f356cd9;hb=05fd99ac835a9ffa6b1fefc768b460f207e6f578;hp=5b47194869a060c228a721d344d5a445d68534fd;hpb=8c7e44938a661e035f62840e1e177353240ace5d;p=kivitendo-erp.git diff --git a/bin/mozilla/ir.pl b/bin/mozilla/ir.pl index 5b4719486..87225eb04 100644 --- a/bin/mozilla/ir.pl +++ b/bin/mozilla/ir.pl @@ -31,10 +31,11 @@ # #====================================================================== +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"; @@ -225,6 +226,8 @@ sub form_header { $auth->assert('vendor_invoice_edit'); + push @{ $form->{AJAX} }, CGI::Ajax->new('set_duedate_vendor' => "$form->{script}?action=set_duedate_vendor"); + # set option selected foreach $item (qw(AP vendor currency department)) { $form->{"select$item"} =~ s/ selected//; @@ -344,7 +347,7 @@ sub form_header { : (NTI($cgi->popup_menu('-name' => 'vendor', '-default' => $form->{oldvendor}, '-onChange' => 'document.getElementById(\'update_button\').click();', '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px')))) . qq| - + |; %labels = (); @@ -388,11 +391,18 @@ sub form_header { $jsscript = ""; $button1 = qq| - - text('button') . qq|>\n|; + + + + \n|; + +#, 'old_duedate__'' + document.getElementsByName('duedate')[0].value, 'vendor_id__' + document.getElementsByName('vendor_id')[0].value],['duedate'])"> $button2 = qq| - - text('button') . qq|>\n|; + + + text('button') . qq|> + \n|; #write Trigger $jsscript = @@ -400,9 +410,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"); @@ -412,13 +427,14 @@ 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 + convert_from_oe_ids convert_from_do_ids), map { $_.'_rate', $_.'_description' } split / /, $form->{taxaccounts} ); print qq|

$form->{saved_message}

| if $form->{saved_message}; @@ -608,6 +624,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| @@ -623,6 +653,7 @@ sub form_footer { $notes $intnotes + $follow_ups_block @@ -811,6 +842,9 @@ sub form_footer { } print qq| + |; } @@ -869,14 +903,14 @@ sub update { &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}; @@ -1019,7 +1053,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} @@ -1057,8 +1091,9 @@ sub post { $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; @@ -1075,7 +1110,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}); @@ -1087,7 +1122,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} @@ -1180,3 +1215,13 @@ sub yes { $lxdebug->leave_sub(); } + +sub set_duedate_vendor { + $lxdebug->enter_sub(); + + print $form->ajax_response_header(), IR->get_duedate('vendor_id' => $form->{vendor_id}, + 'invdate' => $form->{invdate}, + 'default' => $form->{old_duedate}); + + $lxdebug->leave_sub(); +}