X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_pkg%2Fvoip_inbound.pm;h=f4e51836fbdde424e795d6ea47ae3f45442fb087;hb=984fff08c579ff72f6eb7f658d9373079eafb16a;hp=a16ef1fc46536a6b513e130fbe23c5a35c42bc58;hpb=440a4fe4f826a59a660d744889b24eb751da675b;p=freeside.git diff --git a/FS/FS/part_pkg/voip_inbound.pm b/FS/FS/part_pkg/voip_inbound.pm index a16ef1fc4..f4e51836f 100644 --- a/FS/FS/part_pkg/voip_inbound.pm +++ b/FS/FS/part_pkg/voip_inbound.pm @@ -10,6 +10,7 @@ use FS::Conf; use FS::Record qw(qsearchs qsearch); use FS::cdr; use FS::rate_detail; +use FS::detail_format; $DEBUG = 0; @@ -208,6 +209,10 @@ sub calc_usage { my $included_min = $self->option('min_included', 1) || 0; my $use_duration = $self->option('use_duration'); my $output_format = $self->option('output_format', 1) || 'default'; + + my $formatter = + FS::detail_format->new($output_format, buffer => $details, inbound => 1); + my $granularity = length($self->option('sec_granularity')) ? $self->option('sec_granularity') : 60; @@ -279,31 +284,41 @@ sub calc_usage { 'granularity' => $granularity, ) ); - push @$details, - { format => 'C', - detail => $call_details[0], - amount => $charge, - classnum => $cdr->calltypenum, #classnum - #phonenum => $self->phonenum, - accountcode => $cdr->accountcode, - startdate => $cdr->startdate, - duration => $seconds, - # regionname?? => '', #regionname, not set for inbound calls - }; - } - - my $error = $cdr->set_status_and_rated_price( 'done', - $charge, - $cust_svc->svcnum, - 'inbound' => 1 ); - die $error if $error; +# push @$details, +# { format => 'C', +# detail => $call_details[0], +# amount => $charge, +# classnum => $cdr->calltypenum, #classnum +# #phonenum => $self->phonenum, +# accountcode => $cdr->accountcode, +# startdate => $cdr->startdate, +# duration => $seconds, +# # regionname?? => '', #regionname, not set for inbound calls +# }; + } + + # eventually use FS::cdr::rate for this + my $error = $cdr->set_status_and_rated_price( + 'done', + $charge, + $cust_svc->svcnum, + 'rated_seconds' => $use_duration ? $cdr->duration : $cdr->billsec, + 'rated_granularity' => $granularity, + 'rated_classnum' => $cdr->calltypenum, + 'inbound' => 1, + ); + die $error if $error; + $formatter->append($cdr); } #$cdr } # $cust_svc - unshift @$details, { format => 'C', - detail => FS::cdr::invoice_header($output_format), - } - if @$details; +# unshift @$details, { format => 'C', +# detail => FS::cdr::invoice_header($output_format), +# } +# if @$details; + + $formatter->finish; + unshift @$details, $formatter->header if @$details; $charges; }