summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-09-04 15:00:05 -0700
committerMark Wells <mark@freeside.biz>2013-09-04 15:00:05 -0700
commit1dc0b3496b1eff80b424a3f4a34d7006eb8844a5 (patch)
tree5feae78d4ed8201fca16b99a2223c89f31675106
parent0f9ba3cb4bccfe3bcd2b085698f88938cd94bdf4 (diff)
optimize prepaid balance query, #24846
-rw-r--r--FS/FS/ClientAPI/PrepaidPhone.pm10
1 files changed, 2 insertions, 8 deletions
diff --git a/FS/FS/ClientAPI/PrepaidPhone.pm b/FS/FS/ClientAPI/PrepaidPhone.pm
index b05fb4fe4..2cea3c231 100644
--- a/FS/FS/ClientAPI/PrepaidPhone.pm
+++ b/FS/FS/ClientAPI/PrepaidPhone.pm
@@ -307,14 +307,8 @@ sub prepaid_phone_balance {
foreach my $cust_svc ( @cust_svc ) {
my $svc_x = $cust_svc->svc_x;
-
- #XXX optimization: a single SQL query to return the total amount
- my $cdr_search = $svc_x->psearch_cdrs(%options);
- $cdr_search->limit(1000);
- $cdr_search->increment(0);
- while ( my $cdr = $cdr_search->fetch ) {
- $balance -= $cdr->rated_price;
- }
+ my $sum_cdr = $svc_x->sum_cdrs(%options);
+ $balance += $sum_cdr->rated_price;
}