From 4adeee8e1912405d691b7b24f016760fde151adf Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Thu, 10 Oct 2013 23:50:58 -0700 Subject: [PATCH] add customer class to advanced invoice report, RT#22851 --- FS/FS/cust_bill.pm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) 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 -- 2.11.0