From dc1fe692a31e6bffc51dcfe80465c8d8c8125415 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 27 Nov 2021 15:54:49 +1100 Subject: [PATCH] Adjustments for entity notifications --- app/Jobs/Mail/PaymentFailedMailer.php | 2 +- app/Jobs/Mail/PaymentFailureMailer.php | 2 +- app/PaymentDrivers/BaseDriver.php | 2 +- app/PaymentDrivers/CheckoutCom/CreditCard.php | 6 +++--- app/PaymentDrivers/CheckoutCom/Utilities.php | 5 +++-- app/Utils/Traits/Notifications/UserNotifies.php | 11 ++--------- 6 files changed, 11 insertions(+), 17 deletions(-) diff --git a/app/Jobs/Mail/PaymentFailedMailer.php b/app/Jobs/Mail/PaymentFailedMailer.php index 58c6abc1059d..75c8ef97a568 100644 --- a/app/Jobs/Mail/PaymentFailedMailer.php +++ b/app/Jobs/Mail/PaymentFailedMailer.php @@ -85,7 +85,7 @@ class PaymentFailedMailer implements ShouldQueue //determine if this user has the right permissions // $methods = $this->findCompanyUserNotificationType($company_user, ['payment_failure_all','payment_failure','all_notifications']); - $methods = $this->findUserEntityNotificationType($this->client, $company_user, ['payment_failure_all','payment_failure','all_notifications']); + $methods = $this->findUserEntityNotificationType($this->client, $company_user, ['payment_failure_user','payment_failure_all','payment_failure','all_notifications']); //if mail is a method type -fire mail!! if (($key = array_search('mail', $methods)) !== false) { diff --git a/app/Jobs/Mail/PaymentFailureMailer.php b/app/Jobs/Mail/PaymentFailureMailer.php index 98a2c2448985..c1a3aaee3197 100644 --- a/app/Jobs/Mail/PaymentFailureMailer.php +++ b/app/Jobs/Mail/PaymentFailureMailer.php @@ -80,7 +80,7 @@ class PaymentFailureMailer implements ShouldQueue $this->company->company_users->each(function ($company_user) { //determine if this user has the right permissions - $methods = $this->findCompanyUserNotificationType($company_user, ['payment_failure_all','payment_failure','all_notifications']); + $methods = $this->findCompanyUserNotificationType($company_user, ['payment_failure_all','payment_failure', 'payment_failure_user', 'all_notifications']); //if mail is a method type -fire mail!! if (($key = array_search('mail', $methods)) !== false) { diff --git a/app/PaymentDrivers/BaseDriver.php b/app/PaymentDrivers/BaseDriver.php index af59a1c69578..bd29febe3044 100644 --- a/app/PaymentDrivers/BaseDriver.php +++ b/app/PaymentDrivers/BaseDriver.php @@ -440,7 +440,7 @@ class BaseDriver extends AbstractPaymentDriver $invoices->first()->invitations->each(function ($invitation) use ($nmo) { - if ($invitation->contact->email) { + if ((bool)$invitation->contact->send_email !== false && $invitation->contact->email) { $nmo->to_user = $invitation->contact; NinjaMailerJob::dispatch($nmo); diff --git a/app/PaymentDrivers/CheckoutCom/CreditCard.php b/app/PaymentDrivers/CheckoutCom/CreditCard.php index cd00111dc892..89cebc3da19d 100644 --- a/app/PaymentDrivers/CheckoutCom/CreditCard.php +++ b/app/PaymentDrivers/CheckoutCom/CreditCard.php @@ -213,10 +213,10 @@ class CreditCard implements MethodInterface if ($response->status == 'Declined') { $this->checkout->unWindGatewayFees($this->checkout->payment_hash); - $this->checkout->sendFailureMail($response->response_summary); - + // $this->checkout->sendFailureMail($response->response_summary); + //@todo - this will double up the checkout . com failed mails - $this->checkout->clientPaymentFailureMailer($response->status); + // $this->checkout->clientPaymentFailureMailer($response->status); return $this->processUnsuccessfulPayment($response); } diff --git a/app/PaymentDrivers/CheckoutCom/Utilities.php b/app/PaymentDrivers/CheckoutCom/Utilities.php index ca4c544d75b4..438453050124 100644 --- a/app/PaymentDrivers/CheckoutCom/Utilities.php +++ b/app/PaymentDrivers/CheckoutCom/Utilities.php @@ -84,8 +84,9 @@ trait Utilities public function processUnsuccessfulPayment(Payment $_payment, $throw_exception = true) { - $this->getParent()->sendFailureMail($_payment->status . " " . optional($_payment)->response_summary); - + $this->getParent()->sendFailureMail($_payment->response_summary); + $this->getParent()->clientPaymentFailureMailer($_payment->status); + $message = [ 'server_response' => $_payment, 'data' => $this->getParent()->payment_hash->data, diff --git a/app/Utils/Traits/Notifications/UserNotifies.php b/app/Utils/Traits/Notifications/UserNotifies.php index e62d4d709c86..979c937a5270 100644 --- a/app/Utils/Traits/Notifications/UserNotifies.php +++ b/app/Utils/Traits/Notifications/UserNotifies.php @@ -61,18 +61,11 @@ trait UserNotifies array_push($required_permissions, 'all_user_notifications'); } - -nlog($company_user->notifications); -nlog($required_permissions); -nlog(count(array_intersect($required_permissions, ['all_user_notifications']))); -nlog(count(array_intersect($required_permissions, ['all_notifications']))); -nlog(count(array_intersect($required_permissions, $notifications->email))); - - if (count(array_intersect($required_permissions, $notifications->email)) >= 1 || count(array_intersect(['all_user_notifications'], $notifications->email)) >= 1 || count(array_intersect(['all_notifications'],$notifications->email)) >= 1) { + if (count(array_intersect($required_permissions, $notifications->email)) >= 1 || count(array_intersect(['all_notifications'],$notifications->email)) >= 1) { array_push($notifiable_methods, 'mail'); } - +nlog($notifiable_methods); return $notifiable_methods; }