diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2013-12-09 14:43:43 -0800 |
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2013-12-09 14:43:43 -0800 |
| commit | 8baa8e46e67f00f297d7e10dad02c131d286f40e (patch) | |
| tree | 6deb093d1f803a0b0491f15c68ed09285e673b4d /FS | |
| parent | a3bc8ae55eb80d4517c64eaeb4b08df3ddf867f6 (diff) | |
| parent | 701888cb344e68274df2f95494a5c48b0773d908 (diff) | |
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/cust_main/Search.pm | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/FS/FS/cust_main/Search.pm b/FS/FS/cust_main/Search.pm index b1438619b..b52b3596a 100644 --- a/FS/FS/cust_main/Search.pm +++ b/FS/FS/cust_main/Search.pm @@ -949,6 +949,31 @@ sub search { } } + # pkg_classnum + if ( $params->{'pkg_classnum'} ) { + my @pkg_classnums = ref( $params->{'pkg_classnum'} ) ? + @{ $params->{'pkg_classnum'} } : + $params->{'pkg_classnum'}; + @pkg_classnums = grep /^(\d+)$/, @pkg_classnums; + + if ( @pkg_classnums ) { + + my @pkg_where; + if ( $params->{'all_pkg_classnums'} ) { + push @pkg_where, "part_pkg.classnum = $_" foreach @pkg_classnums; + } else { + push @pkg_where, + 'part_pkg.classnum IN('. join(',', @pkg_classnums).')'; + } + foreach (@pkg_where) { + push @where, "EXISTS(". + "SELECT 1 FROM cust_pkg JOIN part_pkg USING (pkgpart) WHERE ". + "cust_pkg.custnum = cust_main.custnum AND ". + $_ . ' AND ' . FS::cust_pkg->active_sql . + ')'; + } + } + } ## # setup queries, subs, etc. for the search |
