Fix negative amounts and chart names.

This commit is contained in:
James Cole
2015-12-27 21:26:44 +01:00
parent 15846e157b
commit 18c46df9aa
2 changed files with 5 additions and 6 deletions

View File

@@ -83,8 +83,8 @@ class ChartJsBudgetChartGenerator implements BudgetChartGenerator
if ($entry[1] != 0 || $entry[2] != 0 || $entry[3] != 0) { if ($entry[1] != 0 || $entry[2] != 0 || $entry[3] != 0) {
$data['labels'][] = $entry[0]; $data['labels'][] = $entry[0];
$left[] = round($entry[1], 2); $left[] = round($entry[1], 2);
$spent[] = round($entry[2], 2); $spent[] = round($entry[2] * -1, 2); // spent is coming in negative, must be positive
$overspent[] = round($entry[3], 2); $overspent[] = round($entry[3] * -1, 2); // same
} }
} }

View File

@@ -236,8 +236,8 @@ class BudgetController extends Controller
// we already have amount, startdate and enddate. // we already have amount, startdate and enddate.
// if this "is" a limit repetition (as opposed to a budget without one entirely) // if this "is" a limit repetition (as opposed to a budget without one entirely)
// depends on whether startdate and enddate are null. // depends on whether startdate and enddate are null.
$name = $budget->name;
if (is_null($budget->startdate) && is_null($budget->enddate)) { if (is_null($budget->startdate) && is_null($budget->enddate)) {
$name = $budget->name . ' (' . $start->formatLocalized(trans('config.month')) . ')';
$currentStart = clone $start; $currentStart = clone $start;
$currentEnd = clone $end; $currentEnd = clone $end;
$expenses = $repository->balanceInPeriod($budget, $currentStart, $currentEnd, $accounts); $expenses = $repository->balanceInPeriod($budget, $currentStart, $currentEnd, $accounts);
@@ -246,21 +246,20 @@ class BudgetController extends Controller
$spent = $expenses; $spent = $expenses;
$overspent = 0; $overspent = 0;
} else { } else {
$name = $budget->name . ' (' . $budget->startdate->formatLocalized(trans('config.month')) . ')';
$currentStart = clone $budget->startdate; $currentStart = clone $budget->startdate;
$currentEnd = clone $budget->enddate; $currentEnd = clone $budget->enddate;
$expenses = $repository->balanceInPeriod($budget, $currentStart, $currentEnd, $accounts); $expenses = $repository->balanceInPeriod($budget, $currentStart, $currentEnd, $accounts);
$amount = $budget->amount; $amount = $budget->amount;
// smaller than 1 means spent MORE than budget allows. // smaller than 1 means spent MORE than budget allows.
$left = bccomp(bcadd($budget->amount, $expenses), '0') < 1 ? 0 : bcadd($budget->amount, $expenses); $left = bccomp(bcadd($budget->amount, $expenses), '0') < 1 ? 0 : bcadd($budget->amount, $expenses);
$spent = bccomp(bcadd($budget->amount, $expenses), '0') < 1 ? $amount : $expenses; $spent = bccomp(bcadd($budget->amount, $expenses), '0') < 1 ? ($amount*-1) : $expenses;
$overspent = bccomp(bcadd($budget->amount, $expenses), '0') < 1 ? bcadd($budget->amount, $expenses) : 0; $overspent = bccomp(bcadd($budget->amount, $expenses), '0') < 1 ? bcadd($budget->amount, $expenses) : 0;
} }
$allEntries->push([$name, $left, $spent, $overspent, $amount, $expenses]); $allEntries->push([$name, $left, $spent, $overspent, $amount, $expenses]);
} }
$noBudgetExpenses = $repository->getWithoutBudgetSum($start, $end) * -1; $noBudgetExpenses = $repository->getWithoutBudgetSum($start, $end);
$allEntries->push([trans('firefly.noBudget'), 0, 0, $noBudgetExpenses, 0, 0]); $allEntries->push([trans('firefly.noBudget'), 0, 0, $noBudgetExpenses, 0, 0]);
$data = $this->generator->frontpage($allEntries); $data = $this->generator->frontpage($allEntries);
$cache->store($data); $cache->store($data);