diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index 913ce2d9564b..e77fa41e7e74 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -25,7 +25,10 @@ use App\Jobs\Company\CreateCompany; use App\Jobs\Company\CreateCompanyPaymentTerms; use App\Jobs\Company\CreateCompanyTaskStatuses; use App\Jobs\Company\CreateCompanyToken; +use App\Jobs\Mail\NinjaMailerJob; +use App\Jobs\Mail\NinjaMailerObject; use App\Jobs\Ninja\RefundCancelledAccount; +use App\Mail\Company\CompanyDeleted; use App\Models\Account; use App\Models\Company; use App\Models\CompanyUser; @@ -504,6 +507,15 @@ class CompanyController extends BaseController $company->company_users->each(function ($company_user){ $company_user->forceDelete(); }); + + $other_company = $company->account->companies->where('id', '!=', $company->id)->first(); + + $nmo = new NinjaMailerObject; + $nmo->mailable = new CompanyDeleted($company->present()->name, auth()->user(), $company->account, $company->settings); + $nmo->company = $other_company; + $nmo->settings = $other_company->settings; + $nmo->to_user = auth()->user(); + NinjaMailerJob::dispatch($nmo); $company->delete(); diff --git a/app/Mail/Company/CompanyDeleted.php b/app/Mail/Company/CompanyDeleted.php new file mode 100644 index 000000000000..da021afeaf29 --- /dev/null +++ b/app/Mail/Company/CompanyDeleted.php @@ -0,0 +1,61 @@ +company = $company; + $this->user = $user; + $this->account = $account; + $this->settings = $settings; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->from(config('mail.from.address'), config('mail.from.name')) + ->subject(ctrans('texts.company_deleted')) + ->view('email.admin.company_deleted') + ->with([ + 'settings' => $this->settings, + 'logo' => '', + 'title' => ctrans('texts.company_deleted'), + 'body' => ctrans('texts.company_deleted_body', ['company' => $this->company, 'user' => $this->user->present()->name(), 'time' => now()]), + 'whitelabel' => $this->account->isPaid(), + ]); + } +} diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index 0b5fa52665a2..fc01b693ddaf 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -4282,6 +4282,8 @@ $LANG = array( 'no_quotes_available_for_download' => 'No quotes available for download.', 'copyright' => 'Copyright', 'user_created_user' => ':user created :created_user at :time', + 'company_deleted' => 'Company deleted', + 'company_deleted_body' => 'Company [ :company ] was deleted by :user', ); return $LANG; diff --git a/resources/views/email/admin/company_deleted.blade.php b/resources/views/email/admin/company_deleted.blade.php new file mode 100644 index 000000000000..2281b8f1bdbe --- /dev/null +++ b/resources/views/email/admin/company_deleted.blade.php @@ -0,0 +1,6 @@ +@component('email.template.admin', ['logo' => $logo, 'settings' => $settings]) +
+

{!! $title !!}

+

{!! $body !!}

+
+@endcomponent