summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authorlevinse <levinse>2011-06-21 22:41:43 +0000
committerlevinse <levinse>2011-06-21 22:41:43 +0000
commita9579d4fc556a54ad76b863cdd19abba79f3fc5f (patch)
tree6f3e6802bd5691fe438e704a18c0cae6c4c4eff2 /FS/FS
parent57adda68a7d445553c43eec5cdcb34490d68b522 (diff)
invoice DID summary performance enhancement, RT10886
Diffstat (limited to 'FS/FS')
-rw-r--r--FS/FS/cust_bill.pm6
-rw-r--r--FS/FS/svc_phone.pm3
2 files changed, 4 insertions, 5 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index 3a543de..15543a9 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -4134,10 +4134,8 @@ sub _did_summary {
# increment usage minutes
if ( $phone_inserted ) {
- my @cdrs = $phone_inserted->get_cdrs('begin'=>$start,'end'=>$end);
- foreach my $cdr ( @cdrs ) {
- $minutes += $cdr->billsec/60;
- }
+ my @cdrs = $phone_inserted->get_cdrs('begin'=>$start,'end'=>$end,'billsec_sum'=>1);
+ $minutes = $cdrs[0]->billsec_sum if scalar(@cdrs) == 1;
}
else {
warn "WARNING: no matching h_svc_phone insert record for insert time $inserted, svcnum " . $h_cust_svc->svcnum;
diff --git a/FS/FS/svc_phone.pm b/FS/FS/svc_phone.pm
index 3d02ca4..19bef94 100644
--- a/FS/FS/svc_phone.pm
+++ b/FS/FS/svc_phone.pm
@@ -727,7 +727,8 @@ sub get_cdrs {
'table' => 'cdr',
'hashref' => \%hash,
'extra_sql' => $extra_sql,
- 'order_by' => "ORDER BY startdate $for_update",
+ 'order_by' => $options{'billsec_sum'} ? '' : "ORDER BY startdate $for_update",
+ 'select' => $options{'billsec_sum'} ? 'sum(billsec) as billsec_sum' : '*',
} );
@cdrs;