Optimised summary chart.

This commit is contained in:
James Cole
2015-12-31 08:36:01 +01:00
parent 25747fbcf2
commit f98921da46

View File

@@ -82,7 +82,7 @@ class ReportController extends Controller
// total income and total expenses: // total income and total expenses:
$date = $start->format('Y-m'); $date = $start->format('Y-m');
$incomeSum = isset($earnedArray[$date]) ? $earnedArray[$date] : 0; $incomeSum = isset($earnedArray[$date]) ? $earnedArray[$date] : 0;
$expenseSum = isset($spentArray[$date]) ? ($spentArray[$date]*-1) : 0; $expenseSum = isset($spentArray[$date]) ? ($spentArray[$date] * -1) : 0;
$entries->push([clone $start, $incomeSum, $expenseSum]); $entries->push([clone $start, $incomeSum, $expenseSum]);
$start->addMonth(); $start->addMonth();
@@ -119,7 +119,10 @@ class ReportController extends Controller
if ($cache->has()) { if ($cache->has()) {
return Response::json($cache->get()); // @codeCoverageIgnore return Response::json($cache->get()); // @codeCoverageIgnore
} }
// spent per month, and earned per month. For a specific set of accounts
// grouped by month
$spentArray = $query->spentPerMonth($accounts, $start, $end);
$earnedArray = $query->earnedPerMonth($accounts, $start, $end);
$income = '0'; $income = '0';
$expense = '0'; $expense = '0';
$count = 0; $count = 0;
@@ -129,14 +132,9 @@ class ReportController extends Controller
if ($start->diffInMonths($end) > 12) { if ($start->diffInMonths($end) > 12) {
// per year // per year
while ($start < $end) { while ($start < $end) {
$startOfYear = clone $start;
$startOfYear->startOfYear();
$endOfYear = clone $startOfYear;
$endOfYear->endOfYear();
// total income and total expenses: $currentIncome = $this->pluckFromArray($start->year, $earnedArray);
$currentIncome = $query->incomeInPeriod($startOfYear, $endOfYear, $accounts)->sum('amount_positive'); $currentExpense = $this->pluckFromArray($start->year, $spentArray) * -1;
$currentExpense = $query->expenseInPeriod($startOfYear, $endOfYear, $accounts)->sum('amount_positive');
$income = bcadd($income, $currentIncome); $income = bcadd($income, $currentIncome);
$expense = bcadd($expense, $currentExpense); $expense = bcadd($expense, $currentExpense);
@@ -149,11 +147,9 @@ class ReportController extends Controller
} else { } else {
// per month! // per month!
while ($start < $end) { while ($start < $end) {
$month = clone $start; $date = $start->format('Y-m');
$month->endOfMonth(); $currentIncome = isset($earnedArray[$date]) ? $earnedArray[$date] : 0;
// total income and total expenses: $currentExpense = isset($spentArray[$date]) ? ($spentArray[$date] * -1) : 0;
$currentIncome = $query->incomeInPeriod($start, $month, $accounts)->sum('amount_positive');
$currentExpense = $query->expenseInPeriod($start, $month, $accounts)->sum('amount_positive');
$income = bcadd($income, $currentIncome); $income = bcadd($income, $currentIncome);
$expense = bcadd($expense, $currentExpense); $expense = bcadd($expense, $currentExpense);