Query & loop optimizations.

This commit is contained in:
James Cole
2015-04-11 12:36:17 +02:00
parent f6999f355b
commit 3e01daa172
4 changed files with 17 additions and 44 deletions

View File

@@ -73,10 +73,8 @@ class ReportHelper implements ReportHelperInterface
// find transactions to shared asset accounts, which are without a budget by default:
// which is only relevant when shared asset accounts are hidden.
if ($showSharedReports === false) {
$transfers = $query->sharedExpenses($start, $end);
foreach ($transfers as $transfer) {
$budgets[0]['spent'] += floatval($transfer->amount) * -1;
}
$transfers = $query->sharedExpenses($start, $end)->sum('queryAmount');
$budgets[0]['spent'] += floatval($transfers) * -1;
}
return $budgets;

View File

@@ -111,17 +111,11 @@ class ReportQuery implements ReportQueryInterface
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
* @return float
*/
public function balancedTransactionsSum(Account $account, Carbon $start, Carbon $end)
{
$set = $this->balancedTransactionsList($account, $start, $end);
$sum = 0;
foreach ($set as $entry) {
$sum += floatval($entry->amount);
}
return $sum;
return floatval($this->balancedTransactionsList($account, $start, $end)->sum('queryAmount'));
}
/**

View File

@@ -43,7 +43,7 @@ interface ReportQueryInterface
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
* @return float
*/
public function balancedTransactionsSum(Account $account, Carbon $start, Carbon $end);