fully fix bulk customer reports, RT#6778
authorivan <ivan>
Thu, 10 Dec 2009 23:03:18 +0000 (23:03 +0000)
committerivan <ivan>
Thu, 10 Dec 2009 23:03:18 +0000 (23:03 +0000)
FS/FS/cust_main.pm

index 4973f69..80db9dd 100644 (file)
@@ -8374,24 +8374,41 @@ sub search {
   # classnum
   ###
 
-  my @classnum = grep /^(\d*)$/, @{ $params->{'classnum'} };
-  if ( @classnum ) {
-    push @where, '( '. join(' OR ', map {
-                                          $_ ? "cust_main.classnum = $_"
-                                             : "cust_main.classnum IS NULL"
-                                        }
-                                        @classnum
-                           ).
-                 ' )';
+  if ( $params->{'classnum'} ) {
+
+    my @classnum = ref( $params->{'classnum'} )
+                     ? @{ $params->{'classnum'} }
+                     :  ( $params->{'classnum'} );
+
+    @classnum = grep /^(\d*)$/, @classnum;
+
+    if ( @classnum ) {
+      push @where, '( '. join(' OR ', map {
+                                            $_ ? "cust_main.classnum = $_"
+                                               : "cust_main.classnum IS NULL"
+                                          }
+                                          @classnum
+                             ).
+                   ' )';
+    }
+
   }
 
   ###
   # payby
   ###
 
-  my @payby = grep /^([A-Z]{4})$/, @{ $params->{'payby'} };
-  if ( @payby ) {
-    push @where, '( '. join(' OR ', map "cust_main.payby = '$_'", @payby). ' )';
+  if ( $params->{'payby'} ) {
+
+    my @payby = ref( $params->{'payby'} )
+                  ? @{ $params->{'payby'} }
+                  :  ( $params->{'payby'} );
+
+    @payby = grep /^([A-Z]{4})$/, @{ $params->{'payby'} };
+
+    push @where, '( '. join(' OR ', map "cust_main.payby = '$_'", @payby). ' )'
+      if @payby;
+
   }
 
   ###