From b726e7d1061849c4f86f6f51c8f66015552fc207 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 13 Mar 2020 18:17:53 +0100 Subject: [PATCH] Improved account list for #2768 --- app/Http/Controllers/ReportController.php | 26 +++++++++++++++++++++-- resources/views/v1/reports/index.twig | 6 +++++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 3405474582..249c60a001 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -27,6 +27,7 @@ use Carbon\Carbon; use FireflyIII\Generator\Report\ReportGeneratorFactory; use FireflyIII\Helpers\Report\ReportHelperInterface; use FireflyIII\Http\Requests\ReportFormRequest; +use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; @@ -262,11 +263,32 @@ class ReportController extends Controller $start = clone session('first'); $months = $this->helper->listOfMonths($start); $customFiscalYear = app('preferences')->get('customFiscalYear', 0)->data; - $accounts = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]); + $accounts = $repository->getAccountsByType( + [AccountType::DEFAULT, AccountType::ASSET, AccountType::DEBT, AccountType::LOAN, AccountType::MORTGAGE] + ); + + // group accounts by role: + $groupedAccounts = []; + /** @var Account $account */ + foreach ($accounts as $account) { + $type = $account->accountType->type; + $role = sprintf('opt_group_%s', $repository->getMetaValue($account, 'account_role')); + + if (in_array($type, [AccountType::MORTGAGE, AccountType::DEBT, AccountType::LOAN], true)) { + $role = sprintf('opt_group_l_%s',$type); + } + + if ('' === $role || 'opt_group_' === $role) { + $role = 'opt_group_defaultAsset'; + } + $groupedAccounts[trans(sprintf('firefly.%s',$role))][$account->id] = $account; + } + ksort($groupedAccounts); + $accountList = implode(',', $accounts->pluck('id')->toArray()); $this->repository->cleanupBudgets(); - return view('reports.index', compact('months', 'accounts', 'start', 'accountList', 'customFiscalYear')); + return view('reports.index', compact('months', 'accounts', 'start', 'accountList','groupedAccounts', 'customFiscalYear')); } /** diff --git a/resources/views/v1/reports/index.twig b/resources/views/v1/reports/index.twig index 9870c11682..8bda4e698b 100644 --- a/resources/views/v1/reports/index.twig +++ b/resources/views/v1/reports/index.twig @@ -38,13 +38,17 @@