improve hooking capabilities when sending documents
This commit is contained in:
		
							
								
								
									
										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)) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user