filter by customer class on all financial reports, #20573
[freeside.git] / FS / FS / cust_bill.pm
index 128aaf7..e7622d7 100644 (file)
@@ -2029,7 +2029,7 @@ header line only, with the fields:
 
 Agent number, agent name, customer number, first name, last name, address
 line 1, address line 2, city, state, zip, invoice date, invoice number,
-amount charged, amount due,
+amount charged, amount due, previous balance, due date.
 
 and then, for each line item, three columns containing the package number,
 description, and amount.
@@ -2115,6 +2115,7 @@ sub print_csv {
   } elsif ( $format eq 'oneline' ) { #name
   
     my ($previous_balance) = $self->previous; 
+    $previous_balance = sprintf('%.2f', $previous_balance);
     my $totaldue = sprintf('%.2f', $self->owed + $previous_balance);
     my @items = map {
       ($_->{pkgnum} || ''),
@@ -2139,6 +2140,8 @@ sub print_csv {
       $self->invnum,
       $self->charged,
       $totaldue,
+      $previous_balance,
+      $self->due_date2str("%x"),
 
       @items,
     );
@@ -2249,12 +2252,11 @@ sub print_csv {
                                    '';
           }
 
-          my $svc_x = $cust_svc->svc_x or 
-            warn "missing svc_x record for svc#".$cust_svc->svcnum."\n";
+          my @h_label = $cust_svc->label(@dates, 'I');
           push @details, sprintf('01%-9s%-20s%-47s',
             $cust_svc->svcnum,
             $svc_class{$svcpart},
-            ($svc_x ? $svc_x->label : ''),
+            $h_label[1],
           );
         } #foreach $cust_svc
       } #if $cust_pkg
@@ -3427,6 +3429,15 @@ sub search_sql_where {
     push @search, "cust_bill.custnum = $1";
   }
 
+  #customer classnum
+  if ( $param->{'cust_classnum'} ) {
+    my $classnums = $param->{'cust_classnum'};
+    $classnums = [ $classnums ] if !ref($classnums);
+    $classnums = [ grep /^\d+$/, @$classnums ];
+    push @search, 'cust_main.classnum in ('.join(',',@$classnums).')'
+      if @$classnums;
+  }
+
   #_date
   if ( $param->{_date} ) {
     my($beginning, $ending) = @{$param->{_date}};