From 60784dabbd2b220382eec7bb460640de5a25fbab Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Wed, 30 Apr 2014 17:12:25 -0700 Subject: [PATCH] in selfservice display of phone usage, avoid double-counting calls to tollfree numbers, #27186 --- FS/FS/ClientAPI/MyAccount.pm | 8 +++++++- FS/FS/svc_phone.pm | 12 +++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index c75a56b17..f21ff54c0 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1820,6 +1820,7 @@ sub list_svcs { 'inbound' => ( $_ eq 'inbound' ? 1 : 0 ), 'begin' => ($cust_pkg->last_bill || 0), 'nonzero' => 1, + 'disable_charged_party' => 1, ); $hash{$_} = $sum_cdr->hashref; } @@ -2103,7 +2104,12 @@ sub _list_cdr_usage { # we have to return the results all at once... my($svc_phone, $begin, $end, %opt) = @_; map [ $_->downstream_csv(%opt, 'keeparray' => 1) ], - $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, %opt ); + $svc_phone->get_cdrs( + 'begin'=>$begin, + 'end'=>$end, + 'disable_charged_party' => 1, + %opt + ); } sub list_cdr_usage { diff --git a/FS/FS/svc_phone.pm b/FS/FS/svc_phone.pm index 73bb77278..9a7bc4757 100644 --- a/FS/FS/svc_phone.pm +++ b/FS/FS/svc_phone.pm @@ -725,8 +725,8 @@ Accepts the following options: =item status => "" (or "processing-tiered", "done"): Return only CDRs with that processing status. -=item inbound => 1: Return CDRs for inbound calls. With "status", will filter -on inbound processing status. +=item inbound => 1: Return CDRs for inbound calls (that is, those that match +on 'dst'). With "status", will filter on inbound processing status. =item default_prefix => "XXX": Also accept the phone number of the service prepended with the chosen prefix. @@ -737,7 +737,9 @@ with the chosen prefix. =item calltypenum: Only return CDRs with this call type. -=item disable_src => 1: Only match on "charged_party", not "src". +=item disable_src => 1: Only match on 'charged_party', not 'src'. + +=item disable_charged_party => 1: Only match on 'src', not 'charged_party'. =item nonzero: Only return CDRs where duration > 0. @@ -777,8 +779,8 @@ sub psearch_cdrs { } else { - @fields = ( 'charged_party' ); - push @fields, 'src' if !$options{'disable_src'}; + push @fields, 'charged_party' unless $options{'disable_charged_party'}; + push @fields, 'src' unless $options{'disable_src'}; $hash{'freesidestatus'} = $options{'status'} if exists($options{'status'}); } -- 2.11.0