improve hooking capabilities when sending documents

This commit is contained in:
Hendrik Hagendorn 2023-02-26 18:00:29 +01:00
parent 8a5eeea642
commit d18c3b4121
4 changed files with 59 additions and 4 deletions

View File

@ -0,0 +1,20 @@
<?php
namespace App\Events\Document;
use App\Abstracts\Event;
class DocumentSending extends Event
{
public $document;
/**
* Create a new event instance.
*
* @param $document
*/
public function __construct($document)
{
$this->document = $document;
}
}

View File

@ -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();
}

View File

@ -0,0 +1,26 @@
<?php
namespace App\Jobs\Document;
use App\Abstracts\Job;
use App\Events\Document\DocumentSending;
use App\Events\Document\DocumentSent;
use App\Models\Document\Document;
class SendDocument extends Job
{
public function __construct(Document $document)
{
$this->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));
}
}

View File

@ -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)) {