summaryrefslogtreecommitdiff
path: root/httemplate/search/cust_pay.cgi
diff options
context:
space:
mode:
authorivan <ivan>2006-12-19 10:02:06 +0000
committerivan <ivan>2006-12-19 10:02:06 +0000
commita0ddcb6b2ac38076c48e8f0b69e0758d5283303a (patch)
treeb25903c85e28afc60b1d8b31ba6d06d1067ae6f4 /httemplate/search/cust_pay.cgi
parent25c113d3edad9809e3834a298f79987fa65e6d7c (diff)
clean up payinfo_Mixin to use payby.pm for payby info and have card masking full 6-digit BIN prefix for card identification. have cust_pay_batch use payinfo_Mixin. require B:CC 0.30 for mask-aware cardtype(). fix payment reports to use mask too if available, so credit card type selection still works with encryption.
Diffstat (limited to 'httemplate/search/cust_pay.cgi')
-rwxr-xr-xhttemplate/search/cust_pay.cgi33
1 files changed, 23 insertions, 10 deletions
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 ) )";
+%
% }
% }
%