X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_main%2FSearch.pm;h=461633a721f5186ad63bf36a23ec83cd325764d2;hb=707368aa7db1cecdd05b74c8531249a1e1370823;hp=0c00477f6ca0095aec30a364d3d79203ea7a3083;hpb=6c284750de8fe49d7d4cdc6a9a4fb618697780e2;p=freeside.git diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm index 0c00477f6..461633a72 100644 --- a/FS/FS/cust_main/Search.pm +++ b/FS/FS/cust_main/Search.pm @@ -477,11 +477,12 @@ sub smart_search { push @cust_main, qsearch({ 'table' => 'cust_main', + 'addl_from' => ' JOIN cust_payby USING (custnum)', 'hashref' => {}, - 'extra_sql' => " WHERE ( payinfo LIKE '$like_search' - OR paymask = '$mask_search' + 'extra_sql' => " WHERE ( cust_payby.payinfo LIKE '$like_search' + OR cust_payby.paymask = '$mask_search' ) ". - " AND payby IN ('CARD','DCRD') ". + " AND cust_payby.payby IN ('CARD','DCRD') ". " AND $agentnums_sql", #agent virtulization }); @@ -831,6 +832,18 @@ sub search { if $params->{'no_POST'}; ## + # "tax exempt" checkbox + ## + push @where, "cust_main.tax = 'Y'" + if $params->{'tax'}; + + ## + # "not tax exempt" checkbox + ## + push @where, "(cust_main.tax = '' OR cust_main.tax IS NULL )" + if $params->{'no_tax'}; + + ## # dates ## @@ -896,10 +909,10 @@ sub search { : ( $params->{'payby'} ); @payby = grep /^([A-Z]{4})$/, @payby; - - push @where, '( '. join(' OR ', map "cust_main.payby = '$_'", @payby). ' )' + my $in_payby = 'IN(' . join(',', map {"'$_'"} @payby) . ')'; + push @where, "EXISTS( SELECT 1 FROM cust_payby WHERE payby $in_payby ". + "AND cust_payby.custnum = cust_main.custnum)" if @payby; - } ###