summaryrefslogtreecommitdiff
path: root/httemplate/search/cust_bill_pkg.cgi
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/search/cust_bill_pkg.cgi')
-rw-r--r--httemplate/search/cust_bill_pkg.cgi23
1 files changed, 15 insertions, 8 deletions
diff --git a/httemplate/search/cust_bill_pkg.cgi b/httemplate/search/cust_bill_pkg.cgi
index 7ed320f72..4c5e90f6a 100644
--- a/httemplate/search/cust_bill_pkg.cgi
+++ b/httemplate/search/cust_bill_pkg.cgi
@@ -132,8 +132,8 @@ Filtering parameters:
- classnum: Filter on package class.
- report_optionnum: Filter on package report class. Can be a single report
- class number, a comma-separated list, the word "multiple", or an empty
- string (for "no report class").
+ class number or a comma-separated list (where 0 is "no report class"), or the
+ word "multiple".
- use_override: Apply "classnum" and "taxclass" filtering based on the
override (bundle) pkgpart, rather than always using the true pkgpart.
@@ -349,15 +349,22 @@ if ( $cgi->param('nottax') ) {
# not specified: all classes
# 0: empty class
# N: classnum
- if ( $cgi->param('classnum') =~ /^(\d+)$/ ) {
- push @where, "COALESCE($part_pkg.classnum, 0) = $1";
+ if ( grep { $_ eq 'classnum' } $cgi->param ) {
+ my @classnums = grep /^\d+$/, $cgi->param('classnum');
+ push @where, "COALESCE($part_pkg.classnum, 0) IN ( ".
+ join(',', @classnums ).
+ ' )'
+ if @classnums;
+ }
+
+ if ( grep { $_ eq 'report_optionnum' } $cgi->param ) {
+ my @nums = grep /^\w+$/, $cgi->param('report_optionnum');
+ my $num = join(',', @nums);
+ push @where, # code reuse FTW
+ FS::Report::Table->with_report_option( $num, $cgi->param('use_override'));
}
if ( $cgi->param('report_optionnum') =~ /^(\w+)$/ ) {
- # code reuse FTW
- my $num = $1;
- push @where,
- FS::Report::Table->with_report_option( $1, $cgi->param('use_override') )
;
}