diff --git a/app/Http/Controllers/RecurringInvoiceController.php b/app/Http/Controllers/RecurringInvoiceController.php index 44eb4e970752..44b1ec4333b1 100644 --- a/app/Http/Controllers/RecurringInvoiceController.php +++ b/app/Http/Controllers/RecurringInvoiceController.php @@ -698,6 +698,15 @@ class RecurringInvoiceController extends BaseController $this->itemResponse($recurring_invoice); } + break; + + case 'send_now': + $recurring_invoice = $recurring_invoice->service()->sendNow(); + + if (! $bulk) { + $this->itemResponse($recurring_invoice); + } + break; default: // code... diff --git a/app/Services/Recurring/RecurringService.php b/app/Services/Recurring/RecurringService.php index 3174ba47809c..5f4f3c49c1f8 100644 --- a/app/Services/Recurring/RecurringService.php +++ b/app/Services/Recurring/RecurringService.php @@ -11,6 +11,7 @@ namespace App\Services\Recurring; +use App\Jobs\RecurringInvoice\SendRecurring; use App\Jobs\Util\UnlinkFile; use App\Models\RecurringInvoice; use App\Services\Recurring\GetInvoicePdf; @@ -106,6 +107,10 @@ class RecurringService $this->stop(); } + if ($request->has('send_now') && $request->input('send_now') == 'true' && $this->recurring_entity->invoices()->count() == 0) { + $this->sendNow(); + } + if(isset($this->recurring_entity->client)) { $offset = $this->recurring_entity->client->timezone_offset(); @@ -115,6 +120,16 @@ class RecurringService return $this; } + public function sendNow() + { + + if($this->recurring_entity instanceof RecurringInvoice) + SendRecurring::dispatchNow($this->recurring_entity, $this->recurring_entity->company->db); + + return $this->recurring_entity; + + } + public function fillDefaults() {