format('Y-m-d h:i:s')); if (! config('ninja.db.multi_db_enabled')) { $auto_bill_partial_invoices = Invoice::whereDate('partial_due_date', '<=', now()) ->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) ->where('auto_bill_enabled', true) ->where('auto_bill_tries', '<', 3) ->where('balance', '>', 0) ->where('is_deleted', false) ->whereHas('company', function ($query) { $query->where('is_disabled', 0); }) ->orderBy('id', 'DESC'); nlog($auto_bill_partial_invoices->count().' partial invoices to auto bill'); $auto_bill_partial_invoices->cursor()->each(function ($invoice) { AutoBill::dispatch($invoice->id, false); }); $auto_bill_invoices = Invoice::whereDate('due_date', '<=', now()) ->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) ->where('auto_bill_enabled', true) ->where('auto_bill_tries', '<', 3) ->where('balance', '>', 0) ->where('is_deleted', false) ->whereHas('company', function ($query) { $query->where('is_disabled', 0); }) ->orderBy('id', 'DESC'); nlog($auto_bill_invoices->count().' full invoices to auto bill'); $auto_bill_invoices->cursor()->each(function ($invoice) { AutoBill::dispatch($invoice->id, false); }); } else { //multiDB environment, need to foreach (MultiDB::$dbs as $db) { MultiDB::setDB($db); $auto_bill_partial_invoices = Invoice::whereDate('partial_due_date', '<=', now()) ->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) ->where('auto_bill_enabled', true) ->where('auto_bill_tries', '<', 3) ->where('balance', '>', 0) ->where('is_deleted', false) ->whereHas('company', function ($query) { $query->where('is_disabled', 0); }) ->orderBy('id', 'DESC'); nlog($auto_bill_partial_invoices->count()." partial invoices to auto bill db = {$db}"); $auto_bill_partial_invoices->cursor()->each(function ($invoice) use ($db) { AutoBill::dispatch($invoice->id, $db); }); $auto_bill_invoices = Invoice::whereDate('due_date', '<=', now()) ->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL]) ->where('auto_bill_enabled', true) ->where('auto_bill_tries', '<', 3) ->where('balance', '>', 0) ->where('is_deleted', false) ->whereHas('company', function ($query) { $query->where('is_disabled', 0); }) ->orderBy('id', 'DESC'); nlog($auto_bill_invoices->count()." full invoices to auto bill db = {$db}"); $auto_bill_invoices->cursor()->each(function ($invoice) use ($db) { nlog($this->counter); AutoBill::dispatch($invoice->id, $db); $this->counter++; }); } nlog('Auto Bill - fine'); } } }