From 6d4aca54dec949ca12c4d447173c4eb3bf68f553 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 7 Feb 2026 06:32:11 +0100 Subject: [PATCH] Fix #11246 --- .../Transaction/ShowController.php | 4 +++- changelog.md | 1 + resources/views/list/groups.twig | 24 +++++++++---------- resources/views/transactions/show.twig | 13 +++++----- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/Transaction/ShowController.php b/app/Http/Controllers/Transaction/ShowController.php index bb9cceeec1..7b52f21705 100644 --- a/app/Http/Controllers/Transaction/ShowController.php +++ b/app/Http/Controllers/Transaction/ShowController.php @@ -194,7 +194,7 @@ class ShowController extends Controller foreach ($group['transactions'] as $transaction) { // add normal amount: $symbol = $transaction['currency_symbol']; - $amounts[$symbol] ??= ['amount' => '0', 'symbol' => $symbol, 'decimal_places' => $transaction['currency_decimal_places']]; + $amounts[$symbol] ??= ['amount' => '0', 'symbol' => $symbol, 'decimal_places' => $transaction['currency_decimal_places'],'approximate' =>false]; $amounts[$symbol]['amount'] = bcadd($amounts[$symbol]['amount'], (string) $transaction['amount']); // add foreign amount: @@ -207,6 +207,7 @@ class ShowController extends Controller $foreignSymbol = $transaction['foreign_currency_symbol']; $amounts[$foreignSymbol] ??= [ 'amount' => '0', + 'approximate' =>false, 'symbol' => $foreignSymbol, 'decimal_places' => $transaction['foreign_currency_decimal_places'], ]; @@ -222,6 +223,7 @@ class ShowController extends Controller $primarySymbol = $this->primaryCurrency->symbol; $amounts[$primarySymbol] ??= [ 'amount' => '0', + 'approximate' =>true, 'symbol' => $this->primaryCurrency->symbol, 'decimal_places' => $this->primaryCurrency->decimal_places, ]; diff --git a/changelog.md b/changelog.md index e50a1ac8d1..7a80d71eed 100644 --- a/changelog.md +++ b/changelog.md @@ -9,6 +9,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Batch processing. Firefly III now has a setting (under `/settings`) that allows you to send `"batch_processing": true` with new transactions over the API. If this setting is enabled and the value is `true`, Firefly III will not fire rules, webhooks or other events untill you either send `false` with a transaction OR use the [API end point](https://api-docs.firefly-iii.org/) `/v1/api/batch/finish`. This should speed up (large) data imports. It's a little experimental, use at your own risk. - [Issue 11614](https://github.com/firefly-iii/firefly-iii/issues/11614) (Add New Taiwan Dollar to Currency Seeder) reported by @nick322 +- #11246 ### Changed diff --git a/resources/views/list/groups.twig b/resources/views/list/groups.twig index 043bfcadc6..2294ea3097 100644 --- a/resources/views/list/groups.twig +++ b/resources/views/list/groups.twig @@ -64,7 +64,7 @@ {% if group.transaction_type == 'Deposit' %} {{ formatAmountBySymbol(sum.amount*-1, sum.currency_symbol, sum.currency_decimal_places) }} {% if convertToPrimary and 0 != sum.pc_amount %} - ({{ formatAmountBySymbol(sum.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(sum.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% if loop.index != group.sums|length %},{% endif %} @@ -72,14 +72,14 @@ {{ formatAmountBySymbol(sum.amount*-1, sum.currency_symbol, sum.currency_decimal_places, false) }} {% if convertToPrimary and 0 != sum.pc_amount %} - ({{ formatAmountBySymbol(sum.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(sum.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% if loop.index != group.sums|length %},{% endif %} {% else %} {{ formatAmountBySymbol(sum.amount, sum.currency_symbol, sum.currency_decimal_places) }} {% if convertToPrimary and 0 != sum.pc_amount %} - ({{ formatAmountBySymbol(sum.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(sum.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% if loop.index != group.sums|length %},{% endif %} {% endif %} @@ -174,7 +174,7 @@ {% endif %} {# primary currency amount of deposit #} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {# transfer #} {% elseif transaction.transaction_type_type == 'Transfer' %} @@ -194,7 +194,7 @@ {# primary currency amount of transfer #} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {# opening balance #} @@ -205,7 +205,7 @@ ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% else %} {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_decimal_places) }} @@ -213,7 +213,7 @@ ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% endif %} {# reconciliation #} @@ -224,7 +224,7 @@ ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% else %} {{ formatAmountBySymbol(transaction.amount, transaction.currency_symbol, transaction.currency_decimal_places) }} @@ -232,7 +232,7 @@ ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% endif %} {# liability credit #} @@ -243,7 +243,7 @@ ({{ formatAmountBySymbol(transaction.foreign_amount, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% else %} {{ formatAmountBySymbol(transaction.amount*-1, transaction.currency_symbol, transaction.currency_decimal_places) }} @@ -251,7 +251,7 @@ ({{ formatAmountBySymbol(transaction.foreign_amount*-1, transaction.foreign_currency_symbol, transaction.foreign_currency_decimal_places) }}) {% endif %} {% if convertToPrimary and 0 != transaction.pc_amount %} - ({{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% endif %} @@ -267,7 +267,7 @@ {% endif %} {# primary currency amount of withdrawal, if not in foreign currency #} {% if convertToPrimary and 0 != transaction.pc_amount and primaryCurrency.id != transaction.foreign_currency_id %} - ({{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(transaction.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% endif %} {% endif %} diff --git a/resources/views/transactions/show.twig b/resources/views/transactions/show.twig index 080faf17cf..985150ed0e 100644 --- a/resources/views/transactions/show.twig +++ b/resources/views/transactions/show.twig @@ -164,13 +164,12 @@ {% for amount in amounts %} {% if first.transaction_type_type == 'Withdrawal' %} - {{ formatAmountBySymbol(amount.amount,amount.symbol, amount.decimal_places) }}{% if loop.index0 != amounts|length -1 %}, {% endif %} + {% if amount.approximate %}~ {% endif %}{{ formatAmountBySymbol(amount.amount,amount.symbol, amount.decimal_places) }}{% if loop.index0 != amounts|length -1 %}, {% endif %} {% elseif first.transaction_type_type == 'Deposit' %} - {{ formatAmountBySymbol(amount.amount*-1,amount.symbol, amount.decimal_places) }}{% if loop.index0 != amounts|length -1 %}, {% endif %} + {% if amount.approximate %}~ {% endif %}{{ formatAmountBySymbol(amount.amount*-1,amount.symbol, amount.decimal_places) }}{% if loop.index0 != amounts|length -1 %}, {% endif %} {% elseif first.transaction_type_type == 'Transfer' %} - - {{ formatAmountBySymbol(amount.amount*-1, amount.symbol, amount.decimal_places, false) }}{% if loop.index0 != amounts|length -1 %}, {% endif %} + {% if amount.approximate %}~ {% endif %}{{ formatAmountBySymbol(amount.amount*-1, amount.symbol, amount.decimal_places, false) }}{% if loop.index0 != amounts|length -1 %}, {% endif %} {% elseif first.transaction_type_type == 'Opening balance' %} {# Opening balance stored amount is always negative: find out which way the money goes #} @@ -318,12 +317,12 @@ {% if null != journal.pc_amount and primaryCurrency.id != journal.currency_id and primaryCurrency.id != journal.foreign_currency_id %} {% if first.transaction_type_type == 'Withdrawal' %} - ({{ formatAmountBySymbol(journal.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(journal.pc_amount, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% elseif first.transaction_type_type == 'Deposit' %} - ({{ formatAmountBySymbol(journal.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) + (~ {{ formatAmountBySymbol(journal.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places) }}) {% elseif first.transaction_type_type == 'Transfer' %} - ({{ formatAmountBySymbol(journal.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places, false) }}) + (~ {{ formatAmountBySymbol(journal.pc_amount*-1, primaryCurrency.symbol, primaryCurrency.decimal_places, false) }}) {% endif %} {% endif %}