projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
customer signup report, filter by customer and package class, #28025
[freeside.git]
/
FS
/
FS
/
cust_main
/
Search.pm
diff --git
a/FS/FS/cust_main/Search.pm
b/FS/FS/cust_main/Search.pm
index
b52b359
..
140e63f
100644
(file)
--- a/
FS/FS/cust_main/Search.pm
+++ b/
FS/FS/cust_main/Search.pm
@@
-950,6
+950,8
@@
sub search {
}
# pkg_classnum
}
# pkg_classnum
+ # all_pkg_classnums
+ # any_pkg_status
if ( $params->{'pkg_classnum'} ) {
my @pkg_classnums = ref( $params->{'pkg_classnum'} ) ?
@{ $params->{'pkg_classnum'} } :
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) {
'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 ".
"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)";
}
}
}
}
}
}