diff --git a/app/Abstracts/Observer.php b/app/Abstracts/Observer.php new file mode 100644 index 000000000..a6edc2c59 --- /dev/null +++ b/app/Abstracts/Observer.php @@ -0,0 +1,10 @@ + true]); + Transaction::mute(); $this->deleteRelationships($this->bill, [ 'items', 'item_taxes', 'histories', 'transactions', 'recurring', 'totals' @@ -34,7 +35,7 @@ class DeleteBill extends Job $this->bill->delete(); - session()->forget('deleting_bill'); + Transaction::unmute(); return true; } diff --git a/app/Jobs/Sale/DeleteInvoice.php b/app/Jobs/Sale/DeleteInvoice.php index a2beaef8c..decf06677 100644 --- a/app/Jobs/Sale/DeleteInvoice.php +++ b/app/Jobs/Sale/DeleteInvoice.php @@ -4,6 +4,7 @@ namespace App\Jobs\Sale; use App\Abstracts\Job; use App\Models\Sale\Invoice; +use App\Observers\Transaction; class DeleteInvoice extends Job { @@ -26,7 +27,7 @@ class DeleteInvoice extends Job */ public function handle() { - session(['deleting_invoice' => true]); + Transaction::mute(); $this->deleteRelationships($this->invoice, [ 'items', 'item_taxes', 'histories', 'transactions', 'recurring', 'totals' @@ -34,7 +35,7 @@ class DeleteInvoice extends Job $this->invoice->delete(); - session()->forget('deleting_invoice'); + Transaction::unmute(); return true; } diff --git a/app/Observers/Transaction.php b/app/Observers/Transaction.php index c3985d652..fa7247e12 100644 --- a/app/Observers/Transaction.php +++ b/app/Observers/Transaction.php @@ -2,12 +2,13 @@ namespace App\Observers; +use App\Abstracts\Observer; use App\Jobs\Purchase\CreateBillHistory; use App\Jobs\Sale\CreateInvoiceHistory; use App\Models\Banking\Transaction as Model; use App\Traits\Jobs; -class Transaction +class Transaction extends Observer { use Jobs; @@ -30,10 +31,6 @@ class Transaction protected function updateInvoice($transaction) { - if (session('deleting_invoice')) { - return; - } - $invoice = $transaction->invoice; $invoice->status = ($invoice->transactions->count() > 1) ? 'partial' : 'sent'; @@ -45,10 +42,6 @@ class Transaction protected function updateBill($transaction) { - if (session('deleting_bill')) { - return; - } - $bill = $transaction->bill; $bill->status = ($bill->transactions->count() > 1) ? 'partial' : 'received';