From edb97bf945edbf5495fa03c6b267cab4d199d08c Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Wed, 16 Oct 2019 09:32:54 +0200 Subject: [PATCH] - Ajout de l'import des societes --- app/Console/Commands/ImportArcadiaFiles.php | 20 ++++++++++++-- app/Console/Commands/ImportMedia.php | 30 ++++++++++++++++++++- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/app/Console/Commands/ImportArcadiaFiles.php b/app/Console/Commands/ImportArcadiaFiles.php index 093fca1..719b948 100644 --- a/app/Console/Commands/ImportArcadiaFiles.php +++ b/app/Console/Commands/ImportArcadiaFiles.php @@ -2,6 +2,7 @@ namespace App\Console\Commands; +use App\Models\Societe; use Illuminate\Console\Command; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\File; @@ -203,8 +204,23 @@ class ImportArcadiaFiles extends Command // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); - } - // TODO : Import des sociétés + }elseif (substr($filename, 0, 11) == "DAM_SOCIETE") { + foreach ($fileContent->dam as $row) { + $record = Societe::where('id', $row->codSociete)->first(); + if($record){ // Update record + $record->libelle = $row->nomSociete; + $record->save(); + }else{ // Insert new record + $record = new Societe(); + $record->id = $row->codSociete; + $record->libelle = $row->nomSociete; + $record->save(); + } + } + + // ---- Suppression du fichier + Storage::disk('arcadia')->delete($filename); + } $bar->advance(); } diff --git a/app/Console/Commands/ImportMedia.php b/app/Console/Commands/ImportMedia.php index 0c5cd97..e1f27c6 100644 --- a/app/Console/Commands/ImportMedia.php +++ b/app/Console/Commands/ImportMedia.php @@ -257,7 +257,35 @@ class ImportMedia extends Command //Storage::disk('arcadia')->delete($filename); } - // TODO : Import de l'association des sociétés + // ---- Traitement de l'association media <-> societe + $files = File::glob(storage_path('export_arcadia') . "/DAM_ASSO_SOCIETE_*.*"); + $this->line("-> Import du fichier DAM_ASSO_SOCIETE"); + foreach ($files as $filename) { + $path = explode("/", $filename); + $filename = $path[count($path) - 1]; + + // ---- Récupération du contenu + $oneFile = Storage::disk('arcadia')->get($filename); + $fileContent = simplexml_load_string($oneFile); + + // ---- traitement du fichier + $bar = $this->output->createProgressBar(count($fileContent->mediaassosociete)-1); + $bar->start(); + foreach ($fileContent->mediaassosociete as $row) { + $record = Media::where('arcadia_id', $row->codeVisuel)->first(); + if ($record) { + // attache la societe au média + $record->societes()->attach($row->codSociete); + } else { + $this->line("\nDAM_ASSO_SOCIETE : le media n°" . $row->codeVisuel . " n'existe pas"); + } + $bar->advance(); + } + $bar->finish(); + + // ---- Suppression du fichier + //Storage::disk('arcadia')->delete($filename); + } $this->line(""); $this->info('Fin du traitement');