summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authorlevinse <levinse>2011-06-21 22:41:44 +0000
committerlevinse <levinse>2011-06-21 22:41:44 +0000
commit02ba6622765acfc92e7bc452f29b37fb52fdd295 (patch)
tree36ead0ca77e5cc011361f68bf58521cb4ae718ba /FS/FS
parent814c41a844d49d066ca9002a0c7a02de499f3dc0 (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 1e475450c..37baadd93 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -4088,10 +4088,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 3d02ca4a3..19bef94fc 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;