. */ declare(strict_types=1); namespace FireflyIII\Handlers\Observer; use FireflyIII\Models\TransactionJournal; /** * Class TransactionJournalObserver */ class TransactionJournalObserver { public function deleting(TransactionJournal $transactionJournal): void { app('log')->debug('Observe "deleting" of a transaction journal.'); // to make sure the listener doesn't get back to use and loop TransactionJournal::withoutEvents(static function () use ($transactionJournal): void { foreach ($transactionJournal->transactions()->get() as $transaction) { $transaction->delete(); } }); foreach ($transactionJournal->attachments()->get() as $attachment) { $attachment->delete(); } $transactionJournal->locations()->delete(); $transactionJournal->sourceJournalLinks()->delete(); $transactionJournal->destJournalLinks()->delete(); $transactionJournal->auditLogEntries()->delete(); } }