info('Démarrage du traitement'); $files = Storage::disk('arcadia')->files(); $bar = $this->output->createProgressBar(count($files)-1); $bar->start(); // ---- Pour chaque fichier foreach ($files as $filename) { if($filename == ".gitignore") continue; // ---- Récupération du contenu $files = Storage::disk('arcadia')->get($filename); $fileContent = simplexml_load_string($files); // ---- traitement du fichier if(substr($filename, 0, 11) == "DAM_ARTICLE"){ foreach ($fileContent->dam as $row) { $record = Article::where('noArt', $row->noArt)->first(); if($record){ // Update record $record->libCcial = $row->libCcial; $record->codMarq = $row->codMarq; $record->libMarq = $row->libMarq; $record->codFamVte = $row->codFamVte; $record->libFamVte = $row->libFamVte; $record->codGencodAdm = $row->codGencodAdm; $record->codGencodSymb = $row->codGencodSymb; $record->codGencodPds = $row->codGencodPds; $record->save(); }else{ // Insert new record $record = new Article(); $record->noArt = $row->noArt; $record->libCcial = $row->libCcial; $record->codMarq = $row->codMarq; $record->libMarq = $row->libMarq; $record->codFamVte = $row->codFamVte; $record->libFamVte = $row->libFamVte; $record->codGencodAdm = $row->codGencodAdm; $record->codGencodSymb = $row->codGencodSymb; $record->codGencodPds = $row->codGencodPds; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); }elseif (substr($filename, 0, 10) == "DAM_MARQUE") { foreach ($fileContent->dam as $row) { $record = Marque::where('codMarq', $row->codMarq)->first(); if($record){ // Update record $record->libMarq = $row->libMarq; $record->save(); }else{ // Insert new record $record = new Marque(); $record->codMarq = $row->codMarq; $record->libMarq = $row->libMarq; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); }elseif (substr($filename, 0, 15) == "DAM_MEDIA_SUJET") { foreach ($fileContent->mediaSujet as $row) { $record = Sujet::where('codeSujet', $row->code)->first(); if($record){ // Update record $record->libelle = $row->libelle; $record->save(); }else{ // Insert new record $record = new Sujet(); $record->codeSujet = $row->code; $record->libelle = $row->libelle; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); }elseif (substr($filename, 0, 20) == "DAM_MEDIA_TYPE_MEDIA") { foreach ($fileContent->mediatypemedia as $row) { $record = Typemedia::where('codeTypemedia', $row->code)->first(); if($record){ // Update record $record->libelle = $row->libelle; $record->save(); }else{ // Insert new record $record = new Typemedia(); $record->codeTypemedia = $row->code; $record->libelle = $row->libelle; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); }elseif (substr($filename, 0, 17) == "DAM_MEDIA_TYPEVUE") { foreach ($fileContent->mediatypesvue as $row) { $record = Typevue::where('codeTypevue', $row->code)->first(); if($record){ // Update record $record->libelle = $row->libelle; $record->sujet_id = $row->sujet_id->mediasujet->code; $record->save(); }else{ // Insert new record $record = new Typevue(); $record->codeTypevue = $row->code; $record->libelle = $row->libelle; $record->sujet_id = $row->sujet_id->mediasujet->code; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); }elseif (substr($filename, 0, 18) == "DAM_MEDIA_VARIANTE") { foreach ($fileContent->mediavariante as $row) { $record = Variante::where('codeVariante', $row->code)->first(); if($record){ // Update record $record->libelle = $row->libelle; $record->sujet_id = $row->sujet_id->children()[0]->code; $record->typevue_id = $row->CodeTypeVue->mediatypesvue->code; $record->save(); }else{ // Insert new record $record = new Variante(); $record->codeVariante = $row->code; $record->libelle = $row->libelle; $record->sujet_id = $row->sujet_id->children()[0]->code; $record->typevue_id = $row->CodeTypeVue->mediatypesvue->code; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); }elseif (substr($filename, 0, 20) == "DAM_SITE_PROD_GROUPE") { foreach ($fileContent->SITE_PROD_GRP as $row) { $record = Site::where('id', $row->code)->first(); if($record){ // Update record $record->libelle = $row->libelle; $record->save(); }else{ // Insert new record $record = new Site(); $record->id = $row->code; $record->libelle = $row->libelle; $record->save(); } } // ---- Suppression du fichier Storage::disk('arcadia')->delete($filename); } // TODO : Import des sociétés $bar->advance(); } $bar->finish(); $this->line(""); $this->info('Fin du traitement'); } }