diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index 83e6912205ab..e51526d9e414 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -3,11 +3,7 @@ namespace App\Models; use App\Events\InvoiceInvitationWasEmailed; -use App\Events\InvoiceWasCreated; -use App\Events\InvoiceWasUpdated; use App\Events\QuoteInvitationWasEmailed; -use App\Events\QuoteWasCreated; -use App\Events\QuoteWasUpdated; use App\Libraries\CurlUtils; use App\Models\Activity; use App\Models\Traits\ChargesFees; @@ -1529,19 +1525,3 @@ Invoice::creating(function ($invoice) { $invoice->account->incrementCounter($invoice); } }); - -Invoice::created(function ($invoice) { - if ($invoice->isType(INVOICE_TYPE_QUOTE)) { - event(new QuoteWasCreated($invoice)); - } else { - event(new InvoiceWasCreated($invoice)); - } -}); - -Invoice::updating(function ($invoice) { - if ($invoice->isType(INVOICE_TYPE_QUOTE)) { - event(new QuoteWasUpdated($invoice)); - } else { - event(new InvoiceWasUpdated($invoice)); - } -}); diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php index 0a6ea25ec70c..31fd76a585a1 100644 --- a/app/Ninja/Repositories/InvoiceRepository.php +++ b/app/Ninja/Repositories/InvoiceRepository.php @@ -2,6 +2,10 @@ namespace App\Ninja\Repositories; +use App\Events\InvoiceWasCreated; +use App\Events\InvoiceWasUpdated; +use App\Events\QuoteWasCreated; +use App\Events\QuoteWasUpdated; use App\Jobs\SendInvoiceEmail; use App\Models\Account; use App\Models\Client; @@ -693,6 +697,8 @@ class InvoiceRepository extends BaseRepository $invoice = $this->saveInvitations($invoice); } + $this->dispachEvents($invoice); + return $invoice; } @@ -734,6 +740,23 @@ class InvoiceRepository extends BaseRepository return $invoice; } + private function dispachEvents($invoice) + { + if ($invoice->isType(INVOICE_TYPE_QUOTE)) { + if ($invoice->wasRecentlyCreated) { + event(new QuoteWasCreated($invoice)); + } else { + event(new QuoteWasUpdated($invoice)); + } + } else { + if ($invoice->wasRecentlyCreated) { + event(new InvoiceWasCreated($invoice)); + } else { + event(new InvoiceWasUpdated($invoice)); + } + } + } + /** * @param Invoice $invoice * @param null $quotePublicId