src/Controller/PilotageController.php line 786

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Doctrine\DBAL\Schema\ForeignKeyConstraint;
  7. use Doctrine\ORM\Query;
  8. use Symfony\Component\HttpFoundation\RequestStack;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\HttpClient\HttpClient;
  12. use App\Controller\CommunController;
  13. use App\Controller\ParametrageController;
  14. use App\Entity\UserClient
  15. use App\Services\libMQTT\src\ClientMQTT;
  16. class PilotageController extends AbstractController
  17. {
  18.    
  19.     protected $requestStack;
  20.     
  21.      public function __construct(RequestStack $requestStack)
  22.     {
  23.         $this->requestStack $requestStack;
  24.     }
  25.     
  26.     public function PilotageListeTerminaux() {
  27.         
  28.         $idclient=null;
  29.         $request $this->requestStack->getCurrentRequest();
  30.         $clients null;
  31.         $request $this->requestStack->getCurrentRequest();
  32.         $idclient=$request->getSession()->get('idClient');
  33.         if($idclient!=null)
  34.         {
  35.             $token $request->getSession()->get('token');
  36.              $commun= new CommunController($this->requestStack,$token); 
  37.             $terminaux$commun->ListeTerminaux();    
  38.             // return new response(var_dump($terminaux));   
  39.             return $this->render('PilotageBundle/listeterminaux.html.twig',    array('terminaux' =>  $terminaux ,'idclient' => $idclient)); 
  40.         }
  41.         else 
  42.         {
  43.             $error 'Fin de session';
  44.             $lastUsername ='';
  45.             return $this->render('LoginBundle/login.html.twig'
  46.                                     array('last_login'=> $lastUsername,
  47.                                         'error'=>$error));
  48.         }
  49.     }
  50.     public function PilotageBorne($idTerminal) {
  51.         
  52.         $idclient=null;
  53.         $request $this->requestStack->getCurrentRequest();
  54.         $clients null;
  55.         $request $this->requestStack->getCurrentRequest();
  56.         $idclient=$request->getSession()->get('idClient');
  57.         if($idclient!=null)
  58.             {$token $request->getSession()->get('token');
  59.         
  60.             $commun= new CommunController($this->requestStack,$token); 
  61.             $borne$commun->TerminalById($idTerminal);  
  62.             //return new response(var_dump($borne)); 
  63.             $services$commun->ServicesTerminal($idTerminal);
  64.             $rep ='/var/www/public/update'//linux
  65.             $repList scandir($rep,1);
  66.           
  67.             return $this->render('PilotageBundle/PilotageBorne.html.twig',    array('terminal' =>  $borne ,'idclient' => $idclient 'services'=>$services 'repList'=> $repList)); 
  68.              }
  69.         else 
  70.         {
  71.                  $error 'Fin de session';
  72.                  $lastUsername ='';
  73.                  return $this->render('LoginBundle/login.html.twig'
  74.                                          array('last_login'=> $lastUsername,
  75.                                              'error'=>$error));
  76.         }
  77.     }
  78.     public function ActionBorne($message "") {
  79.        
  80.         $idclient=null;
  81.         $request $this->requestStack->getCurrentRequest();
  82.         $clients null;
  83.         $request $this->requestStack->getCurrentRequest();
  84.         $idclient=$request->getSession()->get('idClient');
  85.        
  86.         $token $request->getSession()->get('token');
  87.        $postData $request->request->all();
  88.         //return new response(var_dump($postData));
  89.         $action=$postData['action'];
  90.         $idSite $postData['idTerminal'];
  91.         
  92.         //SH 2024.01.11 gestion borne virtuelle
  93.           $idParent null;
  94.           $idParent $this-> trouverIdTreminalParent($idSite);
  95.           if($idParent!=null$idSite$idParent 
  96.         //fin sh 
  97.   
  98.         
  99.         $param$postData['param'];
  100.                 
  101.         if($action=="MAJ")
  102.         {
  103.             $sujet=$idSite.'/in/MAJ/'.$action;
  104.             $msg "https://altekip.netbase.fr/update/".$param;
  105.         }
  106.         elseif($action=="REBOOT")
  107.         {
  108.             $sujet=$idSite.'/in/MNTReboot';
  109.             $msg $param;
  110.         }
  111.         else 
  112.         {
  113.             $sujet=$idSite.'/in/SetConfig/'.$action;
  114.             $msg $param;
  115.         }
  116.         $commun= new CommunController($this->requestStack,$token); 
  117.        // $result=$commun->MessageMQTT($sujet,$msg);
  118.         //return new response($result);
  119.         $server '192.168.1.22';
  120.         $port=1883;
  121.         $clientId='api_isipay';
  122.         $client = new ClientMQTT($server,$port$clientId);                 
  123.         $client->setAuthDetails("urbaflux""BJdYM#t8ucvN?yZMu");    
  124.         $client->setParamServer($server,$port$clientId); //fonction SH 2021.03.24
  125.                 //return new Response(var_dump($client));
  126.         $result $client->connect();
  127.         $result $client->publish($sujet ,$msg 0);  
  128.         $client->close();
  129.         return new response(true);
  130.          
  131.     }
  132.     public function ActionDistributionService($message "") {
  133.        
  134.         $idclient=null;
  135.         $request $this->requestStack->getCurrentRequest();
  136.         $clients null;
  137.         $request $this->requestStack->getCurrentRequest();
  138.         $idclient=$request->getSession()->get('idClient');
  139.       
  140.         $token $request->getSession()->get('token');
  141.         $postData $request->request->all();
  142.             // return new response(var_dump($postData));
  143.             
  144.         $idSite $postData['idTerminal'];
  145.         $idServiceType=$postData['typeService'];
  146.         $ptDist $postData['ptDist'];
  147.         $quantite=$postData['quantite'];
  148.         //SH 2024.01.11 gestion borne virtuelle
  149.         $idParent null;
  150.         $idParent $this-> trouverIdTreminalParent($idSite);
  151.         //return new response(var_dump($idParent));  
  152.         if($idParent!=null$idSite$idParent ;
  153.         //return new response(var_dump($idSite));  
  154.         //fin sh 
  155.         //return new response(var_dump($quantite));   
  156.         
  157.             /*  $commun= new CommunController($this->requestStack,$token); 
  158.             $res=$commun->SetDistributionService($idSite, $idServiceType, $ptDist , $quantite) ;*/
  159.            
  160.         $server '192.168.1.22';
  161.         $port=1883;
  162.         $clientId='api_isipay';
  163.         $client = new ClientMQTT($server,$port$clientId);
  164.                 
  165.         $client->setAuthDetails("urbaflux""BJdYM#t8ucvN?yZMu");
  166.         $client->setParamServer($server,$port$clientId); //fonction SH 2021.03.24
  167.         $result $client->connect();
  168.                     // $result = $client->publish("1023/in/Distri/1" , "300" , 0);  
  169.         $result $client->publish("{$idSite}/in/SetDistri/{$ptDist}"{$quantite}0);  
  170.        // return new response(var_dump($result)); 
  171.         $client->close();
  172.                 //SH
  173.         $this->tracabiliteDistribution(intval($postData['idTerminal']) , $ptDist $quantite); //SH 2022.11.08 tracabilite distribution
  174.            
  175.         return new response($result);
  176.       
  177.     }
  178.     //SH 2022.10.28 ajout generation code d'acces 
  179.     public function actionGenererCodeAcces()
  180.     {
  181.         $idclient=null;
  182.         $request $this->requestStack->getCurrentRequest();
  183.         $clients null;
  184.         $request $this->requestStack->getCurrentRequest();
  185.         $idclient=$request->getSession()->get('idClient');
  186.       
  187.         $token $request->getSession()->get('token');
  188.         $postData $request->request->all();
  189.        // return new response(var_dump($postData)); 
  190.         // $idSite = $postData['idTerminal'];
  191.         // $idTypeService = $postData['typeService'];
  192.         //return new response(var_dump($postData['idService'])); 
  193.         //Ajouter un achat administrateur 
  194.         $httpClient HttpClient::create([
  195.             'auth_bearer' => $token
  196.         ]);
  197.         $response $httpClient->request('POST'
  198.             "http://apialtekip.netbase.fr/api/achats",
  199.             ['headers' => [
  200.                 'Content-Type' => 'application/json',
  201.             ], 
  202.             'json' => [
  203.                         //'dateCreation' =>  new \DateTime(),
  204.                         'idSite' => intval($postData['idTerminal']),
  205.                         'immatriculation' => $postData['immat'],
  206.                         'dateAchat' => date_create('now')->format('Y-m-d H:i:s'),
  207.                         'montant' => 0,
  208.                         'typePaiement' => 'admin',
  209.                         'transactionIdPayzen'=> ' ',
  210.                         'autorisationPayzen'=> ' ',
  211.                         'numeroCarte'=> ' ',
  212.                         'adresseMail'=> ' ',
  213.                         'statusPayzen'=> '0',
  214.                         'presenceUser'=> 0,
  215.                         'detailAchats'=> [
  216.                             [
  217.                                // 'dateCreation' =>  new \DateTime(),  
  218.                                 'idService'=> intval($postData['idService']),
  219.                                 'quantite'=> 1,
  220.                                 'notify' => 0
  221.                             ]
  222.                         ]
  223.                 
  224.                 
  225.                 ], 
  226.                     
  227.             ]);
  228.         //fin Ajout  if (200 == $response->getStatusCode()) {
  229.         
  230.         //return new response(var_dump($response->getStatusCode())); 
  231.         $rep json_decode($response->getContent( ), true);
  232.        // $repid = $rep['idAchat'];
  233.        sleep(3); 
  234.        $codeAcces='000000';
  235.        $responseAchat $httpClient->request('GET'
  236.        "http://apialtekip.netbase.fr/api/achats/".intval($rep['idAchat']),
  237.             ['headers' => [
  238.                'Content-Type' => 'application/json',
  239.             ]
  240.                         ]);
  241.         $achat=null;
  242.         //return new response(var_dump($responseAchat->getContent())); 
  243.         if($responseAchat->getStatusCode()==200
  244.          {
  245.             $achat=json_decode($responseAchat->getContent(),true);
  246.             $codeAcces $achat['CodeAcces'];
  247.          }
  248.         
  249.         $this->AjoutTracabiliteGenererCode(intval($postData['idTerminal']) , $codeAcces);
  250.         return new response($codeAcces);  
  251.     
  252.     }
  253.                 //fin SH 
  254.     public function PilotageServices($idTerminal) {
  255.         $idclient=null;
  256.         $request $this->requestStack->getCurrentRequest();
  257.         $clients null;
  258.         $request $this->requestStack->getCurrentRequest();
  259.         $idclient=$request->getSession()->get('idClient');
  260.         if($idclient!=null)
  261.         {     
  262.             $token $request->getSession()->get('token');
  263.             return new response(var_dump('services'));
  264.             $commun= new CommunController($this->requestStack,$token); 
  265.             $borne$commun->TerminalById($idTerminal);    
  266.            // return new response(var_dump($borne));   
  267.             return $this->render('PilotageBundle/listeterminaux.html.twig',    array('terminaux' =>  $terminaux ,'idclient' => $idclient));
  268.         } 
  269.         else 
  270.         {
  271.             $error 'Fin de session';
  272.             $lastUsername ='';
  273.             return $this->render('LoginBundle/login.html.twig'
  274.                                     array('last_login'=> $lastUsername,
  275.                                         'error'=>$error));
  276.         }
  277.     }
  278.     
  279.     public function PilotageTerminal($idTerminal) {
  280.         
  281.        // return new response(var_dump($idTerminal)); 
  282.         $clients null;
  283.         $idclient=null;
  284.         $request $this->requestStack->getCurrentRequest();
  285.         //fin SH 
  286.         $idclient=$request->getSession()->get('idClient');
  287.     
  288.         if($idclient!=null)
  289.         {    $postString '{
  290.                 "username": "s.handi",
  291.                 "password": "urbaflux18"
  292.             }';
  293.             $opts = array('http' =>
  294.             array(
  295.                 'method'  => 'POST',
  296.                 'header'  => 'Content-type: application/json',
  297.                 'content' => $postString
  298.             )
  299.             );
  300.             # Create the context
  301.             $context stream_context_create($opts);
  302.             # Get the response (you can use this for GET)
  303.             $result json_decode(file_get_contents('http://apialtekip.netbase.fr/authentication_token'false$context),true);
  304.             //$result = json_decode($result,true);
  305.             $token=$result['token'];
  306.             //return new response(var_dump($token)); 
  307.            $httpClient HttpClient::create([
  308.             'auth_bearer' => $token
  309.             ]);
  310.             
  311.             $url='http://apialtekip.netbase.fr/api/achats?idSite='.$idTerminal.'.json';
  312.             //return new response(var_dump($url)); 
  313.             $response $httpClient->request('GET',  $url,
  314.                 ['headers' => [
  315.                     'Content-Type' => 'application/json',
  316.                 ]
  317.                 ]);
  318.             /*
  319.                 $em->createQueryBuilder()
  320.                 ->select('MAX(da.idDetailAchat)')
  321.                 ->from(DetailAchat::class, 'da')
  322.                 ->getQuery()
  323.             */
  324.             //$response->getStatusCode()
  325.             $achats=json_decode($response->getContent(),true);
  326.             return new response(var_dump($achats)); 
  327.             return $this->render('TransactionBundle/listeterminaux.html.twig',    array('terminaux' =>  $terminaux ,'idclient' => $idclient));
  328.         }
  329.         else 
  330.         {
  331.             $error 'Fin de session';
  332.             $lastUsername ='';
  333.             return $this->render('LoginBundle/login.html.twig'
  334.                                     array('last_login'=> $lastUsername,
  335.                                         'error'=>$error));
  336.         }
  337.         
  338.     }
  339.     
  340.     
  341.     public function GestionTarifs($idTerminal) {
  342.         //return new response(var_dump($idTerminal)); 
  343.         $idclient=null;
  344.         $request $this->requestStack->getCurrentRequest();
  345.         $idclient=$request->getSession()->get('idClient');
  346.         if($idclient!=null)
  347.         {     
  348.             $token $request->getSession()->get('token');
  349.           
  350.             $commun= new CommunController($this->requestStack,$token); 
  351.             //$services= $commun->ServicesTerminal($idTerminal);
  352.             $borne$commun->TerminalById($idTerminal);    
  353.             $tarifs=$commun->TarifsTerminal($idTerminal);
  354.             $unites=$commun->getListUniteType();
  355.             // return new response(var_dump($tarifs)); 
  356.             //SH 2024.06.04 hirtorique changement tarifs 
  357.                 $httpClient HttpClient::create([
  358.                     'auth_bearer' => $token
  359.                 ]);
  360.          
  361.                 $getRes $httpClient->request('GET'
  362.                 "http://apialtekip.netbase.fr/api/historique_tarifs?idSite={$idTerminal}",
  363.                      ['headers' => [
  364.                         'Content-Type' => 'application/json',
  365.                         ]
  366.                      ]);
  367.                 $histTarifs=null;
  368.                 if($getRes->getStatusCode()==200
  369.                 {
  370.                     $histTarifs=json_decode($getRes->getContent(),true); 
  371.                     $histTarifs=$histTarifs['hydra:member'];
  372.                 }
  373.                 //return new response(var_dump($histTarifs)); 
  374.             //FIN 
  375.             
  376.             return $this->render('PilotageBundle/GestionTarifs.html.twig',    array('terminal' =>  $borne 'tarifs'=>$tarifs 'unites'=>$unites ,'idclient' => $idclient 'historique'=>$histTarifs));
  377.         } 
  378.         else 
  379.         {
  380.             $error 'Fin de session';
  381.             $lastUsername ='';
  382.             return $this->render('LoginBundle/login.html.twig'
  383.                                     array('last_login'=> $lastUsername,
  384.                                         'error'=>$error));
  385.         }
  386.     }
  387.     public function ActionChangementTarifs($message "") {
  388.        
  389.         $idclient=null;
  390.         $request $this->requestStack->getCurrentRequest();
  391.         $clients null;
  392.         $request $this->requestStack->getCurrentRequest();
  393.         $idclient=$request->getSession()->get('idClient');
  394.       
  395.         $token $request->getSession()->get('token');
  396.         $postData $request->request->all();
  397.        //return new response(var_dump($postData));
  398.             
  399.         $idTarif $postData['idTarif'];
  400.         $idServiceType=$postData['idServiceType'];
  401.         $idSite=$postData['idSite'];
  402.         $tarif=$postData['tarif'];
  403.         $idUnite=$postData['idUnite'];
  404.         $Service=$postData['service'];
  405.         $prix=$tarif;
  406.        
  407.         // return new response(var_dump($idTarif));
  408.       
  409.         
  410.         $commun= new CommunController($this->requestStack,$token); 
  411.         $res=$commun->SetTarifService($idTarif $idServiceType $idSite $tarif $idUnite) ;
  412.         ///$res=$this->SetTarifService($idTarif , $idServiceType , $idSite , $tarif , $idUnite) ;
  413.        /*********************************** */
  414.         //SH 2024.05.30 gestion modification des tarifs historique modification 
  415.        
  416.        
  417.         $httpClient HttpClient::create([
  418.             'auth_bearer' => $token
  419.             ]);
  420.         $param = new ParametrageController($this->requestStack,$token); 
  421.         $getT $httpClient->request('GET'
  422.           "http://apialtekip.netbase.fr/api/tarifs/".$idTarif,
  423.                ['headers' => [
  424.                   'Content-Type' => 'application/json',
  425.               ]
  426.                       ]);
  427.               $tarif=null;
  428.           if($getT->getStatusCode()==200$tarif=json_decode($getT->getContent(),true);
  429.           if($tarif!=null)
  430.           {
  431.               $param->updateHistTarif($tarif['idSite'] , $tarif['idServiceType'], $token); 
  432.           }
  433.         
  434.           $response $httpClient->request('PATCH'
  435.                  "http://apialtekip.netbase.fr/api/tarifs/".$idTarif,
  436.                  ['headers' => [
  437.                      'Content-Type' => 'application/merge-patch+json',
  438.                  ], 
  439.                  'json' => [ 
  440.                             'idUniteType' => intval($idUnite),
  441.                             'prix'=> floatval($prix)
  442.                             ],
  443.                  ]);
  444.                  //return new response(var_dump($response->getStatusCode())); 
  445.  
  446.                  if($response->getStatusCode()==200$message='Modification prise en compte ';
  447.                  else $message='Erreur lors de la modification du service'
  448.            
  449.                  $param->addHistTarif(intval($idSite) , intval($idServiceType) , intval($idUnite) , 'EUR' '€' floatval($prix) , $token);
  450.             
  451.                  
  452.         $this->tracabiliteTarif(intval($idSite) , $idServiceType $idUnite $prix);
  453.         //fin SH
  454.         /******************************** */ 
  455.         
  456.         return new response(var_dump($res));
  457.       
  458.       
  459.     }
  460.     public function SetTarifService($idTarif $idServiceType ,$idSite $prix $idUnite
  461.     {
  462.         
  463.         try 
  464.         {
  465.             //return new Response(var_dump($idTarif));  
  466.           // $tarif=$this->getTarif($idTarif);
  467.           // return new Response(var_dump($tarif));      
  468.           
  469.           $token $request->getSession()->get('token');
  470.           $httpClient HttpClient::create([
  471.            'auth_bearer' => $this->token
  472.            ]);
  473.             
  474.        
  475.             $response $httpClient->request('GET'
  476.                "http://apialtekip.netbase.fr/api/services.json",
  477.                 ['headers' => [
  478.                    'Content-Type' => 'application/json',
  479.                ]
  480.                 ]);
  481.             $services=null;
  482.             if($response->getStatusCode()==200$services=json_decode($response->getContent(),true);
  483.             $response1 $httpClient->request('GET'
  484.                "http://apialtekip.netbase.fr/api/unite_types/".$idUnite.".json",
  485.                 ['headers' => [
  486.                    'Content-Type' => 'application/json',
  487.                ]
  488.                 ]);
  489.             $unite=null;
  490.             if($response1->getStatusCode()==200$unite=json_decode($response1->getContent(),true);
  491.            // return new Response(var_dump($unite)); 
  492.             $QteSecondes=$unite['secondes'];
  493.             $i=0;
  494.             $tarifServices=null;
  495.             foreach($services as $serv)
  496.             {
  497.                 if(($serv['idServiceType']==$idServiceType) and ($serv['idSite']==$idSite))
  498.                 {
  499.                     $tarifServices[$i]=$serv;
  500.                     $i++;
  501.                 }
  502.             }
  503.          
  504.            // return new Response(var_dump($tarifServices)); 
  505.            foreach($services as $serv)
  506.             {   
  507.                 $pointD=$serv['pointDistribution'];
  508.                 $sujet=$idSite.'/in/SetConfig/Prix'.$pointD;
  509.                 $sujet2=$idSite.'/in/SetConfig/Qte'.$pointD;
  510.                 //return new Response(var_dump($pointD));     
  511.                 //$res=$this->MessageMQTT($sujet,$tarif);
  512.                 //return new Response(var_dump($res));     
  513.                 $server '192.168.1.22';
  514.                 $port=1883;
  515.                 $clientId='api_isipay';
  516.                 $client = new ClientMQTT($server,$port$clientId);                 
  517.                 $client->setAuthDetails("urbaflux""BJdYM#t8ucvN?yZMu");    
  518.                 $client->setParamServer($server,$port$clientId); //fonction SH 2021.03.24
  519.                 //return new Response(var_dump($client));
  520.                 $result $client->connect();
  521.                 $result $client->publish($sujet ,$prix 0);  
  522.                 $result $client->publish($sujet2 ,$QteSecondes 0); 
  523.                 $client->close();
  524.                 //return new Response(var_dump($sujet)); 
  525.               
  526.                 $response $httpClient->request('PATCH'
  527.                 "http://apialtekip.netbase.fr/api/tarifs/".$idTarif,
  528.                  ['headers' => [
  529.                     'Content-Type' => 'application/merge-patch+json',
  530.                  ], 
  531.                  'json' => ['prix' => floatval($prix) , 'idUniteType' => intval($idUnite)],
  532.                  ]);
  533.                 $tarif=null;
  534.                 if($response->getStatusCode()==200) return true;
  535.                 else return false;  //$tarif=json_decode($response->getContent(),true);
  536.                  // return new Response(var_dump($response));
  537.             }
  538.         }
  539.         catch (\Exception $e) {
  540.            
  541.        }
  542.     }
  543.     /*****************SH 2022.11.04 gestion barrires ISIPAY++********************* */
  544.     public function PilotageBarrieres($idTerminal $nomTerminal $etatTerminal) {
  545.         
  546.         $idclient=null;
  547.         $request $this->requestStack->getCurrentRequest();
  548.         $clients null;
  549.         $request $this->requestStack->getCurrentRequest();
  550.         $idclient=$request->getSession()->get('idClient');
  551.         if($idclient!=null)
  552.             {
  553.                 $token $request->getSession()->get('token');
  554.                 $httpClient HttpClient::create([
  555.                     'auth_bearer' => $token
  556.                     ]);
  557.                 $url0='http://apialtekip.netbase.fr/api/terminals/'.$idTerminal;
  558.                 $response0 $httpClient->request('GET',  $url0,
  559.                 ['headers' => [
  560.                     'Content-Type' => 'application/json',
  561.                 ]
  562.                 ]);
  563.               
  564.                 if($response0->getStatusCode()==200$etatTerminal=json_decode($response0->getContent(),true)['etatTerminal'];
  565.                
  566.                 $url='http://apialtekip.netbase.fr/api/etat_voies?idTerminal='.$idTerminal;
  567.                 //return new response(var_dump($url)); 
  568.                 //$url ='http://apialtekip.netbase.fr/api/etat_voies?idTerminal=1027';   
  569.                 $response $httpClient->request('GET',  $url,
  570.                         ['headers' => [
  571.                             'Content-Type' => 'application/json',
  572.                         ]
  573.                         ]);
  574.         
  575.                 $barrieres=null;
  576.                 if($response->getStatusCode()==200$barrieres=json_decode($response->getContent(),true);
  577.                 $barrieres=$barrieres['hydra:member'];
  578.                // return new response(var_dump($barrieres)); 
  579.             
  580.           
  581.                 return $this->render('PilotageBundle/PilotageBarrieres.html.twig',    array('barrieres' =>  $barrieres ,'idclient' => $idclient 'nomTerminal' => $nomTerminal 'idTerminal' => $idTerminal 'etatTerminal'=>$etatTerminal)); 
  582.              }
  583.         else 
  584.         {
  585.                  $error 'Fin de session';
  586.                  $lastUsername ='';
  587.                  return $this->render('LoginBundle/login.html.twig'
  588.                                          array('last_login'=> $lastUsername,
  589.                                              'error'=>$error));
  590.         }
  591.     }
  592.     public function ActionBarriere($message "") {
  593.        
  594.         $idclient=null;
  595.         $request $this->requestStack->getCurrentRequest();
  596.         $clients null;
  597.         $request $this->requestStack->getCurrentRequest();
  598.         $idclient=$request->getSession()->get('idClient');
  599.         $token $request->getSession()->get('token');
  600.         $postData $request->request->all();
  601.         //return new response(var_dump($postData));
  602.         $idSite $postData['idTerminal'];
  603.         $typeAction $postData['typeAction'];
  604.         $valeur $postData['idAction'];
  605.         $idBarriere $postData['idBarriere'];
  606.         $typeVoie $postData['typeVoie'];
  607.         $sujet=$idSite.'/in/'.$typeAction.'/'.$idBarriere.'/'.$typeVoie;
  608.         //return new response(var_dump($sujet));
  609.         $commun= new CommunController($this->requestStack,$token); 
  610.         $result=$commun->MessageMQTT($sujet,$valeur);
  611.         $ajout=$this->AjoutTracabiliteBarriere(intval($idSite) , $typeAction $valeur $typeVoie);
  612.        // return new response(var_dump($ajout));
  613.         return new response($result);
  614.          
  615.     }
  616.     /***************** FIN SH ********************/
  617.     /*********** SH 2022.11.08 tracabilite ************ */
  618.     private function  AjoutTracabilite($idTerminal $evenement )
  619.     {
  620.         $request $this->requestStack->getCurrentRequest();
  621.         $utilisateur $request->getSession()->get('login').': '.$request->getSession()->get('nom').'  '.$request->getSession()->get('prenom');
  622.         $token $request->getSession()->get('token');
  623.         $postData $request->request->all();
  624.         $httpClient HttpClient::create([
  625.             'auth_bearer' => $token
  626.         ]);
  627.         $response $httpClient->request('POST'
  628.             "http://apialtekip.netbase.fr/api/tracabilites",
  629.             ['headers' => [
  630.                 'Content-Type' => 'application/json',
  631.             ], 
  632.             'json' => [    
  633.                         'idTerminal'=> $idTerminal,
  634.                         'origine'=> "Netbase",
  635.                         'evenement'=> $evenement,
  636.                         'utilisateur'=> $utilisateur
  637.             ], 
  638.                     
  639.             ]);
  640.         $rep json_decode($response->getContent( ), true);
  641.         return $rep;
  642.     }
  643.     public function AjoutTracabiliteBarriere($idTerminal $typeAction $valeur $typeVoie)
  644.     {
  645.         $evenement '';
  646.         if($typeAction =='ModeFct')
  647.         {
  648.             if($valeur=='0'$evenement='Activation mode manuel: '.$typeVoie;
  649.             elseif($valeur=='1')  $evenement='Activation mode automatique: '.$typeVoie;
  650.         }  
  651.         elseif($typeAction =='Piloter')   
  652.         {
  653.             if($valeur=='0'$evenement='Fermeture manuelle: '.$typeVoie;
  654.             elseif($valeur=='1')  $evenement='Ouverture manuelle '.$typeVoie;
  655.         }
  656.        
  657.         $this->AjoutTracabilite($idTerminal $evenement );
  658.     }
  659.     public function AjoutTracabiliteGenererCode($idTerminal $code)
  660.     {
  661.         $evenement '';
  662.         $evenement ='Generation code acces : '.$code;
  663.         $this->AjoutTracabilite($idTerminal $evenement );
  664.     }
  665.     public function tracabiliteDistribution($idTerminal $pointD $quantite)
  666.     {  
  667.        if($quantite=='-1'$evenement ='Forçage permanent distribution/ point de distribution:'.$pointD;
  668.        else $evenement ='Arret distribution/ point de distribution:'.$pointD;
  669.        $this->AjoutTracabilite($idTerminal $evenement );
  670.     }
  671.     public function tracabiliteBorne($idTerminal $action)
  672.     {  
  673.        if($action=='ES'$evenement ='Mise en service';
  674.        if($action=='HS'$evenement ='Mise hors service';
  675.        $this->AjoutTracabilite($idTerminal $evenement );
  676.     }
  677.     public function tracabiliteTarif($idTerminal $typeService $unite $prix)
  678.     {  
  679.         $request $this->requestStack->getCurrentRequest();
  680.         $token $request->getSession()->get('token');
  681.         $commun= new CommunController($this->requestStack,$token); 
  682.         $libTypeService $commun->getLibelleServiceType(intval($typeService)); 
  683.         $libUnite $commun->getLibelleUniteType($unite);
  684.         $libUnite $libUnite['libelleType'];
  685.        
  686.         $evenement ='Changement tarif type service :'.$libTypeService.' prix:  '.$prix.'EUR  unite: '.$libUnite;
  687.        $this->AjoutTracabilite($idTerminal $evenement );
  688.     }
  689.     /*********************************** */
  690.     //SH 2024.01.11 gestion borne virtuelle 
  691.     public function VirtuelleBorne()
  692.     {
  693.         $request $this->requestStack->getCurrentRequest();
  694.         $jsonData json_decode($request->getContent(),true);
  695.         //return new Response (var_dump($jsonData)); 
  696.         $con $this->getDoctrine()->getConnection('bddg');
  697.         $sql $con->prepare("select id_terminal from terminal
  698.                                 where id_terminal_parent = ?");
  699.         $sql->bindValue(1$jsonData['idTerminal']);
  700.         $sql->execute();
  701.         $bornesLiees =  $sql->fetchAll(Query::HYDRATE_ARRAY); 
  702.         //return new Response(var_dump($bornesLiees[0]['id_terminal']));
  703.       
  704.         try
  705.         {
  706.             if(count($bornesLiees) > 0) {
  707.                 for($i=0$i<count($bornesLiees) ;$i++)
  708.                 { 
  709.                     //return new Response(var_dump($bornesLiees[$i]));
  710.                   
  711.                         $con $this->getDoctrine()->getConnection('isipay');
  712.                         $sql $con->prepare("
  713.                         update tb_service set disponible=:dispo where idSite=:idT and pointDistribution=:ptDist
  714.                         ");
  715.                         $sql->bindValue('dispo'$jsonData['disponible']);
  716.                         $sql->bindValue('idT'$bornesLiees[$i]['id_terminal']);
  717.                         $sql->bindValue('ptDist'$jsonData['pointDistr']);    
  718.                         $sql->execute();
  719.                     
  720.                 
  721.                 }
  722.             }
  723.             return new Response('update OK!'201);
  724.         }
  725.             catch (\Exception $e) {
  726.                 //return new Response(var_dump($e));
  727.                 return new Response('update KO! '.$e->message(), 406);
  728.         }
  729.     }
  730.     public function trouverIdTreminalParent($idTerminal)
  731.     {
  732.         $con $this->getDoctrine()->getConnection('bddg');
  733.         $sql $con->prepare("select * from terminal where id_terminal= ?");
  734.         $sql->bindValue(1$idTerminal);
  735.         $sql->execute();
  736.         $Term =  $sql->fetch(Query::HYDRATE_ARRAY);  
  737.         return $Term['ID_TERMINAL_PARENT']; 
  738.     }
  739.     //fin SH 
  740.     
  741. }