From 00a3d36fcd5c084caeb3acb0a44daf4c1a700277 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Tue, 14 Jul 2020 15:37:49 +1000 Subject: [PATCH] Bug with viewed_date populating erroneously --- .../ClientPortal/InvitationController.php | 6 +- .../Misc/InvitationViewedListener.php | 6 +- app/Models/CreditInvitation.php | 56 ++++++++-------- app/Models/InvoiceInvitation.php | 64 +++++++++++-------- app/Models/QuoteInvitation.php | 56 ++++++++-------- 5 files changed, 100 insertions(+), 88 deletions(-) diff --git a/app/Http/Controllers/ClientPortal/InvitationController.php b/app/Http/Controllers/ClientPortal/InvitationController.php index ec613405a3..8061672d3c 100644 --- a/app/Http/Controllers/ClientPortal/InvitationController.php +++ b/app/Http/Controllers/ClientPortal/InvitationController.php @@ -44,8 +44,10 @@ class InvitationController extends Controller } else { auth()->guard('contact')->login($invitation->contact, true); } - - if (!request()->has('silent')) { + + if (!request()->has('silent') && !$invitation->viewed_date) { +// if (!request()->has('silent')) { + $invitation->markViewed(); event(new InvitationWasViewed($invitation->{$entity}, $invitation, $invitation->{$entity}->company, Ninja::eventVars())); diff --git a/app/Listeners/Misc/InvitationViewedListener.php b/app/Listeners/Misc/InvitationViewedListener.php index 6f6b74227d..501655e206 100644 --- a/app/Listeners/Misc/InvitationViewedListener.php +++ b/app/Listeners/Misc/InvitationViewedListener.php @@ -46,6 +46,7 @@ class InvitationViewedListener implements ShouldQueue $invitation = $event->invitation; $notification = new EntityViewedNotification($invitation, $entity_name); + $notification_not_fired_yet = true; foreach ($invitation->company->company_users as $company_user) { @@ -53,11 +54,12 @@ class InvitationViewedListener implements ShouldQueue $methods = $this->findUserNotificationTypes($invitation, $company_user, $entity_name, ['all_notifications', $entity_viewed]); - if (($key = array_search('mail', $methods)) !== false) { + if (($key = array_search('mail', $methods)) !== false && $notification_not_fired_yet) { unset($methods[$key]); EntityViewedMailer::dispatch($invitation, $entity_name, $company_user->user, $invitation->company); - + $notification_not_fired_yet = false; + } $notification->method = $methods; diff --git a/app/Models/CreditInvitation.php b/app/Models/CreditInvitation.php index 3220a56871..c1171e752d 100644 --- a/app/Models/CreditInvitation.php +++ b/app/Models/CreditInvitation.php @@ -42,37 +42,37 @@ class CreditInvitation extends BaseModel return CreditInvitation::class; } - public function getSignatureDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getSignatureDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getSentDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getSentDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getViewedDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getViewedDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getOpenedDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getOpenedDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } public function entityType() { diff --git a/app/Models/InvoiceInvitation.php b/app/Models/InvoiceInvitation.php index e41a310d13..57675418b2 100644 --- a/app/Models/InvoiceInvitation.php +++ b/app/Models/InvoiceInvitation.php @@ -41,37 +41,37 @@ class InvoiceInvitation extends BaseModel return InvoiceInvitation::class; } - public function getSignatureDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getSignatureDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getSentDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getSentDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getViewedDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getViewedDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getOpenedDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getOpenedDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } public function entityType() { @@ -126,10 +126,18 @@ class InvoiceInvitation extends BaseModel public function markViewed() { + info('marking viewed here'); + $this->viewed_date = Carbon::now(); $this->save(); } + public function markOpened() + { + $this->opened_date = Carbon::now(); + $this->save(); + } + public function pdf_file_path() { $storage_path = Storage::url($this->invoice->client->invoice_filepath() . $this->invoice->number . '.pdf'); diff --git a/app/Models/QuoteInvitation.php b/app/Models/QuoteInvitation.php index b8b37cda92..4558f48994 100644 --- a/app/Models/QuoteInvitation.php +++ b/app/Models/QuoteInvitation.php @@ -36,37 +36,37 @@ class QuoteInvitation extends BaseModel return QuoteInvitation::class; } - public function getSignatureDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getSignatureDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getSentDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getSentDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getViewedDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getViewedDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } - public function getOpenedDateAttribute($value) - { - if (!$value) { - return (new Carbon($value))->format('Y-m-d'); - } - return $value; - } + // public function getOpenedDateAttribute($value) + // { + // if (!$value) { + // return (new Carbon($value))->format('Y-m-d'); + // } + // return $value; + // } public function entityType() {