diff options
author | Mark Wells <mark@freeside.biz> | 2014-04-17 10:06:56 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2014-04-17 10:06:56 -0700 |
commit | af167dc766fad944b32ca7dc431b2549943b94dd (patch) | |
tree | 7e1d80ee78159b060819d371abf301e08fdddc30 /FS/FS/cust_main | |
parent | f9bb139d807c80de32ce7d7f98f5b74712f03a99 (diff) |
customer signup report, filter by customer and package class, #28025
Diffstat (limited to 'FS/FS/cust_main')
-rw-r--r-- | FS/FS/cust_main/Search.pm | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm index 76d141035..32806401c 100644 --- a/FS/FS/cust_main/Search.pm +++ b/FS/FS/cust_main/Search.pm @@ -950,6 +950,8 @@ sub search { } # pkg_classnum + # all_pkg_classnums + # any_pkg_status if ( $params->{'pkg_classnum'} ) { my @pkg_classnums = ref( $params->{'pkg_classnum'} ) ? @{ $params->{'pkg_classnum'} } : @@ -966,11 +968,13 @@ sub search { 'part_pkg.classnum IN('. join(',', @pkg_classnums).')'; } foreach (@pkg_where) { - push @where, "EXISTS(". + my $select_pkg = "SELECT 1 FROM cust_pkg JOIN part_pkg USING (pkgpart) WHERE ". - "cust_pkg.custnum = cust_main.custnum AND ". - $_ . ' AND ' . FS::cust_pkg->active_sql . - ')'; + "cust_pkg.custnum = cust_main.custnum AND $_ "; + if ( not $params->{'any_pkg_status'} ) { + $select_pkg .= 'AND '.FS::cust_pkg->active_sql; + } + push @where, "EXISTS($select_pkg)"; } } } |