diff options
-rw-r--r-- | FS/FS/cust_main/Billing_Realtime.pm | 6 | ||||
-rw-r--r-- | httemplate/misc/payment.cgi | 33 | ||||
-rw-r--r-- | httemplate/misc/process/payment.cgi | 3 |
3 files changed, 38 insertions, 4 deletions
diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index e9a3db2fd..345568a15 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 a48aa0120..2f76b85f1 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 78038f86b..7da7beff0 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'); } |