From c6c41f279570e8a0a79d6d9a02d123bc69150749 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 3 Oct 2021 21:51:42 +1100 Subject: [PATCH] Auto Bill Job --- app/Jobs/Cron/AutoBill.php | 63 ++++++++++++++++++++++++++++++++++ app/Jobs/Cron/AutoBillCron.php | 36 +++++-------------- 2 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 app/Jobs/Cron/AutoBill.php diff --git a/app/Jobs/Cron/AutoBill.php b/app/Jobs/Cron/AutoBill.php new file mode 100644 index 000000000000..2c77b241b46e --- /dev/null +++ b/app/Jobs/Cron/AutoBill.php @@ -0,0 +1,63 @@ +invoice = $invoice; + $this->db = $db; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() : void + { + set_time_limit(0); + + if($this->db) + MultiDB::setDb($this->db); + + try{ + + $this->invoice->service()->autoBill()->save(); + + } + catch(\Exception $e) { + nlog("Failed to capture payment for {$this->invoice->company_id} - {$this->invoice->number} ->" . $e->getMessage()); + } + + + } +} diff --git a/app/Jobs/Cron/AutoBillCron.php b/app/Jobs/Cron/AutoBillCron.php index 72b4de90b804..4a8e46b70bf6 100644 --- a/app/Jobs/Cron/AutoBillCron.php +++ b/app/Jobs/Cron/AutoBillCron.php @@ -11,6 +11,7 @@ namespace App\Jobs\Cron; +use App\Jobs\Cron\AutoBill; use App\Jobs\RecurringInvoice\SendRecurring; use App\Libraries\MultiDB; use App\Models\Invoice; @@ -60,7 +61,7 @@ class AutoBillCron nlog($auto_bill_partial_invoices->count(). " partial invoices to auto bill"); $auto_bill_partial_invoices->cursor()->each(function ($invoice){ - $this->runAutoBiller($invoice, false); + AutoBill::dispatch($invoice, false); }); $auto_bill_invoices = Invoice::whereDate('due_date', '<=', now()) @@ -75,11 +76,9 @@ class AutoBillCron nlog($auto_bill_invoices->count(). " full invoices to auto bill"); - $x = 1; - $auto_bill_invoices->cursor()->each(function ($invoice) use($x){ - nlog("partial auto bill counter {$x}"); - $this->runAutoBiller($invoice, false); - $x++; + + $auto_bill_invoices->cursor()->each(function ($invoice){ + AutoBill::dispatch($invoice, false); }); @@ -102,7 +101,7 @@ class AutoBillCron nlog($auto_bill_partial_invoices->count(). " partial invoices to auto bill db = {$db}"); $auto_bill_partial_invoices->cursor()->each(function ($invoice) use($db){ - $this->runAutoBiller($invoice, $db); + AutoBill::dispatch($invoice, $db); }); $auto_bill_invoices = Invoice::whereDate('due_date', '<=', now()) @@ -117,31 +116,12 @@ class AutoBillCron nlog($auto_bill_invoices->count(). " full invoices to auto bill db = {$db}"); - $x = 1; - $auto_bill_invoices->cursor()->each(function ($invoice) use($db, $x){ - nlog("auto bill counter {$x}"); - $this->runAutoBiller($invoice, $db); - $x++; + $auto_bill_invoices->cursor()->each(function ($invoice) use($db){ + AutoBill::dispatch($invoice, $db); }); } } } - private function runAutoBiller(Invoice $invoice, $db) - { - info("Firing autobill for {$invoice->company_id} - {$invoice->number}"); - - try{ - - if($db) - MultiDB::setDB($db); - - $invoice->service()->autoBill()->save(); - - } - catch(\Exception $e) { - nlog("Failed to capture payment for {$invoice->company_id} - {$invoice->number} ->" . $e->getMessage()); - } - } }