From 1d438d14d3732d16c609977aaaafe14c27d9c85e Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 12 Dec 2023 18:43:55 +1100 Subject: [PATCH] Refactor for webhooks --- app/Http/Controllers/CreditController.php | 58 +++++++++------------ app/Http/Controllers/EmailController.php | 28 ++++++---- app/Jobs/Cron/AutoBill.php | 11 ++-- app/Jobs/Invoice/BulkInvoiceJob.php | 9 ++-- app/Jobs/Ninja/SendReminders.php | 1 + app/Jobs/RecurringInvoice/SendRecurring.php | 32 +++++++----- app/Jobs/Util/ReminderJob.php | 21 ++++---- app/Listeners/Mail/MailSentListener.php | 8 +-- app/Services/Credit/SendEmail.php | 9 ++-- app/Services/Credit/TriggeredActions.php | 12 +++-- app/Services/Invoice/MarkSent.php | 3 +- app/Services/Invoice/SendEmail.php | 13 +++-- app/Services/Invoice/TriggeredActions.php | 22 ++++---- app/Services/Quote/SendEmail.php | 5 +- app/Services/Quote/TriggeredActions.php | 13 +++-- 15 files changed, 136 insertions(+), 109 deletions(-) diff --git a/app/Http/Controllers/CreditController.php b/app/Http/Controllers/CreditController.php index 9ad71d0675..facaf957a1 100644 --- a/app/Http/Controllers/CreditController.php +++ b/app/Http/Controllers/CreditController.php @@ -11,36 +11,37 @@ namespace App\Http\Controllers; -use App\Events\Credit\CreditWasCreated; -use App\Events\Credit\CreditWasUpdated; -use App\Factory\CloneCreditFactory; +use App\Utils\Ninja; +use App\Models\Client; +use App\Models\Credit; +use App\Models\Account; +use App\Models\Invoice; +use App\Models\Webhook; +use Illuminate\Http\Response; use App\Factory\CreditFactory; use App\Filters\CreditFilters; -use App\Http\Requests\Credit\ActionCreditRequest; +use App\Jobs\Credit\ZipCredits; +use App\Utils\Traits\MakesHash; +use App\Jobs\Entity\EmailEntity; +use App\Factory\CloneCreditFactory; +use App\Services\PdfMaker\PdfMerge; +use Illuminate\Support\Facades\App; +use App\Utils\Traits\SavesDocuments; +use App\Repositories\CreditRepository; +use App\Events\Credit\CreditWasCreated; +use App\Events\Credit\CreditWasUpdated; +use App\Transformers\CreditTransformer; +use Illuminate\Support\Facades\Storage; +use App\Services\Template\TemplateAction; use App\Http\Requests\Credit\BulkCreditRequest; -use App\Http\Requests\Credit\CreateCreditRequest; -use App\Http\Requests\Credit\DestroyCreditRequest; use App\Http\Requests\Credit\EditCreditRequest; use App\Http\Requests\Credit\ShowCreditRequest; use App\Http\Requests\Credit\StoreCreditRequest; +use App\Http\Requests\Credit\ActionCreditRequest; +use App\Http\Requests\Credit\CreateCreditRequest; use App\Http\Requests\Credit\UpdateCreditRequest; use App\Http\Requests\Credit\UploadCreditRequest; -use App\Jobs\Credit\ZipCredits; -use App\Jobs\Entity\EmailEntity; -use App\Models\Account; -use App\Models\Client; -use App\Models\Credit; -use App\Models\Invoice; -use App\Repositories\CreditRepository; -use App\Services\PdfMaker\PdfMerge; -use App\Services\Template\TemplateAction; -use App\Transformers\CreditTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use App\Utils\Traits\SavesDocuments; -use Illuminate\Http\Response; -use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Storage; +use App\Http\Requests\Credit\DestroyCreditRequest; /** * Class CreditController. @@ -638,23 +639,14 @@ class CreditController extends BaseController } break; case 'email': - - $credit->invitations->load('contact.client.country', 'credit.client.country', 'credit.company')->each(function ($invitation) use ($credit) { - EmailEntity::dispatch($invitation, $credit->company, 'credit'); - }); - - - if (! $bulk) { - return response()->json(['message'=>'email sent'], 200); - } - break; - case 'send_email': $credit->invitations->load('contact.client.country', 'credit.client.country', 'credit.company')->each(function ($invitation) use ($credit) { EmailEntity::dispatch($invitation, $credit->company, 'credit'); }); + $credit->sendEvent(Webhook::EVENT_SENT_CREDIT, "client"); + if (! $bulk) { return response()->json(['message'=>'email sent'], 200); } diff --git a/app/Http/Controllers/EmailController.php b/app/Http/Controllers/EmailController.php index 5bdcdb8ac7..6da3f9bc3b 100644 --- a/app/Http/Controllers/EmailController.php +++ b/app/Http/Controllers/EmailController.php @@ -11,25 +11,26 @@ namespace App\Http\Controllers; -use App\Events\Credit\CreditWasEmailed; -use App\Events\Quote\QuoteWasEmailed; -use App\Http\Requests\Email\SendEmailRequest; -use App\Jobs\PurchaseOrder\PurchaseOrderEmail; +use App\Utils\Ninja; +use App\Models\Quote; use App\Models\Credit; use App\Models\Invoice; +use App\Models\Webhook; use App\Models\PurchaseOrder; -use App\Models\Quote; -use App\Models\RecurringInvoice; use App\Services\Email\Email; +use App\Utils\Traits\MakesHash; +use App\Models\RecurringInvoice; use App\Services\Email\EmailObject; +use App\Events\Quote\QuoteWasEmailed; +use App\Transformers\QuoteTransformer; +use Illuminate\Mail\Mailables\Address; +use App\Events\Credit\CreditWasEmailed; use App\Transformers\CreditTransformer; use App\Transformers\InvoiceTransformer; +use App\Http\Requests\Email\SendEmailRequest; +use App\Jobs\PurchaseOrder\PurchaseOrderEmail; use App\Transformers\PurchaseOrderTransformer; -use App\Transformers\QuoteTransformer; use App\Transformers\RecurringInvoiceTransformer; -use App\Utils\Ninja; -use App\Utils\Traits\MakesHash; -use Illuminate\Mail\Mailables\Address; class EmailController extends BaseController { @@ -100,6 +101,7 @@ class EmailController extends BaseController if ($entity_obj->invitations->count() >= 1) { $entity_obj->entityEmailEvent($entity_obj->invitations->first(), 'invoice', $template); + $entity_obj->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); } } @@ -109,6 +111,8 @@ class EmailController extends BaseController if ($entity_obj->invitations->count() >= 1) { event(new QuoteWasEmailed($entity_obj->invitations->first(), $entity_obj->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null), 'quote')); + $entity_obj->sendEvent(Webhook::EVENT_SENT_QUOTE, "client"); + } } @@ -118,6 +122,7 @@ class EmailController extends BaseController if ($entity_obj->invitations->count() >= 1) { event(new CreditWasEmailed($entity_obj->invitations->first(), $entity_obj->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null), 'credit')); + $entity_obj->sendEvent(Webhook::EVENT_SENT_CREDIT, "client"); } } @@ -143,7 +148,8 @@ class EmailController extends BaseController $data['template'] = $template; PurchaseOrderEmail::dispatch($entity_obj, $entity_obj->company, $data); - + $entity_obj->sendEvent(Webhook::EVENT_SENT_PURCHASE_ORDER, "vendor"); + return $this->itemResponse($entity_obj); } diff --git a/app/Jobs/Cron/AutoBill.php b/app/Jobs/Cron/AutoBill.php index cc48b91423..035f15f2b6 100644 --- a/app/Jobs/Cron/AutoBill.php +++ b/app/Jobs/Cron/AutoBill.php @@ -11,14 +11,15 @@ namespace App\Jobs\Cron; -use App\Jobs\Entity\EmailEntity; -use App\Libraries\MultiDB; use App\Models\Invoice; +use App\Models\Webhook; +use App\Libraries\MultiDB; use Illuminate\Bus\Queueable; +use App\Jobs\Entity\EmailEntity; +use Illuminate\Queue\SerializesModels; +use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; -use Illuminate\Queue\InteractsWithQueue; -use Illuminate\Queue\SerializesModels; class AutoBill implements ShouldQueue { @@ -77,6 +78,8 @@ class AutoBill implements ShouldQueue } }); + $invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); + } } diff --git a/app/Jobs/Invoice/BulkInvoiceJob.php b/app/Jobs/Invoice/BulkInvoiceJob.php index be2224d123..353ce69b25 100644 --- a/app/Jobs/Invoice/BulkInvoiceJob.php +++ b/app/Jobs/Invoice/BulkInvoiceJob.php @@ -11,13 +11,14 @@ namespace App\Jobs\Invoice; -use App\Jobs\Entity\EmailEntity; use App\Models\Invoice; +use App\Models\Webhook; use Illuminate\Bus\Queueable; +use App\Jobs\Entity\EmailEntity; +use Illuminate\Queue\SerializesModels; +use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; -use Illuminate\Queue\InteractsWithQueue; -use Illuminate\Queue\SerializesModels; class BulkInvoiceJob implements ShouldQueue { @@ -50,6 +51,8 @@ class BulkInvoiceJob implements ShouldQueue if ($this->invoice->invitations->count() >= 1) { $this->invoice->entityEmailEvent($this->invoice->invitations->first(), 'invoice', $this->reminder_template); + $this->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); + } } } diff --git a/app/Jobs/Ninja/SendReminders.php b/app/Jobs/Ninja/SendReminders.php index a83364dd2c..2a2097a519 100644 --- a/app/Jobs/Ninja/SendReminders.php +++ b/app/Jobs/Ninja/SendReminders.php @@ -215,6 +215,7 @@ class SendReminders implements ShouldQueue EmailEntity::dispatch($invitation, $invitation->company, $template)->delay(10); event(new InvoiceWasEmailed($invoice->invitations->first(), $invoice->company, Ninja::eventVars(), $template)); + $invoice->sendEvent(Webhook::EVENT_REMIND_INVOICE, "client"); } }); diff --git a/app/Jobs/RecurringInvoice/SendRecurring.php b/app/Jobs/RecurringInvoice/SendRecurring.php index b2247a93f7..f8a53377cb 100644 --- a/app/Jobs/RecurringInvoice/SendRecurring.php +++ b/app/Jobs/RecurringInvoice/SendRecurring.php @@ -11,24 +11,25 @@ namespace App\Jobs\RecurringInvoice; -use App\DataMapper\Analytics\SendRecurringFailure; -use App\Events\Invoice\InvoiceWasCreated; -use App\Factory\InvoiceInvitationFactory; -use App\Factory\RecurringInvoiceToInvoiceFactory; -use App\Jobs\Cron\AutoBill; -use App\Jobs\Entity\EmailEntity; -use App\Models\Invoice; -use App\Models\RecurringInvoice; -use App\Utils\Ninja; -use App\Utils\Traits\GeneratesCounter; -use App\Utils\Traits\MakesHash; use Carbon\Carbon; +use App\Utils\Ninja; +use App\Models\Invoice; +use App\Models\Webhook; +use App\Jobs\Cron\AutoBill; use Illuminate\Bus\Queueable; -use Illuminate\Contracts\Queue\ShouldQueue; -use Illuminate\Foundation\Bus\Dispatchable; -use Illuminate\Queue\InteractsWithQueue; +use App\Utils\Traits\MakesHash; +use App\Jobs\Entity\EmailEntity; +use App\Models\RecurringInvoice; +use App\Utils\Traits\GeneratesCounter; use Illuminate\Queue\SerializesModels; use Turbo124\Beacon\Facades\LightLogs; +use Illuminate\Queue\InteractsWithQueue; +use App\Events\Invoice\InvoiceWasCreated; +use App\Factory\InvoiceInvitationFactory; +use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Foundation\Bus\Dispatchable; +use App\Factory\RecurringInvoiceToInvoiceFactory; +use App\DataMapper\Analytics\SendRecurringFailure; class SendRecurring implements ShouldQueue { @@ -117,6 +118,7 @@ class SendRecurring implements ShouldQueue //04-08-2023 edge case to support where online payment notifications are not enabled if(!$invoice->client->getSetting('client_online_payment_notification')) { $this->sendRecurringEmails($invoice); + $invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); } } elseif ($invoice->auto_bill_enabled && $invoice->client->getSetting('auto_bill_date') == 'on_due_date' && $invoice->client->getSetting('auto_email_invoice') && ($invoice->due_date && Carbon::parse($invoice->due_date)->startOfDay()->lte(now()->startOfDay()))) { nlog("attempting to autobill {$invoice->number}"); @@ -125,10 +127,12 @@ class SendRecurring implements ShouldQueue //04-08-2023 edge case to support where online payment notifications are not enabled if(!$invoice->client->getSetting('client_online_payment_notification')) { $this->sendRecurringEmails($invoice); + $invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); } } elseif ($invoice->client->getSetting('auto_email_invoice')) { $this->sendRecurringEmails($invoice); + $invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); } } diff --git a/app/Jobs/Util/ReminderJob.php b/app/Jobs/Util/ReminderJob.php index e4cab43e6a..80817578c2 100644 --- a/app/Jobs/Util/ReminderJob.php +++ b/app/Jobs/Util/ReminderJob.php @@ -11,22 +11,23 @@ namespace App\Jobs\Util; +use App\Utils\Ninja; +use App\Models\Invoice; +use App\Models\Webhook; +use App\Libraries\MultiDB; +use Illuminate\Bus\Queueable; +use Illuminate\Support\Carbon; use App\DataMapper\InvoiceItem; use App\Factory\InvoiceFactory; use App\Jobs\Entity\EmailEntity; -use App\Libraries\MultiDB; -use App\Models\Invoice; -use App\Utils\Ninja; use App\Utils\Traits\MakesDates; +use Illuminate\Support\Facades\App; use App\Utils\Traits\MakesReminders; -use Illuminate\Bus\Queueable; +use Illuminate\Support\Facades\Auth; +use Illuminate\Queue\SerializesModels; +use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; -use Illuminate\Queue\InteractsWithQueue; -use Illuminate\Queue\SerializesModels; -use Illuminate\Support\Carbon; -use Illuminate\Support\Facades\App; -use Illuminate\Support\Facades\Auth; class ReminderJob implements ShouldQueue { @@ -150,6 +151,7 @@ class ReminderJob implements ShouldQueue EmailEntity::dispatch($invitation, $invitation->company, $reminder_template); nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); $invoice->entityEmailEvent($invitation, $reminder_template); + $invoice->sendEvent(Webhook::EVENT_REMIND_INVOICE, "client"); } }); } @@ -220,6 +222,7 @@ class ReminderJob implements ShouldQueue EmailEntity::dispatch($invitation, $invitation->company, $reminder_template); nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); $invoice->entityEmailEvent($invitation, $reminder_template); + $invoice->sendEvent(Webhook::EVENT_REMIND_INVOICE, "client"); } }); } diff --git a/app/Listeners/Mail/MailSentListener.php b/app/Listeners/Mail/MailSentListener.php index 3ad8c7a70c..a0389d14de 100644 --- a/app/Listeners/Mail/MailSentListener.php +++ b/app/Listeners/Mail/MailSentListener.php @@ -76,18 +76,18 @@ class MailSentListener implements ShouldQueue foreach (MultiDB::$dbs as $db) { if ($invitation = InvoiceInvitation::on($db)->where('key', $key)->first()) { - $invitation->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); + // $invitation->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); return $invitation; } elseif ($invitation = QuoteInvitation::on($db)->where('key', $key)->first()) { - $invitation->quote->sendEvent(Webhook::EVENT_SENT_QUOTE, "client"); + // $invitation->quote->sendEvent(Webhook::EVENT_SENT_QUOTE, "client"); return $invitation; } elseif ($invitation = RecurringInvoiceInvitation::on($db)->where('key', $key)->first()) { return $invitation; } elseif ($invitation = CreditInvitation::on($db)->where('key', $key)->first()) { - $invitation->credit->sendEvent(Webhook::EVENT_SENT_CREDIT, "client"); + // $invitation->credit->sendEvent(Webhook::EVENT_SENT_CREDIT, "client"); return $invitation; } elseif ($invitation = PurchaseOrderInvitation::on($db)->where('key', $key)->first()) { - $invitation->purchase_order->sendEvent(Webhook::EVENT_SENT_PURCHASE_ORDER, "vendor"); + // $invitation->purchase_order->sendEvent(Webhook::EVENT_SENT_PURCHASE_ORDER, "vendor"); return $invitation; } } diff --git a/app/Services/Credit/SendEmail.php b/app/Services/Credit/SendEmail.php index 9c2fd948af..109974f77a 100644 --- a/app/Services/Credit/SendEmail.php +++ b/app/Services/Credit/SendEmail.php @@ -11,10 +11,11 @@ namespace App\Services\Credit; -use App\Events\Credit\CreditWasEmailed; -use App\Jobs\Entity\EmailEntity; -use App\Models\ClientContact; use App\Utils\Ninja; +use App\Models\Webhook; +use App\Models\ClientContact; +use App\Jobs\Entity\EmailEntity; +use App\Events\Credit\CreditWasEmailed; class SendEmail { @@ -52,6 +53,8 @@ class SendEmail if ($this->credit->invitations->count() >= 1) { event(new CreditWasEmailed($this->credit->invitations->first(), $this->credit->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null), 'credit')); + $this->credit->sendEvent(Webhook::EVENT_SENT_CREDIT, "client"); + } } diff --git a/app/Services/Credit/TriggeredActions.php b/app/Services/Credit/TriggeredActions.php index 40eba04bce..04ce784ad5 100644 --- a/app/Services/Credit/TriggeredActions.php +++ b/app/Services/Credit/TriggeredActions.php @@ -11,13 +11,14 @@ namespace App\Services\Credit; -use App\Events\Credit\CreditWasEmailed; -use App\Jobs\Entity\EmailEntity; -use App\Models\Credit; -use App\Services\AbstractService; use App\Utils\Ninja; -use App\Utils\Traits\GeneratesCounter; +use App\Models\Credit; +use App\Models\Webhook; use Illuminate\Http\Request; +use App\Jobs\Entity\EmailEntity; +use App\Services\AbstractService; +use App\Utils\Traits\GeneratesCounter; +use App\Events\Credit\CreditWasEmailed; class TriggeredActions extends AbstractService { @@ -78,6 +79,7 @@ class TriggeredActions extends AbstractService if ($this->credit->invitations->count() > 0) { event(new CreditWasEmailed($this->credit->invitations->first(), $this->credit->company, Ninja::eventVars(), 'credit')); + $this->credit->sendEvent(Webhook::EVENT_SENT_CREDIT, "client"); } } } diff --git a/app/Services/Invoice/MarkSent.php b/app/Services/Invoice/MarkSent.php index c4d07dc037..f364df6ae0 100644 --- a/app/Services/Invoice/MarkSent.php +++ b/app/Services/Invoice/MarkSent.php @@ -61,10 +61,9 @@ class MarkSent extends AbstractService if ($fire_webhook) { event('eloquent.updated: App\Models\Invoice', $this->invoice); + $this->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); } - $this->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); - return $this->invoice->fresh(); } } diff --git a/app/Services/Invoice/SendEmail.php b/app/Services/Invoice/SendEmail.php index 365201a5ac..a690a97d14 100644 --- a/app/Services/Invoice/SendEmail.php +++ b/app/Services/Invoice/SendEmail.php @@ -11,12 +11,13 @@ namespace App\Services\Invoice; -use App\Events\Invoice\InvoiceWasEmailed; -use App\Jobs\Entity\EmailEntity; -use App\Models\ClientContact; -use App\Models\Invoice; -use App\Services\AbstractService; use App\Utils\Ninja; +use App\Models\Invoice; +use App\Models\Webhook; +use App\Models\ClientContact; +use App\Jobs\Entity\EmailEntity; +use App\Services\AbstractService; +use App\Events\Invoice\InvoiceWasEmailed; class SendEmail extends AbstractService { @@ -41,6 +42,8 @@ class SendEmail extends AbstractService if ($this->invoice->invitations->count() >= 1) { event(new InvoiceWasEmailed($this->invoice->invitations->first(), $this->invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null), $this->reminder_template ?? 'invoice')); + $this->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); + } } diff --git a/app/Services/Invoice/TriggeredActions.php b/app/Services/Invoice/TriggeredActions.php index 3dae6339b7..0d16537ac9 100644 --- a/app/Services/Invoice/TriggeredActions.php +++ b/app/Services/Invoice/TriggeredActions.php @@ -11,13 +11,14 @@ namespace App\Services\Invoice; -use App\Events\Invoice\InvoiceWasEmailed; -use App\Jobs\Entity\EmailEntity; -use App\Models\Invoice; -use App\Services\AbstractService; use App\Utils\Ninja; -use App\Utils\Traits\GeneratesCounter; +use App\Models\Invoice; +use App\Models\Webhook; use Illuminate\Http\Request; +use App\Jobs\Entity\EmailEntity; +use App\Services\AbstractService; +use App\Utils\Traits\GeneratesCounter; +use App\Events\Invoice\InvoiceWasEmailed; class TriggeredActions extends AbstractService { @@ -45,12 +46,12 @@ class TriggeredActions extends AbstractService if ($this->request->has('mark_sent') && $this->request->input('mark_sent') == 'true' && $this->invoice->status_id == Invoice::STATUS_DRAFT) { $this->invoice = $this->invoice->service()->markSent()->save(); //update notification NOT sent - $this->updated = false; + $this->updated = true; } if ($this->request->has('amount_paid') && is_numeric($this->request->input('amount_paid'))) { $this->invoice = $this->invoice->service()->applyPaymentAmount($this->request->input('amount_paid'), $this->request->input('reference'))->save(); - $this->updated = false; + // $this->updated = false; } if ($this->request->has('send_email') && $this->request->input('send_email') == 'true') { @@ -80,8 +81,10 @@ class TriggeredActions extends AbstractService $company->save(); } - if ($this->updated) { - event('eloquent.updated: App\Models\Invoice', $this->invoice); + if ($this->updated) { + // event('eloquent.updated: App\Models\Invoice', $this->invoice); + $this->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); + } @@ -98,6 +101,7 @@ class TriggeredActions extends AbstractService if ($this->invoice->invitations->count() > 0) { event(new InvoiceWasEmailed($this->invoice->invitations->first(), $this->invoice->company, Ninja::eventVars(), 'invoice')); + $this->invoice->sendEvent(Webhook::EVENT_SENT_INVOICE, "client"); } } } diff --git a/app/Services/Quote/SendEmail.php b/app/Services/Quote/SendEmail.php index 3cd0cf301b..1ab1e9d023 100644 --- a/app/Services/Quote/SendEmail.php +++ b/app/Services/Quote/SendEmail.php @@ -11,8 +11,9 @@ namespace App\Services\Quote; -use App\Jobs\Entity\EmailEntity; +use App\Models\Webhook; use App\Models\ClientContact; +use App\Jobs\Entity\EmailEntity; class SendEmail { @@ -50,7 +51,7 @@ class SendEmail } }); - + $this->quote->sendEvent(Webhook::EVENT_SENT_QUOTE, "client"); } } diff --git a/app/Services/Quote/TriggeredActions.php b/app/Services/Quote/TriggeredActions.php index 3e6283fc89..bfc4c2a6df 100644 --- a/app/Services/Quote/TriggeredActions.php +++ b/app/Services/Quote/TriggeredActions.php @@ -11,13 +11,14 @@ namespace App\Services\Quote; -use App\Events\Quote\QuoteWasEmailed; -use App\Jobs\Entity\EmailEntity; -use App\Models\Quote; -use App\Services\AbstractService; use App\Utils\Ninja; -use App\Utils\Traits\GeneratesCounter; +use App\Models\Quote; +use App\Models\Webhook; use Illuminate\Http\Request; +use App\Jobs\Entity\EmailEntity; +use App\Services\AbstractService; +use App\Events\Quote\QuoteWasEmailed; +use App\Utils\Traits\GeneratesCounter; class TriggeredActions extends AbstractService { @@ -86,6 +87,8 @@ class TriggeredActions extends AbstractService if ($this->quote->invitations->count() > 0) { event(new QuoteWasEmailed($this->quote->invitations->first(), $this->quote->company, Ninja::eventVars(), 'quote')); + $this->quote->sendEvent(Webhook::EVENT_SENT_QUOTE, "client"); + } } }