add customer class to advanced invoice report, RT#22851
authorIvan Kohler <ivan@freeside.biz>
Fri, 11 Oct 2013 06:50:58 +0000 (23:50 -0700)
committerIvan Kohler <ivan@freeside.biz>
Fri, 11 Oct 2013 06:50:58 +0000 (23:50 -0700)
FS/FS/cust_bill.pm

index a61adde..66d98c2 100644 (file)
@@ -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