Add UBL feature to invoices

This commit is contained in:
David Bomba 2023-03-08 20:47:13 +11:00
parent 52613b2bce
commit 594646823c
3 changed files with 15 additions and 6 deletions

View File

@ -48,10 +48,8 @@ class CreateUbl implements ShouldQueue
}
/**
* Execute the job.
*
*
* @return void
* Execute the job
* @return ?string
*/
public function handle()
{

View File

@ -1,4 +1,3 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).

View File

@ -16,7 +16,9 @@ use App\Utils\Ninja;
use App\Models\Account;
use App\Models\Expense;
use App\Models\Invoice;
use App\Jobs\Invoice\CreateUbl;
use App\Utils\Traits\MakesHash;
use Illuminate\Mail\Attachment;
use Illuminate\Support\Facades\App;
use Illuminate\Mail\Mailables\Address;
use App\DataMapper\EmailTemplateDefaults;
@ -267,7 +269,7 @@ class EmailDefaults
{
$documents = [];
if (!$this->email->email_object->settings->document_email_attachment || $this->email->company->account->hasFeature(Account::FEATURE_DOCUMENTS))
if (!$this->email->email_object->settings->document_email_attachment || !$this->email->company->account->hasFeature(Account::FEATURE_DOCUMENTS))
return $this;
$this->email->email_object->documents = array_merge($this->email->email_object->documents, $this->email->company->documents->pluck('id')->toArray());
@ -318,6 +320,16 @@ class EmailDefaults
}
if ($this->email->email_object->entity instanceof Invoice && $this->email->email_object->settings->ubl_email_attachment) {
$ubl_string = (new CreateUbl($this->email->email_object->entity))->handle();
if ($ubl_string) {
$this->email->email_object->attachments = array_merge($this->email->email_object->attachments, [Attachment::fromData(fn () => $ubl_string, $this->email->email_object->entity->getFileName('xml'))]);
}
}
return $this;
}