diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index c2a3e946bef4..e93eda2846fc 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -215,6 +215,8 @@ class InvoiceController extends BaseController event(new InvoiceWasCreated($invoice, $invoice->company)); + $invoice = $invoice->service()->triggeredActions($request)->save(); + return $this->itemResponse($invoice); } diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index f0b3158618bd..45e1e80d6779 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -22,6 +22,7 @@ use App\Services\Invoice\HandleCancellation; use App\Services\Invoice\HandleReversal; use App\Services\Invoice\MarkInvoicePaid; use App\Services\Invoice\MarkSent; +use App\Services\Invoice\TriggeredActions; use App\Services\Invoice\UpdateBalance; use Illuminate\Support\Carbon; @@ -136,6 +137,13 @@ class InvoiceService return $this; } + public function triggeredActions($request) + { + $this->invoice = (new TriggeredActions($this->invoice, $request))->run(); + + return $this; + } + public function markViewed() { $this->invoice->last_viewed = Carbon::now()->format('Y-m-d H:i'); diff --git a/app/Services/Invoice/TriggeredActions.php b/app/Services/Invoice/TriggeredActions.php new file mode 100644 index 000000000000..dc0271797a72 --- /dev/null +++ b/app/Services/Invoice/TriggeredActions.php @@ -0,0 +1,44 @@ +request = $request; + + $this->invoice = $invoice; + } + + public function run() + { + //the request may have buried in it additional actions we should automatically perform on the invoice + } +}