X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/4dbb09950c9f5596646537c12d991c99086fe7c1..1465da30:/bin/mozilla/cp.pl diff --git a/bin/mozilla/cp.pl b/bin/mozilla/cp.pl index d8890a10e..c19cc5312 100644 --- a/bin/mozilla/cp.pl +++ b/bin/mozilla/cp.pl @@ -31,22 +31,30 @@ # #====================================================================== - use SL::CP; use SL::OP; use SL::IS; use SL::IR; -require "$form->{path}/arap.pl"; +use strict ("vars", "subs"); +#use warnings; + +require "bin/mozilla/arap.pl"; +require "bin/mozilla/common.pl"; + +our ($form, %myconfig, $lxdebug, $locale, $auth); 1; -# end of main +# end of main sub payment { $lxdebug->enter_sub(); - + $auth->assert('cash'); + + my (@curr); + $form->{ARAP} = ($form->{type} eq 'receipt') ? "AR" : "AP"; $form->{arap} = lc $form->{ARAP}; @@ -58,18 +66,22 @@ sub payment { } $form->{"select$form->{vc}"} = ""; - + if ($form->{"all_$form->{vc}"}) { $form->{"$form->{vc}_id"} = $form->{"all_$form->{vc}"}->[0]->{id}; - map { $form->{"select$form->{vc}"} .= "$_->{name}--$_->{id}\n" } @{ $form->{"all_$form->{vc}"} }; + map { $form->{"select$form->{vc}"} .= "$_->{name}--$_->{id}\n" } + @{ $form->{"all_$form->{vc}"} }; } # departments - if (@{ $form->{all_departments} }) { + if (@{ $form->{all_departments} || [] }) { $form->{selectdepartment} = "\n"; - $form->{department} = "$form->{department}--$form->{department_id}"; + $form->{department} = "$form->{department}--$form->{department_id}"; - map { $form->{selectdepartment} .= "$_->{description}--$_->{id}\n" } (@{ $form->{all_departments} }); + map { + $form->{selectdepartment} .= + "$_->{description}--$_->{id}\n" + } (@{ $form->{all_departments} || [] }); } CP->paymentaccounts(\%myconfig, \%$form); @@ -77,13 +89,18 @@ sub payment { $form->{selectaccount} = ""; $form->{"select$form->{ARAP}"} = ""; - map { $form->{selectaccount} .= "$_->{accno}--$_->{description}\n" } @{ $form->{PR}{"$form->{ARAP}_paid"} }; - map { $form->{"select$form->{ARAP}"} .= "$_->{accno}--$_->{description}\n" } @{ $form->{PR}{$form->{ARAP}} }; + map { $form->{selectaccount} .= "$_->{accno}--$_->{description}\n" } + @{ $form->{PR}{"$form->{ARAP}_paid"} }; + map { + $form->{"select$form->{ARAP}"} .= + "$_->{accno}--$_->{description}\n" + } @{ $form->{PR}{ $form->{ARAP} } }; # currencies - @curr = split /:/, $form->{currencies}; + @curr = split(/:/, $form->{currencies}); chomp $curr[0]; - $form->{defaultcurrency} = $form->{currency} = $form->{oldcurrency} = $curr[0]; + $form->{defaultcurrency} = $form->{currency} = $form->{oldcurrency} = + $curr[0]; $form->{selectcurrency} = ""; map { $form->{selectcurrency} .= "$_\n" } @curr; @@ -96,56 +113,63 @@ sub payment { $lxdebug->leave_sub(); } - - sub form_header { $lxdebug->enter_sub(); + $auth->assert('cash'); + + my ($vc, $vclabel, $allvc, $arap, $department, $exchangerate); + my ($jsscript, $button1, $button2, $onload); $vclabel = ucfirst $form->{vc}; $vclabel = $locale->text($vclabel); - + if ($form->{type} eq 'receipt') { - $form->{title} = $locale->text('Receipt'); + $form->{title} = $locale->text('Receipt'); $form->{origtitle} = "Receipt"; } if ($form->{type} eq 'check') { - $form->{title} = $locale->text('Payment'); + $form->{title} = $locale->text('Payment'); $form->{origtitle} = "Payment"; } -# $locale->text('Customer') -# $locale->text('Vendor') + # $locale->text('Customer') + # $locale->text('Vendor') - if ($form->{$form->{vc}} eq "") { + if ($form->{ $form->{vc} } eq "") { map { $form->{"addr$_"} = "" } (1 .. 4); } if ($form->{currency} ne $form->{defaultcurrency}) { - $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate}); + $form->{exchangerate} = + $form->format_amount(\%myconfig, $form->{exchangerate}); if ($form->{forex}) { $exchangerate = qq| - |.$locale->text('Exchangerate').qq| + | . $locale->text('Exchangerate') . qq| {exchangerate}>$form->{exchangerate} |; } else { $exchangerate = qq| - |.$locale->text('Exchangerate').qq| + | . $locale->text('Exchangerate') . qq| {exchangerate}> |; } } - foreach $item ($form->{vc}, account, currency, $form->{ARAP}, department) { + foreach my $item ($form->{vc}, "account", "currency", $form->{ARAP}, "department") { $form->{"select$item"} =~ s/ selected//; - $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/; + $form->{"select$item"} =~ + s/option>\Q$form->{$item}\E/option selected>$form->{$item}/; } - $vc = ($form->{"select$form->{vc}"}) ? qq|{vc}>$form->{"select$form->{vc}"}\n| : qq|{vc} size=35 value="$form->{$form->{vc}}">|; + $vc = + ($form->{"select$form->{vc}"}) + ? qq|{vc}>$form->{"select$form->{vc}"}\n| + : qq|{vc} size=35 value="$form->{$form->{vc}}">|; if ($form->{all_vc}) { $allvc = "checked"; @@ -154,47 +178,41 @@ sub form_header { $allvc = ""; $form->{openinvoices} = 1; } - -# $locale->text('AR') -# $locale->text('AP') - $department = qq| - - |.$locale->text('Department').qq| - $form->{selectdepartment} - - - - -| if $form->{selectdepartment}; - - $form->{jsscript} = $jscalendar; - $jsscript = ""; - if ($form->{jsscript}) - { + # $locale->text('AR') + # $locale->text('AP') + + $form->{jsscript} = 1; + $jsscript = ""; + if ($form->{jsscript}) { + # with JavaScript Calendar $button1 = qq| - - text('button').qq|> + + text('button') . qq|> |; - #write Trigger - $jsscript = Form->write_trigger(\%myconfig,"1","datepaid","BL","trigger1","","",""); - } - else - { - # without JavaScript Calendar - $button1 = qq| - |; - } - + + #write Trigger + $jsscript = + Form->write_trigger(\%myconfig, "1", "datepaid", "BL", "trigger1"); + } else { + + # without JavaScript Calendar + $button1 = qq| + |; + } + $form->{javascript} .= qq||; $form->header; $arap = lc $form->{ARAP}; - + $onload = qq|focus()|; + $onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|; + $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|; print qq| - + -{script}> + {defaultcurrency}> {closedto}> @@ -217,108 +235,106 @@ sub form_header { - - - - - - - |.$locale->text('All').qq| - - - $vclabel - $vc - {vc}"}"> - {"$form->{vc}_id"}> - {vc}"}"> - - - |.$locale->text('Address').qq| - - - - $form->{street} - - - $form->{zipcode} - - - $form->{city} - - - $form->{country} - - - - - - - - - - |.$locale->text('Memo').qq| - - - - - - - $department - - |.$locale->text($form->{ARAP}).qq| - {ARAP}>$form->{"select$form->{ARAP}"} - - {ARAP}"}"> - - - |.$locale->text('Account').qq| - $form->{selectaccount} - - - - - |.$locale->text('Date').qq| + + + + + + + | . $locale->text('All') . qq| + + + $vclabel + $vc + {vc}"}) . qq|"> + {vc}_id"}) . qq|"> + {vc}"}) . qq|"> + + + | . $locale->text('Address') . qq| + + + + $form->{street} + + + $form->{zipcode} + + + $form->{city} + + + $form->{country} + + + + + + + + + + | . $locale->text('Memo') . qq| + + + + + + + $department + + | . $locale->text('Account') . qq| + $form->{selectaccount} + + + + + | . $locale->text('Date') . qq| $button1 - - - |.$locale->text('Currency').qq| - $form->{selectcurrency} - - {oldcurrency}> - - $exchangerate - - |.$locale->text('Source').qq| - - - - |.$locale->text('Amount').qq| - format_amount(\%myconfig, $form->{amount}, 2).qq|> - - - - + + + | . $locale->text('Currency') . qq| + $form->{selectcurrency} + + {oldcurrency}> + + $exchangerate + + | . $locale->text('Source') . qq| + + + + | . $locale->text('Amount') . qq| + + + + + - + $jsscript |; $lxdebug->leave_sub(); } - sub list_invoices { $lxdebug->enter_sub(); + $auth->assert('cash'); + + my (@column_index, %column_data, $colspan, $invoice); + my ($totalamount, $totaldue, $totalpaid); @column_index = qw(invnumber transdate amount due checked paid); - + $colspan = $#column_index + 1; $invoice = $locale->text('Invoices'); - + print qq| @@ -329,13 +345,19 @@ sub list_invoices { |; - $column_data{invnumber} = qq||.$locale->text('Invoice').""; - $column_data{transdate} = qq||.$locale->text('Date').""; - $column_data{amount} = qq||.$locale->text('Amount').""; - $column_data{due} = qq||.$locale->text('Due').""; - $column_data{paid} = qq||.$locale->text('Amount').""; - $column_data{checked} = qq||.$locale->text('Select').""; - + $column_data{invnumber} = + qq|| . $locale->text('Invoice') . ""; + $column_data{transdate} = + qq|| . $locale->text('Date') . ""; + $column_data{amount} = + qq|| . $locale->text('Amount') . ""; + $column_data{due} = + qq|| . $locale->text('Due') . ""; + $column_data{paid} = + qq|| . $locale->text('Amount') . ""; + $column_data{checked} = + qq|| . $locale->text('Select') . ""; + print qq| |; @@ -344,32 +366,44 @@ sub list_invoices { |; - for $i (1 .. $form->{rowcount}) { + for my $i (1 .. $form->{rowcount}) { + + my $j = 0; + + map { + $form->{"${_}_$i"} = + $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) + } qw(amount due paid); - map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(amount due paid); - $totalamount += $form->{"amount_$i"}; - $totaldue += $form->{"due_$i"}; - $totalpaid += $form->{"paid_$i"}; + $totaldue += $form->{"due_$i"}; + $totalpaid += $form->{"paid_$i"}; - map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(amount due paid); + map { + $form->{"${_}_$i"} = + $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) + } qw(amount due paid); $column_data{invnumber} = qq|$form->{"invnumber_$i"} {"id_$i"}>|; $column_data{transdate} = qq|$form->{"transdate_$i"} {"transdate_$i"}>|; - $column_data{amount} = qq|$form->{"amount_$i"} + $column_data{amount} = + qq|$form->{"amount_$i"} {"amount_$i"}>|; $column_data{due} = qq|$form->{"due_$i"} {"due_$i"}>|; - $column_data{paid} = qq|{"paid_$i"}>|; + $column_data{paid} = + qq|{"paid_$i"}>|; $form->{"checked_$i"} = ($form->{"checked_$i"}) ? "checked" : ""; - $column_data{checked} = qq|{"checked_$i"}>|; + $column_data{checked} = + qq|{"checked_$i"}>|; - $j++; $j %= 2; + $j++; + $j %= 2; print qq| |; @@ -381,9 +415,18 @@ sub list_invoices { map { $column_data{$_} = " " } @column_index; - $column_data{amount} = qq||.$form->format_amount(\%myconfig, $totalamount, 2, " ").qq||; - $column_data{due} = qq||.$form->format_amount(\%myconfig, $totaldue, 2, " ").qq||; - $column_data{paid} = qq||.$form->format_amount(\%myconfig, $totalpaid, 2, " ").qq||; + $column_data{amount} = + qq|| + . $form->format_amount(\%myconfig, $totalamount, 2, " ") + . qq||; + $column_data{due} = + qq|| + . $form->format_amount(\%myconfig, $totaldue, 2, " ") + . qq||; + $column_data{paid} = + qq|| + . $form->format_amount(\%myconfig, $totalpaid, 2, " ") + . qq||; print qq| @@ -399,30 +442,33 @@ sub list_invoices { $lxdebug->leave_sub(); } - sub form_footer { $lxdebug->enter_sub(); + $auth->assert('cash'); + + my ($media, $format, $latex_templates); + + $form->{DF}{ $form->{format} } = "selected"; + $form->{OP}{ $form->{media} } = "selected"; - $form->{DF}{$form->{format}} = "selected"; - $form->{OP}{$form->{media}} = "selected"; - $media = qq| - {OP}{screen}>|.$locale->text('Screen'); + {OP}{screen}>| . $locale->text('Screen'); - if ($myconfig{printer} && $latex) { + if ($myconfig{printer} && $latex_templates) { $media .= qq| - {OP}{printer}>|.$locale->text('Printer'); + {OP}{printer}>| + . $locale->text('Printer'); } - if ($latex) { + if ($latex_templates) { $media .= qq| - {OP}{queue}>|.$locale->text('Queue'); + {OP}{queue}>| . $locale->text('Queue'); $format .= qq| - {DF}{postscript}>|.$locale->text('Postscript').qq| - {DF}{pdf}>|.$locale->text('PDF'); + {DF}{postscript}>| + . $locale->text('Postscript') . qq| + {DF}{pdf}>| . $locale->text('PDF'); } - - + print qq| @@ -430,30 +476,22 @@ sub form_footer { {rowcount}> -{path}> -{login}> -{password}> - - -|; + +|; - if ($latex) { + if ($latex_templates) { print qq| -|; +|; } print qq| $format $media -|; - if ($form->{menubar}) { - require "$form->{path}/menu.pl"; - &menubar; - } - - print qq| @@ -463,13 +501,15 @@ sub form_footer { $lxdebug->leave_sub(); } - sub update { $lxdebug->enter_sub(); + $auth->assert('cash'); + my ($new_name_selected) = @_; - - + + my ($buysell, $newvc, $updated, $exchangerate, $amount); + if ($form->{vc} eq 'customer') { $buysell = "buy"; } else { @@ -480,26 +520,33 @@ sub update { if ($form->{all_vc} ne $form->{oldall_vc}) { $form->{openinvoices} = ($form->{all_vc}) ? 0 : 1; - + $form->{"select$form->{vc}"} = ""; if ($form->{all_vc}) { $form->all_vc(\%myconfig, $form->{vc}, $form->{ARAP}); - + if ($form->{"all_$form->{vc}"}) { - map { $form->{"select$form->{vc}"} .= "$_->{name}--$_->{id}\n" } @{ $form->{"all_$form->{vc}"} }; + map { + $form->{"select$form->{vc}"} .= + "$_->{name}--$_->{id}\n" + } @{ $form->{"all_$form->{vc}"} }; } } else { CP->get_openvc(\%myconfig, \%$form); - + if ($form->{"all_$form->{vc}"}) { - $newvc = qq|$form->{"all_$form->{vc}"}[0]->{name}--$form->{"all_$form->{vc}"}[0]->{id}|; - map { $form->{"select$form->{vc}"} .= "$_->{name}--$_->{id}\n" } @{ $form->{"all_$form->{vc}"} }; + $newvc = + qq|$form->{"all_$form->{vc}"}[0]->{name}--$form->{"all_$form->{vc}"}[0]->{id}|; + map { + $form->{"select$form->{vc}"} .= + "$_->{name}--$_->{id}\n" + } @{ $form->{"all_$form->{vc}"} }; } - + # if the name is not the same if ($form->{"select$form->{vc}"} !~ /$form->{$form->{vc}}/) { - $form->{$form->{vc}} = $newvc; + $form->{ $form->{vc} } = $newvc; } } } @@ -509,8 +556,8 @@ sub update { if ($new_name_selected || $updated) { CP->get_openinvoices(\%myconfig, \%$form); - ($newvc) = split /--/, $form->{$form->{vc}}; - $form->{"old$form->{vc}"} = qq|$newvc--$form->{"$form->{vc}_id"}|;; + ($newvc) = split /--/, $form->{ $form->{vc} }; + $form->{"old$form->{vc}"} = qq|$newvc--$form->{"$form->{vc}_id"}|; $updated = 1; } @@ -521,9 +568,9 @@ sub update { $updated = 1; } } - - - $form->{exchangerate} = $exchangerate if ($form->{forex} = ($exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{datepaid}, $buysell))); + + $form->{forex} = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{datepaid}, $buysell); + $form->{exchangerate} = $form->{forex} if $form->{forex}; $amount = $form->{amount} = $form->parse_amount(\%myconfig, $form->{amount}); @@ -531,102 +578,130 @@ sub update { $form->{rowcount} = 0; $form->{queued} = ""; - - $i = 0; - foreach $ref (@{ $form->{PR} }) { + + my $i = 0; + foreach my $ref (@{ $form->{PR} }) { $i++; - $form->{"id_$i"} = $ref->{id}; + $form->{"id_$i"} = $ref->{id}; $form->{"invnumber_$i"} = $ref->{invnumber}; $form->{"transdate_$i"} = $ref->{transdate}; $ref->{exchangerate} = 1 unless $ref->{exchangerate}; $form->{"amount_$i"} = $ref->{amount} / $ref->{exchangerate}; - $form->{"due_$i"} = ($ref->{amount} - $ref->{paid}) / $ref->{exchangerate}; + $form->{"due_$i"} = + ($ref->{amount} - $ref->{paid}) / $ref->{exchangerate}; $form->{"checked_$i"} = ""; - $form->{"paid_$i"} = ""; + $form->{"paid_$i"} = ""; # need to format - map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(amount due); + map { + $form->{"${_}_$i"} = + $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) + } qw(amount due); } $form->{rowcount} = $i; } # recalculate - $amount = $form->{amount}; - for $i (1 .. $form->{rowcount}) { - map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(amount due paid); + # Modified from $amount = $form->{amount} by J.Zach to update amount to total + # payment amount in Zahlungsausgang + $amount = 0; + for my $i (1 .. $form->{rowcount}) { + + map { + $form->{"${_}_$i"} = + $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) + } qw(amount due paid); if ($form->{"checked_$i"}) { + # calculate paid_$i if (!$form->{"paid_$i"}) { - $form->{"paid_$i"} = $form->{"due_$i"}; + $form->{"paid_$i"} = $form->{"due_$i"}; } - - $amount -= $form->{"paid_$i"}; + + # Modified by J.Zach, see abovev + $amount += $form->{"paid_$i"}; + } else { $form->{"paid_$i"} = ""; } - map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(amount due paid); + map { + $form->{"${_}_$i"} = + $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) + } qw(amount due paid); } + # Line added by J.Zach, see above + $form->{amount}=$amount; + &form_header; &list_invoices; &form_footer; - + $lxdebug->leave_sub(); } sub post { $lxdebug->enter_sub(); + $auth->assert('cash'); &check_form; - + if ($form->{currency} ne $form->{defaultcurrency}) { - $form->error($locale->text('Exchangerate missing!')) unless $form->{exchangerate}; + $form->error($locale->text('Exchangerate missing!')) + unless $form->{exchangerate}; } - $msg1 = "$form->{origtitle} posted!"; - $msg2 = "Cannot post $form->{origtitle}!"; + my $msg1 = "$form->{origtitle} posted!"; + my $msg2 = "Cannot post $form->{origtitle}!"; -# $locale->text('Payment posted!') -# $locale->text('Receipt posted!') -# $locale->text('Cannot post Payment!') -# $locale->text('Cannot post Receipt!') + # $locale->text('Payment posted!') + # $locale->text('Receipt posted!') + # $locale->text('Cannot post Payment!') + # $locale->text('Cannot post Receipt!') - $form->redirect($locale->text($msg1)) if (CP->process_payment(\%myconfig, \%$form)); + $form->redirect($locale->text($msg1)) + if (CP->process_payment(\%myconfig, \%$form)); $form->error($locale->text($msg2)); $lxdebug->leave_sub(); } - sub print { $lxdebug->enter_sub(); - + $auth->assert('cash'); + + my ($whole, $check, %queued, $spool, $filename, $userspath); + &check_form; - ($whole, $form->{decimal}) = split /\./, $form->{amount}; - + ($whole, $form->{decimal}) = split(/\./, $form->{amount}); + $form->{amount} = $form->format_amount(\%myconfig, $form->{amount}, 2); - - $form->{decimal} .= "00"; + + #$form->{decimal} .= "00"; $form->{decimal} = substr($form->{decimal}, 0, 2); $check = new CP $myconfig{countrycode}; $check->init; $form->{text_amount} = $check->num2text($whole); - &{ "$form->{vc}_details" }; + if ($form->{vc} eq 'customer') { + IS->customer_details(\%myconfig, $form); + } else { + IR->vendor_details(\%myconfig, $form); + } $form->{callback} = ""; - + $form->{templates} = "$myconfig{templates}"; - $form->{IN} = "$form->{formname}.tex"; + $form->{IN} = "$form->{formname}.tex"; if ($form->{format} eq 'postscript') { $form->{postscript} = 1; @@ -635,13 +710,15 @@ sub print { $form->{pdf} = 1; } + delete $form->{OUT}; + if ($form->{media} eq 'printer') { $form->{OUT} = "| $myconfig{printer}"; } if ($form->{media} eq 'queue') { - %queued = split / /, $form->{queued}; - - if ($filename = $queued{$form->{formname}}) { + %queued = map { s|.*/|| } split / /, $form->{queued}; + + if ($filename = $queued{ $form->{formname} }) { unlink "$spool/$filename"; $filename =~ s/\..*$//g; } else { @@ -650,7 +727,7 @@ sub print { } $filename .= ($form->{postscript}) ? '.ps' : '.pdf'; $form->{queued} = "$form->{formname} $filename"; - $form->{OUT} = ">$spool/$filename"; + $form->{OUT} = ">$spool/$filename"; $form->update_status(\%myconfig); @@ -658,68 +735,65 @@ sub print { $form->{company} = $myconfig{company}; $form->{address} = $myconfig{address}; - - @a = qw(name invnumber company address text_amount street zipcode city country memo); - $form->format_string(@a); $form->parse_template(\%myconfig, $userspath); if ($form->{media} ne 'screen') { - $form->{callback} = "$form->{script}?action=payment&vc=$form->{vc}&path=$form->{path}&login=$form->{login}&password=$form->{password}&all_vc=$form->{all_vc}"; + $form->{callback} = "cp.pl?action=payment&vc=$form->{vc}&all_vc=$form->{all_vc}"; $form->redirect if (CP->process_payment(\%myconfig, \%$form)); $form->error($locale->text('Cannot post payment!')); } - + $lxdebug->leave_sub(); } - -sub customer_details { IS->customer_details(\%myconfig, \%$form) }; -sub vendor_details { IR->vendor_details(\%myconfig, \%$form) }; - - sub check_form { $lxdebug->enter_sub(); - + $auth->assert('cash'); + + my ($closedto, $datepaid, $amount); + &check_name($form->{vc}); if ($form->{currency} ne $form->{oldcurrency}) { &update; exit; } - + + $form->error($locale->text('Zero amount posting!')) if !$form->parse_amount(\%myconfig, $form->{amount}); $form->error($locale->text('Date missing!')) unless $form->{datepaid}; $closedto = $form->datetonum($form->{closedto}, \%myconfig); $datepaid = $form->datetonum($form->{datepaid}, \%myconfig); - - $form->error($locale->text('Cannot process payment for a closed period!')) if ($datepaid <= $closedto); + + $form->error($locale->text('Cannot process payment for a closed period!')) + if ($form->date_closed($form->{"datepaid"}, \%myconfig)); $amount = $form->parse_amount(\%myconfig, $form->{amount}); $form->{amount} = $amount; - - for $i (1 .. $form->{rowcount}) { - if ($form->{"paid_$i"}) { - $amount -= $form->parse_amount($myconfig, $form->{"paid_$i"}); - - push(@{ $form->{paid} }, $form->{"paid_$i"}); - push(@{ $form->{due} }, $form->{"due_$i"}); + for my $i (1 .. $form->{rowcount}) { + if ($form->parse_amount(\%myconfig, $form->{"paid_$i"})) { + $amount -= $form->parse_amount(\%myconfig, $form->{"paid_$i"}); + + push(@{ $form->{paid} }, $form->{"paid_$i"}); + push(@{ $form->{due} }, $form->{"due_$i"}); push(@{ $form->{invnumber} }, $form->{"invnumber_$i"}); - push(@{ $form->{invdate} }, $form->{"transdate_$i"}); + push(@{ $form->{invdate} }, $form->{"transdate_$i"}); } } if ($form->round_amount($amount, 2) != 0) { push(@{ $form->{paid} }, $form->format_amount(\%myconfig, $amount, 2)); push(@{ $form->{due} }, $form->format_amount(\%myconfig, 0, "0")); - push(@{ $form->{invnumber} }, ($form->{ARAP} eq 'AR') ? $locale->text('Deposit') : $locale->text('Prepayment')); + push(@{ $form->{invnumber} }, + ($form->{ARAP} eq 'AR') + ? $locale->text('Deposit') + : $locale->text('Prepayment')); push(@{ $form->{invdate} }, $form->{datepaid}); } - + $lxdebug->leave_sub(); } - -