summaryrefslogtreecommitdiff
path: root/FS/FS/cust_bill.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-10-10 23:50:58 -0700
committerIvan Kohler <ivan@freeside.biz>2013-10-10 23:50:58 -0700
commit4adeee8e1912405d691b7b24f016760fde151adf (patch)
treeff902b6ff081583d7c25a67b01d8f8ccf1ef98ac /FS/FS/cust_bill.pm
parent0b86d4cbe544bafe19f1707762667eabe5065714 (diff)
add customer class to advanced invoice report, RT#22851
Diffstat (limited to 'FS/FS/cust_bill.pm')
-rw-r--r--FS/FS/cust_bill.pm24
1 files 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