X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fdetail_format%2Fsum_duration.pm;h=c41bed3857585cc94b11a9089d8c07e66570aed8;hb=bb7e827141c9ed68f30765c9ca2ddcd1d760ad2d;hp=0b4cedc4acc4841399f17fe2d3c0dff8e9ba060b;hpb=0d16979c948a691c95ef92f4ac7a2921a9e8c998;p=freeside.git diff --git a/FS/FS/detail_format/sum_duration.pm b/FS/FS/detail_format/sum_duration.pm index 0b4cedc4a..c41bed385 100644 --- a/FS/FS/detail_format/sum_duration.pm +++ b/FS/FS/detail_format/sum_duration.pm @@ -2,7 +2,7 @@ package FS::detail_format::sum_duration; 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. @@ -32,7 +33,10 @@ sub append { { 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; } } @@ -42,13 +46,14 @@ sub finish { 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}, @@ -68,6 +73,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