summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/edit/cust_main/billing.html4
-rwxr-xr-xhttemplate/search/cust_pay.cgi33
2 files changed, 24 insertions, 13 deletions
diff --git a/httemplate/edit/cust_main/billing.html b/httemplate/edit/cust_main/billing.html
index 77db7b6c6..d3cd77dbb 100644
--- a/httemplate/edit/cust_main/billing.html
+++ b/httemplate/edit/cust_main/billing.html
@@ -149,8 +149,6 @@
% my $disabled = 'DISABLED style="background-color: #dddddd"';
% my $text_disabled = 'style="color: #999999"';
%
-% # this is not going to work unless the mask-generation recognizes
-% # Switch/Solo cards
% if ( $payby =~ /^(CARD|DCRD)$/ && cardtype($paymask) =~ /^(Switch|Solo)$/ ) {
% $disabled = 'style="background-color: #ffffff"';
% $text_disabled = 'style="color: #000000";'
@@ -194,7 +192,7 @@
% 'end_year' => (localtime())[5] + 1900,
% 'selected_date' => (
% ( $payby =~ /^(CARD|DCRD)$/
-% && cardtype($paymask) =~ /^(Switch|Solo)$/ ) #also
+% && cardtype($paymask) =~ /^(Switch|Solo)$/ )
% ? $cust_main->paystart_month. '-'.
% $cust_main->paystart_year
% : ''
diff --git a/httemplate/search/cust_pay.cgi b/httemplate/search/cust_pay.cgi
index 98cc0e799..199c66d81 100755
--- a/httemplate/search/cust_pay.cgi
+++ b/httemplate/search/cust_pay.cgi
@@ -21,9 +21,13 @@
% or die "illegal payby ". $cgi->param('payby');
% push @search, "cust_pay.payby = '$1'";
% if ( $3 ) {
-% if ( $3 eq 'VisaMC' ) {
+%
+% my $cardtype = $3;
+%
+% my $search;
+% if ( $cardtype eq 'VisaMC' ) {
% #avoid posix regexes for portability
-% push @search,
+% $search =
% " ( ( substring(cust_pay.payinfo from 1 for 1) = '4' ".
% " AND substring(cust_pay.payinfo from 1 for 4) != '4936' ".
% " AND substring(cust_pay.payinfo from 1 for 6) ".
@@ -43,19 +47,21 @@
% " OR substring(cust_pay.payinfo from 1 for 2) = '54' ".
% " OR substring(cust_pay.payinfo from 1 for 2) = '54' ".
% " OR substring(cust_pay.payinfo from 1 for 2) = '55' ".
+% " OR substring(cust_pay.payinfo from 1 for 2) = '36' ". #Diner's int'l processed as Visa/MC inside US
% " ) ";
-% } elsif ( $3 eq 'Amex' ) {
-% push @search,
+% } elsif ( $cardtype eq 'Amex' ) {
+% $search =
% " ( substring(cust_pay.payinfo from 1 for 2 ) = '34' ".
% " OR substring(cust_pay.payinfo from 1 for 2 ) = '37' ".
% " ) ";
-% } elsif ( $3 eq 'Discover' ) {
-% push @search,
+% } elsif ( $cardtype eq 'Discover' ) {
+% $search =
% " ( substring(cust_pay.payinfo from 1 for 4 ) = '6011' ".
-% " OR substring(cust_pay.payinfo from 1 for 3 ) = '650' ".
+% " OR substring(cust_pay.payinfo from 1 for 2 ) = '65' ".
+% " OR substring(cust_pay.payinfo from 1 for 3 ) = '622' ". #China Union Pay processed as Discover outside CN
% " ) ";
-% } elsif ( $3 eq 'Maestro' ) {
-% push @search,
+% } elsif ( $cardtype eq 'Maestro' ) {
+% $search =
% " ( substring(cust_pay.payinfo from 1 for 2 ) = '63' ".
% " OR substring(cust_pay.payinfo from 1 for 2 ) = '67' ".
% " OR substring(cust_pay.payinfo from 1 for 6 ) = '564182' ".
@@ -72,8 +78,15 @@
% " SIMILAR TO '49118[1-2]' ".
% " ) ";
% } else {
-% die "unknown card type $3";
+% die "unknown card type $cardtype";
% }
+%
+% my $masksearch = $search;
+% $masksearch =~ s/cust_pay\.payinfo/cust_pay.paymask/gi;
+%
+% push @search,
+% "( $search OR ( cust_pay.paymask IS NOT NULL AND $masksearch ) )";
+%
% }
% }
%