From 35aab2df1fd5ba82a67b21d9fa07fd8315e6559a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Thu, 27 Oct 2022 15:51:40 +0200 Subject: [PATCH] For Egg And Poultry Breeders Truncate breeders before importing from Cafel Trigger Breeder destroy event to remove pictures --- app/Jobs/CafelEggBreederJob.php | 11 +++++++++++ app/Jobs/CafelMepPoultryJob.php | 1 + app/Jobs/CafelPoultryBreederJob.php | 11 +++++++++++ app/Models/CafelEggBreeder.php | 8 ++++++++ app/Models/CafelPoultryBreeder.php | 8 ++++++++ 5 files changed, 39 insertions(+) diff --git a/app/Jobs/CafelEggBreederJob.php b/app/Jobs/CafelEggBreederJob.php index d37318f..23812dd 100644 --- a/app/Jobs/CafelEggBreederJob.php +++ b/app/Jobs/CafelEggBreederJob.php @@ -16,6 +16,17 @@ class CafelEggBreederJob extends CafelJobs */ public function handle() { + // ! We have to remove all breeders to reimport them all in order to make sure + // ! to delete breeders that dont exists anymore (Api fetch constrain) + // ! vu avec Sylvain 27/10/2022 + + // * Destroy breeder one by one to trigger destroy event + /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\CafelEggBreeder> */ + $eggBreeders = CafelEggBreeder::all(); + $eggBreeders->each(function (CafelEggBreeder $breeder) { + $breeder->deleteOrFail(); + }); + $this->syncWithCafelApi( ApiCafelEggBreeder::class, 'cafel.ldc.eleveursoeufs', diff --git a/app/Jobs/CafelMepPoultryJob.php b/app/Jobs/CafelMepPoultryJob.php index c570fa5..f32b1bb 100644 --- a/app/Jobs/CafelMepPoultryJob.php +++ b/app/Jobs/CafelMepPoultryJob.php @@ -3,6 +3,7 @@ namespace App\Jobs; use App\Lib\CafelApi\Models\CafelMepPoultry; +use App\Models\CafelPoultryBreeder; use App\Models\CafelPoultryMiseEnPlace; class CafelMepPoultryJob extends CafelJobs diff --git a/app/Jobs/CafelPoultryBreederJob.php b/app/Jobs/CafelPoultryBreederJob.php index 5950f1e..dd256c1 100644 --- a/app/Jobs/CafelPoultryBreederJob.php +++ b/app/Jobs/CafelPoultryBreederJob.php @@ -16,6 +16,17 @@ class CafelPoultryBreederJob extends CafelJobs */ public function handle() { + // ! We have to remove all breeders to reimport them all in order to make sure + // ! to delete breeders that dont exists anymore (Api fetch constrain) + // ! vu avec Sylvain 27/10/2022 + + // * Destroy breeder one by one to trigger destroy event + /** @var \Illuminate\Database\Eloquent\Collection<\App\Models\CafelEggBreeder> */ + $poultryBreeders = CafelPoultryBreeder::all(); + $poultryBreeders->each(function (CafelPoultryBreeder $breeder) { + $breeder->deleteOrFail(); + }); + $this->syncWithCafelApi( ApiCafelPoultryBreeder::class, 'cafel.ldc.eleveursvolailles', diff --git a/app/Models/CafelEggBreeder.php b/app/Models/CafelEggBreeder.php index d7ee50f..18079d8 100644 --- a/app/Models/CafelEggBreeder.php +++ b/app/Models/CafelEggBreeder.php @@ -112,6 +112,14 @@ class CafelEggBreeder extends Model return self::areInuavCodesUniques($model); return self::isEdeCodeUnique($model); }); + static::deleting(function (self $model) { + if ($model->getRawOriginal('path_picture_1')) { + Storage::delete(\public_path($model->getRawOriginal('path_picture_1'))); + } + if ($model->getRawOriginal('path_picture_2')) { + Storage::delete(\public_path($model->getRawOriginal('path_picture_2'))); + } + }); } // * METHODS diff --git a/app/Models/CafelPoultryBreeder.php b/app/Models/CafelPoultryBreeder.php index bf6ec62..6c217ac 100644 --- a/app/Models/CafelPoultryBreeder.php +++ b/app/Models/CafelPoultryBreeder.php @@ -94,6 +94,14 @@ class CafelPoultryBreeder extends Model } return self::areInuavCodesUniques($model); }); + static::deleting(function (self $model) { + if ($model->getRawOriginal('path_picture_1')) { + Storage::delete(\public_path($model->getRawOriginal('path_picture_1'))); + } + if ($model->getRawOriginal('path_picture_2')) { + Storage::delete(\public_path($model->getRawOriginal('path_picture_2'))); + } + }); } // * METHODS