diff --git a/app/controllers/GoogleChartController.php b/app/controllers/GoogleChartController.php index b72d791379..daeedcfddd 100644 --- a/app/controllers/GoogleChartController.php +++ b/app/controllers/GoogleChartController.php @@ -200,6 +200,47 @@ class GoogleChartController extends BaseController return Response::json($chart->getData()); } + public function budgetsAndSpending(Budget $budget, $year) { + try { + $start = new Carbon('01-01-' . $year); + } catch (Exception $e) { + App::abort(500); + } + + /** @var \FireflyIII\Database\Budget $bdt */ + $bdt = App::make('FireflyIII\Database\Budget'); + + /** @var \Grumpydictator\Gchart\GChart $chart */ + $chart = App::make('gchart'); + $chart->addColumn('Month', 'date'); + $chart->addColumn('Budgeted', 'number'); + $chart->addColumn('Spent', 'number'); + + $end = clone $start; + $end->endOfYear(); + while($start <= $end) { + + $spent = $bdt->spentInMonth($budget, $start); + $repetition = $bdt->repetitionOnStartingOnDate($budget, $start); + if($repetition) { + $budgeted = floatval($repetition->amount); + } else { + $budgeted = 0; + } + + $chart->addRow(clone $start, $budgeted, $spent); + + $start->addMonth(); + } + + + + $chart->generate(); + return Response::json($chart->getData()); + + + } + /** * @return \Illuminate\Http\JsonResponse */ diff --git a/app/routes.php b/app/routes.php index ff19a498ee..4d85b37703 100644 --- a/app/routes.php +++ b/app/routes.php @@ -169,6 +169,7 @@ Route::group( Route::get('/chart/reports/income-expenses/{year}', ['uses' => 'GoogleChartController@yearInExp']); Route::get('/chart/reports/income-expenses-sum/{year}', ['uses' => 'GoogleChartController@yearInExpSum']); Route::get('/chart/reports/budgets/{year}', ['uses' => 'GoogleChartController@budgetsReportChart']); + Route::get('/chart/budgets/{budget}/spending/{year}', ['uses' => 'GoogleChartController@budgetsAndSpending']); // google table controller Route::get('/table/account/{account}/transactions', ['uses' => 'GoogleTableController@transactionsByAccount']); diff --git a/app/views/budgets/show.blade.php b/app/views/budgets/show.blade.php index 71d6418e42..2cdc0f3e14 100644 --- a/app/views/budgets/show.blade.php +++ b/app/views/budgets/show.blade.php @@ -8,7 +8,7 @@ Some stuff?