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