507 lines
25 KiB
PHP
507 lines
25 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Database\ArcadiaReplicate\Factories\Metap\MetaUtilFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\AdditifFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\ArticleRefFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\FamVenteFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\IncoAllegationsFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\IncoAllergeneFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\IncoCompoFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\IncoFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\MarqueFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\RuPersonneSirhFactory;
|
|
use Database\ArcadiaReplicate\Factories\Refp\ServiceConsoIncoFactory;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
final class ArcadiaReplicateSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Seed the replicated Arcadia Oracle meta-model database.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$this->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 et marques)
|
|
$articleRefs = [
|
|
['NO_ART' => 47789, 'COD_SOC' => 1, 'COD_FAMVTE' => 216, 'COD_MARQUE' => 1, 'LIB_CCIAL' => 'BQ NUGET PLT X10 200G SAT LG'],
|
|
['NO_ART' => 47996, 'COD_SOC' => 1, 'COD_FAMVTE' => 99, 'COD_MARQUE' => 1, 'LIB_CCIAL' => 'ETUI GES FOIE VOL DUO 300G SV LG'],
|
|
['NO_ART' => 4, 'COD_SOC' => 1, 'COD_FAMVTE' => 306, 'COD_MARQUE' => 3, 'LIB_CCIAL' => 'POULET FERMIER LOUE'],
|
|
['NO_ART' => 51201, 'COD_SOC' => 1, 'COD_FAMVTE' => 31, 'COD_MARQUE' => 2, 'LIB_CCIAL' => 'CORDON BLEU DINDE'],
|
|
['NO_ART' => 62305, 'COD_SOC' => 1, 'COD_FAMVTE' => 120, 'COD_MARQUE' => 4, 'LIB_CCIAL' => 'LASAGNES BOLOGNAISE'],
|
|
['NO_ART' => 73412, 'COD_SOC' => 1, 'COD_FAMVTE' => 135, 'COD_MARQUE' => 5, 'LIB_CCIAL' => 'NEMS POULET'],
|
|
['NO_ART' => 84520, 'COD_SOC' => 1, 'COD_FAMVTE' => 31, 'COD_MARQUE' => 6, 'LIB_CCIAL' => 'EMINCES POULET ROTI'],
|
|
['NO_ART' => 48102, 'COD_SOC' => 1, 'COD_FAMVTE' => 319, 'COD_MARQUE' => 1, 'LIB_CCIAL' => 'FILET CANARD SUD OUEST'],
|
|
['NO_ART' => 52340, 'COD_SOC' => 1, 'COD_FAMVTE' => 150, 'COD_MARQUE' => 2, 'LIB_CCIAL' => 'AIGUILLETTES POULET THYM'],
|
|
['NO_ART' => 63450, 'COD_SOC' => 1, 'COD_FAMVTE' => 120, 'COD_MARQUE' => 4, '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);
|
|
}
|
|
}
|
|
}
|
|
}
|