tax engine refactoring for Avalara and Billsoft tax vendors, #25718
[freeside.git] / FS / FS / detail_format / sum_count.pm
index 5597de2..253956f 100644 (file)
@@ -2,7 +2,7 @@ package FS::detail_format::sum_count;
 
 use strict;
 use vars qw( $DEBUG );
-use parent qw(FS::detail_format);
+use base qw(FS::detail_format);
 use FS::Record qw(qsearchs);
 use FS::cust_svc;
 use FS::svc_Common; # for label
@@ -24,6 +24,7 @@ sub header_detail {
 sub append {
   my $self = shift;
   my $svcnums = ($self->{svcnums} ||= {});
+  my $acctids = $self->{acctids} ||= [];
   foreach my $cdr (@_) {
     my $object = $self->{inbound} ? $cdr->cdr_termination(1) : $cdr;
     my $svcnum = $object->svcnum; # yes, $object->svcnum.
@@ -31,7 +32,10 @@ sub append {
     my $subtotal = ($svcnums->{$svcnum} ||=
       { count => 0, duration => 0, amount => 0 });
     $subtotal->{count}++;
-    $subtotal->{amount} += $object->rated_price;
+    $subtotal->{amount} += $object->rated_price
+      if $object->freesidestatus ne 'no-charge';
+
+    push @$acctids, $cdr->acctid;
   }
 }
 
@@ -67,6 +71,7 @@ sub finish {
         startdate   => '', #could use the earliest startdate in the bunch?
         regionname  => '', #no, we're using prefix instead
         detail      => $self->csv->string,
+        acctid      => $self->{acctids},
     });
   } #foreach $svcnum