From d5e52e99e01bcdd1faf58cf5aaafe3f08b25ac5e Mon Sep 17 00:00:00 2001 From: James Cole Date: Tue, 18 Jun 2024 19:44:22 +0200 Subject: [PATCH] Fix #8981 --- app/Support/Models/AccountBalanceCalculator.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/Support/Models/AccountBalanceCalculator.php b/app/Support/Models/AccountBalanceCalculator.php index fcf2afecdf..682a7e8877 100644 --- a/app/Support/Models/AccountBalanceCalculator.php +++ b/app/Support/Models/AccountBalanceCalculator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Models; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\AccountBalance; use FireflyIII\Models\Transaction; @@ -122,13 +123,25 @@ class AccountBalanceCalculator // first create for normal currency: $entry = $this->getAccountBalanceByAccount($account, $transactionCurrency); - $entry->balance = bcadd((string) $entry->balance, $sumAmount); + try { + $entry->balance = bcadd((string) $entry->balance, $sumAmount); + } catch(\ValueError $e) { + $message = sprintf('[a] Could not add "%s" to "%s": %s', $entry->balance, $sumAmount, $e->getMessage()); + Log::error($message); + throw new FireflyException($message, 0, $e); + } $entry->save(); // then do foreign amount, if present: if ($foreignCurrency > 0) { $entry = $this->getAccountBalanceByAccount($account, $foreignCurrency); + try { $entry->balance = bcadd((string) $entry->balance, $sumForeignAmount); + } catch(\ValueError $e) { + $message = sprintf('[b] Could not add "%s" to "%s": %s', $entry->balance, $sumForeignAmount, $e->getMessage()); + Log::error($message); + throw new FireflyException($message, 0, $e); + } $entry->save(); } }