12345678910111213141516171819202122232425262728293031323334353637383940 |
- <?php
-
- namespace App\Observers;
-
- use App\Enums\Accounting\BillStatus;
- use App\Models\Accounting\Bill;
- use App\Models\Accounting\DocumentLineItem;
- use App\Models\Accounting\Transaction;
- use Illuminate\Support\Facades\DB;
-
- class BillObserver
- {
- public function created(Bill $bill): void
- {
- // $bill->createInitialTransaction();
- }
-
- public function saving(Bill $bill): void
- {
- if ($bill->is_currently_overdue) {
- $bill->status = BillStatus::Overdue;
- }
- }
-
- /**
- * Handle the Bill "deleted" event.
- */
- public function deleted(Bill $bill): void
- {
- DB::transaction(function () use ($bill) {
- $bill->lineItems()->each(function (DocumentLineItem $lineItem) {
- $lineItem->delete();
- });
-
- $bill->transactions()->each(function (Transaction $transaction) {
- $transaction->delete();
- });
- });
- }
- }
|