From 89ce1f737a5dff714daf021d96410a940f788e53 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 28 May 2023 18:03:18 +1000 Subject: [PATCH] Ensure all e-invoices are attached to payment mails --- app/Jobs/Entity/CreateEntityPdf.php | 2 +- app/Mail/Engine/PaymentEmailEngine.php | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/Jobs/Entity/CreateEntityPdf.php b/app/Jobs/Entity/CreateEntityPdf.php index e559f2a904c3..ba4ca050190f 100644 --- a/app/Jobs/Entity/CreateEntityPdf.php +++ b/app/Jobs/Entity/CreateEntityPdf.php @@ -47,7 +47,7 @@ class CreateEntityPdf implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, NumberFormatter, MakesInvoiceHtml, PdfMaker, MakesHash, PageNumbering; - public $entity; + public Invoice | Quote | Credit | RecurringInvoice $entity; public $company; diff --git a/app/Mail/Engine/PaymentEmailEngine.php b/app/Mail/Engine/PaymentEmailEngine.php index 6893a24e2d46..9ec044d7db4a 100644 --- a/app/Mail/Engine/PaymentEmailEngine.php +++ b/app/Mail/Engine/PaymentEmailEngine.php @@ -11,15 +11,16 @@ namespace App\Mail\Engine; -use App\DataMapper\EmailTemplateDefaults; -use App\Jobs\Entity\CreateRawPdf; -use App\Models\Account; -use App\Utils\Helpers; use App\Utils\Ninja; use App\Utils\Number; +use App\Utils\Helpers; +use App\Models\Account; use App\Utils\Traits\MakesDates; +use App\Jobs\Entity\CreateRawPdf; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\URL; +use Illuminate\Support\Facades\Storage; +use App\DataMapper\EmailTemplateDefaults; class PaymentEmailEngine extends BaseEmailEngine { @@ -105,6 +106,18 @@ class PaymentEmailEngine extends BaseEmailEngine } } } + + if($this->client->getSetting('enable_e_invoice')) + { + + $e_invoice_filepath = $invoice->service()->getEInvoice($this->contact); + + if(Storage::disk(config('filesystems.default'))->exists($e_invoice_filepath)) { + $this->setAttachments([['path' => Storage::disk(config('filesystems.default'))->path($e_invoice_filepath), 'name' => $invoice->getFileName("xml"), 'mime' => null]]); + } + + } + }); }