From 6a0f958c2e7435cb0233febd8f4279e2b6072cb4 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 17 Sep 2020 08:22:23 +1000 Subject: [PATCH] Fixes for previewing email templates --- app/Utils/HtmlEngine.php | 1 + app/Utils/TemplateEngine.php | 18 ++++++++++++++++-- app/Utils/Traits/MakesInvoiceValues.php | 5 +++-- app/Utils/Traits/MakesTemplateData.php | 1 + 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index 89c8eb429bdd..756a160e210e 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -237,6 +237,7 @@ class HtmlEngine $data['$client.email'] = &$data['$email']; $data['$client.balance'] = ['value' => Number::formatMoney($this->client->balance, $this->client), 'label' => ctrans('texts.account_balance')]; + $data['$client_balance'] = ['value' => Number::formatMoney($this->client->balance, $this->client), 'label' => ctrans('texts.account_balance')]; $data['$paid_to_date'] = ['value' => Number::formatMoney($this->client->paid_to_date, $this->client), 'label' => ctrans('texts.paid_to_date')]; $data['$contact.full_name'] = ['value' => $this->contact->present()->name(), 'label' => ctrans('texts.name')]; diff --git a/app/Utils/TemplateEngine.php b/app/Utils/TemplateEngine.php index 49d4f7b0d46a..14ce8fb1fa52 100644 --- a/app/Utils/TemplateEngine.php +++ b/app/Utils/TemplateEngine.php @@ -88,12 +88,23 @@ class TemplateEngine private function setTemplates() { if (strlen($this->subject) == 0 && strlen($this->template) > 1) { + $subject_template = str_replace('template', 'subject', $this->template); - $this->subject = EmailTemplateDefaults::getDefaultTemplate($subject_template, $this->settings_entity->locale()); + + if(strlen($this->settings_entity->getSetting($subject_template)) > 1) + $this->subject = $this->settings_entity->getSetting($subject_template); + else + $this->subject = EmailTemplateDefaults::getDefaultTemplate($subject_template, $this->settings_entity->locale()); + } if (strlen($this->body) == 0 && strlen($this->template) > 1) { - $this->body = EmailTemplateDefaults::getDefaultTemplate($this->template, $this->settings_entity->locale()); + + if(strlen($this->settings_entity->getSetting($this->template)) > 1) + $this->body = $this->settings_entity->getSetting($this->template); + else + $this->body = EmailTemplateDefaults::getDefaultTemplate($this->template, $this->settings_entity->locale()); + } return $this; @@ -131,9 +142,12 @@ class TemplateEngine private function entityValues($contact) { $data = $this->entity_obj->buildLabelsAndValues($contact); + // $arrKeysLength = array_map('strlen', array_keys($data)); + // array_multisort($arrKeysLength, SORT_DESC, $data); $this->body = strtr($this->body, $data['labels']); $this->body = strtr($this->body, $data['values']); + $this->body = str_replace("\n", "
", $this->body); $this->subject = strtr($this->subject, $data['labels']); $this->subject = strtr($this->subject, $data['values']); diff --git a/app/Utils/Traits/MakesInvoiceValues.php b/app/Utils/Traits/MakesInvoiceValues.php index 7d4a5775ac98..0e9f625b25db 100644 --- a/app/Utils/Traits/MakesInvoiceValues.php +++ b/app/Utils/Traits/MakesInvoiceValues.php @@ -313,8 +313,9 @@ trait MakesInvoiceValues $data['$email'] = ['value' => isset($contact) ? $contact->email : 'no contact email on record', 'label' => ctrans('texts.email')]; $data['$client_name'] = ['value' => $this->present()->clientName() ?: ' ', 'label' => ctrans('texts.client_name')]; $data['$client.name'] = &$data['$client_name']; - $data['$client.balance'] = ['value' => $this->client->balance, 'label' => ctrans('texts.balance')]; - + $data['$client.balance'] = ['value' => Number::formatMoney($this->client->balance, $this->client), 'label' => ctrans('texts.account_balance')]; + $data['$client_balance'] = ['value' => Number::formatMoney($this->client->balance, $this->client), 'label' => ctrans('texts.account_balance')]; + $data['$paid_to_date'] = ['value' => $this->client->paid_to_date, 'label' => ctrans('texts.paid_to_date')]; $data['$client.address1'] = &$data['$address1']; diff --git a/app/Utils/Traits/MakesTemplateData.php b/app/Utils/Traits/MakesTemplateData.php index ffab5e775bc7..dc8e63ca1284 100644 --- a/app/Utils/Traits/MakesTemplateData.php +++ b/app/Utils/Traits/MakesTemplateData.php @@ -135,6 +135,7 @@ trait MakesTemplateData $data['$country'] = ['value' => 'USA', 'label' => ctrans('texts.country')]; $data['$email'] = ['value' => 'user@example.com', 'label' => ctrans('texts.email')]; $data['$client_name'] = ['value' => 'Joe Denkins', 'label' => ctrans('texts.client_name')]; + $data['$client.balance'] = ['value' => '$100', 'label' => ctrans('texts.account_balance')]; $data['$client.name'] = &$data['$client_name']; $data['$client.address1'] = &$data['$address1']; $data['$client.address2'] = &$data['$address2'];