diff --git a/app/Http/Controllers/Settings/Email.php b/app/Http/Controllers/Settings/Email.php index fa21be204..f827378d7 100644 --- a/app/Http/Controllers/Settings/Email.php +++ b/app/Http/Controllers/Settings/Email.php @@ -37,11 +37,7 @@ class Email extends Controller return $s; })->pluck('value', 'key'); - EmailTemplate::all()->each(function ($template) use ($setting) { - $setting->put('template_' . $template->alias . '_subject', $template->subject); - $setting->put('template_' . $template->alias . '_body', $template->body); - $setting->put('template_' . $template->alias . '_params', $template->params); - }); + $templates = EmailTemplate::all(); $email_protocols = [ 'mail' => trans('settings.email.php'), @@ -50,16 +46,10 @@ class Email extends Controller 'log' => trans('settings.email.log'), ]; - $invoice_tags = implode(', ', app('App\Notifications\Sale\Invoice')->getTags()); - $payment_tags = implode(', ', app('App\Notifications\Portal\PaymentReceived')->getTags()); - $bill_tags = implode(', ', app('App\Notifications\Purchase\Bill')->getTags()); - return view('settings.email.edit', compact( 'setting', + 'templates', 'email_protocols', - 'invoice_tags', - 'payment_tags', - 'bill_tags' )); } @@ -117,8 +107,6 @@ class Email extends Controller $template = EmailTemplate::alias($alias)->first(); $template->update([ - 'company_id' => $template->company_id, - 'alias' => $template->alias, 'subject' => $fields[$subject_key], 'body' => $fields[$body_key], ]); diff --git a/app/Models/Common/EmailTemplate.php b/app/Models/Common/EmailTemplate.php index 34f0fb572..ee3a084e9 100644 --- a/app/Models/Common/EmailTemplate.php +++ b/app/Models/Common/EmailTemplate.php @@ -6,7 +6,6 @@ use App\Abstracts\Model; class EmailTemplate extends Model { - protected $table = 'email_templates'; /** @@ -14,7 +13,7 @@ class EmailTemplate extends Model * * @var array */ - protected $fillable = ['company_id', 'alias', 'subject', 'body', 'params']; + protected $fillable = ['company_id', 'alias', 'class', 'name', 'subject', 'body', 'params']; /** * Scope to only include contacts of a given type. diff --git a/database/migrations/2020_01_08_000000_core_v200.php b/database/migrations/2020_01_08_000000_core_v200.php index 4f1a0dc46..8e65c175f 100644 --- a/database/migrations/2020_01_08_000000_core_v200.php +++ b/database/migrations/2020_01_08_000000_core_v200.php @@ -109,6 +109,8 @@ class CoreV200 extends Migration $table->increments('id'); $table->integer('company_id'); $table->string('alias'); + $table->string('class'); + $table->string('name'); $table->string('subject'); $table->text('body'); $table->text('params')->nullable(); diff --git a/database/seeds/EmailTemplates.php b/database/seeds/EmailTemplates.php index 84c435436..78e74b551 100644 --- a/database/seeds/EmailTemplates.php +++ b/database/seeds/EmailTemplates.php @@ -27,23 +27,61 @@ class EmailTemplates extends Seeder $company_id = $this->command->argument('company'); $templates = [ - 'invoice_new_customer', - 'invoice_remind_customer', - 'invoice_remind_admin', - 'invoice_recur_customer', - 'invoice_recur_admin', - 'invoice_payment_customer', - 'invoice_payment_admin', - 'bill_remind_admin', - 'bill_recur_admin', + [ + 'alias' => 'invoice_new_customer', + 'class' => 'App\Notifications\Sale\Invoice', + 'name' => 'settings.email.templates.invoice_new_customer', + ], + [ + 'alias' => 'invoice_remind_customer', + 'class' => 'App\Notifications\Sale\Invoice', + 'name' => 'settings.email.templates.invoice_remind_customer', + ], + [ + 'alias' => 'invoice_remind_admin', + 'class' => 'App\Notifications\Sale\Invoice', + 'name' => 'settings.email.templates.invoice_remind_admin', + ], + [ + 'alias' => 'invoice_recur_customer', + 'class' => 'App\Notifications\Sale\Invoice', + 'name' => 'settings.email.templates.invoice_recur_customer', + ], + [ + 'alias' => 'invoice_recur_admin', + 'class' => 'App\Notifications\Sale\Invoice', + 'name' => 'settings.email.templates.invoice_recur_admin', + ], + [ + 'alias' => 'invoice_payment_customer', + 'class' => 'App\Notifications\Portal\PaymentReceived', + 'name' => 'settings.email.templates.invoice_payment_customer', + ], + [ + 'alias' => 'invoice_payment_admin', + 'class' => 'App\Notifications\Portal\PaymentReceived', + 'name' => 'settings.email.templates.invoice_payment_admin', + ], + [ + 'alias' => 'bill_remind_admin', + 'class' => 'App\Notifications\Purchase\Bill', + 'name' => 'settings.email.templates.bill_remind_admin', + ], + [ + 'alias' => 'bill_recur_admin', + 'class' => 'App\Notifications\Purchase\Bill', + 'name' => 'settings.email.templates.bill_recur_admin', + ], ]; foreach ($templates as $template) { EmailTemplate::create([ 'company_id' => $company_id, - 'alias' => $template, - 'subject' => trans('email_templates.' . $template . '.subject'), - 'body' => trans('email_templates.' . $template . '.body'), + 'alias' => $template['alias'], + 'class' => $template['class'], + 'name' => $template['name'], + 'subject' => trans('email_templates.' . $template['alias'] . '.subject'), + 'body' => trans('email_templates.' . $template['alias'] . '.body'), ]); } } diff --git a/resources/views/settings/email/edit.blade.php b/resources/views/settings/email/edit.blade.php index 195aadcb3..f042733ed 100644 --- a/resources/views/settings/email/edit.blade.php +++ b/resources/views/settings/email/edit.blade.php @@ -15,25 +15,32 @@ 'novalidate' => true, ]) !!} + @php $card = 1; @endphp +