diff --git a/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php b/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php index 25fbfaadd306..f4ead506a73e 100644 --- a/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php +++ b/app/Http/Controllers/ClientPortal/RecurringInvoiceController.php @@ -62,21 +62,46 @@ class RecurringInvoiceController extends Controller public function requestCancellation(RequestCancellationRequest $request, RecurringInvoice $recurring_invoice) { - if (is_null($recurring_invoice->subscription_id) || optional($recurring_invoice->subscription)->allow_cancellation) { + nlog("outside cancellation"); + + if (optional($recurring_invoice->subscription)->allow_cancellation) { + + nlog("inside the cancellation"); + $nmo = new NinjaMailerObject; $nmo->mailable = (new NinjaMailer((new ClientContactRequestCancellationObject($recurring_invoice, auth()->user()))->build())); $nmo->company = $recurring_invoice->company; $nmo->settings = $recurring_invoice->company->settings; - $notifiable_users = $this->filterUsersByPermissions($recurring_invoice->company->company_users, $recurring_invoice, ['recurring_cancellation']); + // $notifiable_users = $this->filterUsersByPermissions($recurring_invoice->company->company_users, $recurring_invoice, ['recurring_cancellation']); + + $recurring_invoice->company->company_users->each(function ($company_user) use ($nmo){ + + + $methods = $this->findCompanyUserNotificationType($company_user, ['recurring_cancellation', 'all_notifications']); + + + //if mail is a method type -fire mail!! + if (($key = array_search('mail', $methods)) !== false) { + unset($methods[$key]); + + + $nmo->to_user = $company_user->user; + NinjaMailerJob::dispatch($nmo); + + } - $notifiable_users->each(function ($company_user) use($nmo){ - $nmo->to_user = $company_user->user; - NinjaMailerJob::dispatch($nmo); }); + // $notifiable_users->each(function ($company_user) use($nmo){ + + // $nmo->to_user = $company_user->user; + // NinjaMailerJob::dispatch($nmo); + + // }); + //$recurring_invoice->user->notify(new ClientContactRequestCancellation($recurring_invoice, auth()->user())); return $this->render('recurring_invoices.cancellation.index', [ diff --git a/app/Jobs/User/UserEmailChanged.php b/app/Jobs/User/UserEmailChanged.php index 5a4a770ba9a3..89db82344dce 100644 --- a/app/Jobs/User/UserEmailChanged.php +++ b/app/Jobs/User/UserEmailChanged.php @@ -77,9 +77,6 @@ class UserEmailChanged implements ShouldQueue NinjaMailerJob::dispatch($nmo, true); - // $nmo->to_user = $this->new_user; - // NinjaMailerJob::dispatch($nmo); - $this->new_user->service()->invite($this->company); } diff --git a/app/Mail/ContactPasswordlessLogin.php b/app/Mail/ContactPasswordlessLogin.php index 4370041767b6..1a006cd61c1a 100644 --- a/app/Mail/ContactPasswordlessLogin.php +++ b/app/Mail/ContactPasswordlessLogin.php @@ -58,6 +58,7 @@ class ContactPasswordlessLogin extends Mailable return $this ->subject(ctrans('texts.account_passwordless_login')) + ->text('email.billing.passwordless-login_text') ->view('email.billing.passwordless-login', [ 'logo' => $this->company->present()->logo(), 'settings' => $this->company->settings, diff --git a/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php b/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php index 6032a552fa24..4ee7a0e32441 100644 --- a/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php +++ b/app/Mail/RecurringInvoice/ClientContactRequestCancellationObject.php @@ -58,6 +58,7 @@ class ClientContactRequestCancellationObject $mail_obj->data = $data; $mail_obj->markdown = 'email.admin.generic'; $mail_obj->tag = $this->company->company_key; + $mail_obj->text_view = 'email.admin.generic_text'; return $mail_obj; } diff --git a/app/Mail/User/UserAdded.php b/app/Mail/User/UserAdded.php index d732bce479f9..8f64b30c6358 100644 --- a/app/Mail/User/UserAdded.php +++ b/app/Mail/User/UserAdded.php @@ -50,6 +50,7 @@ class UserAdded extends Mailable return $this->from(config('mail.from.address'), config('mail.from.name')) ->subject(ctrans('texts.created_user')) + ->text('email.admin.user_added_text') ->view('email.admin.user_added') ->with([ 'settings' => $this->company->settings, diff --git a/app/Mail/User/UserLoggedIn.php b/app/Mail/User/UserLoggedIn.php index 2a270d73aa35..28150b7ed4e8 100644 --- a/app/Mail/User/UserLoggedIn.php +++ b/app/Mail/User/UserLoggedIn.php @@ -50,6 +50,10 @@ class UserLoggedIn extends Mailable return $this->from(config('mail.from.address'), config('mail.from.name')) ->subject(ctrans('texts.new_login_detected')) + ->text('email.admin.generic_text',[ + 'title' => ctrans('texts.new_login_detected'), + 'body' => strip_tags(ctrans('texts.new_login_description', ['email' => $this->user->email, 'ip' => $this->ip, 'time' => now()])) + ]) ->view('email.admin.notification') ->with([ 'settings' => $this->company->settings, diff --git a/app/Mail/User/UserNotificationMailer.php b/app/Mail/User/UserNotificationMailer.php index 968051f7900f..9ab33d4597b4 100644 --- a/app/Mail/User/UserNotificationMailer.php +++ b/app/Mail/User/UserNotificationMailer.php @@ -37,6 +37,10 @@ class UserNotificationMailer extends Mailable { return $this->from(config('mail.from.address'), config('mail.from.name')) ->subject($this->mail_obj->subject) + ->text('email.admin.generic_text',[ + 'title' => $this->mail_obj->data['title'], + 'body' => $this->mail_obj->data['message'], + ]) ->view($this->mail_obj->markdown, $this->mail_obj->data) ->withSwiftMessage(function ($message) { $message->getHeaders()->addTextHeader('Tag', $this->mail_obj->tag); diff --git a/app/Services/Subscription/SubscriptionService.php b/app/Services/Subscription/SubscriptionService.php index 4f0e6a7b3a50..9899e94f2259 100644 --- a/app/Services/Subscription/SubscriptionService.php +++ b/app/Services/Subscription/SubscriptionService.php @@ -16,9 +16,13 @@ use App\Factory\CreditFactory; use App\Factory\InvoiceFactory; use App\Factory\InvoiceToRecurringInvoiceFactory; use App\Factory\RecurringInvoiceFactory; +use App\Jobs\Mail\NinjaMailer; +use App\Jobs\Mail\NinjaMailerJob; +use App\Jobs\Mail\NinjaMailerObject; use App\Jobs\Util\SubscriptionWebhookHandler; use App\Jobs\Util\SystemLogger; use App\Libraries\MultiDB; +use App\Mail\RecurringInvoice\ClientContactRequestCancellationObject; use App\Models\Client; use App\Models\ClientContact; use App\Models\Credit; @@ -36,6 +40,7 @@ use App\Services\Subscription\ZeroCostProduct; use App\Utils\Ninja; use App\Utils\Traits\CleanLineItems; use App\Utils\Traits\MakesHash; +use App\Utils\Traits\Notifications\UserNotifies; use App\Utils\Traits\SubscriptionHooker; use Carbon\Carbon; use GuzzleHttp\RequestOptions; @@ -46,6 +51,7 @@ class SubscriptionService use MakesHash; use CleanLineItems; use SubscriptionHooker; + use UserNotifies; /** @var subscription */ private $subscription; @@ -934,6 +940,29 @@ class SubscriptionService $this->triggerWebhook($context); + $nmo = new NinjaMailerObject; + $nmo->mailable = (new NinjaMailer((new ClientContactRequestCancellationObject($recurring_invoice, auth()->guard('contact')->user()))->build())); + $nmo->company = $recurring_invoice->company; + $nmo->settings = $recurring_invoice->company->settings; + + $recurring_invoice->company->company_users->each(function ($company_user) use ($nmo){ + + $methods = $this->findCompanyUserNotificationType($company_user, ['recurring_cancellation', 'all_notifications']); + + //if mail is a method type -fire mail!! + if (($key = array_search('mail', $methods)) !== false) { + unset($methods[$key]); + + $nmo->to_user = $company_user->user; + NinjaMailerJob::dispatch($nmo); + + } + + + }); + + + return $this->handleRedirect('client/subscriptions'); } diff --git a/resources/views/email/admin/generic_text.blade.php b/resources/views/email/admin/generic_text.blade.php new file mode 100644 index 000000000000..1fdebc4f23ab --- /dev/null +++ b/resources/views/email/admin/generic_text.blade.php @@ -0,0 +1,9 @@ +{!! $title !!} + +@isset($body) +{!! $body !!} +@endisset + +@isset($content) +{!! $content !!} +@endisset \ No newline at end of file diff --git a/resources/views/email/admin/user_added_text.blade.php b/resources/views/email/admin/user_added_text.blade.php new file mode 100644 index 000000000000..031abd6995e5 --- /dev/null +++ b/resources/views/email/admin/user_added_text.blade.php @@ -0,0 +1,3 @@ +{!! $title !!} + +{!! $body !!} diff --git a/resources/views/email/billing/passwordless-login_text.blade.php b/resources/views/email/billing/passwordless-login_text.blade.php new file mode 100644 index 000000000000..d49230510b1d --- /dev/null +++ b/resources/views/email/billing/passwordless-login_text.blade.php @@ -0,0 +1,6 @@ +{!! ctrans('texts.login_link_requested_label') !!} + +{!! ctrans('texts.login_link_requested') !!} + +{!! $url !!} +