src/Controller/MainController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\CatalogueImport;
  4. use App\Entity\Images;
  5. use App\Entity\ProductAccessories;
  6. use App\Entity\Products;
  7. use App\Entity\SearchProductsType;
  8. use App\Form\ProductsFormType;
  9. use App\Form\SearchProductsFormType;
  10. use App\Repository\CategoriesRepository;
  11. use App\Repository\ProductsRepository;
  12. use App\Repository\CatalogueImportRepository;
  13. use App\Service\PictureService;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Symfony\Component\HttpFoundation\JsonResponse;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  19. use Symfony\Component\Routing\Annotation\Route;
  20. use Symfony\Component\String\Slugger\SluggerInterface;
  21. class MainController extends AbstractController
  22. {
  23.     #[Route('/'name'main'methods: ['POST','GET'])]
  24.     public function index(EntityManagerInterface $entityManagerCategoriesRepository $categoriesRepositoryProductsRepository $productsRepositoryCatalogueImportRepository $catalogueImportRepositoryRequest $request): Response
  25.     {
  26.         $tabProductAccessories = [];
  27.         // On crée le formulaire
  28.         $searchProductsType = new SearchProductsType();
  29.         $searchProductsForm $this->createForm(SearchProductsFormType::class, $searchProductsType);
  30.         // On traite la requête du formulaire
  31.         $searchProductsForm->handleRequest($request);
  32.         $isAnswerAEnabled false;
  33.         $isAnswerBEnabled false;
  34.         $isAnswerCEnabled false;
  35.         $isAnswerDEnabled false;
  36.         $isAnswerEEnabled false;
  37.         $isAnswerFEnabled false;
  38.         $isAnswerGEnabled false;
  39.         $isAnswerHEnabled false;
  40.         $isAnswerIEnabled false;
  41.         $isAnswerJEnabled false;
  42.         $isAnswerKEnabled false;
  43.         $isAnswerLEnabled false;
  44.         $questionAValue "";
  45.         $questionBValue "";
  46.         $questionCValue "";
  47.         $questionDValue "";
  48.         $questionEValue "";
  49.         $questionFValue "";
  50.         $questionGValue "";
  51.         $questionHValue "";
  52.         $questionIValue "";
  53.         $questionJValue "";
  54.         $questionKValue "";
  55.         $questionLValue "";
  56.         $products null;
  57.         $products2 null;
  58.         $accessories null;
  59.         $tabProductsProducts2 null;
  60.         $catalogueImports $catalogueImportRepository->findAll();
  61.         //On vérifie si le formulaire est soumis ET valide
  62.         if($searchProductsForm->isSubmitted() && $searchProductsForm->isValid()){
  63.             if ($request->get('questionA')) {
  64.                 $isAnswerBEnabled true;
  65.                 $questionAValue $request->get('questionA');
  66.             }
  67.             if ($request->get('questionB')) {
  68.                 $isAnswerCEnabled true;
  69.                 $questionBValue $request->get('questionB');
  70.             }
  71.             if ($request->get('questionC')) {
  72.                 $isAnswerDEnabled true;
  73.                 $questionCValue $request->get('questionC');
  74.             }
  75.             if ($request->get('questionD')) {
  76.                 $isAnswerEEnabled true;
  77.                 $questionDValue $request->get('questionD');
  78.             }
  79.             if ($request->get('questionE')) {
  80.                 $isAnswerFEnabled true;
  81.                 $questionEValue $request->get('questionE');
  82.             }
  83.             if ($request->get('questionF')) {
  84.                 $isAnswerGEnabled true;
  85.                 $questionFValue $request->get('questionF');
  86.             }
  87.             if ($request->get('questionG')) {
  88.                 if ($questionAValue != "Chalumeau") {
  89.                     $isAnswerHEnabled true;
  90.                 }
  91.                 $questionGValue $request->get('questionG');
  92.             }
  93.             if ($request->get('questionH')) {
  94.                 $isAnswerIEnabled true;
  95.                 $questionHValue $request->get('questionH');
  96.             }
  97.             if ($request->get('questionI')) {
  98.                 $isAnswerJEnabled true;
  99.                 $questionIValue $request->get('questionI');
  100.             }
  101.             if ($request->get('questionJ')) {
  102.                 $questionJValue $request->get('questionJ');
  103.             }
  104.            // dd($questionGValue);
  105.             $searchProductsForm $this->createForm(SearchProductsFormType::class, $searchProductsType);
  106.             $productsCatalogue null;
  107.             $questionLastEmpty '';
  108.             if ($request->get('lastEmpty')) {
  109.                 $questionLastEmpty $request->get('lastEmpty');
  110.             }
  111.             if (($questionJValue != '' ||  $questionLastEmpty != '') || ($questionGValue != '' && $questionAValue == "Chalumeau") || ($questionHValue != '' && $questionAValue != "Chalumeau")) {
  112.                 if ($questionAValue == "Chalumeau") {
  113.                     $productsCatalogue $catalogueImportRepository->findBy(['colA' => $questionAValue,
  114.                         'colB' => $questionBValue,
  115.                         'colC' => $questionCValue,
  116.                         'colD' => $questionDValue,
  117.                         'colE' => $questionEValue,
  118.                         'colF' => $questionFValue,
  119.                         'colG' => $questionGValue]);
  120.                 } else {
  121.                     $productsCatalogue $catalogueImportRepository->findBy(['colA' => $questionAValue,
  122.                         'colB' => $questionBValue,
  123.                         'colC' => $questionCValue,
  124.                         'colD' => $questionDValue,
  125.                         'colE' => $questionEValue,
  126.                         'colF' => $questionFValue,
  127.                         'colG' => $questionGValue]);
  128.                 }
  129.             }
  130.             $tabName null;
  131.             $tabName2 null;
  132.             $tabNameAccessories null;
  133.             $tabProductAccessories = [];
  134.             if ($productsCatalogue != null) {
  135.                 foreach ($productsCatalogue as $productCatalogue) {
  136.                     if ($questionAValue == "Chalumeau") {
  137.                         $tabName[] = $productCatalogue->getColH();
  138.                     } else {
  139.                         $tabName[] = $productCatalogue->getColK();
  140.                     }
  141.                 }
  142.                 $queryBuilder $productsRepository->createQueryBuilder('p');
  143.                 // Ajout de la clause WHERE avec IN
  144.                 $queryBuilder->where($queryBuilder->expr()->in('p.slug'':names'))
  145.                         ->setParameter('names'$tabName);
  146.                 // Exécution de la requête
  147.                 $products $queryBuilder->getQuery()->getResult();
  148.                 /* Gestion des produits conseillés */
  149.                 foreach ($productsCatalogue as $productCatalogue) {
  150.                     if ($questionAValue == "Chalumeau") {
  151.                         $tabName2[] = $productCatalogue->getColM();
  152.                         $tabProductsProducts2[] = $productCatalogue;
  153.                     } else {
  154.                         $tabName2[] = $productCatalogue->getColl();
  155.                         $tabProductsProducts2[] = $productCatalogue;
  156.                     }
  157.                 }
  158.                 $queryBuilder $productsRepository->createQueryBuilder('p');
  159.                 // Ajout de la clause WHERE avec IN
  160.                 $queryBuilder->where($queryBuilder->expr()->in('p.slug'':names'))
  161.                         ->setParameter('names'$tabName2);
  162.                 // Exécution de la requête
  163.                 $products2 $queryBuilder->getQuery()->getResult();
  164.                 /* Gestion des produits conseillés */
  165.                 foreach ($productsCatalogue as $productCatalogue) {
  166.                     if ($questionAValue == "Chalumeau") {
  167.                         $tabNameAccessories[] = $productCatalogue->getColJ();
  168.                         $tabProductAccessories[] = $productCatalogue;
  169.                     } else {
  170.                         $tabNameAccessories[] = $productCatalogue->getColJ();
  171.                         $tabProductAccessories[] = $productCatalogue;
  172.                     }
  173.                 }
  174.                 $queryBuilder $productsRepository->createQueryBuilder('p');
  175.                 // Ajout de la clause WHERE avec IN
  176.                 $queryBuilder->where($queryBuilder->expr()->in('p.slug'':names'))
  177.                     ->setParameter('names'$tabNameAccessories);
  178.                 // Exécution de la requête
  179.                 $accessories $queryBuilder->getQuery()->getResult();
  180.                 //dd($tabProductAccessories);
  181.             }
  182.         }
  183.         return $this->render('main/index.html.twig',[
  184.             'searchProductsForm' => $searchProductsForm->createView(),
  185.             'isAnswerAEnabled' => $isAnswerAEnabled,
  186.             'isAnswerBEnabled' => $isAnswerBEnabled,
  187.             'isAnswerCEnabled' => $isAnswerCEnabled,
  188.             'isAnswerDEnabled' => $isAnswerDEnabled,
  189.             'isAnswerEEnabled' => $isAnswerEEnabled,
  190.             'isAnswerFEnabled' => $isAnswerFEnabled,
  191.             'isAnswerGEnabled' => $isAnswerGEnabled,
  192.             'isAnswerHEnabled' => $isAnswerHEnabled,
  193.             'isAnswerIEnabled' => $isAnswerIEnabled,
  194.             'isAnswerJEnabled' => $isAnswerJEnabled,
  195.             'isAnswerKEnabled' => $isAnswerKEnabled,
  196.             'isAnswerLEnabled' => $isAnswerLEnabled,
  197.             'questionAValue' => $questionAValue,
  198.             'questionBValue' => $questionBValue,
  199.             'questionCValue' => $questionCValue,
  200.             'questionDValue' => $questionDValue,
  201.             'questionEValue' => $questionEValue,
  202.             'questionFValue' => $questionFValue,
  203.             'questionGValue' => $questionGValue,
  204.             'questionHValue' => $questionHValue,
  205.             'questionIValue' => $questionIValue,
  206.             'questionJValue' => $questionJValue,
  207.             'questionKValue' => $questionKValue,
  208.             'questionLValue' => $questionLValue,
  209.             'products' => $products,
  210.             'products2' => $products2,
  211.             'accessories' => $accessories,
  212.             'productSelected' => $request->get('productSelected'),
  213.             'catalogueImports' => $catalogueImports,
  214.             'tabProductAccessories' => $tabProductAccessories,
  215.             'tabProductsProducts2' => $tabProductsProducts2
  216.         ]);
  217.     }
  218.     #[Route('/update'name'app_update'methods: ['GET'])]
  219.     public function update(EntityManagerInterface $entityManagerSluggerInterface $slugger): Response
  220.     {
  221.         $catalogueImports $entityManager->getRepository(CatalogueImport::class)->findAll();
  222.         foreach ($catalogueImports as $catalogueImport) {
  223.             if($catalogueImport->getColA() == "Chalumeau") {
  224.                 $product $entityManager->getRepository(Products::class)->findOneBy(['name' => $catalogueImport->getColH()]);
  225.                 if ($product != null) {
  226.                     $product->setDescription($catalogueImport->getColK());
  227.                     $entityManager->persist($product);
  228.                     $entityManager->flush();
  229.                 } else {
  230.                     $product = new Products();
  231.                     $product->setName($catalogueImport->getColH());
  232.                     $slug $slugger->slug($product->getName());
  233.                     $product->setSlug($slug);
  234.                     $product->setDescription($catalogueImport->getColH());
  235.                     $entityManager->persist($product);
  236.                     $entityManager->flush();
  237.                 }
  238.                 if($catalogueImport->getColJ() != "") {
  239.                     // gestion de l'accessoire
  240.                     $accessoire $entityManager->getRepository(Products::class)->findOneBy(['name' => $catalogueImport->getColJ()]);
  241.                     if ($accessoire != null) {
  242.                         $accessoire->setDescription("");
  243.                         $entityManager->persist($product);
  244.                         $entityManager->flush();
  245.                     } else {
  246.                         $accessoire = new Products();
  247.                         $accessoire->setName($catalogueImport->getColJ());
  248.                         $slug $slugger->slug($accessoire->getName());
  249.                         $accessoire->setSlug($slug);
  250.                         $accessoire->setDescription("");
  251.                         $entityManager->persist($accessoire);
  252.                         $entityManager->flush();
  253.                     }
  254.                     $product->addAccessory($accessoire);
  255.                     $entityManager->persist($product);
  256.                     $entityManager->flush();
  257.                 }
  258.             } else {
  259.                 $product $entityManager->getRepository(Products::class)->findOneBy(['name' => $catalogueImport->getColK()]);
  260.                 if ($product != null) {
  261.                     $product->setDescription($catalogueImport->getColK());
  262.                 } else {
  263.                     $product = new Products();
  264.                     $product->setName($catalogueImport->getColK());
  265.                     $slug $slugger->slug($product->getName());
  266.                     $product->setSlug($slug);
  267.                     $product->setDescription($catalogueImport->getColK());
  268.                     $entityManager->persist($product);
  269.                     $entityManager->flush();
  270.                 }
  271.             }
  272.         }
  273.         return $this->redirectToRoute('main');
  274.     }
  275.     #[Route('/importimages'name'app_import_images'methods: ['GET'])]
  276.     public function importImages(EntityManagerInterface $entityManagerSluggerInterface $sluggerPictureService $pictureService): Response
  277.     {
  278.         set_time_limit(0); // 0 = no limits
  279.         $files array_diff(scandir('../data/import_images/'), array('.''..'));
  280.         foreach ($files as $file) {
  281.             //dd(substr($file, -3));
  282.             if ( pathinfo($filePATHINFO_EXTENSION) != "png") {
  283.                 // Vérification de l'existance du produit
  284.                 $reference substr($file06);
  285.                 $product $entityManager->getRepository(Products::class)->findOneBy(['mainReference' => $reference]);
  286.                 if ($product != null) {
  287.                     if (count($product->getImages()) == 0) {
  288.                         //dd("test".$reference);
  289.                         $folder 'products';
  290.                         // On appelle le service d'ajout
  291.                         $fichier $pictureService->import('../data/import_images/' $file$folder450250);
  292.                         $img = new Images();
  293.                         $img->setName($fichier);
  294.                         $product->addImage($img);
  295.                         $entityManager->persist($product);
  296.                         $entityManager->flush();
  297.                     }
  298.                 }
  299.             }
  300.         }
  301.         return $this->redirectToRoute('main');
  302.     }
  303.     #[Route('/import/{importFile}'name'app_import'methods: ['GET'])]
  304.     public function import(String $importFileEntityManagerInterface $entityManagerSluggerInterface $sluggerPictureService $pictureService): Response
  305.     {
  306.         set_time_limit(0); // 0 = no limits
  307.         $files array_diff(scandir('../data/'), array('.''..'));
  308.         foreach ($files as $file) {
  309.             if ($file == "produits_20241120.csv" && "importproduits" == $importFile) {
  310.                 $rowNo 1;
  311.                 // $fp is file pointer to file sample.csv
  312.                 if (($fp fopen('../data/'.$file"r")) !== FALSE) {
  313.                     while (($row fgetcsv($fp1000";")) !== FALSE) {
  314.                         if ($rowNo 1) {
  315.                             $colA = (trim($row[0])); // categorie1
  316.                             $colB = (trim($row[1])); // categorie2
  317.                             $colC = (trim($row[2])); // categorie3
  318.                             $colD = (trim($row[3])); // derniereCategorie
  319.                             $colE = (trim($row[4])); // name
  320.                             $colF = (trim($row[5])); // header
  321.                             $colG = (trim($row[6])); // mainRreference
  322.                             $colH = (trim($row[7])); // description
  323.                             $colI = (trim($row[8])); // donnees techniques
  324.                             $colJ = (trim($row[9])); // video produit ...
  325.                             $colK = (trim($row[10])); // sous type
  326.                             $colL = (trim($row[11])); // Capacité en mm
  327.                             $colM = (trim($row[12])); // L. hors tout en mm
  328.                             $colN = (trim($row[13])); // Poids en kg
  329.                             $colO = (trim($row[14])); // Accessoire
  330.                             $colP = (trim($row[15])); // gaz
  331.                             $colQ = (trim($row[16])); // Calibre
  332.                             $colR = (trim($row[17])); // Epaisseur de coupe en mm
  333.                             $colS = (trim($row[18])); // Débit l/h
  334.                             $colT = (trim($row[19])); // Débit/Pression
  335.                             $colU = (trim($row[20])); // Pression maxi en bar
  336.                             $colV = (trim($row[21])); // Filetage
  337.                             $colW = (trim($row[22])); // Afficher graduation
  338.                             $colX = (trim($row[23])); // graduation
  339.                             $colY = (trim($row[24])); // Afficher entrée
  340.                             $colZ = (trim($row[25])); // Entrée
  341.                             $colAA = (trim($row[26])); // Afficher sortie
  342.                             $colAB= (trim($row[27])); //     Sortie
  343.                             $colAC = (trim($row[28])); // Titre
  344.                             $colAD = (trim($row[29])); // Sous titre
  345.                             $colAE = (trim($row[30])); //
  346.                             $colAF = (trim($row[31])); // Autres produits
  347.                             $colAG = (trim($row[32])); // Accessoires
  348.                             // Convertir la chaîne en un tableau en utilisant explode()
  349.                             $autres explode("\n"$colAF);
  350.                             // Supprimer les espaces blancs autour des valeurs, si nécessaire
  351.                             $autres array_map('trim'$autres);
  352.                                                       // Convertir la chaîne en un tableau en utilisant explode()
  353.                             $accessoires explode("\n"$colAG);
  354.                             // Supprimer les espaces blancs autour des valeurs, si nécessaire
  355.                             $accessoires array_map('trim'$accessoires);
  356.                             $product $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $colG]);
  357.                             if ($product == null) {
  358.                                 $product = new Products();
  359.                             }
  360.                             /*
  361.                                 $product->setCategorie1($colA);
  362.                                 $product->setCategorie2($colB);
  363.                                 $product->setCategorie3($colC);
  364.                                 $product->setDerniereCategorie($colD);
  365.                                 $product->setName(trim($colE));
  366.                                 $slug = $slugger->slug($product->getName());
  367.                                 $product->setSlug($slug);
  368.                                 $product->setHeader($colF);
  369.                                 $product->setMainReference($colG);
  370.                                 $product->setDescription($colH);
  371.                                 $product->setDonneesTechniques($colI);
  372.                                 $product->setSubType($colK);
  373.                                 $product->setCapacity($colL);
  374.                                 $product->setLength($colM);
  375.                                 $product->setWeight($colN);
  376.                                 $product->setAccessoryTxt($colO);
  377.                                 $product->setGas($colP);
  378.                                 $product->setCaliber($colQ);
  379.                                 $product->setThickness($colR);
  380.                                 $product->setSpeed($colS);
  381.                                 $product->setFlowPressure($colT);
  382.                                 $product->setMaximumPressure($colU);
  383.                                 $product->setThread($colV);
  384.                                 if ($colW == "oui") {
  385.                                     $product->setBoolGraduation($colW);
  386.                                 }
  387.                                 $product->setGraduation($colX);
  388.                                 $product->setTitle($colAC);
  389.                                 $product->setSubTitle($colAD);
  390.                                 $product->setName(trim($colE));
  391.                                 $slug = $slugger->slug($colG);
  392.                                 $product->setSlug($slug);
  393.                                 if ($colY == "oui") {
  394.                                     $product->setBoolInPort($colY);
  395.                                 }
  396.                                 $product->setInPort($colZ);
  397.                                 if ($colY == "oui") {
  398.                                     $product->setBoolOutPort($colAA);
  399.                                 }
  400.                                 $product->setOutPort($colAB);
  401.                                 $entityManager->persist($product);
  402.                                 $entityManager->flush();
  403.                                 $productLinked = $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $colG]);
  404.                                 $product->addLinkedProduct($productLinked);
  405.                                 $entityManager->persist($product);
  406.                                 $entityManager->flush();
  407.                                 */
  408.                                 /*
  409.                                 foreach ($autres as $value) {
  410.                                     $productLinked = $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $value]);
  411.                                     if ($productLinked != null && $value != $colG) {
  412.                                     $product->addLinkedProduct($productLinked);
  413.                                     $entityManager->persist($product);
  414.                                     $entityManager->flush();
  415.                                     }
  416.                                 }
  417.                                     */
  418.                                 foreach ($accessoires as $value) {
  419.                                     // Traiter chaque valeur, ici on l'affiche
  420.                                     //echo $value . "\n";
  421.                                     $accessory $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $value]);
  422.                                     if ($accessory != null && $value != $colG) {
  423.                                         $product->addAccessory($accessory);
  424.                                         $entityManager->persist($product);
  425.                                         $entityManager->flush();
  426.                                     }
  427.                                 }
  428.                         }
  429.                         $rowNo++;
  430.                     }
  431.                     fclose($fp);
  432.                 }
  433.             }
  434.             if ($file == "accessoires_20241120.csv" && "importaccessoires" == $importFile) {
  435.                 $rowNo 1;
  436.                 // $fp is file pointer to file sample.csv
  437.                 if (($fp fopen('../data/'.$file"r")) !== FALSE) {
  438.                     while (($row fgetcsv($fp1000";")) !== FALSE) {
  439.                         if ($rowNo 1) {
  440.                             //$row = array_map(fn($field) => mb_convert_encoding($field, 'UTF-8', 'UTF-8'), $row);
  441.                             $colA = (trim($row[0])); // TYPE FICHE         Epaisseur de gougeage en mm
  442.                             $colB = (trim($row[1])); // Type PRODUIT
  443.                             $colC = (trim($row[2])); // Réf principale
  444.                             $colD = (trim($row[3])); // Titre
  445.                             $colE = (trim($row[4])); // Sous-titre
  446.                             $colF = (trim($row[5])); // Sous-sous-type
  447.                             $colG = (trim($row[6])); // Réf.
  448.                             $colH = (trim($row[7])); // Réf photo.
  449.                             $colI = (trim($row[8])); // Gaz
  450.                             $colJ = (trim($row[9])); // Calibre
  451.                             $colK = (trim($row[10])); // Epaisseur de coupe en mm
  452.                             $colL = (trim($row[11])); // Débit g/l
  453.                             $colM = (trim($row[12])); // Débit l/h
  454.                             $colN = (trim($row[13])); // Filetage
  455.                             $colO = (trim($row[14])); // Type
  456.                             $colP = (trim($row[15])); //  Epaisseur de dérivetage en mm
  457.                             $colQ = (trim($row[16])); // Epaisseur de gougeage en mm
  458.                             $colR = (trim($row[17])); // Epaisseur de perçage
  459.                             $colS = (trim($row[18])); // Pression de service en bar
  460.                             $product $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $colG]);
  461.                             if ($product == null) {
  462.                                 $product = new Products();
  463.                                 $product->setName(trim($colG));
  464.                                 $slug $slugger->slug($colG);
  465.                                 $product->setSlug($slug);
  466.                                 $product->setHeader($colG);
  467.                                 $product->setMainReference($colG);
  468.                                 $product->setDescription($colG);
  469.                                 $product->setDonneesTechniques($colG);
  470.                                 $product->setTitle($colD);
  471.                                 $product->setSubTitle($colE);
  472.                                 $product->setSubSubType($colF);
  473.                                 $product->setGas($colI);
  474.                                 $product->setCaliber($colJ);
  475.                                 $product->setThickness($colK);
  476.                                 $product->setSpeedGl($colL);
  477.                                 $product->setSpeed($colM);
  478.                                 $product->setThread($colN);
  479.                                 $product->setAccessoryType($colO);
  480.                                 $product->setDriftThickness($colP);
  481.                                 $product->setGougingThickness($colQ);
  482.                                 $product->setDrillingThickness($colR);
  483.                                 $product->setPressureInBar($colS);
  484.                                 $entityManager->persist($product);
  485.                                 $entityManager->flush();
  486.                                     /*
  487.                                     $origProduct = $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $colC]);
  488.                                     if ($origProduct != null) {
  489.                                         $origProductAccessories = $origProduct->getAccessories();
  490.                                         $exist = false;
  491.                                         foreach ($origProductAccessories as $origProductAccessory) {
  492.                                             if ($origProductAccessory->getName() == $colG) {
  493.                                                 $exist = true;
  494.                                             }
  495.                                         }
  496.                                         if (!$exist) {
  497.                                             $origProduct->addAccessory($product);
  498.                                             $entityManager->persist($origProduct);
  499.                                             $entityManager->flush();
  500.                                         }
  501.                                     }*/
  502.                                 }
  503.                         }
  504.                         $rowNo++;
  505.                     }
  506.                     fclose($fp);
  507.                 }
  508.             }
  509.             if ($file == "accessoires_20241120.csv" && "importphotosaccessoires" == $importFile) {
  510.                 $rowNo 1;
  511.                 // $fp is file pointer to file sample.csv
  512.                 if (($fp fopen('../data/'.$file"r")) !== FALSE) {
  513.                     while (($row fgetcsv($fp1000";")) !== FALSE) {
  514.                         if ($rowNo 1) {
  515.                             $colG = (trim($row[6])); // Réf.
  516.                             $colH = (trim($row[7])); // Réf photo.
  517.                             $accessory $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $colG]);
  518.                             if ($accessory != null) {
  519.                                 $product $entityManager->getRepository(Products::class)->findOneBy(['mainReference' =>  $colH]);
  520.                                 if ($product != null) {
  521.                                     $imagePrincipale $product->getImages()->get(0);
  522.                                     if ($imagePrincipale != null) {
  523.                                         if (count($accessory->getImages()) == 0) {
  524.                                             $img = new Images();
  525.                                             $img->setName($imagePrincipale->getName());
  526.                                             $accessory->addImage($img);
  527.                                             $entityManager->persist($product);
  528.                                             $entityManager->flush();
  529.                                         }
  530.                                     }
  531.                                 }
  532.                             }
  533.                         }
  534.                         $rowNo++;
  535.                     }
  536.                     fclose($fp);
  537.                 }
  538.             }
  539.         }
  540.         dd("import termine");
  541.         return $this->redirectToRoute('main');
  542.     }
  543. }