src/Controller/WebServiceController.php line 649

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. use Doctrine\ORM\Query;
  6. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7. use Symfony\Component\Serializer\Encoder\XmlEncoder;
  8. use Symfony\Component\Serializer\Encoder\JsonEncoder;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  11. use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
  12. #use Symfony\Component\Serializer;
  13. use Symfony\Component\Serializer\Serializer;
  14. use Symfony\Component\Serializer\SerializerInterface;
  15. use Symfony\Component\Validator\Validation;
  16. use Symfony\Component\Filesystem\Filesystem;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. use Symfony\Component\HttpFoundation\JsonResponse;
  19. use phpseclib3\Net\SFTP;
  20. use App\Services\MailService;
  21. use App\Entity\BDDG\Terminal
  22. use App\Entity\BDDG\TerminalErreur
  23. use App\Entity\BDDG\Periode
  24. use App\Entity\BDDG\Tarifs;
  25. use App\Entity\BDDG\Tarif;
  26. use App\Entity\BDPolymorph\Commande;
  27. use App\Entity\BDPolymorph\CommandeService;
  28. use App\Entity\BDPolymorph\TransactionCb;
  29. use App\Entity\BDPolymorph\Solvabilite;
  30. use App\Entity\BDPolymorph\SolvabiliteOk;
  31. use App\Entity\BDPolymorph\Enregistrement;
  32. use App\Entity\BDPolymorph\EnregistrementOk;
  33. use App\Entity\BDPolymorph\InfoRemise;
  34. use App\Entity\BDPolymorph\Log;
  35. use App\Entity\BDDG\TerminalComposant
  36. use App\Services\libMQTT\src\ClientMQTT;
  37. class WebServiceController extends AbstractController
  38. {
  39.     /**
  40.      * @Route("/netbase", name="netbase")
  41.      */
  42.      
  43.     protected $requestStack;
  44.     public function __construct(RequestStack $requestStack)
  45.     {
  46.         $this->requestStack $requestStack;
  47.     }
  48.     public function insertTerminal($_format)
  49.     {
  50.         
  51.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  52.         $normalizers = [new ObjectNormalizer()];
  53.         $serializer = new Serializer($normalizers$encoders);
  54.         $validator Validation::createValidator();
  55.     
  56.         //SH 2021.01.21 ajout des terminaux 
  57.         $request $this->requestStack->getCurrentRequest();
  58.         //$data = $request->getContent();
  59.         //return new Response (var_dump($request->getContent()));
  60.         // create the serializer
  61.         //$serializer = $this->getSerializer($_format);
  62.         //return new Response (var_dump($serializer));
  63.         // build the Commande from a decoded array
  64.         
  65.             $terminal $serializer->deserialize ($request->getContent(),
  66.                 'App\Entity\BDDG\Terminal',
  67.                 $_format);
  68.     
  69.         //return new Response (var_dump($terminal));
  70.         /*if ($terminal)
  71.         {
  72.             //$validator = $this->get('validator');
  73.             if (0 === count($validator->validate($terminal)))
  74.             {
  75.             
  76.                 $con = $this->getDoctrine()->getConnection();
  77.                 $sql = $con->prepare("insert into terminal (ID_TERMINAL, NOM_TERMINAL, NOM_BORNE, ID_TYPE_CONTROL, COMMENTAIRE_TERMINAL) values (?, ?,?, ?, ?)");
  78.                 $sql->bindValue(1, $terminal->getIdTerminal());
  79.                 $sql->bindValue(2, $terminal->getNomTerminal());
  80.                 $sql->bindValue(3, ' ');
  81.                 $sql->bindValue(4, null);
  82.                 $sql->bindValue(5, null);
  83.                 $sql->execute();
  84.                 
  85.                 $response = new Response('Valid terminal!', 201);
  86.               //provisoire
  87.                 $con1 = $this->getDoctrine()->getConnection();
  88.                 $sql1 = $con1->prepare("insert into zone (ID_TERMINAL, ID_ZONE, NOM_ZONE, NB_PLACE, NB_PLACES_IPARK, XMPP_USER, XMPP_PASSWORD, XMPP_SYNOPTIQUE, XMPP_SYNOPTIQUE_PASSWORD, bnq_site_id, bnq_key) values (?,?,?,?,?,?,?,?,?,?,?)");
  89.                 $sql1->bindValue(1, $terminal->getIdTerminal());
  90.                 $sql1->bindValue(2, 1);
  91.                 $sql1->bindValue(3, $terminal->getNomTerminal());
  92.                 $sql1->bindValue(4, 10);
  93.                 $sql1->bindValue(5, 0);
  94.                 $sql1->bindValue(6, ' ');
  95.                 $sql1->bindValue(7, ' ');
  96.                 $sql1->bindValue(8, ' ');
  97.                 $sql1->bindValue(9, ' ');
  98.                 $sql1->bindValue(10, ' ');
  99.                 $sql1->bindValue(11, ' ');
  100.                 $sql1->execute();
  101.                 //return new Response (var_dump($sql1));
  102.                 return $response;
  103.             }
  104.         }*/
  105.     
  106.         if ($terminal)
  107.         {
  108.             if (=== count($validator->validate($terminal)))    
  109.             {    
  110.                 $entityManager $this->getDoctrine()->getManager();
  111.                 if($terminal->getEtatTerminal()==null $terminal->setEtatTerminal(0);
  112.                 if($terminal->getIdModePaiement()==null $terminal->setIdModePaiement(1);
  113.                 if($terminal->getIp()==null $terminal->setIp('11.11.11.11'); //SH 2024.09.03 initialisation adresse ip 
  114.                 $entityManager->merge($terminal);
  115.                 $entityManager->flush();
  116.                 $response = new Response('Valid terminal!'201);
  117.                 return $response;
  118.             }
  119.         }
  120.         // something went wrong
  121.         $response = new Response('Invalid terminal!'406);
  122.         return $response;
  123.     }
  124.     
  125.     //SH 2023.03.22 
  126.     public function insertZone($_format)
  127.     {
  128.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  129.         $normalizers = [new ObjectNormalizer()];
  130.         $serializer = new Serializer($normalizers$encoders);
  131.         $validator Validation::createValidator();
  132.         $request $this->requestStack->getCurrentRequest();
  133.         $zone $serializer->deserialize ($request->getContent(),
  134.             'App\Entity\BDDG\Zone',
  135.             $_format);
  136.         //return new Response (var_dump($zone));
  137.         if ($zone)
  138.         {
  139.             //return new Response (var_dump(count($validator->validate($zone))));
  140.             if (=== count($validator->validate($zone)))
  141.             {
  142.                 //return new Response (var_dump($zone));
  143.                 if ($zone->getTerminal()==null)
  144.                 {
  145.                     $repository $this->getDoctrine()->getRepository('App\Entity\BDDG\Terminal');
  146.                     $terminal $repository->findOneBy(array('idTerminal' => $zone->getIdTerminal()));
  147.                     //return new Response (var_dump($terminal));
  148.                     $zone->setTerminal($terminal);
  149.                     //return new Response (var_dump($zone));
  150.                 }
  151.                 $entityManager $this->getDoctrine()->getManager();
  152.                 $entityManager->merge($zone);
  153.                 $entityManager->flush();
  154.                 
  155.                 $response = new Response('Valid zone!'201);
  156.                 return $response;
  157.             }
  158.         }
  159.     
  160.         // something went wrong
  161.         $response = new Response('Invalid zone!'406);
  162.         return $response;
  163.     }
  164.     
  165.     
  166.     public function insertTerminalService($_format)
  167.     {
  168.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  169.         $normalizers = [new ObjectNormalizer()];
  170.         $serializer = new Serializer($normalizers$encoders);
  171.         $validator Validation::createValidator();
  172.         $request $this->requestStack->getCurrentRequest();
  173.         //return new Response (var_dump($request->getContent()));
  174.         $terminalService  $serializer->deserialize ($request->getContent(),
  175.             'App\Entity\BDDG\TerminalService',
  176.             $_format);
  177.         //return new Response (var_dump($terminalService));
  178.         if ($terminalService)
  179.         {         
  180.             if (=== count($validator->validate($terminalService)))
  181.             {        
  182.                 if ($terminalService->getTerminal()==null)
  183.                 {
  184.                     $repository $this->getDoctrine()->getRepository('App\Entity\BDDG\Terminal');
  185.                     $terminal $repository->findOneBy(array('idTerminal' => $terminalService->getIdTerminal()));
  186.                     //return new Response (var_dump($terminal));
  187.                     $terminalService->setTerminal($terminal);
  188.                     //return new Response (var_dump($terminalService));
  189.                 }
  190.                 $entityManager $this->getDoctrine()->getManager();
  191.                 $entityManager->merge($terminalService);
  192.                 $entityManager->flush();
  193.                 
  194.                 $response = new Response('Valid terminal service!'201);
  195.                 return $response;
  196.             }
  197.         }
  198.     
  199.         // something went wrong
  200.         $response = new Response('Invalid terminal service!'406);
  201.         return $response;
  202.     }
  203.     //SH 2021.05.03 WS commandes et telecollectes 
  204.     public function insertCommande($_format)
  205.     {            
  206.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  207.         $normalizers = [new ObjectNormalizer()];
  208.         $serializer = new Serializer($normalizers$encoders);
  209.         $validator Validation::createValidator();
  210.         $request $this->requestStack->getCurrentRequest();
  211.         // build the Commande from a decoded array
  212.         //return new Response (var_dump($request->getContent()));
  213.         $commande $serializer->deserialize ($request->getContent(),
  214.                     'App\Entity\BDPolymorph\Commande',
  215.                    $_format);
  216.         //return new Response (var_dump(date_format($commande->getDateCommande(),"Y/m/d H:i:s")));
  217.         if ($commande) {
  218.             
  219.             if (=== count($validator->validate($commande))) {
  220.                 //return new Response (var_dump($commandeAdd));
  221.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  222.                 $query $entityManager->createQuery(
  223.                         'SELECT c FROM App\Entity\BDPolymorph\Commande c WHERE c.idCommande = :ID_COMMANDE AND c.idTerminal = :ID_TERMINAL'
  224.                  )->setParameter('ID_COMMANDE'$commande->getIdCommande())
  225.                  ->setParameter('ID_TERMINAL'$commande->getIdTerminal());
  226.                 
  227.                  $commandeExists $query->getResult();
  228.                 
  229.                  if ($commandeExists == null) {
  230.                     
  231.                     $con $this->getDoctrine()->getConnection('polymorph');
  232.                     $sql $con->prepare("insert into commande  (ID_COMMANDE, ID_TERMINAL, ID_ZONE, ID_USER, DATE_COMMANDE, IS_ENVOYER_NB, ID_TYPE_RESERVATION, ID_DRAPEAU) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
  233.                     $sql->bindValue(1$commande->getIdCommande());
  234.                     $sql->bindValue(2$commande->getIdTerminal());
  235.                     $sql->bindValue(3$commande->getIdZone());
  236.                     $sql->bindValue(4,  $commande->getIdUser());
  237.                     $sql->bindValue(5,  date_format($commande->getDateCommande(),"Y/m/d H:i:s"));
  238.                     $sql->bindValue(6,  $commande->getIsEnvoyerNb());
  239.                     $sql->bindValue(7,  $commande->getIdTypeReservation());
  240.                     $sql->bindValue(8,  $commande->getIdDrapeau());
  241.                     $sql->execute();
  242.                 }
  243.                 $response = new Response('Valid Commande!'201);
  244.                 return $response;
  245.             }
  246.         }
  247.         
  248.         $response = new Response('Invalid commande!'406);
  249.         return $response;
  250.     }
  251.     //fin SH 
  252.     //SH 2021.05.18
  253.     public function insertCommandeService($_format)
  254.     {
  255.         // create the serializer
  256.         //$serializer = $this->getSerializer($_format);
  257.         //return new Response (var_dump('CommandeService'));
  258.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  259.         $normalizers = [new ObjectNormalizer()];
  260.         $serializer = new Serializer($normalizers$encoders);
  261.         $validator Validation::createValidator();
  262.         $request $this->requestStack->getCurrentRequest();
  263.         //return new Response (var_dump($request->getContent())); 
  264.         // build the Commande from a decoded array
  265.         $commandeService $serializer->deserialize ($request->getContent(),
  266.                 'App\Entity\BDPolymorph\CommandeService',
  267.                 $_format);
  268.          
  269.         if ($commandeService)
  270.         {
  271.         
  272.             if (=== count($validator->validate($commandeService)))
  273.             {
  274.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  275.                 $query $entityManager->createQuery(
  276.                                      'SELECT cs FROM App\Entity\BDPolymorph\CommandeService cs WHERE cs.idCommande = :ID_COMMANDE AND cs.idTerminal = :ID_TERMINAL AND cs.idService = :ID_SERVICE'
  277.                                  )->setParameter('ID_COMMANDE'$commandeService->getIdCommande())
  278.                                  ->setParameter('ID_TERMINAL'$commandeService->getIdTerminal())
  279.                                  ->setParameter('ID_SERVICE'$commandeService->getIdService());
  280.                                  $commandeServiceExists $query->getResult();
  281.                                     
  282.                  if($commandeServiceExists == null)
  283.                      {
  284.                     
  285.                     $con $this->getDoctrine()->getConnection('polymorph');
  286.                     $sql $con->prepare("INSERT INTO commande_service (ID_COMMANDE, ID_TERMINAL, ID_SERVICE, ID_ZONE, ID_TARIF, ID_COMPOSANT, QTE, QTE_UNITAIRE, UNITE, PRIX, ID_TYPE_SERVICE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
  287.                     $sql->bindValue(1$commandeService->getIdCommande());
  288.                     $sql->bindValue(2$commandeService->getIdTerminal());
  289.                     $sql->bindValue(3$commandeService->getIdService());
  290.                     $sql->bindValue(4$commandeService->getIdZone());
  291.                     $sql->bindValue(5$commandeService->getIdTarif());
  292.                     $sql->bindValue(6$commandeService->getIdComposant());
  293.                     $sql->bindValue(7$commandeService->getQte());
  294.                     $sql->bindValue(8$commandeService->getQteUnitaire());
  295.                     $sql->bindValue(9$commandeService->getUnite());
  296.                     $sql->bindValue(10$commandeService->getPrix());
  297.                     $sql->bindValue(11$commandeService->getIdTypeService());
  298.                     $sql->execute();
  299.                 }
  300.                 $response = new Response('Valid Commande!'201);
  301.                 return $response;
  302.             }
  303.         }
  304.          
  305.         // something went wrong
  306.         $response = new Response('Invalid commande service!'406);
  307.         return $response;
  308.     }
  309.     public function insertCommandeServiceConso ($_format)
  310.     {
  311.        
  312.         // create the serializer
  313.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  314.         $normalizers = [new ObjectNormalizer()];
  315.         $serializer = new Serializer($normalizers$encoders);
  316.         $validator Validation::createValidator();
  317.         $request $this->requestStack->getCurrentRequest();
  318.     
  319.         // build the Commande from a decoded array
  320.         $commandeServiceConso $serializer->deserialize ($request->getContent(),
  321.                 'App\Entity\BDPolymorph\CommandeServiceConso',
  322.                 $_format);
  323.     
  324.         if ($commandeServiceConso)
  325.         {
  326.             $validator $this->get('validator');
  327.             if (=== count($validator->validate($commandeServiceConso)))
  328.             {
  329.                 // this is a valid Commande instance, persist it
  330.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  331.                 
  332. //                 $query = $entityManager->createQuery(
  333. //                         'SELECT csc FROM NetBaseEntitiesDBBundle:CommandeServiceConso csc WHERE csc.idCommande = :ID_COMMANDE AND csc.idTerminal = :ID_TERMINAL AND csc.idService = :ID_SERVICE AND csc.idServiceConso = :ID_SERVICE_CONSO'
  334. //                 )->setParameter('ID_COMMANDE', $commandeServiceConso->getIdCommande())
  335. //                 ->setParameter('ID_TERMINAL', $commandeServiceConso->getIdTerminal())
  336. //                 ->setParameter('ID_SERVICE', $commandeServiceConso->getIdService())
  337. //                 ->setParameter('ID_SERVICE_CONSO', $commandeServiceConso->getIdServiceConso());
  338. //                 $commandeServiceConsoExists = $query->getResult();
  339.                  
  340. //                 if($commandeServiceConsoExists == null)
  341. //                 {
  342. //                   $entityManager->persist($commandeServiceConso);
  343. //                   $entityManager->flush();
  344. //                 }
  345.     
  346.                 $entityManager->merge($commandeServiceConso);
  347.                 $entityManager->flush();
  348.                 
  349.                 $response = new Response('Valid commande service conso!'201);
  350.                 return $response;
  351.             }
  352.         }
  353.     
  354.         // something went wrong
  355.         $response = new Response('Invalid commande service conso!'406);
  356.         return $response;
  357.     }
  358.     
  359.     public function insertTransactionCb ($_format)
  360.     {       
  361.         // create the serializer
  362.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  363.         $normalizers = [new ObjectNormalizer()];
  364.         $serializer = new Serializer($normalizers$encoders);
  365.         $validator Validation::createValidator();
  366.         $request $this->requestStack->getCurrentRequest();
  367.        // $res = deleteSpecialChar($request->getContent()); 
  368.        $res=str_ireplace(array('''''''' ,'&' ,'|'), ''$request->getContent());
  369.        // $res = $varUneChaine = preg_replace('/([^.a-z0-9]+)/i', '_', $request->getContent());
  370.         //return new Response (var_dump($res)); 
  371.         // build the Commande from a decoded array
  372.         //$transactionCb = $serializer->deserialize ($request->getContent(),
  373.         //        'App\Entity\BDPolymorph\TransactionCb',
  374.         //        $_format);  
  375.         $transactionCb $serializer->deserialize ($res,
  376.                 'App\Entity\BDPolymorph\TransactionCb',
  377.                 $_format);  
  378.         
  379.         if ($transactionCb)
  380.         {
  381.             
  382.             if (=== count($validator->validate($transactionCb)))
  383.             {
  384.                 // this is a valid Commande instance, persist it
  385.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  386.                 
  387.                  $query $entityManager->createQuery(
  388.                         'SELECT t FROM  App\Entity\BDPolymorph\TransactionCb t WHERE t.idCommande = :ID_COMMANDE AND t.idTerminal = :ID_TERMINAL AND t.idTransaction = :ID_TRANSACTION'
  389.                  )->setParameter('ID_COMMANDE'$transactionCb->getIdCommande())
  390.                  ->setParameter('ID_TERMINAL'$transactionCb->getIdTerminal())
  391.                  ->setParameter('ID_TRANSACTION'$transactionCb->getIdTransaction());
  392.                  $transactionCbExists $query->getResult();
  393.                 
  394.                  if($transactionCbExists == null)
  395.                  {
  396.                     $con $this->getDoctrine()->getConnection('polymorph');
  397.                     $sql $con->prepare("INSERT INTO transaction_cb (ID_TRANSACTION, ID_COMMANDE, ID_TERMINAL, OK, TRAME_SOLVABILITE, TRAME_ENREGISTREMENT, TRAME_TICKET) VALUES (?, ?, ?, ?, ?, ?, ?)");
  398.                     $sql->bindValue(1$transactionCb->getIdTransaction());
  399.                     $sql->bindValue(2$transactionCb->getIdCommande());
  400.                     $sql->bindValue(3,  $transactionCb->getIdTerminal());
  401.                     $sql->bindValue(4$transactionCb->getOk());
  402.                     $sql->bindValue(5,  $transactionCb->getTrameSolvabilite());
  403.                     $sql->bindValue(6$transactionCb->getTrameEnregistrement());
  404.                     $sql->bindValue(7,  $transactionCb->getTrameTicket());    
  405.                     $sql->execute();
  406.                 }
  407.         
  408.                 $response = new Response('Valid transaction CB!'201);
  409.                 return $response;
  410.             }
  411.         }
  412.     
  413.         // something went wrong
  414.         $response = new Response('Invalid transaction CB!'406);
  415.         return $response;
  416.     }
  417.     
  418.     public function insertSolvabilite ($_format)
  419.     {
  420.         // create the serializer
  421.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  422.         $normalizers = [new ObjectNormalizer()];
  423.         $serializer = new Serializer($normalizers$encoders);
  424.         $validator Validation::createValidator();
  425.         $request $this->requestStack->getCurrentRequest();
  426.          $res=str_ireplace(array('''''''' ,'&' ,'|'), ''$request->getContent());
  427.         // build the Commande from a decoded array
  428.         /*$solvabilite = $serializer->deserialize ($request->getContent(),
  429.                 'App\Entity\BDPolymorph\Solvabilite',
  430.                 $_format);*/
  431.         $solvabilite $serializer->deserialize ($res,
  432.                 'App\Entity\BDPolymorph\Solvabilite',
  433.                 $_format);
  434.     
  435.         if ($solvabilite)
  436.         {
  437.             
  438.             if (=== count($validator->validate($solvabilite)))
  439.             {
  440.                 // this is a valid Commande instance, persist it
  441.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  442.                 
  443.                  $query $entityManager->createQuery(
  444.                          'SELECT s FROM App\Entity\BDPolymorph\Solvabilite s WHERE s.idCommande = :ID_COMMANDE AND s.idTerminal = :ID_TERMINAL AND s.idTransaction = :ID_TRANSACTION'
  445.                  )->setParameter('ID_COMMANDE'$solvabilite->getIdCommande())
  446.                  ->setParameter('ID_TERMINAL'$solvabilite->getIdTerminal())
  447.                  ->setParameter('ID_TRANSACTION'$solvabilite->getIdTransaction());
  448.                  $solvabiliteExists $query->getResult();
  449.                  
  450.                  if($solvabiliteExists == null)
  451.                  {
  452.                     $con $this->getDoctrine()->getConnection('polymorph');
  453.                     $sql $con->prepare("INSERT INTO solvabilite (ID_TRANSACTION, ID_COMMANDE, ID_TERMINAL, LG1, CR, DIAG, TYPECARTE, PRES, PAPIER, LIBELLE, LG2)  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
  454.                     $sql->bindValue(1,$solvabilite->getIdTransaction());
  455.                     $sql->bindValue(2,     $solvabilite->getIdCommande());
  456.                     $sql->bindValue(3,     $solvabilite->getIdTerminal());
  457.                     $sql->bindValue(4,  $solvabilite->getLg1());
  458.                     $sql->bindValue(5,  $solvabilite->getCr());
  459.                     $sql->bindValue(6,  $solvabilite->getDiag());
  460.                     $sql->bindValue(7,  $solvabilite->getTypeCarte());
  461.                     $sql->bindValue(8,  $solvabilite->getPres());
  462.                     $sql->bindValue(9,  $solvabilite->getPapier());
  463.                     $sql->bindValue(10$solvabilite->getLibelle());
  464.                     $sql->bindValue(11$solvabilite->getLg2());
  465.                     $sql->execute();
  466.                  }
  467.     
  468.             
  469.                 
  470.                 $response = new Response('Valid solvabilite!'201);
  471.                 return $response;
  472.             }
  473.         }
  474.     
  475.         // something went wrong
  476.         $response = new Response('Invalid solvabilite!'406);
  477.         return $response;
  478.     }
  479.     
  480.     public function insertSolvabiliteOk ($_format)
  481.     {
  482.         // create the serializer
  483.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  484.         $normalizers = [new ObjectNormalizer()];
  485.         $serializer = new Serializer($normalizers$encoders);
  486.         $validator Validation::createValidator();
  487.         $request $this->requestStack->getCurrentRequest();
  488.         //return new Response (var_dump($request->getContent())); 
  489.         // build the Commande from a decoded array
  490.         $res=str_ireplace(array('''''''' ,'&' ,'|'), ''$request->getContent());
  491.         /*$solvabiliteOk = $serializer->deserialize ($request->getContent(),
  492.                 'App\Entity\BDPolymorph\SolvabiliteOk',
  493.                 $_format);*/
  494.         $solvabiliteOk $serializer->deserialize ($res,
  495.                 'App\Entity\BDPolymorph\SolvabiliteOk',
  496.                 $_format);
  497.     
  498.         //return new Response (var_dump($solvabiliteOk->getIdTransaction()));         
  499.         if ($solvabiliteOk)
  500.         {
  501.             
  502.             if (=== count($validator->validate($solvabiliteOk)))
  503.             {
  504.                 // this is a valid Commande instance, persist it
  505.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  506.                 
  507.                  $query $entityManager->createQuery(
  508.                          'SELECT s FROM App\Entity\BDPolymorph\SolvabiliteOk s WHERE s.idCommande = :ID_COMMANDE AND s.idTerminal = :ID_TERMINAL AND s.idTransaction = :ID_TRANSACTION'
  509.                  )->setParameter('ID_COMMANDE'$solvabiliteOk->getIdCommande())
  510.                  ->setParameter('ID_TERMINAL'$solvabiliteOk->getIdTerminal())
  511.                  ->setParameter('ID_TRANSACTION'$solvabiliteOk->getIdTransaction());
  512.                  $solvabiliteOkExists $query->getResult();
  513.                 
  514.                  if($solvabiliteOkExists == null)
  515.                 {
  516.                     $con $this->getDoctrine()->getConnection('polymorph');
  517.                     $sql $con->prepare("INSERT INTO solvabilite_ok (`ID_COMMANDE`, `ID_TERMINAL`, `ID_TRANSACTION`, `MONTANTMAX`, `CODEALPHADELADEV`, `PARTIEFRACDELADEV`)  VALUES (?, ?, ?, ?, ?, ?)");
  518.                     
  519.                     $sql->bindValue(1,     $solvabiliteOk->getIdCommande());
  520.                     $sql->bindValue(2,     $solvabiliteOk->getIdTerminal());
  521.                     $sql->bindValue(3,  $solvabiliteOk->getIdTransaction());
  522.                     $sql->bindValue(4,  $solvabiliteOk->getMontantmax());
  523.                     $sql->bindValue(5,  $solvabiliteOk->getCodealphadeladev());
  524.                     $sql->bindValue(6,  $solvabiliteOk->getPartiefracdeladev());
  525.                     $sql->execute();
  526.                  }
  527.                 
  528.     
  529.                 $response = new Response('Valid solvabilite OK!'201);
  530.                 return $response;
  531.             }
  532.         }
  533.     
  534.         // something went wrong
  535.         $response = new Response('Invalid solvabilite OK!'406);
  536.         return $response;
  537.     }
  538.     
  539.     public function insertSolvabiliteKo ($_format)
  540.     {
  541.         // create the serializer
  542.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  543.         $normalizers = [new ObjectNormalizer()];
  544.         $serializer = new Serializer($normalizers$encoders);
  545.         $validator Validation::createValidator();
  546.         $request $this->requestStack->getCurrentRequest();
  547.     
  548.         // build the Commande from a decoded array
  549.         /*solvabiliteKo = $serializer->deserialize ($request->getContent(),
  550.                 'App\Entity\BDPolymorph\SolvabiliteKo',
  551.                 $_format);*/
  552.         $res=str_ireplace(array('''''''' ,'&' ,'|'), ''$request->getContent());
  553.         $solvabiliteOk $serializer->deserialize ($res,
  554.                 'App\Entity\BDPolymorph\SolvabiliteOk',
  555.                 $_format);
  556.     
  557.         if ($solvabiliteKo)
  558.         {
  559.             $validator $this->get('validator');
  560.             if (=== count($validator->validate($solvabiliteKo)))
  561.             {
  562.                 // this is a valid Commande instance, persist it
  563.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  564.                 
  565. //                 $query = $entityManager->createQuery(
  566. //                         'SELECT s FROM NetBaseEntitiesDBBundle:SolvabiliteKo s WHERE s.idCommande = :ID_COMMANDE AND s.idTerminal = :ID_TERMINAL AND s.idTransaction = :ID_TRANSACTION'
  567. //                 )->setParameter('ID_COMMANDE', $solvabiliteKo->getIdCommande())
  568. //                 ->setParameter('ID_TERMINAL', $solvabiliteKo->getIdTerminal())
  569. //                 ->setParameter('ID_TRANSACTION', $solvabiliteKo->getIdTransaction());
  570. //                 $solvabiliteKoExists = $query->getResult();
  571.                  
  572. //                 if($solvabiliteKoExists == null)
  573. //                 {
  574. //                   $entityManager->persist($solvabiliteKo);
  575. //                   $entityManager->flush();
  576.                   
  577. //                   $query = $entityManager->createQuery(
  578. //                           'SELECT tcb FROM NetBaseEntitiesDBBundle:TerminalCb tcb 
  579. //                           WHERE tcb.idTerminal = :ID_TERMINAL
  580. //                           AND tcb.cbLib = :CB_LIB'
  581. //                   )->setParameter('ID_TERMINAL', $solvabiliteKo->getIdTerminal())
  582. //                   ->setParameter('CB_LIB', $solvabiliteKo->getLabell());
  583. //                   $tcb = $query->getSingleResult();
  584. //                   if ($tcb == null) {
  585. //                       $tcb = new TerminalCb();
  586. //                       $tcb->setIdTerminal($solvabiliteKo->getIdTerminal());
  587. //                       $tcb->setCbLib($solvabiliteKo->getLabell());
  588. //                       $entityManager->persist($tcb);
  589. //                       $entityManager->flush();
  590. //                   }
  591. //                 }
  592.     
  593.                 $entityManager->merge($solvabiliteKo);
  594.                 
  595.                 $tcb = new TerminalCb();
  596.                 $tcb->setIdTerminal($solvabiliteKo->getIdTerminal());
  597.                 $tcb->setCbLib($solvabiliteKo->getLabell());
  598.                 $entityManager->merge($tcb);
  599.                 $entityManager->flush();
  600.                 
  601.                 $response = new Response('Valid solvabilite KO!'201);
  602.                 return $response;
  603.             }
  604.         }
  605.     
  606.         // something went wrong
  607.         $response = new Response('Invalid solvabilite KO!'406);
  608.         return $response;
  609.     }
  610.     
  611.     public function insertEnregistrement ($_format)
  612.     {
  613.         // create the serializer
  614.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  615.         $normalizers = [new ObjectNormalizer()];
  616.         $serializer = new Serializer($normalizers$encoders);
  617.         $validator Validation::createValidator();
  618.         $request $this->requestStack->getCurrentRequest();
  619.     
  620.         // build the Commande from a decoded array
  621.         // return new Response (var_dump($request->getContent())); 
  622.         $enregistrement $serializer->deserialize ($request->getContent(),
  623.                 'App\Entity\BDPolymorph\Enregistrement',
  624.                 $_format);
  625.         // return new Response (var_dump($enregistrement)); 
  626.         if ($enregistrement)
  627.         {
  628.             
  629.             if (=== count($validator->validate($enregistrement)))
  630.             {
  631.                 // this is a valid Commande instance, persist it
  632.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  633.                 
  634.                  $query $entityManager->createQuery(
  635.                          'SELECT e FROM App\Entity\BDPolymorph\Enregistrement e WHERE e.idCommande = :ID_COMMANDE AND e.idTerminal = :ID_TERMINAL AND e.idTransaction = :ID_TRANSACTION'
  636.                  )->setParameter('ID_COMMANDE'$enregistrement->getIdCommande())
  637.                  ->setParameter('ID_TERMINAL'$enregistrement->getIdTerminal())
  638.                  ->setParameter('ID_TRANSACTION'$enregistrement->getIdTransaction());
  639.                  $enregistrementExists $query->getResult();
  640.                 
  641.                  if($enregistrementExists == null)
  642.                  {
  643.                     $con $this->getDoctrine()->getConnection('polymorph');
  644.                     $sql $con->prepare("INSERT INTO enregistrement (ID_COMMANDE, ID_TERMINAL, ID_TRANSACTION, LG, CR, LIBELLE, LG2)  VALUES (?, ?, ?, ?, ?, ?, ?)");
  645.                     
  646.                     $sql->bindValue(1,     $enregistrement->getIdCommande());
  647.                     $sql->bindValue(2,     $enregistrement->getIdTerminal());
  648.                     $sql->bindValue(3,  $enregistrement->getIdTransaction());
  649.                     $sql->bindValue(4,  $enregistrement->getLg());
  650.                     $sql->bindValue(5,  $enregistrement->getCr());
  651.                     $sql->bindValue(6,  $enregistrement->getLibelle());
  652.                     $sql->bindValue(7,  $enregistrement->getLg2());
  653.                     $sql->execute();
  654.                 }
  655.     
  656.                 
  657.                 
  658.                 $response = new Response('Valid enregistrement!'201);
  659.                 return $response;
  660.             }
  661.         }
  662.     
  663.         // something went wrong
  664.         $response = new Response('Invalid enregistrement!'406);
  665.         return $response;
  666.     }    
  667.     
  668.     public function insertEnregistrementOk ($_format)
  669.     {
  670.         // create the serializer
  671.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  672.         $normalizers = [new ObjectNormalizer()];
  673.         $serializer = new Serializer($normalizers$encoders);
  674.         $validator Validation::createValidator();
  675.         $request $this->requestStack->getCurrentRequest();
  676.     
  677.         // build the Commande from a decoded array
  678.         $enregistrementOk $serializer->deserialize ($request->getContent(),
  679.                 'App\Entity\BDPolymorph\EnregistrementOk',
  680.                 $_format);
  681.     
  682.         if ($enregistrementOk)
  683.         {
  684.             
  685.             if (=== count($validator->validate($enregistrementOk)))
  686.             {
  687.                 // this is a valid Commande instance, persist it
  688.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  689.                 
  690.                  $query $entityManager->createQuery(
  691.                          'SELECT e FROM App\Entity\BDPolymorph\EnregistrementOk e WHERE e.idCommande = :ID_COMMANDE AND e.idTerminal = :ID_TERMINAL AND e.idTransaction = :ID_TRANSACTION'
  692.                  )->setParameter('ID_COMMANDE'$enregistrementOk->getIdCommande())
  693.                  ->setParameter('ID_TERMINAL'$enregistrementOk->getIdTerminal())
  694.                  ->setParameter('ID_TRANSACTION'$enregistrementOk->getIdTransaction());
  695.                  $enregistrementOkExists $query->getResult();
  696.                  
  697.                  if($enregistrementOkExists == null)
  698.                  {
  699.                   
  700.                     $tmpNum str_replace("?","",$enregistrementOk->getNumcompteprimaireunporteur());
  701.                     if (strlen($tmpNum) > 12)
  702.                         $tmpNum "############".substr($tmpNum,12); 
  703.                     $enregistrementOk->setNumcompteprimaireunporteur($tmpNum);                   
  704.                     
  705.                     $con $this->getDoctrine()->getConnection('polymorph');
  706.                     /*$sql = $con->prepare("INSERT INTO enregistrement_ok(ID_COMMANDE,ID_TERMINAL, ID_TRANSACTION, FORMATENTETETICKETTRANSAC, DATELOCALEDELATRANSAC, HEURELOCALEDELATRANSAC, ENSEIGNEACCEPT, TYPEDETRANSAC, NUMCONTRATOUIDACCEPT, NUMSIRET, TYPEACTIVITECOMMERCIALE, TYPEDEPAIEMENT, TYPEDESITE, NUMCOMPTEPRIMAIREUNPORTEUR, TYPEAPPLICATIFDUSYSACCEPT,DATEDEFINDEVALIDUNEAPPCARTE, CODESERVICE, CRYPTOGRAMME, CODENUMERIQUEDELADEV, NUMLOGIQUEDUSYSACCEPT, NUMDETRANSACGENPARLESYSCCEPT, NUMDEREMISE, MODEDELECTUREDUNUMEROPORTEUR, NUMAUTORISATIONUNETRANSAC, CODEFORCAGE, MONTANTDELATRANSAC, CODEALPHADELADEV, PARTIEFRACDELADEV, MONTANTUNETRANSACENCONTREVAL, CODEALPHADELADEVENCONTREVAL, PARTIEFRACDELADEVENCONTREVAL, MONTANTESTIME, FORMATPIEDDETICKETTRANSAC, AID, LABELL)
  707.                                          VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12],[value-13],[value-14],[value-15],[value-16],[value-17],[value-18],[value-19],[value-20],[value-21],[value-22],[value-23],[value-24],[value-25],[value-26],[value-27],[value-28],[value-29],[value-30],[value-31],[value-32],[value-33],[value-34],[value-35])");*/
  708.                     $sql $con->prepare("INSERT INTO enregistrement_ok(ID_COMMANDE,ID_TERMINAL, ID_TRANSACTION, FORMATENTETETICKETTRANSAC, DATELOCALEDELATRANSAC, HEURELOCALEDELATRANSAC, ENSEIGNEACCEPT, TYPEDETRANSAC, NUMCONTRATOUIDACCEPT, NUMSIRET, TYPEACTIVITECOMMERCIALE, TYPEDEPAIEMENT, TYPEDESITE, NUMCOMPTEPRIMAIREUNPORTEUR, TYPEAPPLICATIFDUSYSACCEPT,DATEDEFINDEVALIDUNEAPPCARTE, CODESERVICE, CRYPTOGRAMME, CODENUMERIQUEDELADEV, NUMLOGIQUEDUSYSACCEPT, NUMDETRANSACGENPARLESYSCCEPT, NUMDEREMISE, MODEDELECTUREDUNUMEROPORTEUR, NUMAUTORISATIONUNETRANSAC, CODEFORCAGE, MONTANTDELATRANSAC, CODEALPHADELADEV, PARTIEFRACDELADEV, MONTANTUNETRANSACENCONTREVAL, CODEALPHADELADEVENCONTREVAL, PARTIEFRACDELADEVENCONTREVAL, MONTANTESTIME, FORMATPIEDDETICKETTRANSAC, AID, LABELL)
  709.                                          VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ? , ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?)");
  710.                     
  711.                     $sql->bindValue(1,     $enregistrementOk->getIdCommande());
  712.                     $sql->bindValue(2,     $enregistrementOk->getIdTerminal());
  713.                     $sql->bindValue(3,  $enregistrementOk->getIdTransaction());
  714.                     $sql->bindValue(4rtrim($enregistrementOk->getFormatentetetickettransac()));
  715.                     $sql->bindValue(5,  rtrim($enregistrementOk->getDatelocaledelatransac()));
  716.                     $sql->bindValue(6,  rtrim($enregistrementOk->getHeurelocaledelatransac()));
  717.                     $sql->bindValue(7rtrim($enregistrementOk->getEnseigneaccept()));
  718.                     $sql->bindValue(8,  rtrim($enregistrementOk->getTypedetransac()));
  719.                     $sql->bindValue(9,  rtrim($enregistrementOk->getNumcontratouidaccept()));
  720.                     $sql->bindValue(10rtrim($enregistrementOk->getNumsiret()));
  721.                     $sql->bindValue(11rtrim($enregistrementOk->getTypeactivitecommerciale()));
  722.                     $sql->bindValue(12rtrim($enregistrementOk->getTypedepaiement()));
  723.                     $sql->bindValue(13rtrim($enregistrementOk->getTypedesite()));
  724.                     $sql->bindValue(14rtrim($enregistrementOk->getNumcompteprimaireunporteur()));
  725.                     $sql->bindValue(15,  rtrim($enregistrementOk->getTypeapplicatifdusysaccept()));
  726.                     $sql->bindValue(16,  rtrim($enregistrementOk->getDatedefindevaliduneappcarte()));
  727.                     $sql->bindValue(17,  rtrim($enregistrementOk->getCodeservice()));
  728.                     $sql->bindValue(18,  rtrim($enregistrementOk->getCryptogramme()));
  729.                     $sql->bindValue(19,  rtrim($enregistrementOk->getCodenumeriquedeladev()));
  730.                     $sql->bindValue(20,  rtrim($enregistrementOk->getNumlogiquedusysaccept()));
  731.                     $sql->bindValue(21rtrim($enregistrementOk->getNumdetransacgenparlesysccept()));
  732.                     $sql->bindValue(22rtrim($enregistrementOk->getNumderemise()));
  733.                     $sql->bindValue(23,    rtrim($enregistrementOk->getModedelecturedunumeroporteur()));
  734.                     $sql->bindValue(24rtrim($enregistrementOk->getNumautorisationunetransac()));
  735.                     $sql->bindValue(25rtrim($enregistrementOk->getCodeforcage()));
  736.                     $sql->bindValue(26,  rtrim($enregistrementOk->getMontantdelatransac()));
  737.                     $sql->bindValue(27,  rtrim($enregistrementOk->getCodealphadeladev()));
  738.                     $sql->bindValue(28,  rtrim($enregistrementOk->getPartiefracdeladev()));
  739.                     $sql->bindValue(29,  rtrim($enregistrementOk->getMontantunetransacencontreval()));
  740.                     $sql->bindValue(30,  rtrim($enregistrementOk->getCodealphadeladevencontreval()));
  741.                     $sql->bindValue(31,  rtrim($enregistrementOk->getPartiefracdeladevencontreval()));
  742.                     $sql->bindValue(32rtrim($enregistrementOk->getMontantestime()));
  743.                     $sql->bindValue(33rtrim($enregistrementOk->getFormatpieddetickettransac()));
  744.                     $sql->bindValue(34,    rtrim($enregistrementOk->getAid()));
  745.                     $sql->bindValue(35rtrim($enregistrementOk->getLabell()));
  746.                     $sql->execute();
  747.                  }
  748.                 
  749.                 
  750.                 $response = new Response('Valid enregistrement OK!'201);
  751.                 return $response;
  752.             }
  753.         }
  754.     
  755.         // something went wrong
  756.         $response = new Response('Invalid enregistrement OK!'406);
  757.         return $response;
  758.     }
  759.     
  760.     public function insertEnregistrementKo ($_format)
  761.     {
  762.         // create the serializer
  763.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  764.         $normalizers = [new ObjectNormalizer()];
  765.         $serializer = new Serializer($normalizers$encoders);
  766.         $validator Validation::createValidator();
  767.         $request $this->requestStack->getCurrentRequest();
  768.     
  769.         // build the Commande from a decoded array
  770.         $enregistrementKo $serializer->deserialize ($request->getContent(),
  771.                 'App\Entity\BDPolymorph\EnregistrementOk',
  772.                 $_format);
  773.     
  774.         if ($enregistrementKo)
  775.         {
  776.             $validator $this->get('validator');
  777.             if (=== count($validator->validate($enregistrementKo)))
  778.             {
  779.                 // this is a valid Commande instance, persist it
  780.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  781.                 
  782. //                 $query = $entityManager->createQuery(
  783. //                         'SELECT e FROM NetBaseEntitiesDBBundle:EnregistrementKo e WHERE e.idCommande = :ID_COMMANDE AND e.idTerminal = :ID_TERMINAL AND e.idTransaction = :ID_TRANSACTION'
  784. //                 )->setParameter('ID_COMMANDE', $enregistrementKo->getIdCommande())
  785. //                 ->setParameter('ID_TERMINAL', $enregistrementKo->getIdTerminal())
  786. //                 ->setParameter('ID_TRANSACTION', $enregistrementKo->getIdTransaction());
  787. //                 $enregistrementKoExists = $query->getResult();
  788.                 
  789. //                 if($enregistrementKoExists == null)
  790. //                 {
  791. //                   $entityManager->persist($enregistrementKo);
  792. //                   $entityManager->flush();
  793.                   
  794. //                   $query = $entityManager->createQuery(
  795. //                           'SELECT tcb FROM NetBaseEntitiesDBBundle:TerminalCb tcb
  796. //                           WHERE tcb.idTerminal = :ID_TERMINAL
  797. //                           AND tcb.cbLib = :CB_LIB'
  798. //                   )->setParameter('ID_TERMINAL', $enregistrementKo->getIdTerminal())
  799. //                   ->setParameter('CB_LIB', $enregistrementKo->getLabell());
  800. //                   $tcb = $query->getSingleResult();
  801. //                   if ($tcb == null) {
  802. //                       $tcb = new TerminalCb();
  803. //                       $tcb->setIdTerminal($enregistrementKo->getIdTerminal());
  804. //                       $tcb->setCbLib($enregistrementKo->getLabell());
  805. //                       $entityManager->persist($tcb);
  806. //                       $entityManager->flush();
  807. //                   }
  808. //                 }
  809.     
  810.                 $entityManager->persist($enregistrementKo);
  811.                 
  812.                 $tcb = new TerminalCb();
  813.                 $tcb->setIdTerminal($enregistrementKo->getIdTerminal());
  814.                 $tcb->setCbLib($enregistrementKo->getLabell());
  815.                 $entityManager->merge($tcb);
  816.                 $entityManager->flush();
  817.                 
  818.                 $response = new Response('Valid enregistrement KO!'201);
  819.                 return $response;
  820.             }
  821.         }
  822.     
  823.         // something went wrong
  824.         $response = new Response('Invalid enregistrement KO!'406);
  825.         return $response;
  826.     }
  827.     
  828.     
  829.      
  830.     public function insertUser($_format)
  831.     {
  832.         // create the serializer
  833.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  834.         $normalizers = [new ObjectNormalizer()];
  835.         $serializer = new Serializer($normalizers$encoders);
  836.         $validator Validation::createValidator();
  837.         $request $this->requestStack->getCurrentRequest();
  838.     
  839.         // build the Commande from a decoded array
  840.         $user $serializer->deserialize ($request->getContent(),
  841.                 'App\Entity\BDPolymorph\Users',
  842.                 $_format);
  843.     
  844.         if ($user)
  845.         {
  846.         
  847.             if (=== count($validator->validate($user)))
  848.             {
  849.                 // this is a valid Commande instance, persist it
  850.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  851.                 
  852.                  $query $entityManager->createQuery(
  853.                          'SELECT u FROM App\Entity\BDPolymorph\Users u WHERE u.idUser = :ID_USER AND u.idTerminal = :ID_TERMINAL'
  854.                  )->setParameter('ID_USER'$user->getIdUser())
  855.                  ->setParameter('ID_TERMINAL'$user->getIdTerminal());
  856.                  $userExists $query->getResult();
  857.                  
  858.                  if($userExists == null)
  859.                  {
  860.                        if ($user->getDepartement() == '')
  861.                          $user->setDepartement('00');
  862.                        if ($user->getIdPays() == 0)
  863.                            $user->setIdPays(0);
  864.                        if ($user->getPlaque() == '')
  865.                            $user->setPlaque('');
  866.                        if ($user->getInformations() == null)
  867.                         $user->setInformations('');
  868.                     //SH 2023.03.29 suite erreur BD n'accepte pas les dates avant 1970.01.01 datetime a partir de cette dernière date
  869.                     if ((date_format($user->getDateCloture(),"Y/m/d H:i:s")=='1900/01/01 00:00:00') or (date_format($user->getDateCloture(),"Y/m/d H:i:s")=='1899/12/30 00:00:00') )    
  870.                         $user->setDateCloture('1970-01-02 00:00:00');
  871.                     
  872.                     //return new Response (var_dump($user));      
  873.                     $con $this->getDoctrine()->getConnection('polymorph');
  874.                     $sql $con->prepare("INSERT INTO users (`ID_USER`, `ID_TERMINAL`, `ID_ZONE`, `CODE_ACCES`, `NOM`, `DATE_DEB`, `ID_ETAT`, `ID_TYPE_USER`, `ID_PRESENCE_USER`, `DATE_CLOTURE`, `DEPARTEMENT`, `PLAQUE`, `ID_PAYS`, `INFORMATIONS`)   VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ? , ? , ?)");
  875.                     $sql->bindValue(1$user->getIdUser());
  876.                     $sql->bindValue(2,     $user->getIdTerminal());
  877.                     $sql->bindValue(3,     $user->getIdZone());
  878.                     $sql->bindValue(4,  $user->getCodeAcces());
  879.                     $sql->bindValue(5$user->getNom());
  880.                     $sql->bindValue(6date_format($user->getDateDeb(),"Y/m/d H:i:s")) ;
  881.                     $sql->bindValue(7,  $user->getIdEtat());
  882.                     $sql->bindValue(8$user->getIdTypeUser());
  883.                     $sql->bindValue(9$user->getIdPresenceUser());
  884.                     $sql->bindValue(10,  date_format($user->getDateCloture(),"Y/m/d H:i:s"));
  885.                     $sql->bindValue(11$user->getDepartement());
  886.                     $sql->bindValue(12$user->getPlaque());
  887.                     $sql->bindValue(13,  $user->getIdPays());
  888.                     $sql->bindValue(14$user->getInformations());
  889.                     $sql->execute();
  890.                  
  891.                  }
  892.                 
  893.                 $response = new Response('Valid user!'201);
  894.                 return $response;
  895.             }
  896.         }
  897.     
  898.         // something went wrong
  899.         $response = new Response('Invalid user!'406);
  900.         return $response;
  901.     }
  902.     public function insertEtat($_format)
  903.     {    
  904.         $request $this->requestStack->getCurrentRequest();    
  905.         $xml $request->getContent();
  906.         //        $this->ecrire_log($xml);
  907.         //return new Response (var_dump($xml));  
  908.         $xml simplexml_load_string($xml);
  909.         $json json_encode($xml);
  910.         $doc json_decode($json,TRUE);
  911.         //return new response (var_dump($doc['Erreurs']), 201);
  912.         //return new Response (var_dump($doc['Erreurs']));  
  913.         $in = array();
  914.         $erreurs $doc['Erreurs'];
  915.         if ( is_array($erreurs))
  916.             foreach ($erreurs as $erreur) {
  917.                 array_push($in$erreur);
  918.                }
  919.         else array_push($in$erreurs);
  920.         
  921.         if (isset($in)) {
  922.             //$in = $in . ')';
  923.             $idTerminal $doc['idTerminal'];
  924.     
  925.             $this->majAdresseIp($idTerminal);        
  926.             //$this->ecrire_log('idTerminal : '.$idTerminal.' / IP : '.$_SERVER["REMOTE_ADDR"]);
  927.             
  928.             //return new response ($in . ' ' . $idTerminal, 201);
  929.             $entityManager $this->getDoctrine()->getManager();
  930.             $repository $entityManager->getRepository('App\Entity\BDDG\TerminalErreur');
  931.             $erreurs $repository->findBy(array('idTerminal' => $idTerminal));
  932.             $dateRemontee = new \DateTime('now');
  933.             //return new Response (var_dump($erreurs));  
  934.             // mise à jour des erreur en base
  935.             foreach ($erreurs as $erreur) {
  936.                 if (in_array($erreur->getIdErreur(), $in)) {
  937.                     // l'erreur en base existe, on met à jour
  938.                     $erreur->setDateRemontee($dateRemontee);
  939.                 }
  940.                 else {
  941.                     // l'erreur en base n'existe plus, on l'efface 
  942.                     $entityManager->remove($erreur);
  943.                 }
  944.                 
  945.             }
  946.             $entityManager->flush();
  947.             
  948.             // Ajout des erreurs qui n'existaient pas en base
  949.             foreach ($in as $idErreur) {
  950.                 $erreur $repository->findBy(array('idTerminal' => $idTerminal'idErreur' => $idErreur));
  951.                 if (!$erreur) {
  952.                     $erreur = new TerminalErreur();
  953.                     $erreur->setIdTerminal($idTerminal);
  954.                     $erreur->setIdErreur($idErreur);
  955.                     $erreur->setDateRemontee($dateRemontee);
  956.                     $erreur->setVisibilite(1);
  957.                     $entityManager->persist($erreur);
  958.                 }
  959.                 //SH 2024.01.18 gestion terminal composant 
  960.                 if(!(($idErreur>19) && ($idErreur<50) ))
  961.                 {
  962.                     $tpe=array(1,2,3,4,5,6,50);
  963.                     $imp=array(7,8,9,10,51);
  964.                     $voie=array(11,12,13,14,52);
  965.                     $digi=array(15,16,17,18,53);
  966.                     $idComposant=0;
  967.                     if( in_array($idErreur,$tpe)) $idComposant=1;
  968.                     else if( in_array($idErreur,$imp)) $idComposant=2;
  969.                     else if( in_array($idErreur,$voie)) $idComposant=3;
  970.                     else if( in_array($idErreur,$digi)) $idComposant=4;
  971.                     
  972.                     $repComposant=$entityManager->getRepository('App\Entity\BDDG\TerminalComposant');
  973.                     $etatErreur=$repComposant->findOneBy(array('idTerminal' => $idTerminal'idComposant' => $idComposant));
  974.                     //return new Response (var_dump($idErreur)); 
  975.                     if (!$etatErreur) {
  976.                         $etatErreur = new TerminalComposant();
  977.                         $etatErreur->setIdTerminal($idTerminal);
  978.                         $etatErreur->setIdComposant($idComposant);
  979.                     }
  980.                     //$dateRemontee = new \DateTime('now');
  981.                     $etatErreur->setDateRemontee($dateRemontee);
  982.                     $etatErreur->setEtatErreur($idErreur);
  983.                     //return new Response (var_dump($etatErreur));
  984.                     $entityManager->persist($etatErreur);
  985.                     $entityManager->flush();
  986.                 }
  987.                 
  988.                 //fin SH 
  989.             }
  990.             
  991.             $entityManager->flush();
  992.             
  993.             
  994.             
  995.             //$con = $this->getDoctrine()->getConnection();
  996.             //$sql = $con->prepare("Delete from Terminal_Erreur where id_terminal = : idTerminal and id_Erreur not in " . $in);
  997.             //$sql->bindValue('idTerminal', $idTerminal);
  998.             //$sql->execute();
  999.         }
  1000.         else return new response ('KO'201);
  1001.         
  1002.         return new response ('OK'201);
  1003.     }
  1004.   
  1005.     public function majAdresseIp($idTerminal)
  1006.     {
  1007.         // ML
  1008.         try {
  1009.             $request $this->requestStack->getCurrentRequest();
  1010.             $newIp $request->getClientIp();
  1011.             $entityManager $this->getDoctrine()->getManager();
  1012.     
  1013.             $repository $this->getDoctrine()->getRepository('App\Entity\BDDG\Terminal');
  1014.             $terminal $repository->findOneBy(array('idTerminal' => $idTerminal));
  1015.             //return new Response (var_dump($terminal));  
  1016.             if ($terminal != null) {
  1017.                 $oldIp $terminal->getIp();
  1018.                 $majIp false;
  1019.            
  1020.                 if ($oldIp == null)
  1021.                     $majIp true;
  1022.                 elseif ($oldIp != $newIp && preg_match('#^([0-9]{1,3}\.){3}[0-9]{1,3}$#'$oldIp))
  1023.                     $majIp true;                
  1024.            
  1025.                 if ($majIp) {
  1026.                     $terminal->setIp($newIp);
  1027.                     $entityManager->persist($terminal);
  1028.                     $entityManager->flush();
  1029.                 }
  1030.                 
  1031.             }
  1032.         }
  1033.         catch(\ErrorException $e) {
  1034.         }
  1035.         // end ML
  1036.     }
  1037.     public function insertTelecollecte ($_format)
  1038.     {
  1039.         // create the serializer
  1040.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  1041.         $normalizers = [new ObjectNormalizer()];
  1042.         $serializer = new Serializer($normalizers$encoders);
  1043.         $validator Validation::createValidator();
  1044.         $request $this->requestStack->getCurrentRequest();
  1045.     
  1046.         // build the Commande from a decoded array
  1047.         $telecollecte $serializer->deserialize ($request->getContent(),
  1048.                 'App\Entity\BDPolymorph\Telecollecte',
  1049.                 $_format);
  1050.         //return new Response (var_dump($telecollecte));  
  1051.         if ($telecollecte)
  1052.         {
  1053.             
  1054.             if (=== count($validator->validate($telecollecte)))
  1055.             {
  1056.                 // this is a valid Telecollecte instance, persist it
  1057.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  1058. //                 $query = $entityManager->createQuery(
  1059. //                         'SELECT t FROM NetBaseEntitiesDBBundle:Telecollecte t WHERE t.idTerminal = :ID_TERMINAL AND t.datelocaleuneapplication = :DATELOCALEUNEAPPLICATION AND t.heurelocaleuneapplication = :HEURELOCALEUNEAPPLICATION'
  1060. //                 )->setParameter('ID_TERMINAL', $telecollecte->getIdTerminal())
  1061. //                 ->setParameter('DATELOCALEUNEAPPLICATION', $telecollecte->getDatelocaleuneapplication())
  1062. //                 ->setParameter('HEURELOCALEUNEAPPLICATION', $telecollecte->getHeurelocaleuneapplication());
  1063. //                 $telecollecteExists = $query->getResult();
  1064.     
  1065. //                 if($telecollecteExists == null) {
  1066. //                     //INSERT
  1067. //                     $entityManager->persist($telecollecte);
  1068. //                     $entityManager->flush();
  1069. //                 }
  1070. //                 else {
  1071. //                     //UPDATE
  1072. //                     $telecollecteExists[0]->setLg($telecollecte->getLg());
  1073. //                     $telecollecteExists[0]->setCr($telecollecte->getCr());
  1074. //                     $telecollecteExists[0]->setCodesousfct($telecollecte->getCodesousfct());
  1075. //                     $telecollecteExists[0]->setNbapp($telecollecte->getNbapp());
  1076. //                     $telecollecteExists[0]->setLibelle($telecollecte->getLibelle());
  1077. //                     $telecollecteExists[0]->setCr2($telecollecte->getCr2());
  1078. //                     $telecollecteExists[0]->setLg2($telecollecte->getLg2());
  1079. //                     $telecollecteExists[0]->setFormatenteteticketcompterendu($telecollecte->getFormatenteteticketcompterendu());
  1080. //                     $telecollecteExists[0]->setNcontratidentifiantaccepteur($telecollecte->getNcontratidentifiantaccepteur());
  1081. //                     $telecollecteExists[0]->setNsiret($telecollecte->getNsiret());
  1082. //                     $telecollecteExists[0]->setTypeactivitecommerciale($telecollecte->getTypeactivitecommerciale());
  1083. //                     $telecollecteExists[0]->setTypepaiement($telecollecte->getTypepaiement());
  1084. //                     $telecollecteExists[0]->setTypedesite($telecollecte->getTypedesite());
  1085. //                     $telecollecteExists[0]->setNlogiquesystemeacceptation($telecollecte->getNlogiquesystemeacceptation());
  1086. //                     $telecollecteExists[0]->setLibellereponse($telecollecte->getLibellereponse());
  1087. //                     $telecollecteExists[0]->setFormatpiedticketcompterendu($telecollecte->getFormatpiedticketcompterendu());
  1088. //                     $telecollecteExists[0]->setNbrem($telecollecte->getNbrem());
  1089. //                     $telecollecteExists[0]->setIsEnvoyerNb($telecollecte->getIsEnvoyerNb());
  1090.                     
  1091. //                     $entityManager->persist($telecollecteExists [0]);
  1092. //                     $entityManager->flush();
  1093. //                 }
  1094.     
  1095.                 $entityManager->merge($telecollecte);
  1096.                 $entityManager->flush();
  1097.                 
  1098.                 $response = new Response('Valid telecollecte!'201);
  1099.                 return $response;
  1100.             }
  1101.         }
  1102.     
  1103.         // something went wrong
  1104.         $response = new Response('Invalid telecollecte!'406);
  1105.         return $response;
  1106.     }
  1107.     
  1108.     
  1109.     
  1110.    
  1111.   
  1112.     
  1113.     public function insertInfoRemise ($_format)
  1114.     {
  1115.         // create the serializer
  1116.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  1117.         $normalizers = [new ObjectNormalizer()];
  1118.         $serializer = new Serializer($normalizers$encoders);
  1119.         $validator Validation::createValidator();
  1120.         $request $this->requestStack->getCurrentRequest();
  1121.     
  1122.         // build the Commande from a decoded array
  1123.         $infoRemise $serializer->deserialize ($request->getContent(),
  1124.                 'App\Entity\BDPolymorph\InfoRemise',
  1125.                 $_format);
  1126.        // return new Response (var_dump($infoRemise));  
  1127.         if ($infoRemise)
  1128.         {
  1129.             // ML 2017.06.12 : test traça ip 62.193.56.46
  1130.             /*
  1131.             try 
  1132.             {
  1133.                 $path = "../../testML.txt";
  1134.                 $myfile = fopen($path, "a");            
  1135.                 fwrite($myfile, $infoRemise->getIdTerminal()."\r\n");
  1136.                 fclose($myfile);    
  1137.             
  1138.                 //$this->majAdresseIp($infoRemise->getIdTerminal());    
  1139.             }
  1140.             catch (\Exception $e)
  1141.             {
  1142.             }
  1143.             */
  1144.         
  1145.             $idTerminal=$infoRemise->getIdTerminal();
  1146.             $idRemise=$infoRemise->getIdRemise();
  1147.             $date=$infoRemise->getDatelocaleuneapplication();
  1148.             $heure=$infoRemise->getHeurelocaleuneapplication();
  1149.             
  1150.             if (=== count($validator->validate($infoRemise)))
  1151.             {
  1152.                 // this is a valid Telecollecte instance, persist it
  1153.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  1154.             /*    $infoData = new InfoRemise(); 
  1155.                 $infoData->setNseqacquereuruneremisetransac($infoRemise->getNseqacquereuruneremisetransac());
  1156.                 $infoData->setNremise($infoRemise->getNremise());
  1157.                 $infoData->setNombretransactionsdebitremise($infoRemise->getNombretransactionsdebitremise());
  1158.                 $infoData->setCodealphabetiquemonnaiedevise($infoRemise->getCodealphabetiquemonnaiedevise());
  1159.                 $infoData->setMontanttottransacdebitremise($infoRemise->getMontanttottransacdebitremise());
  1160.                 $infoData->setPartiefracmonnaiedevise($infoRemise->getPartiefracmonnaiedevise());
  1161.                 $infoData->setNombretransactionsnonabouties($infoRemise->getNombretransactionsnonabouties()); 
  1162.                 $entityManager->flush();
  1163.                 $infoData->setNremise($idTerminal);
  1164.                 $infoData->setNremise($idRemise);
  1165.                 $infoData->setNremise($date);
  1166.                 $infoData->setNremise($heure);
  1167.                 
  1168.                 return new Response (var_dump($infoData));
  1169.                 $entityManager->persist($infoRemise);
  1170.                 $entityManager->flush();*/
  1171.                  $query $entityManager->createQuery(
  1172.                          'SELECT i FROM  App\Entity\BDPolymorph\InfoRemise i WHERE i.idTerminal = :ID_TERMINAL AND i.idRemise = :ID_REMISE AND i.datelocaleuneapplication = :DATELOCALEUNEAPPLICATION AND i.heurelocaleuneapplication = :HEURELOCALEUNEAPPLICATION'
  1173.                  )->setParameter('ID_TERMINAL'$infoRemise->getIdTerminal())
  1174.                  ->setParameter('ID_REMISE'$infoRemise->getIdRemise())
  1175.                  ->setParameter('DATELOCALEUNEAPPLICATION'$infoRemise->getDatelocaleuneapplication())
  1176.                  ->setParameter('HEURELOCALEUNEAPPLICATION'$infoRemise->getHeurelocaleuneapplication());
  1177.                  $infoRemiseExists $query->getResult();
  1178.     
  1179.                  if($infoRemiseExists == null) {
  1180.                      //INSERT
  1181.                      /*$entityManager->persist($infoRemise);
  1182.                      $entityManager->flush();*/
  1183.                      $con $this->getDoctrine()->getConnection('polymorph');
  1184.                      $sql $con->prepare("INSERT INTO info_remise (ID_TERMINAL, DATE_HEURE, ID_REMISE, DATELOCALEUNEAPPLICATION, HEURELOCALEUNEAPPLICATION, NSEQACQUEREURUNEREMISETRANSAC, NREMISE, NOMBRETRANSACTIONSDEBITREMISE, CODEALPHABETIQUEMONNAIEDEVISE, MONTANTTOTTRANSACDEBITREMISE, PARTIEFRACMONNAIEDEVISE, NOMBRETRANSACTIONSNONABOUTIES)   VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? , ? )");
  1185.                      $sql->bindValue(1$infoRemise->getIdTerminal());
  1186.                      $sql->bindValue(2$infoRemise->getDateHeure());
  1187.                      $sql->bindValue(3$infoRemise->getIdRemise());
  1188.                      $sql->bindValue(4$infoRemise->getDatelocaleuneapplication());
  1189.                      $sql->bindValue(5$infoRemise->getHeurelocaleuneapplication());
  1190.                      $sql->bindValue(6$infoRemise->getNseqacquereuruneremisetransac()) ;
  1191.                      $sql->bindValue(7$infoRemise->getNremise());
  1192.                      $sql->bindValue(8$infoRemise->getNombretransactionsdebitremise());
  1193.                      $sql->bindValue(9$infoRemise->getCodealphabetiquemonnaiedevise());
  1194.                      $sql->bindValue(10,  $infoRemise->getMontanttottransacdebitremise());
  1195.                      $sql->bindValue(11$infoRemise->getPartiefracmonnaiedevise());
  1196.                      $sql->bindValue(12$infoRemise->getNombretransactionsnonabouties());
  1197.                      $sql->execute();
  1198.                  }
  1199. //                 else {
  1200. //                     //UPDATE
  1201.                     
  1202. //                     $infoRemiseExists[0]->setNseqacquereuruneremisetransac($infoRemise->getNseqacquereuruneremisetransac());
  1203. //                     $infoRemiseExists[0]->setNremise($infoRemise->getNremise());
  1204. //                     $infoRemiseExists[0]->setNombretransactionsdebitremise($infoRemise->getNombretransactionsdebitremise());
  1205. //                     $infoRemiseExists[0]->setCodealphabetiquemonnaiedevise($infoRemise->getCodealphabetiquemonnaiedevise());
  1206. //                     $infoRemiseExists[0]->setMontanttottransacdebitremise($infoRemise->getMontanttottransacdebitremise());
  1207. //                     $infoRemiseExists[0]->setPartiefracmonnaiedevise($infoRemise->getPartiefracmonnaiedevise());
  1208. //                     $infoRemiseExists[0]->setNombretransactionsnonabouties($infoRemise->getNombretransactionsnonabouties());                    
  1209.                     
  1210. //                     $entityManager->persist($infoRemiseExists [0]);
  1211. //                     $entityManager->flush();
  1212. //                 }
  1213.     
  1214.                 //$entityManager->persist($infoRemise);
  1215.                 //$entityManager->flush();
  1216.                 
  1217.                 $response = new Response('Valid info remise!'201);
  1218.                 return $response;
  1219.             }
  1220.         }
  1221.     
  1222.         // something went wrong
  1223.         $response = new Response('Invalid info remise!'406);
  1224.         return $response;
  1225.     }
  1226.     
  1227.     public function insertTarifs ($_format)
  1228.     {
  1229.         // create the serializer
  1230.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  1231.         $normalizers = [new ObjectNormalizer()];
  1232.         $serializer = new Serializer($normalizers$encoders);
  1233.         $validator Validation::createValidator();
  1234.         $request $this->requestStack->getCurrentRequest();
  1235.     
  1236.         // build the Commande from a decoded array
  1237.         $tarifs $serializer->deserialize ($request->getContent(),
  1238.                 'App\Entity\BDDG\Tarifs',
  1239.                 $_format);
  1240.        
  1241.         //return new Response (var_dump($tarifs));
  1242.         if ($tarifs)
  1243.         {
  1244.             //$validator = $this->get('validator');
  1245.             if (=== count($validator->validate($tarifs)))
  1246.             {
  1247.                 // this is a valid Telecollecte instance, persist it
  1248.                 if ($tarifs->getService()==null)
  1249.                 {
  1250.                     $repository $this->getDoctrine()->getRepository('App\Entity\BDDG\TerminalService');
  1251.                     $service $repository->findOneBy(array('idTerminal' => $tarifs->getIdTerminal() , 'idService' => $tarifs->getIdService()));
  1252.                     //return new Response (var_dump($service));
  1253.                     $tarifs->setService($service);
  1254.                     //return new Response (var_dump($tarifs));
  1255.                 }
  1256.                 $entityManager $this->getDoctrine()->getManager();
  1257.     
  1258.                 $entityManager->merge($tarifs);
  1259.                 $entityManager->flush();
  1260.                 
  1261.                 $response = new Response('Valid tarifs!'201);
  1262.                 return $response;
  1263.             }
  1264.         }
  1265.     
  1266.         // something went wrong
  1267.         $response = new Response('Invalid tarifs!'406);
  1268.         return $response;
  1269.     }
  1270.     
  1271.     public function insertTarif ($_format)
  1272.     {
  1273.         // create the serializer
  1274.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  1275.         $normalizers = [new ObjectNormalizer()];
  1276.         $serializer = new Serializer($normalizers$encoders);
  1277.         $validator Validation::createValidator();
  1278.         $request $this->requestStack->getCurrentRequest();
  1279.     
  1280.         // build the Commande from a decoded array
  1281.         $tarif $serializer->deserialize ($request->getContent(),
  1282.                 'App\Entity\BDDG\Tarif',
  1283.                 $_format);
  1284.     
  1285.         //return new Response (var_dump($tarif)); 
  1286.         if ($tarif)
  1287.         {
  1288.             //$validator = $this->get('validator');
  1289.             if (=== count($validator->validate($tarif)))
  1290.             {
  1291.                 // this is a valid Telecollecte instance, persist it
  1292.                 /* 
  1293.                 if ($tarif->getTarifs()==null)
  1294.                 {
  1295.                     $repository = $this->getDoctrine()->getRepository('App\Entity\BDDG\Tarifs');
  1296.                     //return new Response (var_dump($repository));
  1297.                     $tarifs = $repository->findBy(array('idTerminal' => $tarif->getIdTerminal() , 'idZone'=> $tarif->getIdZone()  , 'idService' => $tarif->getIdService(), 'idTarifs' => $tarif->getIdTarifs() ));
  1298.                     return new Response (var_dump($tarifs));
  1299.                     //$tarif->setTarifs($tarifs);
  1300.                     //return new Response (var_dump($tarif));
  1301.                 }
  1302.                 $entityManager = $this->getDoctrine()->getManager();
  1303.                 $entityManager->merge($tarif);
  1304.                 $entityManager->flush();    */
  1305.                 $entityManager $this->getDoctrine()->getManager();
  1306.                 $query $entityManager->createQuery(
  1307.                                             'SELECT t FROM App\Entity\BDDG\Tarif t WHERE t.idTarif = :ID_TARIF AND t.idTarifs = :ID_TARIFS AND t.idTerminal = :ID_TERMINAL AND t.idZone = :ID_ZONE AND t.idService = :ID_SERVICE'
  1308.                                     )->setParameter('ID_TARIF'$tarif->getIdTarif())
  1309.                                     ->setParameter('ID_TARIFS'$tarif->getIdTarifs())
  1310.                                     ->setParameter('ID_TERMINAL'$tarif->getIdTerminal())
  1311.                                      ->setParameter('ID_ZONE'$tarif->getIdZone())
  1312.                                      ->setParameter('ID_SERVICE'$tarif->getIdService());
  1313.                                     $tarifExists $query->getResult();
  1314.                         
  1315.                             if($tarifExists == null) {
  1316.                                 $con $this->getDoctrine()->getConnection();
  1317.                                 $sql $con->prepare("insert into tarif (ID_TARIF, ID_TARIFS, ID_TERMINAL, ID_ZONE, ID_SERVICE ,DEVISE ) values (?, ?, ?, ? , ?, ?)");
  1318.                                 $sql->bindValue(1$tarif->getIdTarif());
  1319.                                 $sql->bindValue(2$tarif->getIdTarifs());
  1320.                                 $sql->bindValue(3$tarif->getIdTerminal());
  1321.                                 $sql->bindValue(4$tarif->getIdZone());
  1322.                                 $sql->bindValue(5$tarif->getIdService());
  1323.                                 $sql->bindValue(6$tarif->getDevise());
  1324.                                 $sql->execute();
  1325.                             }
  1326.                              else {
  1327.                                         //UPDATE
  1328.                     
  1329.                                     $tarifExists[0]->setDevise($tarif->getDevise());
  1330.                                     $entityManager->persist($tarifExists [0]);
  1331.                                      $entityManager->flush();
  1332.                             }
  1333.                 $response = new Response('Valid tarif!'201);
  1334.                 return $response;
  1335.             }
  1336.         }
  1337.     
  1338.         // something went wrong
  1339.         $response = new Response('Invalid tarif!'406);
  1340.         return $response;
  1341.     }
  1342.     
  1343.     public function insertPeriode ($_format)
  1344.     {
  1345.         // create the serializer
  1346.          $encoders = [new XmlEncoder(), new JsonEncoder()];
  1347.         $normalizers = [new ObjectNormalizer()];
  1348.         $serializer = new Serializer($normalizers$encoders);
  1349.         $validator Validation::createValidator();
  1350.         $request $this->requestStack->getCurrentRequest();
  1351.     
  1352.         // build the Commande from a decoded array
  1353.         $periode $serializer->deserialize ($request->getContent(),
  1354.                 'App\Entity\BDDG\Periode',
  1355.                 $_format);
  1356.         
  1357.         //return new Response (var_dump($periode));
  1358.         if ($periode)
  1359.         {
  1360.             //$validator = $this->get('validator');
  1361.             if (=== count($validator->validate($periode)))
  1362.             {
  1363.                 // this is a valid Telecollecte instance, persist it
  1364.                 /*$entityManager = $this->getDoctrine()->getManager();
  1365.                 $entityManager->merge($periode);
  1366.                 $entityManager->flush();*/
  1367.                 $entityManager $this->getDoctrine()->getManager();
  1368.                 $query $entityManager->createQuery(
  1369.                          'SELECT p FROM App\Entity\BDDG\Periode p WHERE p.idPeriode = :ID_PERIODE AND p.idTarif = :ID_TARIF AND p.idTarifs = :ID_TARIFS AND p.idTerminal = :ID_TERMINAL AND p.idZone = :ID_ZONE AND p.idService = :ID_SERVICE'
  1370.                  )->setParameter('ID_PERIODE'$periode->getIdPeriode())
  1371.                  ->setParameter('ID_TARIF'$periode->getIdTarif())
  1372.                  ->setParameter('ID_TARIFS'$periode->getIdTarifs())
  1373.                  ->setParameter('ID_TERMINAL'$periode->getIdTerminal())
  1374.                  ->setParameter('ID_ZONE'$periode->getIdZone())
  1375.                  ->setParameter('ID_SERVICE'$periode->getIdService());
  1376.                  $periodeExists $query->getResult();
  1377.     
  1378.                  if($periodeExists == null) {
  1379. //                     //INSERT
  1380.                  //    $entityManager->persist($periode);
  1381.                     //$entityManager->flush();
  1382.                     $con $this->getDoctrine()->getConnection();
  1383.                     $sql $con->prepare("insert into periode (ID_PERIODE , ID_TARIF, ID_TARIFS, ID_TERMINAL, ID_ZONE, ID_SERVICE ,DATE_DEB , DATE_FIN , NOM , QTE , UNITE , QTE_UNITAIRE ,  PRIX ) values (?, ?, ?, ? , ?, ? , ?, ?, ?, ? , ?, ? , ?)");
  1384.                     $sql->bindValue(1$periode->getIdPeriode());
  1385.                     $sql->bindValue(2$periode->getIdTarif());
  1386.                     $sql->bindValue(3$periode->getIdTarifs());
  1387.                     $sql->bindValue(4$periode->getIdTerminal());
  1388.                     $sql->bindValue(5$periode->getIdZone());
  1389.                     $sql->bindValue(6$periode->getIdService());
  1390.                     $sql->bindValue(7$periode->getDateDeb());
  1391.                     $sql->bindValue(8$periode->getDateFin());
  1392.                     $sql->bindValue(9$periode->getNom());
  1393.                     $sql->bindValue(10$periode->getQte());
  1394.                     $sql->bindValue(11$periode->getUnite());
  1395.                     $sql->bindValue(12$periode->getQteUnitaire());
  1396.                     $sql->bindValue(13$periode->getPrix());
  1397.                     $sql->execute();
  1398.                     /*$Addperiode = new Periode();
  1399.                     $Addperiode->setIdPeriode($periode->getIdPeriode());
  1400.                     $Addperiode->setIdTarif($periode->getIdTarif());
  1401.                     $Addperiode->setIdTarifs($periode->getIdTarifs());
  1402.                     $Addperiode->setIdTerminal($periode->getIdTerminal());
  1403.                     $Addperiode->setIdZone($periode->getIdZone());
  1404.                     $Addperiode->setIdService($periode->getIdService());
  1405.                     $Addperiode->setDateDeb($periode->getDateDeb());
  1406.                      $Addperiode->setDateFin($periode->getDateFin());
  1407.                      $Addperiode->setNom($periode->getNom());
  1408.                      $Addperiode->setQte($periode->getQte());
  1409.                      $Addperiode->setUnite($periode->getUnite());
  1410.                      $Addperiode->setQteUnitaire($periode->getQteUnitaire());
  1411.                      $Addperiode->setPrix($periode->getPrix());                  
  1412.                     $entityManager->persist($Addperiode);
  1413.                     $entityManager->flush();*/
  1414.                     //return new Response (var_dump($Addperiode ));
  1415.                  }
  1416.                  else {
  1417.                      //UPDATE
  1418.                      $periodeExists[0]->setDateDeb($periode->getDateDeb());
  1419.                      $periodeExists[0]->setDateFin($periode->getDateFin());
  1420.                      $periodeExists[0]->setNom($periode->getNom());
  1421.                      $periodeExists[0]->setQte($periode->getQte());
  1422.                      $periodeExists[0]->setUnite($periode->getUnite());
  1423.                      $periodeExists[0]->setQteUnitaire($periode->getQteUnitaire());
  1424.                      $periodeExists[0]->setPrix($periode->getPrix());                  
  1425.                     $entityManager->persist($periodeExists[0]);
  1426.                     $entityManager->flush();
  1427.                  }
  1428.                 
  1429.                 $response = new Response('Valid periode!'201);
  1430.                 return $response;
  1431.             }
  1432.         }
  1433.     
  1434.         // something went wrong
  1435.         $response = new Response('Invalid periode!'406);
  1436.         return $response;
  1437.     }
  1438.     //fin SH 
  1439.     //SH 2023.12.06 gestion et activation des logs pour conques
  1440.      public function insertLog($_format)
  1441.     {
  1442.         
  1443.         $encoders = [new XmlEncoder(), new JsonEncoder()];
  1444.         $normalizers = [new ObjectNormalizer()];
  1445.         $serializer = new Serializer($normalizers$encoders);
  1446.         $validator Validation::createValidator();
  1447.         $request $this->requestStack->getCurrentRequest();
  1448.             
  1449.                 // build the Commande from a decoded array
  1450.         $log $serializer->deserialize ($request->getContent(),
  1451.                     'App\Entity\BDPolymorph\Log',
  1452.                 $_format);
  1453.     
  1454.         if ($log)
  1455.         {
  1456.             
  1457.             if (=== count($validator->validate($log)))
  1458.             {
  1459.                 // this is a valid Telecollecte instance, persist it
  1460.                 //$entityManager = $this->getDoctrine()->getEntityManager();
  1461.                 $entityManager $this->getDoctrine()->getManager('polymorph');
  1462. //                 $query = $entityManager->createQuery(
  1463. //                         'SELECT l FROM NetBaseEntitiesDBBundle:Log l WHERE l.idLog = :ID_LOG AND l.idTerminal = :ID_TERMINAL'
  1464. //                 )->setParameter('ID_LOG', $log->getIdLog())
  1465. //                 ->setParameter('ID_TERMINAL', $log->getIdTerminal());
  1466. //                 $logExists = $query->getResult();
  1467.     
  1468. //                 if($logExists == null) {
  1469. //                     //INSERT
  1470. //                     $entityManager->persist($log);
  1471. //                     $entityManager->flush();
  1472. //                 }
  1473.                 // ML 2017.03.17 : recherche et masquage du code urbaflux 0518
  1474.                 $log->setLibelleLog(str_replace("0518","----",$log->getLibelleLog()));
  1475.                 // end ML
  1476.     
  1477.                 $entityManager->merge($log);
  1478.                 $entityManager->flush();
  1479.                 
  1480.                 $response = new Response('Valid log!'201);
  1481.                 return $response;
  1482.             }
  1483.         }
  1484.     
  1485.         // something went wrong
  1486.         $response = new Response('Invalid log!'406);
  1487.         return $response;
  1488.     }
  1489.     //fin SH
  1490.    //SH 2023.03.29 
  1491.        public function updatePeriode ($_format)
  1492.     {
  1493.         $request $this->requestStack->getCurrentRequest();
  1494.         $jsonContent json_decode($request->getContent(),true);
  1495.         //return new Response (var_dump($jsonContent['idTerminal']));
  1496.         $periode null ;
  1497.         $repository $this->getDoctrine()->getRepository('App\Entity\BDDG\Periode');
  1498.         $periode $repository->findOneBy(array('idTerminal' => $jsonContent['idTerminal'] ,
  1499.                                          'idZone' => $jsonContent['idZone'] , 
  1500.                                          'idService' => $jsonContent['idService'] ,
  1501.                                          'idTarif' => $jsonContent['idTarif'] ,
  1502.                                          'idPeriode' => $jsonContent['idPeriode'
  1503.                                         ));
  1504.         if($periode != null)     
  1505.         {
  1506.             $entityManager $this->getDoctrine()->getManager();                                
  1507.             $periode->setPrix($jsonContent['prix']); 
  1508.             //return new Response (var_dump($periode));
  1509.             $entityManager->persist($periode);
  1510.             $entityManager->flush();
  1511.             $response = new Response('update OK!'201);
  1512.         }    
  1513.         else $response = new Response('Update KO!'406);
  1514.         
  1515.         return $response;
  1516.     }
  1517.    //fin SH 
  1518.     
  1519.     //SH 2021.01.22 envoi du info terminal vers serveur statos
  1520.     private function XmlHttp($url,$xmldata)
  1521.     {
  1522.  
  1523.          
  1524.         $ch curl_init();
  1525.         curl_setopt($chCURLOPT_URL$url);
  1526.         curl_setopt($chCURLOPT_RETURNTRANSFER1);
  1527.         curl_setopt($chCURLOPT_TIMEOUT60);
  1528.         curl_setopt($chCURLOPT_POSTtrue);
  1529.         curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
  1530.         curl_setopt($chCURLOPT_POSTFIELDS$xmldata);
  1531.         curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
  1532.         curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  1533.         curl_setopt($chCURLOPT_SSL_VERIFYHOSTfalse);
  1534.         $result curl_exec($ch); 
  1535.         curl_close($ch);
  1536.         return $result
  1537.     }
  1538.     //fin SH 
  1539.     public function insertEtatComposant ($_format)
  1540.     {
  1541.         $request $this->requestStack->getCurrentRequest();
  1542.         $jsonContent json_decode($request->getContent(),true);
  1543.         //return new Response (var_dump($jsonContent));
  1544.         $con$this->getDoctrine()->getConnection();
  1545.         /*$sql = $con->prepare("SELECT tc.ID_TERMINAL, tc.DATE_REMONTEE , te.LIBELLE_ERREUR , te.COLOR
  1546.         FROM `terminal_composant` tc , type_erreur te , terminal_client c
  1547.         where te.ID_ERREUR=tc.etat_erreur and tc.ID_TERMINAL=c.ID_TERMINAL and c.ID_CLIENT=?");*/
  1548.         $sql $con->prepare("SELECT *
  1549.         FROM `terminal_composant` tc 
  1550.         where  tc.ID_TERMINAL=? and tc.ID_COMPOSANT=? LIMIT 1");
  1551.         $sql->bindValue(1$jsonContent['idTerminal']);
  1552.         $sql->bindValue(2$jsonContent['idComposant']);
  1553.         $sql->execute();
  1554.         $etat $sql->fetch();
  1555.         $reponse = new Response('KO !'406);
  1556.         if($etat)
  1557.         {
  1558.             $sql $con->prepare("update terminal_composant set ETAT_ERREUR=? , ETAT_COMPOSANT=? where ID_TERMINAL=? and ID_COMPOSANT=?");
  1559.             $sql->bindValue(1$jsonContent['etatErreur']);
  1560.             $sql->bindValue(2$jsonContent['etatComposant']);
  1561.             $sql->bindValue(3$jsonContent['idTerminal']);
  1562.             $sql->bindValue(4$jsonContent['idComposant']);
  1563.             $sql->execute();
  1564.             $response = new Response('Update etat !'201);
  1565.         }
  1566.         else 
  1567.         {
  1568.             $sql $con->prepare("insert into terminal_composant (ID_TERMINAL, ID_COMPOSANT, ETAT_ERREUR , ETAT_COMPOSANT) values (?, ?,?,?)");
  1569.             $sql->bindValue(1$jsonContent['idTerminal']);
  1570.             $sql->bindValue(2$jsonContent['idComposant']);
  1571.             $sql->bindValue(3$jsonContent['etatErreur']);
  1572.             $sql->bindValue(4$jsonContent['etatComposant']);
  1573.             $sql->execute();
  1574.             $response = new Response('Insert etat !'201);
  1575.             
  1576.         }
  1577.         
  1578.         
  1579.         
  1580.         return $response ;
  1581.     }
  1582.     //SH 2024.10.2024 sauvegarder conso 
  1583.     public function saveConsoElec()
  1584.     {
  1585.            
  1586.         $request $this->requestStack->getCurrentRequest();
  1587.         $data $request->request->all();
  1588.         //return new Response (var_dump(count($data)));
  1589.         //$data = json_decode($request->getContent(), true);
  1590.          // Enregistrement des données dans un fichier
  1591.         if ((isset($data['idTerm'])) and (count($data)==5))
  1592.         {
  1593.             $dateActuelle = new \DateTime();
  1594.             $data['dateConso'] = $dateActuelle->format('Y-m-d H:i:s');
  1595.             //return new Response (var_dump($data));
  1596.             file_put_contents('/var/www/public/info/conso.txt'json_encode($data) . PHP_EOLFILE_APPEND);
  1597.         
  1598.             return $this->json([
  1599.                 'Result' => true ,
  1600.                 'Message' => 'Success'
  1601.             ]);
  1602.         }
  1603.         
  1604.         return $this->json([
  1605.             'Result' => false ,
  1606.             'Message' => 'invalid format'
  1607.         ]);    
  1608.     }
  1609.     public function showConsoElec()
  1610.     {
  1611.            
  1612.         $file = new Filesystem();
  1613.         $file '/var/www/public/info/conso.txt';
  1614.         $dataFile=file_get_contents($file);
  1615.         $lignes explode("\n"$dataFile);
  1616.         
  1617.         $infoConso =null;
  1618.         for($i=0;$i<count($lignes)-1;$i++)
  1619.         {
  1620.             $infoConso[$i] = json_decode($lignes[$i], true);
  1621.         }
  1622.         //return new Response (var_dump($infoConso));
  1623.         return $this->render('StatistiquesBundle/listeConso.html.twig',    array('infoConso'=>$infoConso));
  1624.         return $this->json([
  1625.              'Result' => true ,
  1626.              'Message' => 'Success'
  1627.         ]);
  1628.             
  1629.     }
  1630.    
  1631.     public function actionRAZ()
  1632.     {
  1633.         $server '192.168.1.22';
  1634.         $port=1883;
  1635.         $clientId='api_isipay';
  1636.         $client = new ClientMQTT($server,$port$clientId);
  1637.         
  1638.         $client->setAuthDetails("urbaflux""BJdYM#t8ucvN?yZMu");
  1639.         $client->setParamServer($server,$port$clientId); 
  1640.         $result $client->connect();
  1641.         
  1642.            //return new Response(var_dump($result));
  1643.         $result $client->publish('9999/in/RAZ' ,'AYB_RAF' 0);  
  1644.         $client->close();
  1645.         sleep(5);
  1646.         return $this->redirect('showConso');
  1647.     }
  1648.     //fin SH 
  1649.     /**
  1650.      * @Route("/send-email-photo", name="send_email")
  1651.      */
  1652.     public function alerteStatosPhoto(MailService $mailService)
  1653.     {
  1654.         
  1655.         //$mailService = $this->get('App\Services\MailService');
  1656.         
  1657.         $to = ['s.handi@urbaflux.fr','handisoukaina@urbaflux.fr']; // Destinataire(s)
  1658.         $template 'emails/emailAlert.html.twig'// Nom du template Twig
  1659.         $subject 'Votre sujet d\'email';
  1660.         $context = [
  1661.             'subject' => $subject,
  1662.             'variable1' => 'value1',
  1663.             'variable2' => 'value2',
  1664.             // Autres variables à passer au template
  1665.         ];
  1666.         $pjImages = [
  1667.            'https://statos.netbase.fr/captures/AM_1015_place_1.jpeg'// Chemin absolu de l'image
  1668.            'https://statos.netbase.fr/captures/AM_1015_place_1.jpeg',
  1669.         ];
  1670.         //return new Response(var_dump($pjImages));
  1671.         // Appeler le service pour envoyer l'email
  1672.         $mailService->sendEmailPJ($to$template$subject$context$pjImages);
  1673.         return new Response('Email envoyé avec succès!');
  1674.     }
  1675.     /**
  1676.      * @Route("/envoiMailAlertUA", name="envoi_mail_alertUA" , methods={"POST"})
  1677.      */
  1678.     public function envoiMailAlertUA(MailService $mailService)
  1679.     {
  1680.         $request $this->requestStack->getCurrentRequest();
  1681.         $content $request->getContent();
  1682.         if (!mb_check_encoding($content'UTF-8')) {
  1683.             // Forcer l'encodage en UTF-8 si nécessaire
  1684.             $content mb_convert_encoding($content'UTF-8''ISO-8859-1');
  1685.         }
  1686.         $data json_decode($contenttrue);
  1687.         //return new Response(var_dump($data));
  1688.         if (json_last_error() !== JSON_ERROR_NONE) {
  1689.             return new JsonResponse(['error' => 'Invalid JSON'], 400);
  1690.         }
  1691.         $email_destinataires =str_replace("'"'"'$data['destinataires']) ?? null;
  1692.         $nomTerminal $data['nomTerminal'] ?? null;
  1693.         $type $data['type'] ?? null;
  1694.         if(($email_destinataires != '') && ($email_destinataires!=null) )
  1695.         {
  1696.             //$jsonDest = str_replace("'", '"', $email_destinataires);
  1697.             $to=   explode(","$email_destinataires);
  1698.             $mailService->sendTemplatedEmail($to'emails/emailAlertUA.html.twig' ,'Notification Urbacces'$data);
  1699.             return new Response('Notification envoyé avec succès!');
  1700.         }
  1701.         return new Response('Liste des destinataires vide');
  1702.     }
  1703.     /**
  1704.      * @Route("/uploadImageIsipay", name="upload_image_isipay" , methods={"POST"})
  1705.      */
  1706.     public function uploadImage()//: JsonResponse
  1707.     {
  1708.         $request $this->requestStack->getCurrentRequest();
  1709.         $identifiant $request->request->get('identifiant');
  1710.         if (!$identifiant) {
  1711.             throw new BadRequestHttpException('Identifiant manquant.');
  1712.         }
  1713.         // Remote server details
  1714.         $host '192.168.1.38'// Replace with your server's address
  1715.         $username 'root';
  1716.         $password 'Urb@tést!18570';
  1717.         // Connect to the remote server using SFTP
  1718.         //$sftp = new SFTP($host);
  1719.         $sftp = new \phpseclib3\Net\SFTP($host);
  1720.         if (!$sftp->login($username$password)) {
  1721.             throw new \Exception('Unable to connect to remote server using SFTP.');
  1722.         }
  1723.         $uploadDir 'isipayImage/' $identifiant;
  1724.         // Verify if the directory exists on the remote server
  1725.         if (!$sftp->is_dir($uploadDir)) {
  1726.             // Directory doesn't exist, create it
  1727.             if (!$sftp->mkdir($uploadDir)) {
  1728.                 throw new \Exception('Unable to create directory on remote server.');
  1729.             }
  1730.         } else {
  1731.             // Directory exists, clear it by deleting files inside
  1732.             $remoteFiles $sftp->nlist($uploadDir);
  1733.             foreach ($remoteFiles as $file) {
  1734.                 if ($file !== '.' && $file !== '..') {
  1735.                     $sftp->delete($uploadDir '/' $file);
  1736.                 }
  1737.             }
  1738.         }
  1739.         // Handle file uploads
  1740.         $uploadedFiles = [];
  1741.         $imageUrls = [];
  1742.         foreach ($request->files as $key => $uploadedFile) {
  1743.             if ($uploadedFile instanceof UploadedFile) {
  1744.                 $newFilename uniqid() . '.' $uploadedFile->guessExtension();
  1745.                 $uploadedFilePath $uploadDir '/' $newFilename;
  1746.                 // Move the file to the remote server
  1747.                 $sftp->put($uploadedFilePathfile_get_contents($uploadedFile->getPathname()));
  1748.                 // Store the file URL
  1749.                 $uploadedFiles[] = '/isipayImage/' $identifiant '/' $newFilename;
  1750.             }
  1751.         }
  1752.         // Handle remote image URLs if provided
  1753.         $imagesDistantes $request->request->get('images_distantes');
  1754.         if ($imagesDistantes) {
  1755.             $imageUrls json_decode($imagesDistantestrue);
  1756.             if (!is_array($imageUrls)) {
  1757.                 throw new BadRequestHttpException('Format des images distantes invalide.');
  1758.             }
  1759.         }
  1760.         if (empty($uploadedFiles) && empty($imageUrls)) {
  1761.             throw new BadRequestHttpException('Aucune image valide envoyée.');
  1762.         }
  1763.         return new JsonResponse([
  1764.             'message' => 'Images bien reçues et stockées / référencées !',
  1765.             'files' => $uploadedFiles,
  1766.             'image_urls' => $imageUrls
  1767.         ], Response::HTTP_OK);
  1768.     }
  1769.     /*public function uploadImage()//: JsonResponse
  1770.     {
  1771.         $request = $this->requestStack->getCurrentRequest();
  1772.         $identifiant = $request->request->get('identifiant');
  1773.         //return new Response(var_dump($identifiant));
  1774.         if (!$identifiant) {
  1775.             throw new BadRequestHttpException('Identifiant manquant.');
  1776.         }
  1777.     
  1778.         $uploadDir = 'http://192.168.1.38/public/isipayImage/' . $identifiant;
  1779.         
  1780.         // Vérifier si le dossier existe, sinon le créer
  1781.         $filesystem = new Filesystem();
  1782.         if (!$filesystem->exists($uploadDir)) {
  1783.             $filesystem->mkdir($uploadDir, 0777);
  1784.         } else {
  1785.             return new Response(var_dump($uploadDir));
  1786.             try {
  1787.                 $filesystem->remove(glob($uploadDir . '/*'));
  1788.             } catch (\Exception $exception) {
  1789.                 throw new \Exception("Erreur lors de la suppression des anciens fichiers : " . $exception->getMessage());
  1790.             }
  1791.         }
  1792.     
  1793.         $uploadedFiles = [];
  1794.         $imageUrls = [];
  1795.     
  1796.         foreach ($request->files as $key => $uploadedFile) {
  1797.             if ($uploadedFile instanceof UploadedFile) {
  1798.                 $newFilename = uniqid() . '.' . $uploadedFile->guessExtension();
  1799.                 $uploadedFile->move($uploadDir, $newFilename);
  1800.                 $uploadedFiles[] = '/isipayImage/' . $identifiant . '/' . $newFilename;
  1801.             }
  1802.         }
  1803.     
  1804.         $imagesDistantes = $request->request->get('images_distantes');
  1805.         if ($imagesDistantes) {
  1806.             $imageUrls = json_decode($imagesDistantes, true);
  1807.             if (!is_array($imageUrls)) {
  1808.                 throw new BadRequestHttpException('Format des images distantes invalide.');
  1809.             }
  1810.         }
  1811.     
  1812.         if (empty($uploadedFiles) && empty($imageUrls)) {
  1813.             throw new BadRequestHttpException('Aucune image valide envoyée.');
  1814.         }
  1815.     
  1816.         return new JsonResponse([
  1817.             'message' => 'Images bien reçues et stockées / référencées !',
  1818.             'files' => $uploadedFiles,
  1819.             'image_urls' => $imageUrls
  1820.         ], Response::HTTP_OK);
  1821.     }*/
  1822. }