From 8ef12f2ce98134d1228d54e2dd532a74c7c7bff4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 13 May 2022 19:42:49 +1000 Subject: [PATCH] Attach expense documents to invoices --- app/Mail/Engine/InvoiceEmailEngine.php | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/app/Mail/Engine/InvoiceEmailEngine.php b/app/Mail/Engine/InvoiceEmailEngine.php index 300ddedebd2b..63b14110a80e 100644 --- a/app/Mail/Engine/InvoiceEmailEngine.php +++ b/app/Mail/Engine/InvoiceEmailEngine.php @@ -14,14 +14,18 @@ namespace App\Mail\Engine; use App\DataMapper\EmailTemplateDefaults; use App\Jobs\Entity\CreateEntityPdf; use App\Models\Account; +use App\Models\Expense; use App\Utils\HtmlEngine; use App\Utils\Ninja; use App\Utils\Number; +use App\Utils\Traits\MakesHash; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Lang; class InvoiceEmailEngine extends BaseEmailEngine { + use MakesHash; + public $invitation; public $client; @@ -146,6 +150,32 @@ class InvoiceEmailEngine extends BaseEmailEngine $this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => $document->type]]); } + $line_items = $this->invoice->line_items; + + $expense_ids = []; + + foreach($line_items as $item) + { + if(property_exists($item, 'expense_id')) + { + $expense_ids[] = $item->expense_id; + } + + if(count($expense_ids) > 0){ + $expenses = Expense::whereIn('id', $this->transformKeys($expense_ids)) + ->where('invoice_documents', 1) + ->cursor() + ->each(function ($expense){ + + foreach($expense->documents as $document) + { + $this->setAttachments([['path' => $document->filePath(), 'name' => $document->name, 'mime' => $document->type]]); + } + + }); + } + } + }