From 4bd8e1b11e33b0a12cf2d4d8c7544b97623756e8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 2 Aug 2019 05:24:51 +0200 Subject: [PATCH] Fix #2328 --- .../Controllers/Chart/ReportController.php | 2 ++ .../Controllers/Report/BudgetController.php | 12 ++++++++++ .../Controllers/Report/CategoryController.php | 24 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/app/Http/Controllers/Chart/ReportController.php b/app/Http/Controllers/Chart/ReportController.php index 07326a3f25..280220fa50 100644 --- a/app/Http/Controllers/Chart/ReportController.php +++ b/app/Http/Controllers/Chart/ReportController.php @@ -172,6 +172,7 @@ class ReportController extends Controller $carbon = new Carbon($date); $label = $carbon->formatLocalized($format); $earned = $chartData[0]['entries'][$label] ?? '0'; + $amount = bcmul($amount, '-1'); $chartData[0]['entries'][$label] = bcadd($earned, $amount); } foreach ($source['spent'] as $date => $amount) { @@ -223,6 +224,7 @@ class ReportController extends Controller 'count_spent' => 0, ]; foreach ($source['earned'] as $amount) { + $amount = bcmul($amount,'-1'); $numbers['sum_earned'] = bcadd($amount, $numbers['sum_earned']); ++$numbers['count_earned']; } diff --git a/app/Http/Controllers/Report/BudgetController.php b/app/Http/Controllers/Report/BudgetController.php index d16ba0c81e..4cc0ac2cda 100644 --- a/app/Http/Controllers/Report/BudgetController.php +++ b/app/Http/Controllers/Report/BudgetController.php @@ -102,6 +102,18 @@ class BudgetController extends Controller $data = $repository->getBudgetPeriodReport($budgets, $accounts, $start, $end); $data[0] = $repository->getNoBudgetPeriodReport($accounts, $start, $end); // append report data for "no budget" $report = $this->filterPeriodReport($data); + + // depending on the carbon format (a reliable way to determine the general date difference) + // change the "listOfPeriods" call so the entire period gets included correctly. + $range = app('navigation')->preferredCarbonFormat($start, $end); + + if ('Y' === $range) { + $start->startOfYear(); + } + if ('Y-m' === $range) { + $start->startOfMonth(); + } + $periods = app('navigation')->listOfPeriods($start, $end); try { $result = view('reports.partials.budget-period', compact('report', 'periods'))->render(); diff --git a/app/Http/Controllers/Report/CategoryController.php b/app/Http/Controllers/Report/CategoryController.php index ca0dd5fe89..b8bc618745 100644 --- a/app/Http/Controllers/Report/CategoryController.php +++ b/app/Http/Controllers/Report/CategoryController.php @@ -64,6 +64,18 @@ class CategoryController extends Controller $data = $repository->periodExpenses($categories, $accounts, $start, $end); $data[0] = $repository->periodExpensesNoCategory($accounts, $start, $end); $report = $this->filterPeriodReport($data); + + // depending on the carbon format (a reliable way to determine the general date difference) + // change the "listOfPeriods" call so the entire period gets included correctly. + $range = app('navigation')->preferredCarbonFormat($start, $end); + + if ('Y' === $range) { + $start->startOfYear(); + } + if ('Y-m' === $range) { + $start->startOfMonth(); + } + $periods = app('navigation')->listOfPeriods($start, $end); try { $result = view('reports.partials.category-period', compact('report', 'periods'))->render(); @@ -106,6 +118,18 @@ class CategoryController extends Controller $data = $repository->periodIncome($categories, $accounts, $start, $end); $data[0] = $repository->periodIncomeNoCategory($accounts, $start, $end); $report = $this->filterPeriodReport($data); + + // depending on the carbon format (a reliable way to determine the general date difference) + // change the "listOfPeriods" call so the entire period gets included correctly. + $range = app('navigation')->preferredCarbonFormat($start, $end); + + if ('Y' === $range) { + $start->startOfYear(); + } + if ('Y-m' === $range) { + $start->startOfMonth(); + } + $periods = app('navigation')->listOfPeriods($start, $end); try { $result = view('reports.partials.category-period', compact('report', 'periods'))->render();