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.

TransactionObserver.php 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Observers;
  3. use App\Models\Accounting\JournalEntry;
  4. use App\Models\Accounting\Transaction;
  5. use Illuminate\Support\Facades\DB;
  6. class TransactionObserver
  7. {
  8. /**
  9. * Handle the Transaction "created" event.
  10. */
  11. public function created(Transaction $transaction): void
  12. {
  13. //
  14. }
  15. /**
  16. * Handle the Transaction "updated" event.
  17. */
  18. public function updated(Transaction $transaction): void
  19. {
  20. //
  21. }
  22. /**
  23. * Handle the Transaction "deleting" event.
  24. */
  25. public function deleting(Transaction $transaction): void
  26. {
  27. DB::transaction(static function () use ($transaction) {
  28. $transaction->journalEntries()->each(fn (JournalEntry $entry) => $entry->delete());
  29. });
  30. }
  31. /**
  32. * Handle the Transaction "deleted" event.
  33. */
  34. public function deleted(Transaction $transaction): void
  35. {
  36. //
  37. }
  38. /**
  39. * Handle the Transaction "restored" event.
  40. */
  41. public function restored(Transaction $transaction): void
  42. {
  43. //
  44. }
  45. /**
  46. * Handle the Transaction "force deleted" event.
  47. */
  48. public function forceDeleted(Transaction $transaction): void
  49. {
  50. //
  51. }
  52. }