diff options
author | Ivan Kohler <ivan@freeside.biz> | 2014-06-30 12:44:26 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2014-06-30 12:44:26 -0700 |
commit | b93d0216d5bdaca2b5feb5a54f30a0aeab54f7fe (patch) | |
tree | cc2513621050cac28f634c99c6f92022a13815b8 /httemplate/search/elements | |
parent | ec583ed0ce9b246b71d68ebbbc7ab3f0036fce22 (diff) |
fix payment report multiple selection vs. mysql, RT#29830
Diffstat (limited to 'httemplate/search/elements')
-rwxr-xr-x | httemplate/search/elements/cust_pay_or_refund.html | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/httemplate/search/elements/cust_pay_or_refund.html b/httemplate/search/elements/cust_pay_or_refund.html index 7afab4e71..8aece0cc2 100755 --- a/httemplate/search/elements/cust_pay_or_refund.html +++ b/httemplate/search/elements/cust_pay_or_refund.html @@ -108,7 +108,7 @@ my $cust_link = sub { # only valid for $table == 'cust_pay' atm my $tax_names = ''; if ( $cgi->param('tax_names') ) { - if ( dbh->{Driver}->{Name} eq 'Pg' ) { + if ( dbh->{Driver}->{Name} =~ /^Pg/i ) { $tax_names = " array_to_string( @@ -280,6 +280,11 @@ if ( $cgi->param('magic') ) { my $cardtype = $3; + my $similar_to = dbh->{Driver}->{Name} =~ /^mysql/i + ? 'REGEXP' #doesn't behave exactly the same, but + #should work for our patterns + : 'SIMILAR TO'; + my $search; if ( $cardtype eq 'VisaMC' ) { @@ -288,15 +293,15 @@ if ( $cgi->param('magic') ) { " ( ( substring($table.payinfo from 1 for 1) = '4' ". " AND substring($table.payinfo from 1 for 4) != '4936' ". " AND substring($table.payinfo from 1 for 6) ". - " NOT SIMILAR TO '49030[2-9]' ". + " NOT $similar_to '49030[2-9]' ". " AND substring($table.payinfo from 1 for 6) ". - " NOT SIMILAR TO '49033[5-9]' ". + " NOT $similar_to '49033[5-9]' ". " AND substring($table.payinfo from 1 for 6) ". - " NOT SIMILAR TO '49110[1-2]' ". + " NOT $similar_to '49110[1-2]' ". " AND substring($table.payinfo from 1 for 6) ". - " NOT SIMILAR TO '49117[4-9]' ". + " NOT $similar_to '49117[4-9]' ". " AND substring($table.payinfo from 1 for 6) ". - " NOT SIMILAR TO '49118[1-2]' ". + " NOT $similar_to '49118[1-2]' ". " )". " OR substring($table.payinfo from 1 for 2) = '51' ". " OR substring($table.payinfo from 1 for 2) = '52' ". @@ -360,15 +365,15 @@ if ( $cgi->param('magic') ) { " OR substring($table.payinfo from 1 for 6 ) = '564182' ". " OR substring($table.payinfo from 1 for 4 ) = '4936' ". " OR substring($table.payinfo from 1 for 6 ) ". - " SIMILAR TO '49030[2-9]' ". + " $similar_to '49030[2-9]' ". " OR substring($table.payinfo from 1 for 6 ) ". - " SIMILAR TO '49033[5-9]' ". + " $similar_to '49033[5-9]' ". " OR substring($table.payinfo from 1 for 6 ) ". - " SIMILAR TO '49110[1-2]' ". + " $similar_to '49110[1-2]' ". " OR substring($table.payinfo from 1 for 6 ) ". - " SIMILAR TO '49117[4-9]' ". + " $similar_to '49117[4-9]' ". " OR substring($table.payinfo from 1 for 6 ) ". - " SIMILAR TO '49118[1-2]' ". + " $similar_to '49118[1-2]' ". " ) "; } elsif ( $cardtype eq 'Tokenized' ) { @@ -488,7 +493,7 @@ if ( $cgi->param('magic') ) { my $group_by = ''; if ( $cgi->param('tax_names') ) { - if ( dbh->{Driver}->{Name} eq 'Pg' ) { + if ( dbh->{Driver}->{Name} =~ /^Pg/i ) { 0;#twiddle thumbs |