From 50803a2c2415ca55a92a84976e16174223b012b9 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 26 Apr 2025 17:29:10 +0200 Subject: [PATCH] Add transfer type --- .../System/RecalculatesRunningBalance.php | 65 +++++++++++++++++++ .../Models/AccountBalanceCalculator.php | 1 + resources/views/list/groups.twig | 6 ++ 3 files changed, 72 insertions(+) create mode 100644 app/Console/Commands/System/RecalculatesRunningBalance.php diff --git a/app/Console/Commands/System/RecalculatesRunningBalance.php b/app/Console/Commands/System/RecalculatesRunningBalance.php new file mode 100644 index 0000000000..c571dda59d --- /dev/null +++ b/app/Console/Commands/System/RecalculatesRunningBalance.php @@ -0,0 +1,65 @@ +friendlyInfo('Will recalculate account balances. This may take a LONG time. Please be patient.'); + $this->correctBalanceAmounts($this->option('force')); + $this->friendlyInfo('Done recalculating account balances.'); + + return 0; + } + $this->friendlyWarning('This command has been disabled.'); + } + + private function correctBalanceAmounts(bool $forced): void + { + AccountBalanceCalculator::recalculateAll($forced); + } +} diff --git a/app/Support/Models/AccountBalanceCalculator.php b/app/Support/Models/AccountBalanceCalculator.php index 554936da51..b51af3d7f7 100644 --- a/app/Support/Models/AccountBalanceCalculator.php +++ b/app/Support/Models/AccountBalanceCalculator.php @@ -89,6 +89,7 @@ class AccountBalanceCalculator } $set = $query->get(['transactions.id', 'transactions.balance_dirty', 'transactions.transaction_currency_id', 'transaction_journals.date', 'transactions.account_id', 'transactions.amount']); + Log::debug(sprintf('Counted %d transaction(s)', $set->count())); // the balance value is an array. // first entry is the balance, second is the date. diff --git a/resources/views/list/groups.twig b/resources/views/list/groups.twig index 0bd2df088e..dbe736414d 100644 --- a/resources/views/list/groups.twig +++ b/resources/views/list/groups.twig @@ -266,6 +266,12 @@ {% else %} {{ formatAmountBySymbol(transaction.source_balance_after, transaction.currency_symbol, transaction.currency_decimal_places) }} {% endif %} + {% elseif transaction.transaction_type_type == 'Transfer' %} + {% if account.id == transaction.source_account_id %} + {{ formatAmountBySymbol(transaction.source_balance_after, transaction.currency_symbol, transaction.currency_decimal_places) }} + {% else %} + {{ formatAmountBySymbol(transaction.destination_balance_after, transaction.currency_symbol, transaction.currency_decimal_places) }} + {% endif %} {% else %}   {% endif %}