payment = $payment; $this->contact = $contact; $this->company = $company; $this->settings = $payment->client->getMergedSettings(); } /** * Execute the job. * * * @return void */ public function handle() { if ($this->company->is_disabled) return true; if ($this->contact->email) { MultiDB::setDb($this->company->db); $this->payment->load('invoices'); $this->contact->load('client'); $email_builder = (new PaymentEmailEngine($this->payment, $this->contact))->build(); $invitation = null; if($this->payment->invoices && $this->payment->invoices->count() >=1) $invitation = $this->payment->invoices->first()->invitations()->first(); $nmo = new NinjaMailerObject; $nmo->mailable = new TemplateEmail($email_builder, $this->contact, $invitation); $nmo->to_user = $this->contact; $nmo->settings = $this->settings; $nmo->company = $this->company; $nmo->entity = $this->payment; NinjaMailerJob::dispatch($nmo); event(new PaymentWasEmailed($this->payment, $this->payment->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); } } }