diff --git a/app/Abstracts/DocumentModel.php b/app/Abstracts/DocumentModel.php index 7cd722822..b44c16bb9 100644 --- a/app/Abstracts/DocumentModel.php +++ b/app/Abstracts/DocumentModel.php @@ -3,7 +3,7 @@ namespace App\Abstracts; use App\Abstracts\Model; -use App\Events\Sale\InvoicePaidCalculated; +use App\Events\Document\PaidAmountCalculated; use App\Models\Setting\Tax; use App\Traits\Currencies; use App\Traits\DateTime; @@ -117,12 +117,11 @@ abstract class DocumentModel extends Model $this->setAttribute('reconciled', $reconciled); // TODO: find a cleaner way compatible with observer pattern - $invoice = clone $this; - $invoice->paid_amount = $paid; + $model = clone $this; + $model->paid_amount = $paid; + event(new PaidAmountCalculated($model)); - event(new InvoicePaidCalculated($invoice)); - - return round($invoice->paid_amount, $precision); + return round($model->paid_amount, $precision); } /** * Get the status label. diff --git a/app/Events/Document/PaidAmountCalculated.php b/app/Events/Document/PaidAmountCalculated.php new file mode 100644 index 000000000..ce5b4028a --- /dev/null +++ b/app/Events/Document/PaidAmountCalculated.php @@ -0,0 +1,22 @@ +model = $model; + } +} diff --git a/app/Events/Document/TransactionsCounted.php b/app/Events/Document/TransactionsCounted.php new file mode 100644 index 000000000..0fccf7804 --- /dev/null +++ b/app/Events/Document/TransactionsCounted.php @@ -0,0 +1,22 @@ +model = $model; + } +} diff --git a/app/Events/Sale/InvoicePaidCalculated.php b/app/Events/Sale/InvoicePaidCalculated.php deleted file mode 100644 index e092e077a..000000000 --- a/app/Events/Sale/InvoicePaidCalculated.php +++ /dev/null @@ -1,22 +0,0 @@ -invoice = $invoice; - } -} diff --git a/app/Observers/Transaction.php b/app/Observers/Transaction.php index fa7247e12..d668f23dd 100644 --- a/app/Observers/Transaction.php +++ b/app/Observers/Transaction.php @@ -3,6 +3,7 @@ namespace App\Observers; use App\Abstracts\Observer; +use App\Events\Document\TransactionsCounted; use App\Jobs\Purchase\CreateBillHistory; use App\Jobs\Sale\CreateInvoiceHistory; use App\Models\Banking\Transaction as Model; @@ -33,7 +34,12 @@ class Transaction extends Observer { $invoice = $transaction->invoice; - $invoice->status = ($invoice->transactions->count() > 1) ? 'partial' : 'sent'; + // TODO: find a cleaner way compatible with observer pattern + $model = clone $invoice; + $model->transactions_count = $invoice->transactions->count(); + event(new TransactionsCounted($model)); + + $invoice->status = ($model->transactions_count > 1) ? 'partial' : 'sent'; $invoice->save(); @@ -44,7 +50,12 @@ class Transaction extends Observer { $bill = $transaction->bill; - $bill->status = ($bill->transactions->count() > 1) ? 'partial' : 'received'; + // TODO: find a cleaner way compatible with observer pattern + $model = clone $bill; + $model->transactions_count = $bill->transactions->count(); + event(new TransactionsCounted($model)); + + $bill->status = ($model->transactions_count > 1) ? 'partial' : 'received'; $bill->save();