mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Display optimisations. [skip ci]
This commit is contained in:
parent
c5d31bccc5
commit
53daa89fcb
@ -21,6 +21,7 @@ use FireflyIII\Models\Category;
|
||||
use FireflyIII\Repositories\Category\CategoryRepositoryInterface;
|
||||
use FireflyIII\Support\CacheProperties;
|
||||
use Illuminate\Support\Collection;
|
||||
use Log;
|
||||
use Navigation;
|
||||
|
||||
/**
|
||||
@ -40,7 +41,16 @@ class CategoryController extends Controller
|
||||
*/
|
||||
public function categoryPeriodReport(Carbon $start, Carbon $end, Collection $accounts)
|
||||
{
|
||||
$cache = new CacheProperties;
|
||||
$cache->addProperty($start);
|
||||
$cache->addProperty($end);
|
||||
$cache->addProperty('category-period-report');
|
||||
$cache->addProperty($accounts->pluck('id')->toArray());
|
||||
if ($cache->has()) {
|
||||
Log::debug('Return report from cache');
|
||||
|
||||
return $cache->get();
|
||||
}
|
||||
/** @var CategoryRepositoryInterface $repository */
|
||||
$repository = app(CategoryRepositoryInterface::class);
|
||||
$categories = $repository->getCategories();
|
||||
@ -50,6 +60,8 @@ class CategoryController extends Controller
|
||||
|
||||
$result = view('reports.partials.category-period', compact('categories', 'periods', 'report'))->render();
|
||||
|
||||
$cache->store($result);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@ -90,23 +102,24 @@ class CategoryController extends Controller
|
||||
*/
|
||||
private function filterCategoryPeriodReport(array $data): array
|
||||
{
|
||||
foreach ($data as $key => $set) {
|
||||
/**
|
||||
* @var int $categoryId
|
||||
* @var array $set
|
||||
*/
|
||||
foreach ($set as $categoryId => $info) {
|
||||
/**
|
||||
* @var string $type
|
||||
* @var array $report
|
||||
*/
|
||||
foreach ($data as $type => $report) {
|
||||
foreach ($report as $categoryId => $set) {
|
||||
$sum = '0';
|
||||
foreach ($info['entries'] as $amount) {
|
||||
foreach ($set['entries'] as $amount) {
|
||||
$sum = bcadd($amount, $sum);
|
||||
}
|
||||
$data[$key][$categoryId]['sum'] = $sum;
|
||||
$data[$type][$categoryId]['sum'] = $sum;
|
||||
if (bccomp('0', $sum) === 0) {
|
||||
unset($data[$key][$categoryId]);
|
||||
unset($data[$type][$categoryId]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
@ -19,42 +19,57 @@
|
||||
<tbody>
|
||||
{% for category in categories %}
|
||||
{% if report.income[category.id] or report.expense[category.id] %}
|
||||
<tr>
|
||||
<td data-value="{{ category.name }}">
|
||||
<a title="{{ category.name }}" href="#" data-category="{{ category.id }}" class="category-chart-activate">{{ category.name }}</a>
|
||||
</td>
|
||||
<tr>
|
||||
<td data-value="{{ category.name }}">
|
||||
<a title="{{ category.name }}" href="#" data-category="{{ category.id }}" class="category-chart-activate">{{ category.name }}</a>
|
||||
</td>
|
||||
|
||||
{% for key, period in periods %}
|
||||
{# income first #}
|
||||
{% if(report.income[category.id].entries[key]) %}
|
||||
<td data-value="{{ report.income[category.id].entries[key] }}">
|
||||
{{ report.income[category.id].entries[key]|formatAmount }}
|
||||
{% for key, period in periods %}
|
||||
{# income first #}
|
||||
{% if(report.income[category.id].entries[key]) %}
|
||||
<td data-value="{{ report.income[category.id].entries[key] }}">
|
||||
{{ report.income[category.id].entries[key]|formatAmount }}
|
||||
</td>
|
||||
{% else %}
|
||||
<td data-value="0">
|
||||
{{ 0|formatAmount }}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
{# expenses #}
|
||||
{% if(report.expense[category.id].entries[key]) %}
|
||||
<td data-value="{{ report.expense[category.id].entries[key] }}">
|
||||
{{ report.expense[category.id].entries[key]|formatAmount }}
|
||||
</td>
|
||||
{% else %}
|
||||
<td data-value="0">
|
||||
{{ 0|formatAmount }}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{# if sum of income, display: #}
|
||||
{% if report.income[category.id].sum %}
|
||||
<td data-value="{{ report.income[category.id].sum }}">
|
||||
{{ report.income[category.id].sum }}
|
||||
</td>
|
||||
{% else %}
|
||||
<td data-value="0">
|
||||
{{ 0|formatAmount }}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
||||
{# expenses #}
|
||||
{% if(report.expense[category.id].entries[key]) %}
|
||||
<td data-value="{{ report.expense[category.id].entries[key] }}">
|
||||
{{ report.expense[category.id].entries[key]|formatAmount }}
|
||||
{# if sum of expense, display: #}
|
||||
{% if report.expense[category.id].sum %}
|
||||
<td data-value="{{ report.expense[category.id].sum }}">
|
||||
{{ report.expense[category.id].sum }}
|
||||
</td>
|
||||
{% else %}
|
||||
<td data-value="0">
|
||||
{{ 0|formatAmount }}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<td data-value="{{ report.income[category.id].sum }}">
|
||||
{{ report.income[category.id].sum|formatAmount }}
|
||||
</td>
|
||||
<td data-value="{{ report.expense[category.id].sum }}">
|
||||
{{ report.expense[category.id].sum|formatAmount }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
Loading…
Reference in New Issue
Block a user