company = $company; $this->invoice_invitation = $invoice_invitation; $this->email_builder = $email_builder; $this->settings = $invoice_invitation->contact->client->getMergedSettings(); } /** * Execute the job. * * * @return void */ public function handle() { MultiDB::setDB($this->company->db); $this->setMailDriver(); try { Mail::to($this->invoice_invitation->contact->email, $this->invoice_invitation->contact->present()->name()) ->send( new TemplateEmail( $this->email_builder, $this->invoice_invitation->contact->user, $this->invoice_invitation->contact->client ) ); } catch (\Swift_TransportException $e) { event(new InvoiceWasEmailedAndFailed($this->invoice_invitation->invoice, $this->company, $e->getMessage(), Ninja::eventVars())); } if (count(Mail::failures()) > 0) { $this->logMailError(Mail::failures(), $this->invoice->client); } else { event(new InvoiceWasEmailed($this->invoice_invitation, $this->company, Ninja::eventVars())); } /* Mark invoice sent */ $this->invoice_invitation->invoice->service()->markSent()->save(); } }