%
#
use strict;
use vars qw( $cgi $query $custnum $paynum $amount $invnum $p1 $otaker $cust_pay );
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use Date::Format;
use FS::UID qw(cgisuidsetup getotaker);
use FS::CGI qw(header popurl);
use FS::Record qw(qsearch fields);
use FS::cust_pay;
use FS::cust_bill;
$cgi = new CGI;
cgisuidsetup($cgi);
if ( $cgi->param('error') ) {
$paynum = $cgi->param('paynum');
$amount = $cgi->param('amount');
$invnum = $cgi->param('invnum');
} else {
($query) = $cgi->keywords;
$query =~ /^(\d+)$/;
$paynum = $1;
$amount = '';
$invnum = '';
}
$otaker = getotaker;
$p1 = popurl(1);
print header("Apply Payment", '');
print qq!Error: !, $cgi->param('error'),
"
"
if $cgi->param('error');
print <
END
die unless $cust_pay = qsearchs('cust_pay', { 'paynum' => $paynum } );
my $unapplied = $cust_pay->unapplied;
print "Payment # $paynum".
qq!!.
'
Date: '. time2str("%D", $cust_pay->_date). ''.
'
Amount: $'. $cust_pay->paid. ''.
"
Unapplied amount: \$$unapplied"
;
my @cust_bill = grep $_->owed != 0,
qsearch('cust_bill', { 'custnum' => $cust_pay->custnum } );
print <
function changed(what) {
cust_bill = what.options[what.selectedIndex].value;
END
foreach my $cust_bill ( @cust_bill ) {
my $invnum = $cust_bill->invnum;
my $changeto = $cust_bill->owed < $unapplied
? $cust_bill->owed
: $unapplied;
print <
#END
print "\n";
print qq!
Invoice #";
print qq!
Amount \$!;
print <
END
print <