From: Ivan Kohler Date: Fri, 11 Oct 2013 06:50:59 +0000 (-0700) Subject: add customer class to advanced invoice report, RT#22851 X-Git-Url: http://git.freeside.biz/gitweb/?a=commitdiff_plain;h=c92138414abde6af459af5ae28b1f566da4d0360;p=freeside.git add customer class to advanced invoice report, RT#22851 --- 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