'classname',
sub { # report_option
my $cust_bill_pkg = shift;
- my $pkgpart = $cust_bill_pkg->pkgpart_override
- || $cust_bill_pkg->cust_pkg->pkgpart;
+ my $pkgpart = $cust_bill_pkg->pkgpart_override;
+ unless ( $pkgpart ) {
+ my $cust_pkg = $cust_bill_pkg->cust_pkg or return '';
+ $pkgpart = $cust_pkg->pkgpart;
+ }
if ( !exists($report_classes{$pkgpart}) ) {
my $part_pkg = FS::part_pkg->by_key($pkgpart);
my %opts = $part_pkg->options;
push @where, 'cust_main.refnum IN ('.join(',', @refnum).')';
}
+# cust_classnum (false laziness w/ elements/cust_main_dayranges.html, elements/cust_pay_or_refund.html, prepaid_income.html, cust_bill_pay.html, cust_bill_pkg.html, unearned_detail.html, cust_credit.html, cust_credit_refund.html, cust_main::Search::search_sql)
+if ( grep { $_ eq 'cust_classnum' } $cgi->param ) {
+ my @classnums = grep /^\d*$/, $cgi->param('cust_classnum');
+ push @where, 'COALESCE( cust_main.classnum, 0) IN ( '.
+ join(',', map { $_ || '0' } @classnums ).
+ ' )'
+ if @classnums;
+}
+
if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {
push @where, "cust_main.agentnum = $1";
}