diff options
author | ivan <ivan> | 2009-12-10 23:03:18 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-12-10 23:03:18 +0000 |
commit | 301007875822fa4a694e34eda561bc5525b836b3 (patch) | |
tree | d3befa054def743d23d836410c1949d7a98433b6 /FS | |
parent | 7e01b1bfa5fb152e3aaac0fb382b1d3045f63570 (diff) |
fully fix bulk customer reports, RT#6778
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/cust_main.pm | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm index 4973f690d..80db9dd8f 100644 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@ -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; + } ### |