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
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.
{ count => 0, duration => 0, amount => 0 });
$subtotal->{count}++;
$subtotal->{duration} += $object->rated_seconds;
- $subtotal->{amount} += $object->rated_price;
+ $subtotal->{amount} += $object->rated_price
+ if $object->freesidestatus ne 'no-charge';
+
+ push @$acctids, $cdr->acctid;
}
}
my $buffer = $self->{buffer};
foreach my $svcnum (keys %$svcnums) {
+ my $subtotal = $svcnums->{$svcnum};
+ next if $subtotal->{amount} < 0.01;
+
my $cust_svc = qsearchs('cust_svc', { svcnum => $svcnum })
or die "svcnum #$svcnum not found";
my $phonenum = $cust_svc->svc_x->label;
warn "processing $phonenum\n" if $DEBUG;
- my $subtotal = $svcnums->{$svcnum};
-
$self->csv->combine(
$phonenum,
$subtotal->{count},
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