From 6009f8ecde22dafe8c626f027b6f9de696658a53 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 3 Apr 2015 21:05:01 +0200 Subject: [PATCH] Better chart for bills. --- .../Controllers/GoogleChartController.php | 32 ++++++++----------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/app/Http/Controllers/GoogleChartController.php b/app/Http/Controllers/GoogleChartController.php index 4f60c23a21..b660a3c28d 100644 --- a/app/Http/Controllers/GoogleChartController.php +++ b/app/Http/Controllers/GoogleChartController.php @@ -3,6 +3,7 @@ use App; use Auth; use Carbon\Carbon; +use Crypt; use DB; use Exception; use FireflyIII\Helpers\Report\ReportQueryInterface; @@ -26,7 +27,6 @@ use Preferences; use Response; use Session; use Steam; -use Crypt; /** * Class GoogleChartController @@ -256,12 +256,12 @@ class GoogleChartController extends Controller ->where('transaction_types.type', 'Withdrawal') ->groupBy('categories.id') ->orderBy('sum', 'DESC') - ->get(['categories.id','categories.encrypted', 'categories.name', \DB::Raw('SUM(`transactions`.`amount`) AS `sum`')]); + ->get(['categories.id', 'categories.encrypted', 'categories.name', \DB::Raw('SUM(`transactions`.`amount`) AS `sum`')]); foreach ($set as $entry) { $isEncrypted = intval($entry->encrypted) == 1 ? true : false; - $name = strlen($entry->name) == 0 ? '(no category)' : $entry->name; - $name = $isEncrypted ? Crypt::decrypt($name) : $name; + $name = strlen($entry->name) == 0 ? '(no category)' : $entry->name; + $name = $isEncrypted ? Crypt::decrypt($name) : $name; $chart->addRow($name, floatval($entry->sum)); } @@ -291,22 +291,18 @@ class GoogleChartController extends Controller } else { $start = new Carbon; } - $end = new Carbon; - while ($start <= $end) { - $result = $bill->transactionjournals()->before($end)->after($start)->first(); - if ($result) { - /** @var Transaction $tr */ - foreach ($result->transactions()->get() as $tr) { - if (floatval($tr->amount) > 0) { - $amount = floatval($tr->amount); - } + + $results = $bill->transactionjournals()->after($start)->get(); + /** @var TransactionJournal $result */ + foreach ($results as $result) { + $amount = 0; + /** @var Transaction $tr */ + foreach ($result->transactions()->get() as $tr) { + if (floatval($tr->amount) > 0) { + $amount = floatval($tr->amount); } - } else { - $amount = 0; } - unset($result); - $chart->addRow(clone $start, $bill->amount_max, $bill->amount_min, $amount); - $start = Navigation::addPeriod($start, $bill->repeat_freq, 0); + $chart->addRow(clone $result->date, $bill->amount_max, $bill->amount_min, $amount); } $chart->generate();