From 33a9cad32a86419f43fa2bc57d7e7546a8abdc4f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sat, 14 Jan 2023 15:28:35 +1100 Subject: [PATCH] Fixes for deleting invitations after a contact has been deleted --- app/Console/Commands/ReactBuilder.php | 2 +- app/Models/ClientContact.php | 5 +++++ app/Observers/ClientContactObserver.php | 7 ++++--- app/Providers/EventServiceProvider.php | 3 +++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/Console/Commands/ReactBuilder.php b/app/Console/Commands/ReactBuilder.php index 15a2f6520f46..7d9b36843c73 100644 --- a/app/Console/Commands/ReactBuilder.php +++ b/app/Console/Commands/ReactBuilder.php @@ -56,7 +56,7 @@ class ReactBuilder extends Command $directoryIterator = new \RecursiveDirectoryIterator(public_path('react'), \RecursiveDirectoryIterator::SKIP_DOTS); foreach (new \RecursiveIteratorIterator($directoryIterator) as $file) { - if (str_contains($file->getFileName(), '.js')) { + if (str_contains($file->getFileName(), '.js') && !strpos($file->getFileName(), '.json')) { if (str_contains($file->getFileName(), 'index.')) { $includes .= ''."\n"; } else { diff --git a/app/Models/ClientContact.php b/app/Models/ClientContact.php index d6984ad7970f..23041b063104 100644 --- a/app/Models/ClientContact.php +++ b/app/Models/ClientContact.php @@ -181,6 +181,11 @@ class ClientContact extends Authenticatable implements HasLocalePreference return $this->hasMany(InvoiceInvitation::class); } + public function recurring_invoice_invitations() + { + return $this->hasMany(RecurringInvoiceInvitation::class); + } + public function quote_invitations() { return $this->hasMany(QuoteInvitation::class); diff --git a/app/Observers/ClientContactObserver.php b/app/Observers/ClientContactObserver.php index 92b6428b253d..398db1c8a2f5 100644 --- a/app/Observers/ClientContactObserver.php +++ b/app/Observers/ClientContactObserver.php @@ -48,6 +48,7 @@ class ClientContactObserver $clientContact->invoice_invitations()->delete(); $clientContact->quote_invitations()->delete(); $clientContact->credit_invitations()->delete(); + $clientContact->recurring_invoice_invitations()->delete(); } /** @@ -58,9 +59,9 @@ class ClientContactObserver */ public function restored(ClientContact $clientContact) { - $clientContact->invoice_invitations()->restore(); - $clientContact->quote_invitations()->restore(); - $clientContact->credit_invitations()->restore(); + // $clientContact->invoice_invitations()->restore(); + // $clientContact->quote_invitations()->restore(); + // $clientContact->credit_invitations()->restore(); } /** diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 2e7b59ebc4cc..c176963823ee 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -225,6 +225,7 @@ use App\Listeners\User\UpdateUserLastLogin; use App\Listeners\User\UpdatedUserActivity; use App\Models\Account; use App\Models\Client; +use App\Models\ClientContact; use App\Models\Company; use App\Models\CompanyGateway; use App\Models\CompanyToken; @@ -241,6 +242,7 @@ use App\Models\Subscription; use App\Models\Task; use App\Models\User; use App\Observers\AccountObserver; +use App\Observers\ClientContactObserver; use App\Observers\ClientObserver; use App\Observers\CompanyGatewayObserver; use App\Observers\CompanyObserver; @@ -633,6 +635,7 @@ class EventServiceProvider extends ServiceProvider Account::observe(AccountObserver::class); Subscription::observe(SubscriptionObserver::class); Client::observe(ClientObserver::class); + ClientContact::observe(ClientContactObserver::class); Company::observe(CompanyObserver::class); CompanyGateway::observe(CompanyGatewayObserver::class); CompanyToken::observe(CompanyTokenObserver::class);