diff options
author | Mark Wells <mark@freeside.biz> | 2013-09-04 15:00:05 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2013-09-04 15:00:05 -0700 |
commit | 1dc0b3496b1eff80b424a3f4a34d7006eb8844a5 (patch) | |
tree | 5feae78d4ed8201fca16b99a2223c89f31675106 | |
parent | 0f9ba3cb4bccfe3bcd2b085698f88938cd94bdf4 (diff) |
optimize prepaid balance query, #24846
-rw-r--r-- | FS/FS/ClientAPI/PrepaidPhone.pm | 10 |
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; } |