[freeside-commits] branch FREESIDE_3_BRANCH updated. 5c98d3c21d07442fcf6d5a21aaef3e1fd5a206ca

Jonathan Prykop jonathan at 420.am
Thu Feb 25 09:59:47 PST 2016


The branch, FREESIDE_3_BRANCH has been updated
       via  5c98d3c21d07442fcf6d5a21aaef3e1fd5a206ca (commit)
       via  fbba36b298b90d72884e8a46b74e9fd7b67b4d34 (commit)
      from  1694050ffbdb5c4e214bc0d13294d3b262d33129 (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 5c98d3c21d07442fcf6d5a21aaef3e1fd5a206ca
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Thu Feb 25 11:27:03 2016 -0600

    RT#30600: Auto Apply for CC payments [no_invnum flag]

diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm
index 345568a..20b21dc 100644
--- a/FS/FS/cust_main/Billing_Realtime.pm
+++ b/FS/FS/cust_main/Billing_Realtime.pm
@@ -129,9 +129,13 @@ specified invoice.  If the customer has exactly one open invoice, that
 invoice number will be assumed.  If you don't specify an I<invnum> you might 
 want to call the B<apply_payments> method or set the I<apply> option.
 
+I<no_invnum> can be set to true to prevent that default invnum from being set.
+
 I<apply> can be set to true to run B<apply_payments_and_credits> on success.
 
-I<no_auto_apply> can be set to true to prevent resulting payment from being automatically applied.
+I<no_auto_apply> can be set to true to set that flag on the resulting payment
+(prevents payment from being applied by B<apply_payments> or B<apply_payments_and_credits>,
+but will still be applied if I<invnum> exists...use with I<no_invnum> for intended effect.)
 
 I<quiet> can be set true to surpress email decline notices.
 
@@ -245,7 +249,7 @@ sub _bop_defaults {
   }
 
   # Default invoice number if the customer has exactly one open invoice.
-  if( ! $options->{'invnum'} ) {
+  unless ( $options->{'invnum'} || $options->{'no_invnum'} ) {
     $options->{'invnum'} = '';
     my @open = $self->open_cust_bill;
     $options->{'invnum'} = $open[0]->invnum if scalar(@open) == 1;
diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi
index 7da7bef..a475786 100644
--- a/httemplate/misc/process/payment.cgi
+++ b/httemplate/misc/process/payment.cgi
@@ -219,6 +219,7 @@ if ( $cgi->param('batch') ) {
     'paynum_ref' => \$paynum,
     'discount_term' => $discount_term,
     'no_auto_apply' => ($cgi->param('apply') eq 'never') ? 'Y' : '',
+    'no_invnum'     => 1,
     map { $_ => scalar($cgi->param($_)) } @{$payby2fields{$payby}}
   );
   errorpage($error) if $error;

commit fbba36b298b90d72884e8a46b74e9fd7b67b4d34
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Thu Feb 25 09:14:26 2016 -0600

    RT#30600: Auto Apply for CC payments [v3 merge]

diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm
index e9a3db2..345568a 100644
--- a/FS/FS/cust_main/Billing_Realtime.pm
+++ b/FS/FS/cust_main/Billing_Realtime.pm
@@ -129,7 +129,9 @@ specified invoice.  If the customer has exactly one open invoice, that
 invoice number will be assumed.  If you don't specify an I<invnum> you might 
 want to call the B<apply_payments> method or set the I<apply> option.
 
-I<apply> can be set to true to apply a resulting payment.
+I<apply> can be set to true to run B<apply_payments_and_credits> on success.
+
+I<no_auto_apply> can be set to true to prevent resulting payment from being automatically applied.
 
 I<quiet> can be set true to surpress email decline notices.
 
@@ -870,7 +872,7 @@ sub _realtime_bop_result {
        'processor'      => $payment_gateway->gateway_module,
        'auth'           => $transaction->authorization,
        'order_number'   => $order_number || '',
-
+       'no_auto_apply'  => $options{'no_auto_apply'} ? 'Y' : '',
     } );
     #doesn't hurt to know, even though the dup check is in cust_pay_pending now
     $cust_pay->payunique( $options{payunique} )
diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi
index a48aa01..2f76b85 100644
--- a/httemplate/misc/payment.cgi
+++ b/httemplate/misc/payment.cgi
@@ -204,11 +204,13 @@
   </TD>
 </TR>
 
+% my $disallow_no_auto_apply = 0;
 % if ( $conf->exists("batch-enable")
 %      || grep $payby eq $_, $conf->config('batch-enable_payby')
 %    ) {
 %
 %     if ( grep $payby eq $_, $conf->config('realtime-disable_payby') ) {
+%       $disallow_no_auto_apply = 1;
 
           <INPUT TYPE="hidden" NAME="batch" VALUE="1">
 
@@ -216,7 +218,7 @@
 
           <TR>
             <TD COLSPAN=2>
-              <INPUT TYPE="checkbox" NAME="batch" VALUE="1">
+              <INPUT TYPE="checkbox" NAME="batch" VALUE="1" ID="batch_checkbox" ONCHANGE="change_batch_checkbox()">
               <% mt('Add to current batch') |h %> 
             </TD>
           </TR>
@@ -231,6 +233,35 @@
   </TD>
 </TR>
 
+% unless ($disallow_no_auto_apply) {
+%   # false laziness with edit/cust_pay.cgi
+
+<TR ID="apply_box_row">
+  <TD COLSPAN=2>
+    <% mt('Auto-apply to invoices') |h %>
+    <SELECT NAME="apply" ID="apply_box">
+      <OPTION VALUE="yes" SELECTED><% mt('yes') |h %></OPTION> 
+      <OPTION VALUE=""><% mt('not now') |h %></OPTION>
+      <OPTION VALUE="never"><% mt('never') |h %></OPTION>
+    </SELECT>
+  </TD>
+</TR>
+
+% # this can go away if no_auto_apply handling gets added to batch payment processing
+<SCRIPT>
+function change_batch_checkbox () {
+  if (document.getElementById('batch_checkbox').checked) {
+    document.getElementById('apply_box').disabled = true;
+    document.getElementById('apply_box_row').style.display = 'none';
+  } else {
+    document.getElementById('apply_box').disabled = false;
+    document.getElementById('apply_box_row').style.display = '';
+  }
+}
+</SCRIPT>
+
+% }
+
 </TABLE>
 
 <BR>
diff --git a/httemplate/misc/process/payment.cgi b/httemplate/misc/process/payment.cgi
index 78038f8..7da7bef 100644
--- a/httemplate/misc/process/payment.cgi
+++ b/httemplate/misc/process/payment.cgi
@@ -218,6 +218,7 @@ if ( $cgi->param('batch') ) {
     'paycvv'     => $paycvv,
     'paynum_ref' => \$paynum,
     'discount_term' => $discount_term,
+    'no_auto_apply' => ($cgi->param('apply') eq 'never') ? 'Y' : '',
     map { $_ => scalar($cgi->param($_)) } @{$payby2fields{$payby}}
   );
   errorpage($error) if $error;
@@ -238,7 +239,7 @@ if ( $cgi->param('batch') ) {
 
   }
 
-  $cust_main->apply_payments;
+  $cust_main->apply_payments if ($cgi->param('apply') eq 'yes');
 
 }
 

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

Summary of changes:
 FS/FS/cust_main/Billing_Realtime.pm |   12 +++++++++---
 httemplate/misc/payment.cgi         |   33 ++++++++++++++++++++++++++++++++-
 httemplate/misc/process/payment.cgi |    4 +++-
 3 files changed, 44 insertions(+), 5 deletions(-)




More information about the freeside-commits mailing list