Add average

This commit is contained in:
James Cole 2019-09-28 04:47:49 +02:00
parent 8a0abc23c3
commit 62890d9b7a
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
2 changed files with 13 additions and 6 deletions

View File

@ -481,10 +481,12 @@ class BudgetController extends Controller
$report = [];
foreach ($expenses as $currency) {
foreach ($currency['budgets'] as $budget) {
$count = 0;
foreach ($budget['transaction_journals'] as $journal) {
$key = sprintf('%d-%d', $budget['id'], $currency['currency_id']);
$dateKey = $journal['date']->format($keyFormat);
$report[$key] = $report[$key] ?? [
$count++;
$key = sprintf('%d-%d', $budget['id'], $currency['currency_id']);
$dateKey = $journal['date']->format($keyFormat);
$report[$key] = $report[$key] ?? [
'id' => $budget['id'],
'name' => sprintf('%s (%s)', $budget['name'], $currency['currency_name']),
'sum' => '0',
@ -495,9 +497,10 @@ class BudgetController extends Controller
'currency_decimal_places' => $currency['currency_decimal_places'],
'entries' => [],
];
$report[$key] ['entries'][$dateKey] = $report[$key] ['entries'][$dateKey] ?? '0';
$report[$key] ['entries'][$dateKey] = bcadd($journal['amount'], $report[$key] ['entries'][$dateKey]);
$report[$key] ['sum'] = bcadd($report[$key] ['sum'], $journal['amount']);
$report[$key]['entries'][$dateKey] = $report[$key] ['entries'][$dateKey] ?? '0';
$report[$key]['entries'][$dateKey] = bcadd($journal['amount'], $report[$key] ['entries'][$dateKey]);
$report[$key]['sum'] = bcadd($report[$key] ['sum'], $journal['amount']);
$report[$key]['avg'] = bcdiv($report[$key]['sum'], (string)$count);
}
}
}

View File

@ -5,6 +5,7 @@
{% for period in periods %}
<th data-defaultsign="_19" style="text-align: right;">{{ period }}</th>
{% endfor %}
<th data-defaultsign="_19" style="text-align: right;">{{ 'average'|_ }}</th>
<th data-defaultsign="_19" style="text-align: right;">{{ 'sum'|_ }}</th>
</tr>
</thead>
@ -33,6 +34,9 @@
{% endif %}
{% endfor %}
<td data-value="{{ info.avg }}" style="text-align: right;">
{{ formatAmountBySymbol(info.avg, info.currency_symbol, info.currency_decimal_places) }}
</td>
<td data-value="{{ info.sum }}" style="text-align: right;">
{{ formatAmountBySymbol(info.sum, info.currency_symbol, info.currency_decimal_places) }}
</td>