From: Christopher Burger Date: Wed, 8 Aug 2018 23:35:34 +0000 (-0400) Subject: RT# 34134 - updated select invoice to actually pay the invoice being selected not... X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=bcbc2580692528ee67b85f3d33f267a59ee530c8 RT# 34134 - updated select invoice to actually pay the invoice being selected not the oldest one. --- diff --git a/FS/FS/cust_main/Billing_Batch.pm b/FS/FS/cust_main/Billing_Batch.pm index 35e2714b5..077478189 100644 --- a/FS/FS/cust_main/Billing_Batch.pm +++ b/FS/FS/cust_main/Billing_Batch.pm @@ -55,7 +55,8 @@ sub batch_card { return; } - my $invnum = delete $options{invnum}; + #my $invnum = delete $options{invnum}; + my $invnum = $options{invnum}; #pay fields should all come from either cust_payby or options, not both # in theory, could just pass payby, and use it to select cust_payby, diff --git a/FS/FS/cust_pay_batch.pm b/FS/FS/cust_pay_batch.pm index d29c6d055..614c11753 100644 --- a/FS/FS/cust_pay_batch.pm +++ b/FS/FS/cust_pay_batch.pm @@ -302,6 +302,7 @@ sub approve { '_date' => $new->_date, 'usernum' => $new->usernum, 'batchnum' => $new->batchnum, + 'invnum' => $old->invnum, 'gatewaynum' => $opt{'gatewaynum'}, 'processor' => $opt{'processor'}, 'auth' => $opt{'auth'}, diff --git a/httemplate/elements/tr-select-invoice.html b/httemplate/elements/tr-select-invoice.html index 434042c9b..d35813fc5 100644 --- a/httemplate/elements/tr-select-invoice.html +++ b/httemplate/elements/tr-select-invoice.html @@ -26,10 +26,14 @@ Example: % foreach my $record (@invoices) { % my $read_date = time2str("%b %o, %Y", $record->_date); - +% $hidden .= ''; + % } - + + + <% $hidden %> + @@ -37,6 +41,7 @@ Example: my %opt = @_; my $status = $opt{'status'} ? $opt{'status'} : 'all'; +my $hidden; my @invoices; if ($status eq "all") { @invoices = $opt{'cust_main'}->cust_bill; } diff --git a/httemplate/elements/tr-select-payment_options.html b/httemplate/elements/tr-select-payment_options.html index 35e6def94..f86f3edfd 100644 --- a/httemplate/elements/tr-select-payment_options.html +++ b/httemplate/elements/tr-select-payment_options.html @@ -131,11 +131,12 @@ Example: function <% $opt{prefix} %>invoice_select_changed(what) { var surcharge; + var invdue = document.getElementById("<% $opt{prefix} %>inv" + what.value); if (document.getElementById('surcharge_percentage') || document.getElementById('surcharge_flatfee')) { - surcharge = (+what.value * +document.getElementById('surcharge_percentage').value) + +document.getElementById('surcharge_flatfee').value; + surcharge = (+invdue.value * +document.getElementById('surcharge_percentage').value) + +document.getElementById('surcharge_flatfee').value; } else { surcharge = 0; } - var amount = +what.value + +surcharge; + var amount = +invdue.value + +surcharge; if ( what.value == 'select' ) { $('#payment_amount_row').hide(); diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi index 5620b5b4b..939fc38c2 100644 --- a/httemplate/misc/process/payment.cgi +++ b/httemplate/misc/process/payment.cgi @@ -39,6 +39,8 @@ my $cust_main = qsearchs({ 'extra_sql' => ' AND '. $curuser->agentnums_sql, }) or die "unknown custnum $custnum"; +my $invoice = ($cgi->param('invoice') =~ /^(\d+)$/) ? $cgi->param('invoice') : ''; + $cgi->param('amount') =~ /^\s*(\d*(\.\d\d)?)\s*$/ or errorpage("illegal amount ". $cgi->param('amount')); my $amount = $1; @@ -224,6 +226,7 @@ if ( $cgi->param('batch') ) { 'payinfo' => $payinfo, 'paydate' => $paydate, 'payname' => $payname, + 'invnum' => $invoice, map { $_ => scalar($cgi->param($_)) } @{$payby2fields{$payby}} ); @@ -246,6 +249,7 @@ if ( $cgi->param('batch') ) { 'discount_term' => $discount_term, 'no_auto_apply' => ($cgi->param('apply') eq 'never') ? 'Y' : '', 'no_invnum' => 1, + 'invnum' => $invoice, map { $_ => scalar($cgi->param($_)) } @{$payby2fields{$payby}} ); errorpage($error) if $error;