From bb031cdeb6d7f2e1349aecf6451fdebfdc06b90b Mon Sep 17 00:00:00 2001 From: James Cole Date: Mon, 2 Feb 2026 19:59:05 +0100 Subject: [PATCH] Clean up simple observers. --- app/Handlers/Observer/AccountObserver.php | 7 +--- app/Handlers/Observer/AutoBudgetObserver.php | 35 ++++++++---------- .../Observer/AvailableBudgetObserver.php | 36 +++++++++---------- 3 files changed, 32 insertions(+), 46 deletions(-) diff --git a/app/Handlers/Observer/AccountObserver.php b/app/Handlers/Observer/AccountObserver.php index b6e4560f7e..2954042790 100644 --- a/app/Handlers/Observer/AccountObserver.php +++ b/app/Handlers/Observer/AccountObserver.php @@ -33,14 +33,9 @@ use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; -/** - * Class AccountObserver - */ + class AccountObserver { - /** - * Also delete related objects. - */ public function deleting(Account $account): void { Log::debug('Observe "deleting" of an account.'); diff --git a/app/Handlers/Observer/AutoBudgetObserver.php b/app/Handlers/Observer/AutoBudgetObserver.php index fd838dcd68..7dee632cb1 100644 --- a/app/Handlers/Observer/AutoBudgetObserver.php +++ b/app/Handlers/Observer/AutoBudgetObserver.php @@ -24,9 +24,9 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; +use FireflyIII\Handlers\ExchangeRate\ConversionParameters; +use FireflyIII\Handlers\ExchangeRate\ConvertsAmountToPrimaryAmount; use FireflyIII\Models\AutoBudget; -use FireflyIII\Support\Facades\Amount; -use FireflyIII\Support\Http\Api\ExchangeRateConverter; use Illuminate\Support\Facades\Log; class AutoBudgetObserver @@ -36,27 +36,22 @@ class AutoBudgetObserver Log::debug('Observe "created" of an auto budget.'); $this->updatePrimaryCurrencyAmount($autoBudget); } - - private function updatePrimaryCurrencyAmount(AutoBudget $autoBudget): void - { - if (!Amount::convertToPrimary($autoBudget->budget->user)) { - return; - } - $userCurrency = Amount::getPrimaryCurrencyByUserGroup($autoBudget->budget->user->userGroup); - $autoBudget->native_amount = null; - if ($autoBudget->transactionCurrency->id !== $userCurrency->id) { - $converter = new ExchangeRateConverter(); - $converter->setUserGroup($autoBudget->budget->user->userGroup); - $converter->setIgnoreSettings(true); - $autoBudget->native_amount = $converter->convert($autoBudget->transactionCurrency, $userCurrency, today(), $autoBudget->amount); - } - $autoBudget->saveQuietly(); - Log::debug('Auto budget primary currency amount is updated.'); - } - public function updated(AutoBudget $autoBudget): void { Log::debug('Observe "updated" of an auto budget.'); $this->updatePrimaryCurrencyAmount($autoBudget); } + + private function updatePrimaryCurrencyAmount(AutoBudget $autoBudget): void + { + $params = new ConversionParameters(); + $params->user = $autoBudget->budget->user; + $params->model = $autoBudget; + $params->originalCurrency = $autoBudget->transactionCurrency; + $params->amountField = 'amount'; + $params->primaryAmountField = 'native_amount'; + ConvertsAmountToPrimaryAmount::convert($params); + } + + } diff --git a/app/Handlers/Observer/AvailableBudgetObserver.php b/app/Handlers/Observer/AvailableBudgetObserver.php index f9eb735b2f..29957f75c8 100644 --- a/app/Handlers/Observer/AvailableBudgetObserver.php +++ b/app/Handlers/Observer/AvailableBudgetObserver.php @@ -24,6 +24,8 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; +use FireflyIII\Handlers\ExchangeRate\ConversionParameters; +use FireflyIII\Handlers\ExchangeRate\ConvertsAmountToPrimaryAmount; use FireflyIII\Models\AvailableBudget; use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Http\Api\ExchangeRateConverter; @@ -36,29 +38,23 @@ class AvailableBudgetObserver // Log::debug('Observe "created" of an available budget.'); $this->updatePrimaryCurrencyAmount($availableBudget); } - - private function updatePrimaryCurrencyAmount(AvailableBudget $availableBudget): void - { - if (!Amount::convertToPrimary($availableBudget->user)) { - // Log::debug('Do not update primary currency available amount of the available budget.'); - - return; - } - $userCurrency = Amount::getPrimaryCurrencyByUserGroup($availableBudget->user->userGroup); - $availableBudget->native_amount = null; - if ($availableBudget->transactionCurrency->id !== $userCurrency->id) { - $converter = new ExchangeRateConverter(); - $converter->setUserGroup($availableBudget->user->userGroup); - $converter->setIgnoreSettings(true); - $availableBudget->native_amount = $converter->convert($availableBudget->transactionCurrency, $userCurrency, today(), $availableBudget->amount); - } - $availableBudget->saveQuietly(); - Log::debug('Available budget primary currency amount is updated.'); - } - public function updated(AvailableBudget $availableBudget): void { // Log::debug('Observe "updated" of an available budget.'); $this->updatePrimaryCurrencyAmount($availableBudget); } + + + private function updatePrimaryCurrencyAmount(AvailableBudget $availableBudget): void + { + $params = new ConversionParameters(); + $params->user = $availableBudget->user; + $params->model = $availableBudget; + $params->originalCurrency = $availableBudget->transactionCurrency; + $params->amountField = 'amount'; + $params->primaryAmountField = 'native_amount'; + ConvertsAmountToPrimaryAmount::convert($params); + } + + }