From bd6e6a959af2cb878fae85c369bf4c6b7920eeb2 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 13 Oct 2021 16:41:11 +1100 Subject: [PATCH] Add triggered actions to recurring invoices --- .../Controllers/RecurringInvoiceController.php | 4 ++++ .../StoreRecurringInvoiceRequest.php | 2 +- app/Services/Recurring/RecurringService.php | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/RecurringInvoiceController.php b/app/Http/Controllers/RecurringInvoiceController.php index cd81b2d51ba5..f88a07ccabae 100644 --- a/app/Http/Controllers/RecurringInvoiceController.php +++ b/app/Http/Controllers/RecurringInvoiceController.php @@ -210,6 +210,10 @@ class RecurringInvoiceController extends BaseController $recurring_invoice->next_send_date = Carbon::parse($recurring_invoice->next_send_date)->startOfDay()->addSeconds($offset); $recurring_invoice->save(); + $recurring_invoice->service() + ->triggeredActions($request) + ->save(); + return $this->itemResponse($recurring_invoice); } diff --git a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php index d2f4e09d2893..8f764f3b2e78 100644 --- a/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php +++ b/app/Http/Requests/RecurringInvoice/StoreRecurringInvoiceRequest.php @@ -105,7 +105,7 @@ class StoreRecurringInvoiceRequest extends Request if (isset($input['auto_bill'])) { $input['auto_bill_enabled'] = $this->setAutoBillFlag($input['auto_bill']); } else { - if ($client = Client::find($input['client_id'])) { + if (array_key_exists('client_id', $input) && $client = Client::find($input['client_id'])) { $input['auto_bill'] = $client->getSetting('auto_bill'); $input['auto_bill_enabled'] = $this->setAutoBillFlag($input['auto_bill']); } diff --git a/app/Services/Recurring/RecurringService.php b/app/Services/Recurring/RecurringService.php index 6bd522120edd..0f7d8b892e2c 100644 --- a/app/Services/Recurring/RecurringService.php +++ b/app/Services/Recurring/RecurringService.php @@ -97,6 +97,20 @@ class RecurringService return $this; } + public function triggeredActions($request) + { + + if ($request->has('start') && $request->input('start') == 'true') { + $this->start(); + } + + if ($request->has('stop') && $request->input('stop') == 'true') { + $this->stop(); + } + + return $this; + } + public function fillDefaults() {