Clean up simple observers.

This commit is contained in:
James Cole
2026-02-02 19:59:05 +01:00
parent 60026bbcba
commit bb031cdeb6
3 changed files with 32 additions and 46 deletions

View File

@@ -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);
}
}