You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace App\Observers;
  3. use App\Models\Accounting\Transaction;
  4. use App\Models\Banking\BankAccount;
  5. use Illuminate\Support\Facades\DB;
  6. class BankAccountObserver
  7. {
  8. /**
  9. * Handle the BankAccount "deleting" event.
  10. */
  11. public function deleting(BankAccount $bankAccount): void
  12. {
  13. DB::transaction(function () use ($bankAccount) {
  14. $account = $bankAccount->account;
  15. $connectedBankAccount = $bankAccount->connectedBankAccount;
  16. if ($account) {
  17. $bankAccount->transactions()->each(fn (Transaction $transaction) => $transaction->delete());
  18. $account->delete();
  19. }
  20. if ($connectedBankAccount) {
  21. $connectedBankAccount->delete();
  22. }
  23. });
  24. }
  25. }