diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2016-05-09 17:50:27 -0500 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2016-05-09 18:02:48 -0500 |
commit | 8d56875d788f0bc4e1dd3338e7cc7fd26d63c52f (patch) | |
tree | 13ae2cf26db21e207bc39fa99ffda62917d9e5ae /httemplate/search/cust_main.cgi | |
parent | 0e1145ddaed12275fca87cd352ee5ce85aa62344 (diff) |
RT#41124: Backend Unti Search
Diffstat (limited to 'httemplate/search/cust_main.cgi')
-rwxr-xr-x | httemplate/search/cust_main.cgi | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/httemplate/search/cust_main.cgi b/httemplate/search/cust_main.cgi index 4e624eb51..aa8c079e1 100755 --- a/httemplate/search/cust_main.cgi +++ b/httemplate/search/cust_main.cgi @@ -704,12 +704,20 @@ sub address2search { or errorpage(emt("Illegal address2")); my $address2 = $1; - push @cust_main, qsearch( 'cust_main', - { 'address2' => { 'op' => 'ILIKE', - 'value' => $address2 } } ); - push @cust_main, qsearch( 'cust_main', - { 'ship_address2' => { 'op' => 'ILIKE', - 'value' => $address2 } } ); + # matching at the start or end of an address, but not in the middle + my @where; + foreach my $toggle (0,1) { + push @where, 'LOWER(cust_location.address2) LIKE LOWER(' + . dbh->quote($toggle ? $address2 . '%' : '%' . $address2) + . ')'; + } + + push @cust_main, qsearch({ + 'debug' => 1, + 'table' => 'cust_main', + 'addl_from' => 'JOIN cust_location ON (cust_location.locationnum IN (cust_main.bill_locationnum, cust_main.ship_locationnum))', + 'extra_sql' => 'WHERE ' . join(' OR ',@where), + }); \@cust_main; } |