seedMetaUtil(); $this->seedSirh(); $this->seedMarques(); $this->seedFamVente(); $this->seedAdditifs(); $this->seedAllergenesAndAllegations(); $this->seedServicesConso(); $this->seedIncoAndCompo(); } private function seedMetaUtil(): void { $users = [ ['COD_UTIL' => 'RA0706430', 'LIB_UTIL' => 'Responsable Qualité Groupe', 'EMAIL' => 'qualite@ldc.fr', 'GROUPE' => 65], ['COD_UTIL' => 'BM6501226', 'LIB_UTIL' => 'Chef de Produit Marketing', 'EMAIL' => 'marketing@ldc.fr', 'GROUPE' => 2], ['COD_UTIL' => 'SB6501847', 'LIB_UTIL' => 'Responsable Commercial GMS', 'EMAIL' => 'commercial@ldc.fr', 'GROUPE' => 1], ['COD_UTIL' => 'ME0101979', 'LIB_UTIL' => 'Administrateur SI Référentiels', 'EMAIL' => 'admin.si@ldc.fr', 'GROUPE' => 0], ['COD_UTIL' => 'SG6501248', 'LIB_UTIL' => 'Ingénieur R&D Nutrition', 'EMAIL' => 'rd.nutrition@ldc.fr', 'GROUPE' => 1], ['COD_UTIL' => 'JL7201944', 'LIB_UTIL' => 'Auditeur Réglementaire INCO', 'EMAIL' => 'audit.reg@ldc.fr', 'GROUPE' => 65], ]; foreach ($users as $user) { if (! MetaUtilFactory::query()->where('COD_UTIL', $user['COD_UTIL'])->exists()) { MetaUtilFactory::new()->create($user); } } } private function seedSirh(): void { $employees = [ // Salarié historique de référence pour Bruno & tests API [ 'MATRICULE_FIC' => '01155902', 'COD_PERSONNE' => '01155902', 'NOM_FIC' => 'DOE', 'NOM_PERSONNE' => 'DOE', 'PRENOM_FIC' => 'John', 'PRENOM_PERSONNE' => 'John', 'SITE_FIC' => 'LDCSER', 'ETAB_FIC' => '01', 'ETABLISSEMENT' => '01', 'STATUT_FIC' => 'CAD', 'SERVICE_FIC' => '097', 'DATE_DEB_FIC' => '2024-01-15', 'DATE_ENTREE' => '2024-01-15', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '1234567', 'COD_PERSONNE' => '1234567', 'NOM_FIC' => 'MARTIN', 'NOM_PERSONNE' => 'MARTIN', 'PRENOM_FIC' => 'Alice', 'PRENOM_PERSONNE' => 'Alice', 'SITE_FIC' => 'LDCSER', 'ETAB_FIC' => 'LY', 'ETABLISSEMENT' => 'LY', 'STATUT_FIC' => 'CAD', 'SERVICE_FIC' => '101', 'DATE_DEB_FIC' => '2024-01-08', 'DATE_ENTREE' => '2024-01-08', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '2345678', 'COD_PERSONNE' => '2345678', 'NOM_FIC' => 'DUPONT', 'NOM_PERSONNE' => 'DUPONT', 'PRENOM_FIC' => 'Louis', 'PRENOM_PERSONNE' => 'Louis', 'SITE_FIC' => 'SLELA', 'ETAB_FIC' => 'PA', 'ETABLISSEMENT' => 'PA', 'STATUT_FIC' => 'AMT', 'SERVICE_FIC' => '097', 'DATE_DEB_FIC' => '2023-05-15', 'DATE_ENTREE' => '2023-05-15', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => '2026-12-31', ], [ 'MATRICULE_FIC' => '3456789', 'COD_PERSONNE' => '3456789', 'NOM_FIC' => 'BERNARD', 'NOM_PERSONNE' => 'BERNARD', 'PRENOM_FIC' => 'Nora', 'PRENOM_PERSONNE' => 'Nora', 'SITE_FIC' => 'DDE', 'ETAB_FIC' => 'BO', 'ETABLISSEMENT' => 'BO', 'STATUT_FIC' => 'OUV', 'SERVICE_FIC' => '205', 'DATE_DEB_FIC' => '2022-09-01', 'DATE_ENTREE' => '2022-09-01', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '4300710', 'COD_PERSONNE' => '4300710', 'NOM_FIC' => 'GARCIA', 'NOM_PERSONNE' => 'GARCIA', 'PRENOM_FIC' => 'Manuel', 'PRENOM_PERSONNE' => 'Manuel', 'SITE_FIC' => 'AVIGNO', 'ETAB_FIC' => 'ET29A', 'ETABLISSEMENT' => 'ET29A', 'STATUT_FIC' => 'OUV', 'SERVICE_FIC' => '25', 'DATE_DEB_FIC' => '2020-03-01', 'DATE_ENTREE' => '2020-03-01', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '5000920', 'COD_PERSONNE' => '5000920', 'NOM_FIC' => 'LEFEBVRE', 'NOM_PERSONNE' => 'LEFEBVRE', 'PRENOM_FIC' => 'Claire', 'PRENOM_PERSONNE' => 'Claire', 'SITE_FIC' => 'SNVSER', 'ETAB_FIC' => 'ET11G', 'ETABLISSEMENT' => 'ET11G', 'STATUT_FIC' => 'AMT', 'SERVICE_FIC' => '13', 'DATE_DEB_FIC' => '2019-11-15', 'DATE_ENTREE' => '2019-11-15', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '3900757', 'COD_PERSONNE' => '3900757', 'NOM_FIC' => 'MOREAU', 'NOM_PERSONNE' => 'MOREAU', 'PRENOM_FIC' => 'Julien', 'PRENOM_PERSONNE' => 'Julien', 'SITE_FIC' => 'EPC', 'ETAB_FIC' => 'ET15', 'ETABLISSEMENT' => 'ET15', 'STATUT_FIC' => 'AMT', 'SERVICE_FIC' => '16', 'DATE_DEB_FIC' => '2021-06-01', 'DATE_ENTREE' => '2021-06-01', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '0109873', 'COD_PERSONNE' => '0109873', 'NOM_FIC' => 'PETIT', 'NOM_PERSONNE' => 'PETIT', 'PRENOM_FIC' => 'Thomas', 'PRENOM_PERSONNE' => 'Thomas', 'SITE_FIC' => 'LDCVOL', 'ETAB_FIC' => 'ET50', 'ETABLISSEMENT' => 'ET50', 'STATUT_FIC' => 'CAD', 'SERVICE_FIC' => '25', 'DATE_DEB_FIC' => '2018-04-10', 'DATE_ENTREE' => '2018-04-10', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '4911791', 'COD_PERSONNE' => '4911791', 'NOM_FIC' => 'ROUX', 'NOM_PERSONNE' => 'ROUX', 'PRENOM_FIC' => 'Sophie', 'PRENOM_PERSONNE' => 'Sophie', 'SITE_FIC' => 'SNVVOL', 'ETAB_FIC' => 'ET11E', 'ETABLISSEMENT' => 'ET11E', 'STATUT_FIC' => 'OUV', 'SERVICE_FIC' => '11', 'DATE_DEB_FIC' => '2022-01-10', 'DATE_ENTREE' => '2022-01-10', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '0812345', 'COD_PERSONNE' => '0812345', 'NOM_FIC' => 'DAVID', 'NOM_PERSONNE' => 'DAVID', 'PRENOM_FIC' => 'Camille', 'PRENOM_PERSONNE' => 'Camille', 'SITE_FIC' => 'LDCSER', 'ETAB_FIC' => '01', 'ETABLISSEMENT' => '01', 'STATUT_FIC' => 'CAD', 'SERVICE_FIC' => '097', 'DATE_DEB_FIC' => '2015-09-01', 'DATE_ENTREE' => '2015-09-01', 'DATE_FIN_FIC' => '2025-06-30', 'DF_CARRIERE' => '2025-06-30', ], [ 'MATRICULE_FIC' => '0923456', 'COD_PERSONNE' => '0923456', 'NOM_FIC' => 'BERTRAND', 'NOM_PERSONNE' => 'BERTRAND', 'PRENOM_FIC' => 'Hugo', 'PRENOM_PERSONNE' => 'Hugo', 'SITE_FIC' => 'SLELA', 'ETAB_FIC' => 'PA', 'ETABLISSEMENT' => 'PA', 'STATUT_FIC' => 'OUV', 'SERVICE_FIC' => '097', 'DATE_DEB_FIC' => '2023-10-01', 'DATE_ENTREE' => '2023-10-01', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], [ 'MATRICULE_FIC' => '0734567', 'COD_PERSONNE' => '0734567', 'NOM_FIC' => 'FOURNIER', 'NOM_PERSONNE' => 'FOURNIER', 'PRENOM_FIC' => 'Émilie', 'PRENOM_PERSONNE' => 'Émilie', 'SITE_FIC' => 'AVIGNO', 'ETAB_FIC' => 'ET29A', 'ETABLISSEMENT' => 'ET29A', 'STATUT_FIC' => 'AMT', 'SERVICE_FIC' => '25', 'DATE_DEB_FIC' => '2021-02-15', 'DATE_ENTREE' => '2021-02-15', 'DATE_FIN_FIC' => null, 'DF_CARRIERE' => null, ], ]; foreach ($employees as $emp) { if (! RuPersonneSirhFactory::query()->where('MATRICULE_FIC', $emp['MATRICULE_FIC'])->exists()) { RuPersonneSirhFactory::new()->create($emp); } } } private function seedMarques(): void { $marques = [ ['COD_MARQ' => 1, 'LIB_MARQ' => 'LE GAULOIS', 'COMMENTAIRE' => 'Marque Le Gaulois (Volailles & Panés)'], ['COD_MARQ' => 2, 'LIB_MARQ' => 'MAITRE COQ', 'COMMENTAIRE' => 'Marque Maître CoQ (Volailles & Élaborés)'], ['COD_MARQ' => 3, 'LIB_MARQ' => 'LOUE', 'COMMENTAIRE' => 'Fermiers de Loué Label Rouge'], ['COD_MARQ' => 4, 'LIB_MARQ' => 'MARIE', 'COMMENTAIRE' => 'Plats cuisinés frais & surgelés Marie'], ['COD_MARQ' => 5, 'LIB_MARQ' => "TRADITION D'ASIE", 'COMMENTAIRE' => 'Spécialités traiteur asiatiques'], ['COD_MARQ' => 6, 'LIB_MARQ' => 'REGHALAL', 'COMMENTAIRE' => 'Gamme certifiée Halal'], ['COD_MARQ' => 7, 'LIB_MARQ' => 'POPROSTU', 'COMMENTAIRE' => 'Marque MDD pour la Pologne'], ['COD_MARQ' => 8, 'LIB_MARQ' => 'LA MAISON DE MAURICE', 'COMMENTAIRE' => 'Marque distributeur Export'], ['COD_MARQ' => 9, 'LIB_MARQ' => 'ALPEKER', 'COMMENTAIRE' => 'Marque Export Italie'], ['COD_MARQ' => 10, 'LIB_MARQ' => 'AQUILA', 'COMMENTAIRE' => 'Marque Export Hongrie'], ['COD_MARQ' => 11, 'LIB_MARQ' => 'POUCE AUCHAN', 'COMMENTAIRE' => 'Marque premier prix Auchan'], ['COD_MARQ' => 12, 'LIB_MARQ' => 'CARREFOUR SIMPL', 'COMMENTAIRE' => 'Marque premier prix Carrefour'], ['COD_MARQ' => 246, 'LIB_MARQ' => 'LE GAULOIS (LEGACY)', 'COMMENTAIRE' => 'Code historique 246 Le Gaulois'], ['COD_MARQ' => 466, 'LIB_MARQ' => 'LOUE (LEGACY)', 'COMMENTAIRE' => 'Code historique 466 Loué'], ['COD_MARQ' => 565, 'LIB_MARQ' => 'MARIE (LEGACY)', 'COMMENTAIRE' => 'Code historique 565 Marie'], ]; foreach ($marques as $marque) { if (! MarqueFactory::query()->where('COD_MARQ', $marque['COD_MARQ'])->exists()) { MarqueFactory::new()->create($marque); } } } private function seedFamVente(): void { $familles = [ ['COD_FAMVTE' => 406, 'LIB_FAMVTE' => 'FOURNITURES EXPEDITION'], ['COD_FAMVTE' => 31, 'LIB_FAMVTE' => 'PRODUITS CUITS & PANES'], ['COD_FAMVTE' => 94, 'LIB_FAMVTE' => 'DCPE POULET NOIR'], ['COD_FAMVTE' => 306, 'LIB_FAMVTE' => 'OIE & CANARD LOUE'], ['COD_FAMVTE' => 319, 'LIB_FAMVTE' => 'DCPE CANARD GRAS ELABORE'], ['COD_FAMVTE' => 120, 'LIB_FAMVTE' => 'PLATS CUISINES FRAIS'], ['COD_FAMVTE' => 135, 'LIB_FAMVTE' => 'TRAITEUR ASIATIQUE'], ['COD_FAMVTE' => 150, 'LIB_FAMVTE' => 'CHARCUTERIE DE VOLAILLE'], ['COD_FAMVTE' => 216, 'LIB_FAMVTE' => 'PANES DU VOLAILLER <=400G'], ['COD_FAMVTE' => 99, 'LIB_FAMVTE' => 'ABATS & FOIES'], ]; foreach ($familles as $fam) { if (! FamVenteFactory::query()->where('COD_FAMVTE', $fam['COD_FAMVTE'])->exists()) { FamVenteFactory::new()->create($fam); } } } private function seedAdditifs(): void { $additifs = [ ['COD_EUROPEEN' => 'E250', 'MOLECULE' => 'Nitrite de sodium', 'FONCTION' => 'Conservateur', 'RISQUE' => 2], ['COD_EUROPEEN' => 'E300', 'MOLECULE' => 'Acide ascorbique', 'FONCTION' => 'Antioxydant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E301', 'MOLECULE' => 'Ascorbate de sodium', 'FONCTION' => 'Antioxydant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E316', 'MOLECULE' => 'Érythorbate de sodium', 'FONCTION' => 'Antioxydant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E322', 'MOLECULE' => 'Lécithines', 'FONCTION' => 'Émulsifiant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E330', 'MOLECULE' => 'Acide citrique', 'FONCTION' => 'Acidifiant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E331', 'MOLECULE' => 'Citrates de sodium', 'FONCTION' => 'Régulateur d\'acidité', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E392', 'MOLECULE' => 'Extrait de romarin', 'FONCTION' => 'Antioxydant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E407', 'MOLECULE' => 'Carraghénanes', 'FONCTION' => 'Gélifiant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E412', 'MOLECULE' => 'Gomme guar', 'FONCTION' => 'Épaississant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E415', 'MOLECULE' => 'Gomme xanthane', 'FONCTION' => 'Épaississant', 'RISQUE' => 0], ['COD_EUROPEEN' => 'E450', 'MOLECULE' => 'Diphosphates', 'FONCTION' => 'Stabilisant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E451', 'MOLECULE' => 'Triphosphates', 'FONCTION' => 'Stabilisant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E452', 'MOLECULE' => 'Polyphosphates', 'FONCTION' => 'Sels de fonte', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E469', 'MOLECULE' => 'Carboxyméthylcellulose enzymatique', 'FONCTION' => 'Épaississant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E470a', 'MOLECULE' => 'Sels d\'acides gras', 'FONCTION' => 'Émulsifiant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E471', 'MOLECULE' => 'Mono et diglycérides d\'acides gras', 'FONCTION' => 'Émulsifiant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E472a', 'MOLECULE' => 'Esters acétiques de mono/diglycérides', 'FONCTION' => 'Émulsifiant', 'RISQUE' => 1], ['COD_EUROPEEN' => 'E472b', 'MOLECULE' => 'Esters lactiques de mono/diglycérides', 'FONCTION' => 'Émulsifiant', 'RISQUE' => 1], ]; foreach ($additifs as $additif) { if (! AdditifFactory::query()->where('COD_EUROPEEN', $additif['COD_EUROPEEN'])->exists()) { AdditifFactory::new()->create($additif); } } } private function seedAllergenesAndAllegations(): void { $allergenes = [ ['ID' => 1, 'LIB' => 'Céréales contenant du gluten'], ['ID' => 2, 'LIB' => 'Crustacés et produits à base de crustacés'], ['ID' => 3, 'LIB' => 'Œufs et produits à base d\'œufs'], ['ID' => 4, 'LIB' => 'Poissons et produits à base de poissons'], ['ID' => 5, 'LIB' => 'Arachides et produits à base d\'arachides'], ['ID' => 6, 'LIB' => 'Soja et produits à base de soja'], ['ID' => 7, 'LIB' => 'Lait et produits à base de lait (y compris le lactose)'], ['ID' => 8, 'LIB' => 'Fruits à coque'], ['ID' => 9, 'LIB' => 'Céleri et produits à base de céleri'], ['ID' => 10, 'LIB' => 'Moutarde et produits à base de moutarde'], ['ID' => 11, 'LIB' => 'Graines de sésame et produits à base de graines de sésame'], ['ID' => 12, 'LIB' => 'Anhydride sulfureux et sulfites (>10mg/kg)'], ['ID' => 13, 'LIB' => 'Lupin et produits à base de lupin'], ['ID' => 14, 'LIB' => 'Mollusques et produits à base de mollusques'], ]; foreach ($allergenes as $allergene) { if (! IncoAllergeneFactory::query()->where('ID', $allergene['ID'])->exists()) { IncoAllergeneFactory::new()->create($allergene); } } $allegations = [ ['CODE' => 1, 'LIBELLE' => 'Sans conservateur'], ['CODE' => 2, 'LIBELLE' => 'Sans huile de palme'], ['CODE' => 3, 'LIBELLE' => 'Volaille 100% française'], ['CODE' => 4, 'LIBELLE' => 'Élevé en liberté 84 jours'], ['CODE' => 5, 'LIBELLE' => 'Sans arôme artificiel'], ['CODE' => 6, 'LIBELLE' => 'Certifié Halal'], ['CODE' => 7, 'LIBELLE' => 'Label Rouge'], ['CODE' => 8, 'LIBELLE' => 'Nourri sans OGM (<0.9%)'], ['CODE' => 9, 'LIBELLE' => 'Riche en protéines'], ['CODE' => 10, 'LIBELLE' => 'Viande bovine française (VBF)'], ]; foreach ($allegations as $allegation) { if (! IncoAllegationsFactory::query()->where('CODE', $allegation['CODE'])->exists()) { IncoAllegationsFactory::new()->create($allegation); } } } private function seedServicesConso(): void { $services = [ [ 'ID' => 24, 'NOM' => 'Service clients - Groupe Auchan', 'ADRESSE1' => 'BP 682', 'CP' => '59650', 'VILLE' => 'Villeneuve d\'Ascq', 'TELEPHONE' => '03.59.30.59.30', 'MAIL' => 'service.conso@auchan.fr', 'MARQUE' => 11, 'LIB' => 'Service conso Pouce Auchan', 'SITE_INT' => 'www.auchan.fr', ], [ 'ID' => 28, 'NOM' => 'Service consommateurs Carrefour', 'ADRESSE1' => 'CMI - TSA 91431', 'CP' => '91300', 'VILLE' => 'Massy', 'TELEPHONE' => '06.69.39.70.00', 'MAIL' => 'service.conso@carrefour.fr', 'MARQUE' => 12, 'LIB' => 'Service conso Carrefour Simpl', 'SITE_INT' => 'www.carrefour.fr', ], [ 'ID' => 54, 'NOM' => 'Service Consommateurs LDC', 'ADRESSE1' => 'ZI Saint Laurent - BP 88', 'CP' => '72302', 'VILLE' => 'Sablé-sur-Sarthe', 'TELEPHONE' => '02.43.62.70.00', 'MAIL' => 'service.conso@ldc.fr', 'MARQUE' => 1, 'LIB' => 'Service conso Groupe LDC (Le Gaulois, Marie, Loué, Maître CoQ)', 'SITE_INT' => 'www.ldc.fr', ], ]; foreach ($services as $service) { if (! ServiceConsoIncoFactory::query()->where('ID', $service['ID'])->exists()) { ServiceConsoIncoFactory::new()->create($service); } } } private function seedIncoAndCompo(): void { // 1. Compositions nutritionnelles $compos = [ 96504 => fn () => IncoCompoFactory::new()->steaksDinde()->create(), 124503 => fn () => IncoCompoFactory::new()->pouletFermierNoir()->create(), 124504 => fn () => IncoCompoFactory::new()->pouletFermierLoue()->create(), 130101 => fn () => IncoCompoFactory::new()->cordonBleuDinde()->create(), 140205 => fn () => IncoCompoFactory::new()->lasagnesBolognaise()->create(), 150312 => fn () => IncoCompoFactory::new()->nemsPoulet()->create(), 160420 => fn () => IncoCompoFactory::new()->emincesPouletRoti()->create(), 170502 => fn () => IncoCompoFactory::new()->filetCanardSudOuest()->create(), 180640 => fn () => IncoCompoFactory::new()->aiguillettesPouletThym()->create(), 190750 => fn () => IncoCompoFactory::new()->gratinDauphinois()->create(), ]; foreach ($compos as $compoId => $creator) { if (! IncoCompoFactory::query()->where('ID', $compoId)->exists()) { $creator(); } } // 2. Fiches INCO liées $articles = [ 47789 => fn () => IncoFactory::new()->nuggetsPoulet()->withCompo(96504)->create(), 47996 => fn () => IncoFactory::new()->gesiersEtFoies()->withCompo(124503)->create(), 4 => fn () => IncoFactory::new()->pouletFermierLoue()->withCompo(124504)->create(), 51201 => fn () => IncoFactory::new()->cordonBleuDinde()->withCompo(130101)->create(), 62305 => fn () => IncoFactory::new()->lasagnesBolognaise()->withCompo(140205)->create(), 73412 => fn () => IncoFactory::new()->nemsPoulet()->withCompo(150312)->create(), 84520 => fn () => IncoFactory::new()->emincesPouletRoti()->withCompo(160420)->create(), 48102 => fn () => IncoFactory::new()->filetCanardSudOuest()->withCompo(170502)->create(), 52340 => fn () => IncoFactory::new()->aiguillettesPouletThym()->withCompo(180640)->create(), 63450 => fn () => IncoFactory::new()->gratinDauphinois()->withCompo(190750)->create(), ]; foreach ($articles as $artId => $creator) { if (! IncoFactory::query()->where('NO_ART', $artId)->exists()) { $creator(); } } // 3. Références articles (liens vers familles de vente) $articleRefs = [ ['NO_ART' => 47789, 'COD_SOC' => 1, 'COD_FAMVTE' => 216, 'LIB_CCIAL' => 'BQ NUGET PLT X10 200G SAT LG'], ['NO_ART' => 47996, 'COD_SOC' => 1, 'COD_FAMVTE' => 99, 'LIB_CCIAL' => 'ETUI GES FOIE VOL DUO 300G SV LG'], ['NO_ART' => 4, 'COD_SOC' => 1, 'COD_FAMVTE' => 306, 'LIB_CCIAL' => 'POULET FERMIER LOUE'], ['NO_ART' => 51201, 'COD_SOC' => 1, 'COD_FAMVTE' => 31, 'LIB_CCIAL' => 'CORDON BLEU DINDE'], ['NO_ART' => 62305, 'COD_SOC' => 1, 'COD_FAMVTE' => 120, 'LIB_CCIAL' => 'LASAGNES BOLOGNAISE'], ['NO_ART' => 73412, 'COD_SOC' => 1, 'COD_FAMVTE' => 135, 'LIB_CCIAL' => 'NEMS POULET'], ['NO_ART' => 84520, 'COD_SOC' => 1, 'COD_FAMVTE' => 31, 'LIB_CCIAL' => 'EMINCES POULET ROTI'], ['NO_ART' => 48102, 'COD_SOC' => 1, 'COD_FAMVTE' => 319, 'LIB_CCIAL' => 'FILET CANARD SUD OUEST'], ['NO_ART' => 52340, 'COD_SOC' => 1, 'COD_FAMVTE' => 150, 'LIB_CCIAL' => 'AIGUILLETTES POULET THYM'], ['NO_ART' => 63450, 'COD_SOC' => 1, 'COD_FAMVTE' => 120, 'LIB_CCIAL' => 'GRATIN DAUPHINOIS'], ]; foreach ($articleRefs as $artRef) { if (! ArticleRefFactory::query()->where('NO_ART', $artRef['NO_ART'])->where('COD_SOC', $artRef['COD_SOC'])->exists()) { ArticleRefFactory::new()->create($artRef); } } } }