. */ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\Transaction; use FireflyIII\Support\Models\AccountBalanceCalculator; /** * Class TransactionObserver */ class TransactionObserver { public function deleting(?Transaction $transaction): void { app('log')->debug('Observe "deleting" of a transaction.'); $transaction?->transactionJournal?->delete(); } public function updated(Transaction $transaction): void { app('log')->debug('Observe "updated" of a transaction.'); AccountBalanceCalculator::recalculate($transaction->account, null); if ((float)$transaction->amount > 0) { AccountBalanceCalculator::recalculateByJournal($transaction->transactionJournal); } } public function created(Transaction $transaction): void { app('log')->debug('Observe "created" of a transaction.'); AccountBalanceCalculator::recalculate($transaction->account, null); if ((float)$transaction->amount > 0) { AccountBalanceCalculator::recalculateByJournal($transaction->transactionJournal); } } }