X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fcust_bill.pm;h=66d98c25755a26ffe97946c265ccb50274ab4834;hp=a61adde459ea841bb074cdbd6d1d784ddb370ea8;hb=4adeee8e1912405d691b7b24f016760fde151adf;hpb=0b86d4cbe544bafe19f1707762667eabe5065714 diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index a61adde45..66d98c257 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -3379,13 +3379,25 @@ sub search_sql_where { push @search, "cust_bill.custnum = $1"; } - #customer classnum + #customer classnum (false laziness w/ cust_main/Search.pm) if ( $param->{'cust_classnum'} ) { - my $classnums = $param->{'cust_classnum'}; - $classnums = [ $classnums ] if !ref($classnums); - $classnums = [ grep /^\d+$/, @$classnums ]; - push @search, 'cust_main.classnum in ('.join(',',@$classnums).')' - if @$classnums; + + my @classnum = ref( $param->{'cust_classnum'} ) + ? @{ $param->{'cust_classnum'} } + : ( $param->{'cust_classnum'} ); + + @classnum = grep /^(\d*)$/, @classnum; + + if ( @classnum ) { + push @search, '( '. join(' OR ', map { + $_ ? "cust_main.classnum = $_" + : "cust_main.classnum IS NULL" + } + @classnum + ). + ' )'; + } + } #_date