From 5d089cbe4980f7c9c25b83e164099b22bc59eead Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 29 Jan 2016 18:26:43 -0800 Subject: Use any card on file when making a payment, RT#23741 --- httemplate/misc/payment.cgi | 100 +++++++++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 29 deletions(-) (limited to 'httemplate/misc/payment.cgi') diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi index 7afdfd159..02648a821 100644 --- a/httemplate/misc/payment.cgi +++ b/httemplate/misc/payment.cgi @@ -33,23 +33,57 @@ &> % } + + +% #can't quite handle CARD/CHEK on the same page yet, but very close +% #does it make sense from a UI/usability perspective? +% +% my @cust_payby = (); +% if ( $payby eq 'CARD' ) { +% @cust_payby = $cust_main->cust_payby('CARD','DCRD'); +% } elsif ( $payby eq 'CHEK' ) { +% @cust_payby = $cust_main->cust_payby('CHEK','DCHK'); +% } else { +% die "unknown payby $payby"; +% } +% +% my $custpaybynum = length(scalar($cgi->param('custpaybynum'))) +% ? scalar($cgi->param('custpaybynum')) +% : scalar(@cust_payby) && $cust_payby[0]->custpaybynum; + +<& /elements/tr-select-cust_payby.html, + 'cust_payby' => \@cust_payby, + 'curr_value' => $custpaybynum, + 'onchange' => 'cust_payby_changed(this)', +&> + + +
+
+> + + % my $auto = 0; % if ( $payby eq 'CARD' ) { % % my( $payinfo, $paycvv, $month, $year ) = ( '', '', '', '' ); % my $payname = $cust_main->first. ' '. $cust_main->getfield('last'); % my $location = $cust_main->bill_location; -% -% #auto-fill with the highest weighted match -% my ($cust_payby) = $cust_main->cust_payby('CARD','DCRD'); -% if ($cust_payby) { -% $payinfo = $cust_payby->paymask; -% $paycvv = $cust_payby->paycvv; -% ( $month, $year ) = $cust_payby->paydate_monthyear; -% $payname = $cust_payby->payname if $cust_payby->payname; -% $location = $cust_payby->cust_location || $location; -% $auto = 1 if $cust_payby->payby eq 'CARD'; -% } @@ -104,22 +138,6 @@ % my( $account, $aba, $branch, $payname, $ss, $paytype, $paystate, % $stateid, $stateid_state ) % = ( '', '', '', '', '', '', '', '', '' ); -% my ($cust_payby) = $cust_main->cust_payby('CHEK','DCHK'); -% if ($cust_payby) { -% $cust_payby->paymask =~ /^([\dx]+)\@([\d\.x]*)$/i -% or die "unparsable paymask ". $cust_payby->paymask; -% ($account, $aba) = ($1, $2); -% ($branch,$aba) = split('\.',$aba) -% if $conf->config('echeck-country') eq 'CA'; -% $payname = $cust_payby->payname; -% $paytype = $cust_payby->getfield('paytype'); -% $paystate = $cust_payby->getfield('paystate'); -% $auto = 1 if $cust_payby->payby eq 'CHEK'; -% # these values aren't in cust_payby, but maybe should be... -% $ss = $cust_main->ss; -% $stateid = $cust_main->getfield('stateid'); -% $stateid_state = $cust_main->getfield('stateid_state'); -% } % % #false laziness w/{edit,view}/cust_main/billing.html % my $routing_label = $conf->config('echeck-country') eq 'US' @@ -210,7 +228,7 @@ - @@ -237,19 +255,43 @@ % } -
<% mt('Card number') |h %>
+ <% mt('Remember this information') |h %>
+ NAME="auto" VALUE="1" onClick="if (this.checked) { document.OneTrueForm.save.checked=true; }"> <% mt("Charge future payments to this [_1] automatically",$type{$payby}) |h %> +% if ( @cust_payby ) { + <% mt('as') |h %> + +% } else { + +% }
+

<& /elements/footer.html &> +<%once> + +my %weight = ( + 1 => 'Primary', + 2 => 'Secondary', + 3 => 'Tertiary', + 4 => 'Fourth', + 5 => 'Fifth', + 6 => 'Sixth', + 7 => 'Seventh', +); + + <%init> die "access denied" -- cgit v1.2.1