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\CreateDocument;
|
||||||
use App\Jobs\Document\DeleteDocument;
|
use App\Jobs\Document\DeleteDocument;
|
||||||
use App\Jobs\Document\DuplicateDocument;
|
use App\Jobs\Document\DuplicateDocument;
|
||||||
|
use App\Jobs\Document\SendDocument;
|
||||||
use App\Jobs\Document\UpdateDocument;
|
use App\Jobs\Document\UpdateDocument;
|
||||||
use App\Models\Document\Document;
|
use App\Models\Document\Document;
|
||||||
use App\Notifications\Sale\Invoice as Notification;
|
use App\Notifications\Sale\Invoice as Notification;
|
||||||
@ -260,12 +261,17 @@ class Invoices extends Controller
|
|||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notify the customer
|
$response = $this->ajaxDispatch(new SendDocument($invoice));
|
||||||
$invoice->contact->notify(new Notification($invoice, 'invoice_new_customer', true));
|
|
||||||
|
|
||||||
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();
|
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;
|
namespace App\Jobs\Document;
|
||||||
|
|
||||||
use App\Abstracts\Job;
|
use App\Abstracts\Job;
|
||||||
|
use App\Events\Document\DocumentSending;
|
||||||
use App\Events\Document\DocumentSent;
|
use App\Events\Document\DocumentSent;
|
||||||
use App\Models\Document\Document;
|
use App\Models\Document\Document;
|
||||||
|
|
||||||
@ -18,6 +19,8 @@ class SendDocumentAsCustomMail extends Job
|
|||||||
{
|
{
|
||||||
$document = Document::find($this->request->get('document_id'));
|
$document = Document::find($this->request->get('document_id'));
|
||||||
|
|
||||||
|
event(new DocumentSending($document));
|
||||||
|
|
||||||
$custom_mail = $this->request->only(['to', 'subject', 'body']);
|
$custom_mail = $this->request->only(['to', 'subject', 'body']);
|
||||||
|
|
||||||
if ($this->request->get('user_email', false)) {
|
if ($this->request->get('user_email', false)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user