diff --git a/app/Http/Controllers/ClientPortalController.php b/app/Http/Controllers/ClientPortalController.php index 4df6f81cc9be..ee9f284943b1 100644 --- a/app/Http/Controllers/ClientPortalController.php +++ b/app/Http/Controllers/ClientPortalController.php @@ -745,7 +745,9 @@ class ClientPortalController extends BaseController $document = Document::scope($publicId, $invitation->account_id)->firstOrFail(); $authorized = false; - if ($document->expense && $document->expense->invoice_documents && $document->expense->client_id == $invitation->invoice->client_id) { + if ($document->is_default) { + $authorized = true; + } elseif ($document->expense && $document->expense->invoice_documents && $document->expense->client_id == $invitation->invoice->client_id) { $authorized = true; } elseif ($document->invoice && $document->invoice->client_id == $invitation->invoice->client_id) { $authorized = true; diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php index bf69ebff6d87..576ea53c4477 100644 --- a/app/Models/Invoice.php +++ b/app/Models/Invoice.php @@ -305,6 +305,23 @@ class Invoice extends EntityModel implements BalanceAffecting return $this->hasMany('App\Models\Document')->orderBy('id'); } + /** + * @return mixed + */ + public function allDocuments() + { + $documents = $this->documents; + $documents = $documents->merge($this->account->defaultDocuments); + + foreach ($this->expenses as $expense) { + if ($expense->invoice_documents) { + $documents = $documents->merge($expense->documents); + } + } + + return $documents; + } + /** * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ diff --git a/app/Ninja/Mailers/ContactMailer.php b/app/Ninja/Mailers/ContactMailer.php index a9803550ebfe..90b51b76c66c 100644 --- a/app/Ninja/Mailers/ContactMailer.php +++ b/app/Ninja/Mailers/ContactMailer.php @@ -68,14 +68,7 @@ class ContactMailer extends Mailer $documentStrings = []; if ($account->document_email_attachment && $invoice->hasDocuments()) { - $documents = $invoice->documents; - - foreach ($invoice->expenses as $expense) { - if ($expense->invoice_documents) { - $documents = $documents->merge($expense->documents); - } - } - + $documents = $invoice->allDocuments(); $documents = $documents->sortBy('size'); $size = 0; diff --git a/app/Services/TemplateService.php b/app/Services/TemplateService.php index 6d9b1a66c8b2..bb370b555b2b 100644 --- a/app/Services/TemplateService.php +++ b/app/Services/TemplateService.php @@ -34,16 +34,9 @@ class TemplateService if ($account->hasFeature(FEATURE_DOCUMENTS) && $invoice->hasDocuments()) { $documentsHTML .= trans('texts.email_documents_header').'