diff --git a/app/Events/Document/DocumentSending.php b/app/Events/Document/DocumentSending.php new file mode 100644 index 000000000..97db6503e --- /dev/null +++ b/app/Events/Document/DocumentSending.php @@ -0,0 +1,20 @@ +document = $document; + } +} diff --git a/app/Http/Controllers/Sales/Invoices.php b/app/Http/Controllers/Sales/Invoices.php index be3f68250..04502c8ea 100644 --- a/app/Http/Controllers/Sales/Invoices.php +++ b/app/Http/Controllers/Sales/Invoices.php @@ -10,6 +10,7 @@ use App\Imports\Sales\Invoices as Import; use App\Jobs\Document\CreateDocument; use App\Jobs\Document\DeleteDocument; use App\Jobs\Document\DuplicateDocument; +use App\Jobs\Document\SendDocument; use App\Jobs\Document\UpdateDocument; use App\Models\Document\Document; use App\Notifications\Sale\Invoice as Notification; @@ -260,12 +261,17 @@ class Invoices extends Controller return redirect()->back(); } - // Notify the customer - $invoice->contact->notify(new Notification($invoice, 'invoice_new_customer', true)); + $response = $this->ajaxDispatch(new SendDocument($invoice)); - event(new \App\Events\Document\DocumentSent($invoice)); + if ($response['success']) { + $message = trans('documents.messages.email_sent', ['type' => trans_choice('general.invoices', 1)]); - flash(trans('documents.messages.email_sent', ['type' => trans_choice('general.invoices', 1)]))->success(); + flash($message)->success(); + } else { + $message = $response['message']; + + flash($message)->error()->important(); + } return redirect()->back(); } diff --git a/app/Jobs/Document/SendDocument.php b/app/Jobs/Document/SendDocument.php new file mode 100644 index 000000000..62e271a68 --- /dev/null +++ b/app/Jobs/Document/SendDocument.php @@ -0,0 +1,26 @@ +document = $document; + } + + public function handle(): void + { + event(new DocumentSending($document)); + + // Notify the customer + $invoice->contact->notify(new Notification($invoice, 'invoice_new_customer', true)); + + event(new DocumentSent($document)); + } +} diff --git a/app/Jobs/Document/SendDocumentAsCustomMail.php b/app/Jobs/Document/SendDocumentAsCustomMail.php index cbc44d313..db8540437 100644 --- a/app/Jobs/Document/SendDocumentAsCustomMail.php +++ b/app/Jobs/Document/SendDocumentAsCustomMail.php @@ -3,6 +3,7 @@ namespace App\Jobs\Document; use App\Abstracts\Job; +use App\Events\Document\DocumentSending; use App\Events\Document\DocumentSent; use App\Models\Document\Document; @@ -18,6 +19,8 @@ class SendDocumentAsCustomMail extends Job { $document = Document::find($this->request->get('document_id')); + event(new DocumentSending($document)); + $custom_mail = $this->request->only(['to', 'subject', 'body']); if ($this->request->get('user_email', false)) {