public function sendInvoice(Invoice $invoice, $reminder = false, $pdfString = false)
{
$invoice->load('invitations', 'client.language', 'account');
$entityType = $invoice->getEntityType();
$client = $invoice->client;
$account = $invoice->account;
if ($invoice->trashed() || $client->trashed()) {
return false;
}
$account->loadLocalizationSettings($client);
$emailTemplate = $account->getEmailTemplate($reminder ?: $entityType);
$emailSubject = $account->getEmailSubject($reminder ?: $entityType);
$sent = false;
if ($account->attatchPDF() && !$pdfString) {
$pdfString = $invoice->getPDFString();
}
foreach ($invoice->invitations as $invitation) {
if ($this->sendInvitation($invitation, $invoice, $emailTemplate, $emailSubject, $pdfString)) {
$sent = true;
}
}
$account->loadLocalizationSettings();
if ($sent === true) {
Event::fire(new InvoiceSent($invoice));
}
return $sent ?: trans('texts.email_error');
}