diff --git a/app/Abstracts/View/Components/Documents/Show.php b/app/Abstracts/View/Components/Documents/Show.php index 672958ec4..dc4bfad85 100644 --- a/app/Abstracts/View/Components/Documents/Show.php +++ b/app/Abstracts/View/Components/Documents/Show.php @@ -211,6 +211,9 @@ abstract class Show extends Component /** @var string */ public $transactionEmailRoute; + /** @var string */ + public $transactionEmailTemplate; + /** @var bool */ public $hideRestore; @@ -337,7 +340,7 @@ abstract class Show extends Component bool $hideCreated = false, bool $hideSend = false, bool $hideMarkSent = false, string $markSentRoute = '', string $textMarkSent = '', bool $hideReceive = false, bool $hideMarkReceived = false, string $markReceivedRoute = '', string $textMarkReceived = '', bool $hideGetPaid = false, - bool $hideRestore = false, bool $hideAddPayment = false, bool $hideAcceptPayment = false, string $transactionEmailRoute = '', + bool $hideRestore = false, bool $hideAddPayment = false, bool $hideAcceptPayment = false, string $transactionEmailRoute = '', string $transactionEmailTemplate = '', bool $hideMakePayment = false, bool $hideSchedule = false, bool $hideChildren = false, bool $hideAttachment = false, $attachment = [], @@ -438,6 +441,7 @@ abstract class Show extends Component $this->hideAcceptPayment = $hideAcceptPayment; $this->transactionEmailRoute = $this->getTransactionEmailRoute($type, $transactionEmailRoute); + $this->transactionEmailTemplate = $this->getTransactionEmailTemplate($type, $transactionEmailTemplate); $this->hideRestore = $this->getHideRestore($hideRestore); @@ -875,6 +879,15 @@ abstract class Show extends Component return 'modals.transactions.emails.create'; } + protected function getTransactionEmailTemplate($type, $transactionEmailTemplate) + { + if (! empty($transactionEmailTemplate)) { + return $transactionEmailTemplate; + } + + return config('type.' . static::OBJECT_TYPE . '.' . $type . '.transaction.email_template', false); + } + protected function getHideRestore($hideRestore) { if (! empty($hideRestore)) { diff --git a/config/type.php b/config/type.php index 2eb1e039b..3ed82d195 100644 --- a/config/type.php +++ b/config/type.php @@ -126,6 +126,9 @@ return [ 'category_type' => 'income', 'transaction_type' => 'income', 'contact_type' => 'customer', // use contact type + 'transaction' => [ + 'email_template' => 'invoice_payment_customer', // use email template + ], 'hide' => [], // for document items 'class' => [], 'notification' => [ @@ -219,6 +222,9 @@ return [ 'category_type' => 'expense', 'transaction_type' => 'expense', 'contact_type' => 'vendor', + 'transaction' => [ + 'email_template' => 'invoice_payment_customer', // use email template + ], 'hide' => [], 'notification' => [ 'class' => 'App\Notifications\Purchase\Bill', diff --git a/resources/assets/js/views/common/documents.js b/resources/assets/js/views/common/documents.js index 784e7a52b..f3622d40e 100644 --- a/resources/assets/js/views/common/documents.js +++ b/resources/assets/js/views/common/documents.js @@ -75,6 +75,7 @@ const app = new Vue({ ',.', ',,' ], + email_template: false, } }, @@ -533,6 +534,7 @@ const app = new Vue({ onDeleteDiscount(item_index) { this.items[item_index].add_discount = false; this.items[item_index].discount = 0; + this.onCalculateTotal(); }, @@ -818,11 +820,17 @@ const app = new Vue({ buttons:{} }; - let email_promise = Promise.resolve(window.axios.get(email.route, { - params: { - email_template: 'invoice_payment_customer' - } - })); + let email_promise = Promise.resolve(window.axios.get(email.route)); + + if (this.email_template) { + email_promise = Promise.resolve(window.axios.get(email.route, { + params: { + email_template: this.email_template + } + })); + } + + this.email_template = false; email_promise.then(response => { email.modal = true; @@ -870,6 +878,12 @@ const app = new Vue({ }); }, + onEmailViaTemplate(route, template) { + this.email_template = template; + + this.onEmail(route); + }, + // Change currency get money onChangeCurrency(currency_code) { if (this.edit.status && this.edit.currency <= 2) { diff --git a/resources/views/components/documents/show/get-paid.blade.php b/resources/views/components/documents/show/get-paid.blade.php index 9f0bddb82..f56b938e4 100644 --- a/resources/views/components/documents/show/get-paid.blade.php +++ b/resources/views/components/documents/show/get-paid.blade.php @@ -61,7 +61,7 @@
@if (! empty($transaction->contact) && $transaction->contact->email) - + {{ trans('general.title.send', ['type' => trans_choice('general.receipts', 1)]) }} diff --git a/resources/views/components/documents/show/make-payment.blade.php b/resources/views/components/documents/show/make-payment.blade.php index 0d657017c..226b73094 100644 --- a/resources/views/components/documents/show/make-payment.blade.php +++ b/resources/views/components/documents/show/make-payment.blade.php @@ -45,7 +45,7 @@
@if (! empty($transaction->contact) && $transaction->contact->email) - + {{ trans('general.title.send', ['type' => trans_choice('general.receipts', 1)]) }}