Merge pull request #7440 from turbo124/v5-develop

Fixes for client payment failure emails
This commit is contained in:
David Bomba 2022-05-17 14:42:27 +10:00 committed by GitHub
commit 766b10fb85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 41 additions and 37 deletions

View File

@ -46,7 +46,7 @@ TRUSTED_PROXIES=
NINJA_ENVIRONMENT=selfhost
#options - snappdf / phantom / hosted_ninja
PDF_GENERATOR=phantom
PDF_GENERATOR=hosted_ninja
PHANTOMJS_KEY='a-demo-key-with-low-quota-per-ip-address'
PHANTOMJS_SECRET=secret

View File

@ -29,6 +29,7 @@ class WePayController extends BaseController
*/
public function signup(string $token)
{
return render('gateways.wepay.signup.finished');
$hash = Cache::get($token);

View File

@ -111,9 +111,10 @@ class PaymentFailedMailer implements ShouldQueue
//add client payment failures here.
//
if($contact = $this->client->contacts()->first() && $this->payment_hash)
if($this->client->contacts()->whereNotNull('email')->exists() && $this->payment_hash)
{
$contact = $this->client->contacts()->whereNotNull('email')->first();
$mail_obj = (new ClientPaymentFailureObject($this->client, $this->error, $this->company, $this->payment_hash))->build();
$nmo = new NinjaMailerObject;

View File

@ -245,7 +245,7 @@ class GoCardlessPaymentDriver extends BaseDriver
sleep(1);
foreach ($request->events as $event) {
if ($event['action'] === 'confirmed') {
if ($event['action'] === 'confirmed' || $event['action'] === 'paid_out') {
nlog("Searching for transaction reference");

View File

@ -579,7 +579,7 @@ class StripePaymentDriver extends BaseDriver
if(array_key_exists('payment_intent', $transaction))
{
$payment = Payment::query()
->where('company_id', $request->getCompany()->id)
// ->where('company_id', $request->getCompany()->id)
->where(function ($query) use ($transaction) {
$query->where('transaction_reference', $transaction['payment_intent'])
->orWhere('transaction_reference', $transaction['id']);
@ -589,7 +589,7 @@ class StripePaymentDriver extends BaseDriver
else
{
$payment = Payment::query()
->where('company_id', $request->getCompany()->id)
// ->where('company_id', $request->getCompany()->id)
->where('transaction_reference', $transaction['id'])
->first();
}

View File

@ -51,92 +51,83 @@ class UpdateReminder extends AbstractService
if (is_null($this->invoice->reminder1_sent) &&
$this->settings->schedule_reminder1 == 'after_invoice_date' &&
$this->settings->enable_reminder1 &&
$this->settings->num_days_reminder1 != 0) {
$this->settings->enable_reminder1) {
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 1 after due date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder1_sent) &&
$this->settings->schedule_reminder1 == 'before_due_date' &&
$this->settings->enable_reminder1 &&
$this->settings->num_days_reminder1 != 0) {
$this->settings->enable_reminder1) {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder1)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 1 before_due_date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder1_sent) &&
$this->settings->schedule_reminder1 == 'after_due_date' &&
$this->settings->enable_reminder1 &&
$this->settings->num_days_reminder1 != 0) {
$this->settings->enable_reminder1) {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 1 after_due_date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder2_sent) &&
$this->settings->schedule_reminder2 == 'after_invoice_date' &&
$this->settings->enable_reminder2 &&
$this->settings->num_days_reminder2 != 0) {
$this->settings->enable_reminder2) {
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 2 after_invoice_date = ".$reminder_date->format('Y-m-d'));
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder2_sent) &&
$this->settings->schedule_reminder2 == 'before_due_date' &&
$this->settings->enable_reminder2 &&
$this->settings->num_days_reminder2 != 0) {
$this->settings->enable_reminder2) {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder2)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 2 before_due_date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder2_sent) &&
$this->settings->schedule_reminder2 == 'after_due_date' &&
$this->settings->enable_reminder2 &&
$this->settings->num_days_reminder2 != 0) {
$this->settings->enable_reminder2) {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 2 after_due_date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder3_sent) &&
$this->settings->schedule_reminder3 == 'after_invoice_date' &&
$this->settings->enable_reminder3 &&
$this->settings->num_days_reminder3 != 0) {
$this->settings->enable_reminder3) {
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 3 after_invoice_date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder3_sent) &&
$this->settings->schedule_reminder3 == 'before_due_date' &&
$this->settings->enable_reminder3 &&
$this->settings->num_days_reminder3 != 0) {
$this->settings->enable_reminder3) {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder3)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 3 before_due_date");
$date_collection->push($reminder_date);
}
if (is_null($this->invoice->reminder3_sent) &&
$this->settings->schedule_reminder3 == 'after_due_date' &&
$this->settings->enable_reminder3 &&
$this->settings->num_days_reminder3 != 0) {
$this->settings->enable_reminder3) {
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings reminder 3 after_due_date");
$date_collection->push($reminder_date);
}
if ($this->invoice->last_sent_date &&
@ -149,7 +140,7 @@ class UpdateReminder extends AbstractService
$reminder_date->addSeconds($offset);
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
$date_collection->push($reminder_date); nlog("settings endless reminder");
$date_collection->push($reminder_date);
}

View File

@ -32,7 +32,11 @@ trait UserNotifies
$notifiable_methods = [];
$notifications = $company_user->notifications;
if ($invitation->company->is_disabled && is_array($notifications->email) || $company_user->trashed() || $company_user->user->trashed()) {
if ($invitation->company->is_disabled &&
is_array($notifications->email) ||
$company_user->trashed() ||
!$company_user->user ||
$company_user->user->trashed()) {
return [];
}
@ -56,7 +60,11 @@ trait UserNotifies
$notifiable_methods = [];
$notifications = $company_user->notifications;
if ($entity->company->is_disabled || ! $notifications || $company_user->trashed() || $company_user->user->trashed()) {
if ($entity->company->is_disabled ||
! $notifications ||
$company_user->trashed() ||
! $company_user->user ||
$company_user->user->trashed()) {
return [];
}
@ -125,7 +133,10 @@ trait UserNotifies
public function findCompanyUserNotificationType($company_user, $required_permissions) :array
{
if ($company_user->company->is_disabled || $company_user->trashed() || $company_user->user->trashed()) {
if ($company_user->company->is_disabled ||
$company_user->trashed() ||
!$company_user->user ||
$company_user->user->trashed()) {
return [];
}