From ab22d2cbaa7576e84c91aa931948db14b30f055c Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 31 Jul 2015 14:26:22 +0200 Subject: [PATCH] Fixed the overview chart for categories, so it will properly reflect income and expenses. See bug #99 --- .../Category/ChartJsCategoryChartGenerator.php | 17 ++++++++++++++--- .../Category/CategoryRepository.php | 2 +- resources/lang/en/firefly.php | 1 + resources/lang/nl/firefly.php | 1 + 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php b/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php index 52e0b530d6..621a51ee13 100644 --- a/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php +++ b/app/Generator/Chart/Category/ChartJsCategoryChartGenerator.php @@ -29,19 +29,30 @@ class ChartJsCategoryChartGenerator implements CategoryChartGenerator $format = Config::get('firefly.' . $dateFormat . '.' . $language); $data = [ - 'count' => 1, + 'count' => 2, 'labels' => [], 'datasets' => [ [ 'label' => trans('firefly.spent'), 'data' => [] + ], + [ + 'label' => trans('firefly.earned'), + 'data' => [] ] ], ]; foreach ($entries as $entry) { - $data['labels'][] = $entry[0]->formatLocalized($format); - $data['datasets'][0]['data'][] = round($entry[1], 2); + $data['labels'][] = $entry[0]->formatLocalized($format); + $amount = round($entry[1], 2); + if ($amount > 0) { + $data['datasets'][0]['data'][] = null; + $data['datasets'][1]['data'][] = $amount; + } else { + $data['datasets'][0]['data'][] = $amount * -1; + $data['datasets'][1]['data'][] = null; + } } return $data; diff --git a/app/Repositories/Category/CategoryRepository.php b/app/Repositories/Category/CategoryRepository.php index c7590d55d7..74e3e64334 100644 --- a/app/Repositories/Category/CategoryRepository.php +++ b/app/Repositories/Category/CategoryRepository.php @@ -198,7 +198,7 @@ class CategoryRepository extends ComponentRepository implements CategoryReposito */ public function spentOnDaySumCorrected(Category $category, Carbon $date) { - return $category->transactionjournals()->onDate($date)->get(['transaction_journals.*'])->sum('amount'); + return $category->transactionjournals()->onDate($date)->get(['transaction_journals.*'])->sum('correct_amount'); } /** diff --git a/resources/lang/en/firefly.php b/resources/lang/en/firefly.php index b386e977a4..4f82160e74 100644 --- a/resources/lang/en/firefly.php +++ b/resources/lang/en/firefly.php @@ -404,6 +404,7 @@ return [ 'month' => 'Month', 'budget' => 'Budget', 'spent' => 'Spent', + 'earned' => 'Earned', 'overspent' => 'Overspent', 'left' => 'Left', 'noBudget' => '(no budget)', diff --git a/resources/lang/nl/firefly.php b/resources/lang/nl/firefly.php index e06fe78ad1..916b78e118 100644 --- a/resources/lang/nl/firefly.php +++ b/resources/lang/nl/firefly.php @@ -412,6 +412,7 @@ return [ 'month' => 'Maand', 'budget' => 'Budget', 'spent' => 'Uitgegeven', + 'earned' => 'Verdiend', 'overspent' => 'Teveel uitgegeven', 'left' => 'Over', 'noBudget' => '(geen budget)',