diff --git a/app/Http/Controllers/ClientPortalController.php b/app/Http/Controllers/ClientPortalController.php index 7c565e88bb54..e15c802ea4f3 100644 --- a/app/Http/Controllers/ClientPortalController.php +++ b/app/Http/Controllers/ClientPortalController.php @@ -215,7 +215,7 @@ class ClientPortalController extends BaseController $invoice = $invitation->invoice; $decode = ! request()->base64; - $pdfString = $invoice->getPDFString($decode); + $pdfString = $invoice->getPDFString($invitation, $decode); header('Content-Type: application/pdf'); header('Content-Length: ' . strlen($pdfString)); diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index ffe4275d2bd8..0276db19faae 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -1217,7 +1217,7 @@ class Invoice extends EntityModel implements BalanceAffecting /** * @return bool|string */ - public function getPDFString($decode = true) + public function getPDFString($invitation = false, $decode = true) { if (! env('PHANTOMJS_CLOUD_KEY') && ! env('PHANTOMJS_BIN_PATH')) { return false; @@ -1227,7 +1227,7 @@ class Invoice extends EntityModel implements BalanceAffecting return false; } - $invitation = $this->invitations[0]; + $invitation = $invitation ?: $this->invitations[0]; $link = $invitation->getLink('view', true, true); $pdfString = false; $phantomjsSecret = env('PHANTOMJS_SECRET'); diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index 1de3cf6715e6..5fdab98dff01 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -70,9 +70,6 @@ class ContactMailer extends Mailer $pdfString = false; $ublString = false; - if ($account->attachPDF() && ! $proposal) { - $pdfString = $invoice->getPDFString(); - } if ($account->attachUBL() && ! $proposal) { $ublString = dispatch(new ConvertInvoiceToUbl($invoice)); } @@ -100,6 +97,9 @@ class ContactMailer extends Mailer $isFirst = true; $invitations = $proposal ? $proposal->invitations : $invoice->invitations; foreach ($invitations as $invitation) { + if ($account->attachPDF() && ! $proposal) { + $pdfString = $invoice->getPDFString($invitation); + } $data = [ 'pdfString' => $pdfString, 'documentStrings' => $documentStrings, @@ -266,6 +266,7 @@ class ContactMailer extends Mailer $account->loadLocalizationSettings($client); $invoice = $payment->invoice; + $invitation = $payment->invitation ?: $payment->invoice->invitations[0]; $accountName = $account->getDisplayName(); if ($refunded > 0) { @@ -282,11 +283,9 @@ class ContactMailer extends Mailer if ($payment->invitation) { $user = $payment->invitation->user; $contact = $payment->contact; - $invitation = $payment->invitation; } else { $user = $payment->user; $contact = $client->contacts->count() ? $client->contacts[0] : ''; - $invitation = $payment->invoice->invitations[0]; } $variables = [