improve hooking capabilities when sending documents
This commit is contained in:
parent
8a5eeea642
commit
d18c3b4121
20
app/Events/Document/DocumentSending.php
Normal file
20
app/Events/Document/DocumentSending.php
Normal 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;
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
|
26
app/Jobs/Document/SendDocument.php
Normal file
26
app/Jobs/Document/SendDocument.php
Normal 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));
|
||||
}
|
||||
}
|
@ -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)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user