From ef95312f0c8ea278523a3890624b0fe1680ad1c0 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 3 Dec 2022 07:40:38 +1100 Subject: [PATCH 1/4] Fixes for custom labels/values for credits --- app/Utils/HtmlEngine.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index 003d5fb1f79f..a2a98275804e 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -226,6 +226,12 @@ class HtmlEngine $data['$view_url'] = ['value' => $this->invitation->getLink(), 'label' => ctrans('texts.view_credit')]; // $data['$view_link'] = ['value' => $this->invitation->getLink(), 'label' => ctrans('texts.view_credit')]; $data['$date'] = ['value' => $this->translateDate($this->entity->date, $this->client->date_format(), $this->client->locale()) ?: ' ', 'label' => ctrans('texts.credit_date')]; + + $data['$credit.custom1'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit1', $this->entity->custom_value1, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice1')]; + $data['$credit.custom2'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit2', $this->entity->custom_value2, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice2')]; + $data['$credit.custom3'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit3', $this->entity->custom_value3, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice3')]; + $data['$credit.custom4'] = ['value' => $this->helpers->formatCustomFieldValue($this->company->custom_fields, 'credit4', $this->entity->custom_value4, $this->client) ?: ' ', 'label' => $this->helpers->makeCustomField($this->company->custom_fields, 'invoice4')]; + } $data['$portal_url'] = ['value' => $this->invitation->getPortalLink(), 'label' =>'']; From 2eb61b08cb4e3eaf6e7a069c7fbee7a61eaed643 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 3 Dec 2022 09:15:27 +1100 Subject: [PATCH 2/4] Do not send reminders to trashed contacts --- app/Jobs/Util/ReminderJob.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Jobs/Util/ReminderJob.php b/app/Jobs/Util/ReminderJob.php index 2ff606b4ce21..e5a5d71bf274 100644 --- a/app/Jobs/Util/ReminderJob.php +++ b/app/Jobs/Util/ReminderJob.php @@ -148,8 +148,12 @@ class ReminderJob implements ShouldQueue (Ninja::isSelfHost() || $invoice->company->account->isPaidHostedClient())) { $invoice->invitations->each(function ($invitation) use ($invoice, $reminder_template) { - EmailEntity::dispatch($invitation, $invitation->company, $reminder_template)->delay(now()->addSeconds(3)); - nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); + + if(!$invitation->contact->trashed() && $invitation->contact->email) { + EmailEntity::dispatch($invitation, $invitation->company, $reminder_template)->delay(now()->addSeconds(3)); + nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); + } + }); if ($invoice->invitations->count() > 0) { From 14e86b8183f0c3c03e540968b7d1911e3f8ea979 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 3 Dec 2022 09:33:49 +1100 Subject: [PATCH 3/4] Minor checks for reminders --- app/Jobs/Util/ReminderJob.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Jobs/Util/ReminderJob.php b/app/Jobs/Util/ReminderJob.php index e5a5d71bf274..d99ffa6b1329 100644 --- a/app/Jobs/Util/ReminderJob.php +++ b/app/Jobs/Util/ReminderJob.php @@ -149,11 +149,11 @@ class ReminderJob implements ShouldQueue $invoice->invitations->each(function ($invitation) use ($invoice, $reminder_template) { - if(!$invitation->contact->trashed() && $invitation->contact->email) { + if($invitation->contact && !$invitation->contact->trashed() && $invitation->contact->email) { EmailEntity::dispatch($invitation, $invitation->company, $reminder_template)->delay(now()->addSeconds(3)); nlog("Firing reminder email for invoice {$invoice->number} - {$reminder_template}"); } - + }); if ($invoice->invitations->count() > 0) { From 5b63e0fd81b7b3ba9173da24e6beea4fa6066d17 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 3 Dec 2022 09:50:55 +1100 Subject: [PATCH 4/4] Fixes for latency when sending emails --- app/Http/Controllers/EmailController.php | 2 ++ app/Jobs/Entity/EmailEntity.php | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/EmailController.php b/app/Http/Controllers/EmailController.php index d03a98a11fdd..a96946ca6871 100644 --- a/app/Http/Controllers/EmailController.php +++ b/app/Http/Controllers/EmailController.php @@ -136,11 +136,13 @@ class EmailController extends BaseController } $entity_obj->invitations->each(function ($invitation) use ($data, $entity_string, $entity_obj, $template) { + if (! $invitation->contact->trashed() && $invitation->contact->email) { $entity_obj->service()->markSent()->save(); EmailEntity::dispatch($invitation->fresh(), $invitation->company, $template, $data)->delay(now()->addSeconds(2)); } + }); $entity_obj = $entity_obj->fresh(); diff --git a/app/Jobs/Entity/EmailEntity.php b/app/Jobs/Entity/EmailEntity.php index 6abd46369ed0..cf3cd96bab82 100644 --- a/app/Jobs/Entity/EmailEntity.php +++ b/app/Jobs/Entity/EmailEntity.php @@ -90,7 +90,6 @@ class EmailEntity implements ShouldQueue $this->template_data = $template_data; - $this->email_entity_builder = $this->resolveEmailBuilder(); } /** @@ -106,6 +105,8 @@ class EmailEntity implements ShouldQueue return; } + $this->email_entity_builder = $this->resolveEmailBuilder(); + /* Set DB */ MultiDB::setDB($this->company->db);