. */ declare(strict_types=1); namespace FireflyIII\Import\Mapper; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; /** * Class AssetAccounts. */ class AssetAccounts implements MapperInterface { /** * Get map of asset accounts. * * @return array */ public function getMap(): array { /** @var AccountRepositoryInterface $accountRepository */ $accountRepository = app(AccountRepositoryInterface::class); $set = $accountRepository->getAccountsByType( [AccountType::DEFAULT, AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::CREDITCARD, AccountType::MORTGAGE,] ); $list = []; /** @var Account $account */ foreach ($set as $account) { $accountId = (int)$account->id; $name = $account->name; $iban = $account->iban ?? ''; if ('' !== $iban) { $name .= ' (' . $iban . ')'; } // is a liability? if (in_array($account->accountType->type, [AccountType::LOAN, AccountType::DEBT, AccountType::CREDITCARD, AccountType::MORTGAGE], true)) { $name = trans('import.import_liability_select') . ': ' . $name; } $list[$accountId] = $name; } asort($list); $list = [0 => (string)trans('import.map_do_not_map')] + $list; return $list; } }