per-agent lpr command, RT#18549
[freeside.git] / FS / FS / cust_bill.pm
index 4fd9b6e..b3ae290 100644 (file)
@@ -1584,7 +1584,10 @@ sub print {
     $self->batch_invoice(\%opt);
   }
   else {
-    do_print $self->lpr_data(\%opt);
+    do_print(
+      $self->lpr_data(\%opt),
+      'agentnum' => $self->cust_main->agentnum,
+    );
   }
 }
 
@@ -2029,7 +2032,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 +2118,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 +2143,8 @@ sub print_csv {
       $self->invnum,
       $self->charged,
       $totaldue,
+      $previous_balance,
+      $self->due_date2str("%x"),
 
       @items,
     );
@@ -3426,6 +3432,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}};