Added a forgotten chart, corrected some others. [skip ci]

This commit is contained in:
James Cole
2015-05-20 06:49:22 +02:00
parent deda9d3c54
commit fbdf66998d
4 changed files with 46 additions and 11 deletions

View File

@@ -9,6 +9,8 @@ use FireflyIII\Models\LimitRepetition;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use Grumpydictator\Gchart\GChart; use Grumpydictator\Gchart\GChart;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use Navigation;
use Preferences;
use Response; use Response;
use Session; use Session;
@@ -19,6 +21,38 @@ use Session;
*/ */
class BudgetController extends Controller class BudgetController extends Controller
{ {
/**
* @param GChart $chart
* @param BudgetRepositoryInterface $repository
* @param Budget $budget
*/
public function budget(GChart $chart, BudgetRepositoryInterface $repository, Budget $budget)
{
$chart->addColumn(trans('firefly.period'),'date');
$chart->addColumn(trans('firefly.spent'), 'number');
$first = $repository->getFirstBudgetLimitDate($budget);
$range = $viewRange = Preferences::get('viewRange', '1M')->data;
$last = Session::get('end', new Carbon);
$final = clone $last;
$final->addYears(2);
$last = Navigation::endOfX($last, $range, $final);
while ($first < $last) {
$end = Navigation::addPeriod($first, $range, 0);
$spent = $repository->spentInPeriodCorrected($budget, $first, $end);
$chart->addRow($end, $spent);
$first = Navigation::addPeriod($first, $range, 0);
}
$chart->generate();
return Response::json($chart->getData());
}
/** /**
* Shows the amount left in a specific budget limit. * Shows the amount left in a specific budget limit.
* *
@@ -44,7 +78,7 @@ class BudgetController extends Controller
/* /*
* Sum of expenses on this day: * Sum of expenses on this day:
*/ */
$sum = $repository->expensesOnDay($budget, $start); $sum = $repository->expensesOnDayCorrected($budget, $start);
$amount += $sum; $amount += $sum;
$chart->addRow(clone $start, $amount); $chart->addRow(clone $start, $amount);
$start->addDay(); $start->addDay();
@@ -78,13 +112,13 @@ class BudgetController extends Controller
foreach ($budgets as $budget) { foreach ($budgets as $budget) {
$repetitions = $repository->getBudgetLimitRepetitions($budget, $start, $end); $repetitions = $repository->getBudgetLimitRepetitions($budget, $start, $end);
if ($repetitions->count() == 0) { if ($repetitions->count() == 0) {
$expenses = $repository->spentInPeriod($budget, $start, $end, true); $expenses = $repository->spentInPeriodCorrected($budget, $start, $end, true);
$allEntries->push([$budget->name, 0, 0, $expenses]); $allEntries->push([$budget->name, 0, 0, $expenses]);
continue; continue;
} }
/** @var LimitRepetition $repetition */ /** @var LimitRepetition $repetition */
foreach ($repetitions as $repetition) { foreach ($repetitions as $repetition) {
$expenses = $repository->spentInPeriod($budget, $repetition->startdate, $repetition->enddate, true); $expenses = $repository->spentInPeriodCorrected($budget, $repetition->startdate, $repetition->enddate, true);
$left = $expenses < floatval($repetition->amount) ? floatval($repetition->amount) - $expenses : 0; $left = $expenses < floatval($repetition->amount) ? floatval($repetition->amount) - $expenses : 0;
$spent = $expenses > floatval($repetition->amount) ? 0 : $expenses; $spent = $expenses > floatval($repetition->amount) ? 0 : $expenses;
$overspent = $expenses > floatval($repetition->amount) ? $expenses - floatval($repetition->amount) : 0; $overspent = $expenses > floatval($repetition->amount) ? $expenses - floatval($repetition->amount) : 0;
@@ -145,7 +179,7 @@ class BudgetController extends Controller
// each budget, fill the row: // each budget, fill the row:
foreach ($budgets as $budget) { foreach ($budgets as $budget) {
$spent = $repository->spentInPeriod($budget, $start, $month, $shared); $spent = $repository->spentInPeriodCorrected($budget, $start, $month, $shared);
$row[] = $spent; $row[] = $spent;
} }
$chart->addRowArray($row); $chart->addRowArray($row);

View File

@@ -50,7 +50,7 @@ class CategoryController extends Controller
while ($start <= $end) { while ($start <= $end) {
$currentEnd = Navigation::endOfPeriod($start, $range); $currentEnd = Navigation::endOfPeriod($start, $range);
$spent = $repository->spentInPeriod($category, $start, $currentEnd); $spent = $repository->spentInPeriodCorrected($category, $start, $currentEnd);
$chart->addRow(clone $start, $spent); $chart->addRow(clone $start, $spent);
$start = Navigation::addPeriod($start, $range, 0); $start = Navigation::addPeriod($start, $range, 0);
@@ -109,7 +109,7 @@ class CategoryController extends Controller
$chart->addColumn(trans('firefly.spent'), 'number'); $chart->addColumn(trans('firefly.spent'), 'number');
while ($start <= $end) { while ($start <= $end) {
$spent = $repository->spentOnDaySum($category, $start); $spent = $repository->spentOnDaySumCorrected($category, $start);
$chart->addRow(clone $start, $spent); $chart->addRow(clone $start, $spent);
$start->addDay(); $start->addDay();
} }
@@ -153,7 +153,7 @@ class CategoryController extends Controller
// each budget, fill the row: // each budget, fill the row:
foreach ($categories as $category) { foreach ($categories as $category) {
$spent = $repository->spentInPeriod($category, $start, $month, $shared); $spent = $repository->spentInPeriodCorrected($category, $start, $month, $shared);
$row[] = $spent; $row[] = $spent;
} }
$chart->addRowArray($row); $chart->addRowArray($row);

View File

@@ -43,8 +43,8 @@ class ReportController extends Controller
$month = clone $start; $month = clone $start;
$month->endOfMonth(); $month->endOfMonth();
// total income and total expenses: // total income and total expenses:
$incomeSum = floatval($query->incomeInPeriod($start, $month, $shared)->sum('queryAmount')); $incomeSum = floatval($query->incomeInPeriodCorrected($start, $month, $shared)->sum('amount'));
$expenseSum = floatval($query->expenseInPeriod($start, $month, $shared)->sum('queryAmount')) * -1; $expenseSum = floatval($query->expenseInPeriodCorrected($start, $month, $shared)->sum('amount'));
$chart->addRow(clone $start, $incomeSum, $expenseSum); $chart->addRow(clone $start, $incomeSum, $expenseSum);
$start->addMonth(); $start->addMonth();
@@ -82,8 +82,8 @@ class ReportController extends Controller
$month = clone $start; $month = clone $start;
$month->endOfMonth(); $month->endOfMonth();
// total income and total expenses: // total income and total expenses:
$income += floatval($query->incomeInPeriod($start, $month, $shared)->sum('queryAmount')); $income += floatval($query->incomeInPeriodCorrected($start, $month, $shared)->sum('amount'));
$expense += floatval($query->expenseInPeriod($start, $month, $shared)->sum('queryAmount')) * -1; $expense += floatval($query->expenseInPeriodCorrected($start, $month, $shared)->sum('amount'));
$count++; $count++;
$start->addMonth(); $start->addMonth();
} }

View File

@@ -288,6 +288,7 @@ Route::group(
Route::get('/chart/budget/frontpage', ['uses' => 'Chart\BudgetController@frontpage']); Route::get('/chart/budget/frontpage', ['uses' => 'Chart\BudgetController@frontpage']);
Route::get('/chart/budget/year/{year}/{shared?}', ['uses' => 'Chart\BudgetController@year'])->where(['year' => '[0-9]{4}', 'shared' => 'shared']); Route::get('/chart/budget/year/{year}/{shared?}', ['uses' => 'Chart\BudgetController@year'])->where(['year' => '[0-9]{4}', 'shared' => 'shared']);
Route::get('/chart/budget/{budget}/{limitrepetition}', ['uses' => 'Chart\BudgetController@budgetLimit']); Route::get('/chart/budget/{budget}/{limitrepetition}', ['uses' => 'Chart\BudgetController@budgetLimit']);
Route::get('/chart/budget/{budget}', ['uses' => 'Chart\BudgetController@budget']);
// categories: // categories:
Route::get('/chart/category/frontpage', ['uses' => 'Chart\CategoryController@frontpage']); Route::get('/chart/category/frontpage', ['uses' => 'Chart\CategoryController@frontpage']);