mailer = $mailer; $this->accountRepo = $repo; $this->paymentService = $paymentService; } public function fire() { $this->info(date('Y-m-d').' ChargeRenewalInvoices...'); $ninjaAccount = $this->accountRepo->getNinjaAccount(); $invoices = Invoice::whereAccountId($ninjaAccount->id) ->whereDueDate(date('Y-m-d')) ->where('balance', '>', 0) ->with('client') ->orderBy('id') ->get(); $this->info(count($invoices).' invoices found'); foreach ($invoices as $invoice) { // check if account has switched to free since the invoice was created $account = Account::find($invoice->client->public_id); if ( ! $account) { continue; } $company = $account->company; if ( ! $company->plan || $company->plan == PLAN_FREE) { continue; } try { $this->info("Charging invoice {$invoice->invoice_number}"); $this->paymentService->autoBillInvoice($invoice); } catch (Exception $exception) { $this->info('Error: ' . $exception->getMessage()); } } $this->info('Done'); } /** * @return array */ protected function getArguments() { return []; } /** * @return array */ protected function getOptions() { return []; } }