[freeside-commits] branch master updated. a3c654c1ae9ea07726aba9899a9b2e1d4dbd12c6

Christopher Burger burgerc at freeside.biz
Wed Aug 8 16:36:14 PDT 2018


The branch, master has been updated
       via  a3c654c1ae9ea07726aba9899a9b2e1d4dbd12c6 (commit)
      from  038b31793f290f65222ae748df05e703c6ae035d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a3c654c1ae9ea07726aba9899a9b2e1d4dbd12c6
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Wed Aug 8 19:35:34 2018 -0400

    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 eb66436ff..70dc28892 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:
   		<OPTION VALUE="select">Select an invoice to pay</OPTION>
 %         foreach my $record (@invoices) {
 %            my $read_date = time2str("%b %o, %Y", $record->_date);
-            <OPTION VALUE="<% $record->charged %>"><% $record->invnum %> (<% $read_date %>) - <% $record->charged %></OPTION>	
+%             $hidden .= '<INPUT TYPE="hidden" ID="inv'.$record->invnum.'" NAME="inv'.$record->invnum.'" VALUE="'.$record->owed.'">';
+            <OPTION VALUE="<% $record->invnum %>"><% $record->invnum %> (<% $read_date %>) - <% $record->owed %></OPTION>
 %         }
 
-	</SELECT>	
+	</SELECT>
+
+  <% $hidden %>
+
     </TD>
   </TR>
 
@@ -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;

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_main/Billing_Batch.pm                   | 3 ++-
 FS/FS/cust_pay_batch.pm                            | 1 +
 httemplate/elements/tr-select-invoice.html         | 9 +++++++--
 httemplate/elements/tr-select-payment_options.html | 5 +++--
 httemplate/misc/process/payment.cgi                | 4 ++++
 5 files changed, 17 insertions(+), 5 deletions(-)




More information about the freeside-commits mailing list