. */ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Handlers\ExchangeRate\ConversionParameters; use FireflyIII\Handlers\ExchangeRate\ConvertsAmountToPrimaryAmount; use FireflyIII\Models\Bill; /** * Class BillObserver */ class BillObserver { public function created(Bill $bill): void { $this->updatePrimaryCurrencyAmount($bill); } public function updated(Bill $bill): void { // Log::debug('Observe "updated" of a bill.'); $this->updatePrimaryCurrencyAmount($bill); } private function updatePrimaryCurrencyAmount(Bill $bill): void { $params = new ConversionParameters(); $params->user = $bill->user; $params->model = $bill; $params->originalCurrency = $bill->transactionCurrency; $params->amountField = 'amount_min'; $params->primaryAmountField = 'native_amount_min'; ConvertsAmountToPrimaryAmount::convert($params); // and again! $params->amountField = 'amount_max'; $params->primaryAmountField = 'native_amount_max'; ConvertsAmountToPrimaryAmount::convert($params); } }