addColumn(trans('firefly.month'), 'date'); $chart->addColumn(trans('firefly.income'), 'number'); $chart->addColumn(trans('firefly.expenses'), 'number'); while ($start < $end) { $month = clone $start; $month->endOfMonth(); // total income and total expenses: $incomeSum = floatval($query->incomeInPeriodCorrected($start, $month, $shared)->sum('amount')); $expenseSum = floatval($query->expenseInPeriodCorrected($start, $month, $shared)->sum('amount')); $chart->addRow(clone $start, $incomeSum, $expenseSum); $start->addMonth(); } $chart->generate(); return Response::json($chart->getData()); } /** * Summarizes all income and expenses for a given year. Gives a total and an average. * * @param GChart $chart * @param ReportQueryInterface $query * @param $year * @param bool $shared * * @return \Symfony\Component\HttpFoundation\Response */ public function yearInOutSummarized(GChart $chart, ReportQueryInterface $query, $year, $shared = false) { $start = new Carbon($year . '-01-01'); $end = new Carbon($year . '-12-31'); $shared = $shared == 'shared' ? true : false; $income = 0; $expense = 0; $count = 0; $chart->addColumn(trans('firefly.summary'), 'string'); $chart->addColumn(trans('firefly.income'), 'number'); $chart->addColumn(trans('firefly.expenses'), 'number'); while ($start < $end) { $month = clone $start; $month->endOfMonth(); // total income and total expenses: $income += floatval($query->incomeInPeriodCorrected($start, $month, $shared)->sum('amount')); $expense += floatval($query->expenseInPeriodCorrected($start, $month, $shared)->sum('amount')); $count++; $start->addMonth(); } // add total + average: $chart->addRow(trans('firefly.sum'), $income, $expense); $count = $count > 0 ? $count : 1; $chart->addRow(trans('firefly.average'), ($income / $count), ($expense / $count)); $chart->generate(); return Response::json($chart->getData()); } }