Browse Source

Fix import if not simplefin.

pull/853/head
James Cole 3 months ago
parent
commit
d0dfdd64ac
  1. 4
      app/Http/Controllers/Import/ConfigurationController.php
  2. 2
      app/Http/Controllers/IndexController.php
  3. 2
      app/Http/Controllers/TokenController.php
  4. 4
      app/Services/Nordigen/Services/AccountInformationCollector.php
  5. 5
      app/Support/Internal/CollectsAccounts.php
  6. 6
      app/Support/Internal/MergesAccountLists.php
  7. 142
      composer.lock
  8. 2
      resources/views/v2/components/firefly-iii-account-generic.blade.php
  9. 3
      resources/views/v2/components/importer-account-title.blade.php
  10. 2
      resources/views/v2/components/importer-account.blade.php

4
app/Http/Controllers/Import/ConfigurationController.php

@ -99,7 +99,6 @@ class ConfigurationController extends Controller
// collect Firefly III accounts
$fireflyIIIaccounts = $this->getFireflyIIIAccounts();
// possibilities for duplicate detection (unique columns)
// also get the nordigen / spectre accounts
@ -146,8 +145,7 @@ class ConfigurationController extends Controller
$fileType = $detector->detectContentTypeFromContent($content);
$configuration->setContentType($fileType);
}
// Get currency data for SimpleFIN account creation widget
// Get currency data for account creation widget
$currencies = $this->getCurrencies();
return view('import.004-configure.index', compact('mainTitle', 'subTitle', 'fireflyIIIaccounts', 'configuration', 'flow', 'importerAccounts', 'uniqueColumns', 'currencies'));

2
app/Http/Controllers/IndexController.php

@ -84,7 +84,7 @@ class IndexController extends Controller
Log::debug('IndexController authentication detection', [
'client_id' => $clientId,
'url' => $url,
'access_token_config' => $accessTokenConfig,
'access_token_config' => substr($accessTokenConfig, 0, 25) . '...',
'access_token_empty' => '' === $accessTokenConfig,
]);

2
app/Http/Controllers/TokenController.php

@ -162,7 +162,6 @@ class TokenController extends Controller
$infoRequest->setVerify(config('importer.connection.verify'));
$infoRequest->setTimeOut(config('importer.connection.timeout'));
Log::debug(sprintf('Now trying to authenticate with Firefly III at %s', $url));
try {
@ -171,6 +170,7 @@ class TokenController extends Controller
} catch (ApiHttpException $e) {
Log::notice(sprintf('Could NOT authenticate with Firefly III at %s', $url));
Log::error(sprintf('Could not connect to Firefly III: %s', $e->getMessage()));
Log::debug(sprintf('Using access token "%s" (limited to 25 chars if present)', substr($token, 0, 25)));
return response()->json(['result' => 'NOK', 'message' => $e->getMessage()]);
}

4
app/Services/Nordigen/Services/AccountInformationCollector.php

@ -207,6 +207,10 @@ class AccountInformationCollector
Log::debug('Set new IBAN from basic details.');
$account->setIban($array['iban']);
}
if(array_key_exists('owner_name', $array) && '' !== $array['owner_name'] && '' === $account->getOwnerName()) {
Log::debug('Set new owner name from basic details.');
$account->setOwnerName($array['owner_name']);
}
return $account;
}

5
app/Support/Internal/CollectsAccounts.php

@ -58,7 +58,6 @@ trait CollectsAccounts
Constants::LIABILITIES => [],
];
$url = null;
$token = null;
try {
$url = SecretManager::getBaseUrl();
@ -140,9 +139,11 @@ trait CollectsAccounts
Log::debug(sprintf('Now in %s', __METHOD__));
$requisitions = $configuration->getNordigenRequisitions();
$identifier = array_shift($requisitions);
$inCache = Cache::has($identifier) && config('importer.use_cache');
$inCache = false;
// if cached, return it.
if (Cache::has($identifier) && config('importer.use_cache')) {
if ($inCache) {
$result = Cache::get($identifier);
$return = [];
foreach ($result as $arr) {

6
app/Support/Internal/MergesAccountLists.php

@ -46,7 +46,7 @@ trait MergesAccountLists
/** @var ImportServiceAccount $account */
foreach ($generic as $account) {
Log::debug(sprintf('Working on generic account "%s": "%s" ("%s", "%s")', $account->name, $account->id, $account->iban, $account->bban));
Log::debug(sprintf('Working on generic account name: "%s": id:"%s" (iban:"%s", number:"%s")', $account->name, $account->id, $account->iban, $account->bban));
$iban = $account->iban;
$number = $account->bban;
@ -75,7 +75,8 @@ trait MergesAccountLists
continue;
}
Log::debug('No special filtering on the Firefly III account list.');
$entry['firefly_iii_accounts'] = array_merge($fireflyIII[Constants::ASSET_ACCOUNTS], $fireflyIII[Constants::LIABILITIES]);
// remove array_merge because SimpleFIN does not do this so it broke all the other importer routines.
$entry['firefly_iii_accounts'] = $fireflyIII;
$return[] = $entry;
}
@ -84,6 +85,7 @@ trait MergesAccountLists
protected function filterByAccountNumber(array $firefly, string $iban, string $number): array
{
Log::debug(sprintf('Now filtering Firefly III accounts by IBAN "%s" or number "%s".', $iban, $number));
// FIXME this check should also check the number of the account.
if ('' === $iban) {
return [];

142
composer.lock

@ -516,12 +516,12 @@
"source": {
"type": "git",
"url": "https://github.com/JC5/api-support-classes.git",
"reference": "83127041fcf522c9548f8016569fe5d4403f2d83"
"reference": "c70158bc66bb3da01c9b7547539f1331ea2282ce"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JC5/api-support-classes/zipball/83127041fcf522c9548f8016569fe5d4403f2d83",
"reference": "83127041fcf522c9548f8016569fe5d4403f2d83",
"url": "https://api.github.com/repos/JC5/api-support-classes/zipball/c70158bc66bb3da01c9b7547539f1331ea2282ce",
"reference": "c70158bc66bb3da01c9b7547539f1331ea2282ce",
"shasum": ""
},
"require": {
@ -615,7 +615,7 @@
"type": "patreon"
}
],
"time": "2025-05-02T03:42:46+00:00"
"time": "2025-06-29T14:43:41+00:00"
},
{
"name": "fruitcake/php-cors",
@ -3611,16 +3611,16 @@
},
{
"name": "symfony/console",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44"
"reference": "9e27aecde8f506ba0fd1d9989620c04a87697101"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/66c1440edf6f339fd82ed6c7caa76cb006211b44",
"reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44",
"url": "https://api.github.com/repos/symfony/console/zipball/9e27aecde8f506ba0fd1d9989620c04a87697101",
"reference": "9e27aecde8f506ba0fd1d9989620c04a87697101",
"shasum": ""
},
"require": {
@ -3685,7 +3685,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v7.3.0"
"source": "https://github.com/symfony/console/tree/v7.3.1"
},
"funding": [
{
@ -3701,7 +3701,7 @@
"type": "tidelift"
}
],
"time": "2025-05-24T10:34:04+00:00"
"time": "2025-06-27T19:55:54+00:00"
},
{
"name": "symfony/css-selector",
@ -3837,16 +3837,16 @@
},
{
"name": "symfony/error-handler",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
"reference": "cf68d225bc43629de4ff54778029aee6dc191b83"
"reference": "35b55b166f6752d6aaf21aa042fc5ed280fce235"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/cf68d225bc43629de4ff54778029aee6dc191b83",
"reference": "cf68d225bc43629de4ff54778029aee6dc191b83",
"url": "https://api.github.com/repos/symfony/error-handler/zipball/35b55b166f6752d6aaf21aa042fc5ed280fce235",
"reference": "35b55b166f6752d6aaf21aa042fc5ed280fce235",
"shasum": ""
},
"require": {
@ -3894,7 +3894,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/error-handler/tree/v7.3.0"
"source": "https://github.com/symfony/error-handler/tree/v7.3.1"
},
"funding": [
{
@ -3910,7 +3910,7 @@
"type": "tidelift"
}
],
"time": "2025-05-29T07:19:49+00:00"
"time": "2025-06-13T07:48:40+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -4134,16 +4134,16 @@
},
{
"name": "symfony/http-client",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
"reference": "57e4fb86314015a695a750ace358d07a7e37b8a9"
"reference": "4403d87a2c16f33345dca93407a8714ee8c05a64"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-client/zipball/57e4fb86314015a695a750ace358d07a7e37b8a9",
"reference": "57e4fb86314015a695a750ace358d07a7e37b8a9",
"url": "https://api.github.com/repos/symfony/http-client/zipball/4403d87a2c16f33345dca93407a8714ee8c05a64",
"reference": "4403d87a2c16f33345dca93407a8714ee8c05a64",
"shasum": ""
},
"require": {
@ -4155,6 +4155,7 @@
},
"conflict": {
"amphp/amp": "<2.5",
"amphp/socket": "<1.1",
"php-http/discovery": "<1.15",
"symfony/http-foundation": "<6.4"
},
@ -4167,7 +4168,6 @@
"require-dev": {
"amphp/http-client": "^4.2.1|^5.0",
"amphp/http-tunnel": "^1.0|^2.0",
"amphp/socket": "^1.1",
"guzzlehttp/promises": "^1.4|^2.0",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
@ -4209,7 +4209,7 @@
"http"
],
"support": {
"source": "https://github.com/symfony/http-client/tree/v7.3.0"
"source": "https://github.com/symfony/http-client/tree/v7.3.1"
},
"funding": [
{
@ -4225,7 +4225,7 @@
"type": "tidelift"
}
],
"time": "2025-05-02T08:23:16+00:00"
"time": "2025-06-28T07:58:39+00:00"
},
{
"name": "symfony/http-client-contracts",
@ -4307,16 +4307,16 @@
},
{
"name": "symfony/http-foundation",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
"reference": "4236baf01609667d53b20371486228231eb135fd"
"reference": "23dd60256610c86a3414575b70c596e5deff6ed9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/4236baf01609667d53b20371486228231eb135fd",
"reference": "4236baf01609667d53b20371486228231eb135fd",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/23dd60256610c86a3414575b70c596e5deff6ed9",
"reference": "23dd60256610c86a3414575b70c596e5deff6ed9",
"shasum": ""
},
"require": {
@ -4366,7 +4366,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-foundation/tree/v7.3.0"
"source": "https://github.com/symfony/http-foundation/tree/v7.3.1"
},
"funding": [
{
@ -4382,20 +4382,20 @@
"type": "tidelift"
}
],
"time": "2025-05-12T14:48:23+00:00"
"time": "2025-06-23T15:07:14+00:00"
},
{
"name": "symfony/http-kernel",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
"reference": "ac7b8e163e8c83dce3abcc055a502d4486051a9f"
"reference": "1644879a66e4aa29c36fe33dfa6c54b450ce1831"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/ac7b8e163e8c83dce3abcc055a502d4486051a9f",
"reference": "ac7b8e163e8c83dce3abcc055a502d4486051a9f",
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/1644879a66e4aa29c36fe33dfa6c54b450ce1831",
"reference": "1644879a66e4aa29c36fe33dfa6c54b450ce1831",
"shasum": ""
},
"require": {
@ -4480,7 +4480,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/http-kernel/tree/v7.3.0"
"source": "https://github.com/symfony/http-kernel/tree/v7.3.1"
},
"funding": [
{
@ -4496,20 +4496,20 @@
"type": "tidelift"
}
],
"time": "2025-05-29T07:47:32+00:00"
"time": "2025-06-28T08:24:55+00:00"
},
{
"name": "symfony/mailer",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
"reference": "0f375bbbde96ae8c78e4aa3e63aabd486e33364c"
"reference": "b5db5105b290bdbea5ab27b89c69effcf1cb3368"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mailer/zipball/0f375bbbde96ae8c78e4aa3e63aabd486e33364c",
"reference": "0f375bbbde96ae8c78e4aa3e63aabd486e33364c",
"url": "https://api.github.com/repos/symfony/mailer/zipball/b5db5105b290bdbea5ab27b89c69effcf1cb3368",
"reference": "b5db5105b290bdbea5ab27b89c69effcf1cb3368",
"shasum": ""
},
"require": {
@ -4560,7 +4560,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/mailer/tree/v7.3.0"
"source": "https://github.com/symfony/mailer/tree/v7.3.1"
},
"funding": [
{
@ -4576,20 +4576,20 @@
"type": "tidelift"
}
],
"time": "2025-04-04T09:51:09+00:00"
"time": "2025-06-27T19:55:54+00:00"
},
{
"name": "symfony/mailgun-mailer",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailgun-mailer.git",
"reference": "3c1dfd9ff0a487a4116baec42d11ae21a061e3f1"
"reference": "8c18f2bff4e70ed5669ab8228302edd2fecd689b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/3c1dfd9ff0a487a4116baec42d11ae21a061e3f1",
"reference": "3c1dfd9ff0a487a4116baec42d11ae21a061e3f1",
"url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/8c18f2bff4e70ed5669ab8228302edd2fecd689b",
"reference": "8c18f2bff4e70ed5669ab8228302edd2fecd689b",
"shasum": ""
},
"require": {
@ -4629,7 +4629,7 @@
"description": "Symfony Mailgun Mailer Bridge",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/mailgun-mailer/tree/v7.3.0"
"source": "https://github.com/symfony/mailgun-mailer/tree/v7.3.1"
},
"funding": [
{
@ -4645,7 +4645,7 @@
"type": "tidelift"
}
],
"time": "2024-09-28T08:24:38+00:00"
"time": "2025-06-20T16:15:52+00:00"
},
{
"name": "symfony/mime",
@ -5749,16 +5749,16 @@
},
{
"name": "symfony/translation",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "4aba29076a29a3aa667e09b791e5f868973a8667"
"reference": "241d5ac4910d256660238a7ecf250deba4c73063"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/4aba29076a29a3aa667e09b791e5f868973a8667",
"reference": "4aba29076a29a3aa667e09b791e5f868973a8667",
"url": "https://api.github.com/repos/symfony/translation/zipball/241d5ac4910d256660238a7ecf250deba4c73063",
"reference": "241d5ac4910d256660238a7ecf250deba4c73063",
"shasum": ""
},
"require": {
@ -5825,7 +5825,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v7.3.0"
"source": "https://github.com/symfony/translation/tree/v7.3.1"
},
"funding": [
{
@ -5841,7 +5841,7 @@
"type": "tidelift"
}
],
"time": "2025-05-29T07:19:49+00:00"
"time": "2025-06-27T19:55:54+00:00"
},
{
"name": "symfony/translation-contracts",
@ -5923,16 +5923,16 @@
},
{
"name": "symfony/uid",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
"reference": "7beeb2b885cd584cd01e126c5777206ae4c3c6a3"
"reference": "a69f69f3159b852651a6bf45a9fdd149520525bb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/uid/zipball/7beeb2b885cd584cd01e126c5777206ae4c3c6a3",
"reference": "7beeb2b885cd584cd01e126c5777206ae4c3c6a3",
"url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb",
"reference": "a69f69f3159b852651a6bf45a9fdd149520525bb",
"shasum": ""
},
"require": {
@ -5977,7 +5977,7 @@
"uuid"
],
"support": {
"source": "https://github.com/symfony/uid/tree/v7.3.0"
"source": "https://github.com/symfony/uid/tree/v7.3.1"
},
"funding": [
{
@ -5993,20 +5993,20 @@
"type": "tidelift"
}
],
"time": "2025-05-24T14:28:13+00:00"
"time": "2025-06-27T19:55:54+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v7.3.0",
"version": "v7.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e"
"reference": "6e209fbe5f5a7b6043baba46fe5735a4b85d0d42"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/548f6760c54197b1084e1e5c71f6d9d523f2f78e",
"reference": "548f6760c54197b1084e1e5c71f6d9d523f2f78e",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/6e209fbe5f5a7b6043baba46fe5735a4b85d0d42",
"reference": "6e209fbe5f5a7b6043baba46fe5735a4b85d0d42",
"shasum": ""
},
"require": {
@ -6061,7 +6061,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v7.3.0"
"source": "https://github.com/symfony/var-dumper/tree/v7.3.1"
},
"funding": [
{
@ -6077,7 +6077,7 @@
"type": "tidelift"
}
],
"time": "2025-04-27T18:39:23+00:00"
"time": "2025-06-27T19:55:54+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@ -8416,12 +8416,12 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
"reference": "b79895bbbfcb549006a8ee8efae7f77edffe5329"
"reference": "d4ca0cc4c49ba3437778e201d35844715d9b1bd9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/b79895bbbfcb549006a8ee8efae7f77edffe5329",
"reference": "b79895bbbfcb549006a8ee8efae7f77edffe5329",
"url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d4ca0cc4c49ba3437778e201d35844715d9b1bd9",
"reference": "d4ca0cc4c49ba3437778e201d35844715d9b1bd9",
"shasum": ""
},
"conflict": {
@ -8491,7 +8491,7 @@
"bedita/bedita": "<4",
"bednee/cooluri": "<1.0.30",
"bigfork/silverstripe-form-capture": ">=3,<3.1.1",
"billz/raspap-webgui": "<=3.1.4",
"billz/raspap-webgui": "<3.3.6",
"bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3",
"blueimp/jquery-file-upload": "==6.4.4",
"bmarshall511/wordpress_zero_spam": "<5.2.13",
@ -9100,7 +9100,7 @@
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
"ssddanbrown/bookstack": "<24.05.1",
"starcitizentools/citizen-skin": ">=2.4.2,<3.3.1",
"starcitizentools/tabber-neue": ">=1.9.1,<2.7.2",
"starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1",
"statamic/cms": "<=5.16",
"stormpath/sdk": "<9.9.99",
"studio-42/elfinder": "<=2.1.64",
@ -9361,7 +9361,7 @@
"type": "tidelift"
}
],
"time": "2025-06-24T22:05:35+00:00"
"time": "2025-06-27T21:05:09+00:00"
},
{
"name": "sebastian/cli-parser",

2
resources/views/v2/components/firefly-iii-account-generic.blade.php

@ -6,6 +6,7 @@
id="account-select-{{ $account['import_account']->id }}">
<!-- Create New Account option -->
@if('simplefin' === $flow)
<option value="create_new"
@php
$configuredAccount = $configuration->getAccounts()[$account['import_account']->id] ?? null;
@ -13,6 +14,7 @@
$isCreateNewSelected = (!$configuredAccount || $configuredAccount === 'create_new') && !$mappedTo;
@endphp
@if($isCreateNewSelected) selected @endif> Create New Account</option>
@endif
<!-- loop all Firefly III account groups (assets, liabilities) -->
@foreach($account['firefly_iii_accounts'] as $accountGroupKey => $accountGroup)

3
resources/views/v2/components/importer-account-title.blade.php

@ -43,7 +43,7 @@
@if('' !== $account['import_account']->iban) title="IBAN: {{ $account['import_account']->iban }}" @endif
>
<div class="d-flex align-items-center mb-1">
<span class="fw-bold fs-6">{{ $account['import_account']->name ?? 'Unnamed SimpleFIN Account' }}</span>
<span class="fw-bold fs-6">{{ $account['import_account']->name ?? 'Unnamed account' }}</span>
</div>
@if(isset($account['import_account']->org) && is_array($account['import_account']->org) && !empty($account['import_account']->org['name']))
<div class="text-muted small">
@ -87,6 +87,7 @@
@endif
</div>
{{-- Display 'mapped_to' if available --}}
{{-- Display 'extra' fields if any --}}
@php $extraData = (array)($account['import_account']->extra ?? []); @endphp
@if(count($extraData) > 0)

2
resources/views/v2/components/importer-account.blade.php

@ -17,7 +17,7 @@
<span class="text-danger">There are no Firefly III accounts to import into</span>
@endif
@if( $flow === 'simplefin' || (isset($account['firefly_iii_accounts']['assets']) && count($account['firefly_iii_accounts']['assets']) > 0) || (isset($account['firefly_iii_accounts']['liabilities']) && count($account['firefly_iii_accounts']['liabilities']) > 0) )
<x-firefly-iii-account-generic :account="$account" :configuration="$configuration"/>
<x-firefly-iii-account-generic :flow="$flow" :account="$account" :configuration="$configuration"/>
<x-create-account-widget :account="$account" :configuration="$configuration" :currencies="$currencies ?? []"/>
@endif
</div>

Loading…
Cancel
Save