optimize prepaid balance query, #24846
authorMark Wells <mark@freeside.biz>
Wed, 4 Sep 2013 21:59:30 +0000 (14:59 -0700)
committerMark Wells <mark@freeside.biz>
Wed, 4 Sep 2013 21:59:30 +0000 (14:59 -0700)
FS/FS/ClientAPI/PrepaidPhone.pm

index b05fb4f..2cea3c2 100644 (file)
@@ -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;
 
       }