Make sure chart is displayed.

This commit is contained in:
James Cole
2016-11-19 09:26:32 +01:00
parent e15ea04186
commit 781621960d
3 changed files with 22 additions and 14 deletions

View File

@@ -47,6 +47,8 @@ class BudgetReportHelper implements BudgetReportHelperInterface
}
/**
* TODO the query called here must be moved to a repository.
*
* @param Carbon $start
* @param Carbon $end
* @param Collection $accounts
@@ -215,25 +217,29 @@ class BudgetReportHelper implements BudgetReportHelperInterface
public function listOfPeriods(Carbon $start, Carbon $end): array
{
// define period to increment
$increment = 'addDay';
$format = 'Y-m-d';
$increment = 'addDay';
$format = 'Y-m-d';
$displayFormat = strval(trans('config.month_and_day'));
// increment by month (for year)
if ($start->diffInMonths($end) > 1) {
$increment = 'addMonth';
$format = 'Y-m';
$increment = 'addMonth';
$format = 'Y-m';
$displayFormat = strval(trans('config.month'));
}
// increment by year (for multi year)
if ($start->diffInMonths($end) > 12) {
$increment = 'addYear';
$format = 'Y';
$increment = 'addYear';
$format = 'Y';
$displayFormat = strval(trans('config.year'));
}
$begin = clone $start;
$entries = [];
while ($begin < $end) {
$formatted = $begin->format($format);
$entries[$formatted] = $formatted;
$displayed = $begin->formatLocalized($displayFormat);
$entries[$formatted] = $displayed;
$begin->$increment();
}
@@ -274,7 +280,8 @@ class BudgetReportHelper implements BudgetReportHelperInterface
private function filterAllAmounts(Collection $set, int $budgetId, array $periods):array
{
$arr = [];
foreach ($periods as $period) {
$keys = array_keys($periods);
foreach ($keys as $period) {
/** @var stdClass $object */
$result = $set->filter(
function (TransactionJournal $object) use ($budgetId, $period) {

View File

@@ -186,6 +186,9 @@ class BudgetController extends Controller
}
/**
*
* TODO use the NEW query that will be in the repository. Because that query will be shared between the budget period report (table for all budgets)
* TODO and this chart (a single budget)
* @param BudgetRepositoryInterface $repository
* @param Budget $budget
* @param Carbon $start
@@ -196,6 +199,9 @@ class BudgetController extends Controller
*/
public function period(BudgetRepositoryInterface $repository, Budget $budget, Carbon $start, Carbon $end, Collection $accounts)
{
// chart properties for cache:
$cache = new CacheProperties();
$cache->addProperty($start);

View File

@@ -12,12 +12,7 @@
{% for id, info in budgets %}
<tr>
<td>
(<a title="{{ info.name }}" href="#" data-budget="{{ id }}" class="budget-chart-activate">{{ info.name }}</a>)
{% if id == 0 %}
<a href="{{ route('budgets.noBudget') }}">{{ info.name }}</a>
{% else %}
<a href="{{ route('budgets.show', id) }}">{{ info.name }}</a>
{% endif %}
<a title="{{ info.name }}" href="#" data-budget="{{ id }}" class="budget-chart-activate">{{ info.name }}</a>
</td>
{% for amount in info.entries %}
<td data-value="{{ amount }}">