Merge pull request #7077 from turbo124/master

Fixes for Send Notification Mailer
This commit is contained in:
David Bomba 2022-01-03 10:36:24 +11:00 committed by GitHub
commit d5e5acf6c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 26 deletions

View File

@ -140,7 +140,7 @@ class ClientPortalController extends BaseController
$paymentURL = '';
if (count($paymentTypes) == 1) {
$paymentURL = $paymentTypes[0]['url'];
if (in_array($paymentTypes[0]['gatewayTypeId'], [GATEWAY_TYPE_CUSTOM1, GATEWAY_TYPE_CUSTOM2, GATEWAY_TYPE_CUSTOM3])) {
if (array_key_exists('gatewayTypeId', $paymentTypes[0]) && in_array($paymentTypes[0]['gatewayTypeId'], [GATEWAY_TYPE_CUSTOM1, GATEWAY_TYPE_CUSTOM2, GATEWAY_TYPE_CUSTOM3])) {
// do nothing
} elseif (! $account->isGatewayConfigured(GATEWAY_PAYPAL_EXPRESS)) {
$paymentURL = URL::to($paymentURL);
@ -162,6 +162,11 @@ class ClientPortalController extends BaseController
$showApprove = false;
}
$gatewayTypeIdCast = false;
if(count($paymentTypes) >= 1 && array_key_exists('gatewayTypeId', $paymentTypes[0]))
$gatewayTypeIdCast = $paymentTypes[0]['gatewayTypeId'];
$data += [
'account' => $account,
'showApprove' => $showApprove,
@ -173,7 +178,7 @@ class ClientPortalController extends BaseController
'paymentTypes' => $paymentTypes,
'paymentURL' => $paymentURL,
'phantomjs' => Request::has('phantomjs'),
'gatewayTypeId' => count($paymentTypes) == 1 ? $paymentTypes[0]['gatewayTypeId'] : false,
'gatewayTypeId' => count($paymentTypes) == 1 ? $gatewayTypeIdCast : false,
];
if ($invoice->canBePaid()) {

View File

@ -25,9 +25,9 @@ use App\Services\RecurringInvoiceService;
use Auth;
use Cache;
use DB;
use Illuminate\Support\Facades\Session;
use Redirect;
use Request;
use Session;
use URL;
use Utils;
use View;
@ -427,7 +427,7 @@ class InvoiceController extends BaseController
$response = $this->emailRecurringInvoice($invoice);
} else {
$userId = Auth::user()->id;
$this->dispatch(new SendInvoiceEmail($invoice, $userId, $reminder, $template));
dispatch(new SendInvoiceEmail($invoice, $userId, $reminder, $template));
$response = true;
}

View File

@ -21,7 +21,7 @@ class SendInvoiceEmail extends Job implements ShouldQueue
/**
* @var Invoice
*/
protected $invoice;
public $invoice;
/**
* @var bool

View File

@ -2,51 +2,53 @@
namespace App\Jobs;
use App\Models\Invoice;
use App\Models\Payment;
use App\Models\Traits\SerialisesDeletedModels;
use App\Models\User;
use App\Ninja\Mailers\UserMailer;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\Traits\SerialisesDeletedModels;
/**
* Class SendInvoiceEmail.
*/
class SendNotificationEmail extends Job implements ShouldQueue
{
use InteractsWithQueue, SerializesModels, SerialisesDeletedModels {
SerialisesDeletedModels::getRestoredPropertyValue insteadof SerializesModels;
}
use InteractsWithQueue;
public $deleteWhenMissingModels = true;
/**
* @var User
*/
protected $user;
public User $user;
/**
* @var Invoice
*/
protected $invoice;
public Invoice $invoice;
/**
* @var string
*/
protected $type;
public $type;
/**
* @var Payment
*/
protected $payment;
public ?Payment $payment;
/**
* @var string
*/
protected $notes;
public $notes;
/**
* @var string
*/
protected $server;
public $server;
/**
* Create a new job instance.
@ -59,7 +61,7 @@ class SendNotificationEmail extends Job implements ShouldQueue
* @param mixed $type
* @param mixed $payment
*/
public function __construct($user, $invoice, $type, $payment, $notes)
public function __construct(User $user, Invoice $invoice, $type, ?Payment $payment, $notes)
{
$this->user = $user;
$this->invoice = $invoice;

View File

@ -1,17 +1,20 @@
<?php namespace App\Listeners;
<?php
namespace App\Listeners;
use App\Ninja\Mailers\UserMailer;
use App\Ninja\Mailers\ContactMailer;
use App\Events\InvoiceWasEmailed;
use App\Events\QuoteWasEmailed;
use App\Events\InvoiceInvitationWasViewed;
use App\Events\QuoteInvitationWasViewed;
use App\Events\QuoteInvitationWasApproved;
use App\Events\InvoiceWasEmailed;
use App\Events\PaymentWasCreated;
use App\Services\PushService;
use App\Events\QuoteInvitationWasApproved;
use App\Events\QuoteInvitationWasViewed;
use App\Events\QuoteWasEmailed;
use App\Jobs\SendNotificationEmail;
use App\Jobs\SendPaymentEmail;
use App\Models\Invoice;
use App\Ninja\Mailers\ContactMailer;
use App\Ninja\Mailers\UserMailer;
use App\Notifications\PaymentCreated;
use App\Services\PushService;
/**
* Class NotificationListener
@ -49,7 +52,7 @@ class NotificationListener
* @param $type
* @param null $payment
*/
private function sendNotifications($invoice, $type, $payment = null, $notes = false)
private function sendNotifications(Invoice $invoice, $type, $payment = null, $notes = false)
{
foreach ($invoice->account->users as $user)
{

View File

@ -73,7 +73,7 @@ class UserMailer extends Mailer
User $user,
Invoice $invoice,
$notificationType,
Payment $payment = null,
?Payment $payment,
$notes = false
) {
if (! $user->shouldNotify($invoice)) {