filter by customer class on all financial reports, #20573
[freeside.git] / httemplate / search / customer_accounting_summary.html
index 0e9e24f..12c8962 100644 (file)
@@ -142,8 +142,7 @@ $title .=  $sel_part_referral->referral.' '
 
 $title .= 'Customer Accounting Summary Report';
 
-my @custs = ();
-@custs = qsearch('cust_main', {} );
+my @cust_classnums = grep /^\d+$/, $cgi->param('cust_classnum');
 
 my @items  = ('netsales', 'cashflow');
 my @params = ( [], [] );
@@ -167,6 +166,18 @@ my @custnames = ();
 my $status = $cgi->param('status');
 die "invalid status" unless $status =~ /^\w+|$/;
 
+my %search_hash;
+foreach (qw(agentnum refnum status)) {
+  if ( defined $cgi->param($_) ) {
+    $search_hash{$_} = $cgi->param($_);
+  }
+}
+$search_hash{'classnum'} = [ $cgi->param('cust_classnum') ] 
+  if $cgi->param('cust_classnum');
+
+my $query = FS::cust_main::Search->search(\%search_hash);
+my @custs = qsearch($query);
+
 foreach my $cust_main ( @custs ) {
   # XXX should do this in the qsearch
   next unless ($status eq '' || $status eq $cust_main->status);