src/Controller/PaimentController.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\Routing\Annotation\Route;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\RequestStack;
  8. use App\Entity\PayementMethod;
  9. use App\Entity\Congre;
  10. use App\Entity\ConnexionUser;
  11. use App\Entity\PrixVariableCongre;
  12. use App\Entity\PrixVariable;
  13. use Symfony\Component\Validator\Constraints\DateTime;
  14. use App\Entity\EvenementAVenir;
  15. use App\Entity\EvenementFormulaire;
  16. use App\Form\formulaireEvenementType;
  17. use Symfony\Component\HttpFoundation\RedirectResponse;
  18. class PaimentController extends AbstractController
  19. {
  20.   private $requestStack;
  21.   public function __construct(RequestStack $requestStack)
  22.   {
  23.       $this->requestStack $requestStack;
  24.   }
  25.   public function formulaire(ManagerRegistry $doctrine,Request $request,$id,$idprix,$supp)
  26.   {
  27.     if($idprix != 79 && $idprix != 80 && $idprix != 81 && $idprix != 82)
  28.     {
  29.       echo "évenement non disponible .<br>merci de retour a la page accueil <a href='/'>accueil</a>";
  30.       exit();
  31.     }
  32.     if($id!=20)
  33.     {
  34.       echo "évenement non disponible .<br>merci de retour a la page accueil <a href='/'>accueil</a>";
  35.       exit();
  36.     }
  37.    
  38.   
  39.        
  40.      
  41.     $repository $doctrine->getRepository(PrixVariableCongre::class);
  42.     $p $repository->findBy(
  43.       ['id' => $idprix]
  44. );
  45. $prix$p[0]->getPrix();
  46. $erreur="";
  47. $verif=true;
  48. $messageSuccess="";
  49. $entityManager $doctrine->getManager();
  50. $article = new EvenementFormulaire();
  51. $form $this->createForm(formulaireEvenementType::class, $article);
  52. $form->handleRequest($request);
  53.         if ($form->isSubmitted() && $form->isValid()) {
  54.         if($article->getType() == "Etudiant")
  55.         {
  56.             $erreur="C'est exclusif pour les professionnels.";
  57.             $verif=false;
  58.         }
  59.         if(Empty($article->getNom()))
  60.         {
  61.         $erreur.="Nom invalide <br>";
  62.         $verif=false;
  63.         }
  64.         else if(strlen($article->getNom())<|| strlen($article->getNom())>30)
  65.         {
  66.             $erreur.="Nom invalide <br>";
  67.             $verif=false;
  68.         }
  69.         else
  70.         {
  71.             $verif=true;
  72.         }
  73.         if(Empty($article->getPrenom()))
  74.         {
  75.         $erreur.="Prénom invalide <br>";
  76.         $verif=false;
  77.         }
  78.         else if(strlen($article->getPrenom())<|| strlen($article->getPrenom())>30)
  79.         {
  80.             $erreur.="Prénom invalide <br>";
  81.             $verif=false;
  82.         }
  83.         /**** verif email */
  84.         if(strlen($article->getEmail())<|| strlen($article->getEmail())>30)
  85.         {
  86.             $erreur.="Email invalide <br>";
  87.             $verif=false;
  88.         }
  89.         else
  90.         {
  91.             $verif=true;
  92.         }
  93.         /***** */
  94.         if(Empty($article->getPhone()))
  95.         {
  96.         $erreur.="Prénom invalide <br>";
  97.         $verif=false;
  98.         }
  99.         else if(strlen($article->getPhone())<|| strlen($article->getPhone())>11)
  100.         {
  101.             $erreur.="Numéro de téléphone invalide <br>";
  102.             $verif=false;
  103.         }
  104.         if(strlen($erreur)==0)
  105.         {
  106.             if($id!=20)
  107.             {
  108.                 $erreur"Erreur lors de l'inscription";
  109.             }else
  110.             {
  111.                 $repository $doctrine->getRepository(EvenementFormulaire::class);
  112.                 $p $repository->findBy(
  113.                   ['phone' => $article->getPhone(),
  114.                   'evenement'=>20]  
  115.           );
  116.           $repository $doctrine->getRepository(EvenementFormulaire::class);
  117.         
  118.           $pp $repository->findBy(
  119.             [
  120.                 'nom' => $article->getNom(),
  121.                 'prenom' => $article->getPrenom(),
  122.                 'evenement'=>20
  123.                 
  124.             ]
  125.         );
  126.               
  127.                 
  128.             }
  129.           }
  130.         
  131.          /* $entityManager->persist($article);
  132.           $entityManager->flush();*/
  133.         }
  134.     return $this->render('formulaires/indexcongre.html.twig',['prix'=>$prix,'form' => $form->createView(),'erreur'=>$erreur,'message'=>$messageSuccess,'id'=>$id,'supp'=>$supp,'idprix'=>$idprix]);
  135.    
  136.   }
  137.     public function index(ManagerRegistry $doctrine,Request $request,$id,$idprix,$supp)
  138.     {
  139.       $suppadd=0;
  140.       /*if($supp != 60 && $supp != 145  && $supp != 165 && $supp != 125 && $supp != 0)
  141.       {
  142.         echo "Erreur au niveau de prix .<br>merci de retour a la page accueil <a href='/'>accueil</a>";
  143.         exit();
  144.       }
  145.       else
  146.       {
  147.         if($supp!=0)
  148.         {
  149.         
  150.           $suppadd=$supp;
  151.       
  152.         }
  153.         
  154.       }*/
  155.       if($supp!=0)
  156.       {
  157.       
  158.         $suppadd=$supp;
  159.     
  160.       }
  161.     
  162.       $ret=false;
  163.       $session $this->requestStack->getSession();
  164.      
  165.       $repository $doctrine->getRepository(PrixVariableCongre::class);
  166.       $etape $repository->findAll();    
  167.       foreach($etape as $a)
  168.       {
  169.         /********** verification prix and paimenet congre */
  170.           if($a->getEvenementprixId()==$id && $a->getId()==$idprix)
  171.           {
  172.            
  173.              $id_event=$a->getEvenementprixId();
  174.              
  175.              $repository $doctrine->getRepository(Congre::class);
  176.                   $p $repository->findBy(
  177.                     ['id' => $id_event,'desplay'=>true]
  178.             );
  179.             
  180.             if(count($p)>0)
  181.             { 
  182.               $ret=true;
  183.             }
  184.             else
  185.             {
  186.               echo "évenement non disponible .<br>merci de retour a la page accueil <a href='/'>accueil</a>";
  187.               exit();
  188.             }
  189.           }
  190.         
  191.           
  192.       }
  193.       if($ret)
  194.       {
  195.         $repository $doctrine->getRepository(PrixVariableCongre::class);
  196.                   $p $repository->findBy(
  197.                     ['id' => $idprix]
  198.             );
  199.            $prix$p[0]->getPrix();
  200.           
  201.            $session->set('prix'$prix);
  202.            $session->set('idevenement'$id);
  203.            $session->set('idprix'$idprix);
  204.          
  205.       }
  206.       else
  207.       {
  208.         echo "merci de retour a la page accueil <a href='/'>accueil</a>";exit();
  209.       }
  210.       $repository $doctrine->getRepository(ConnexionUser::class);
  211.       $px $repository->findBy(['email' => $session->get('email')]);
  212.          if(count($px)>0)
  213.           {
  214.             
  215.            
  216.           }
  217.           else
  218.           {
  219.            echo "Merci de connecter <a href='/connexion/'>connexion</a>";exit();
  220.           }
  221.       /*
  222.         
  223.         //Afficher le résultat
  224.         var_dump($result);*/
  225.         $repository $doctrine->getRepository(PayementMethod::class);
  226.         $p $repository->findAll(
  227.          
  228.           array('id' => 'DESC'),
  229.           1,
  230.           0
  231.         );
  232.         $em $doctrine->getManager();
  233.         $order_number $em->createQueryBuilder()
  234.     ->select('MAX(e.orderNumber)')
  235.     ->from('App\Entity\PayementMethod''e')
  236.     ->getQuery()
  237.     ->getSingleScalarResult();
  238.            /************** */
  239.     /************** */
  240.     $repository $doctrine->getRepository(Congre::class);
  241.     $congrevide $repository->find($id);
  242.     $repository $doctrine->getRepository(ConnexionUser::class);
  243.     $userconnexion $repository->find($px[0]->getId());
  244.     /***** *addd supppp code ejay na7yyha y anis  */
  245.     
  246.    
  247.     $cal=$prix*10;
  248.     $cal=$cal/100;
  249.     
  250.    // $total = $prix-$cal;
  251.     $total=$prix+$suppadd;
  252.     $pourcentage=0;
  253.     $adhesion=0;
  254.    
  255.     $session->set('total'$total);
  256.     $session->set('pourcentage'$pourcentage);
  257.     /**************** */
  258.     $connexionverif $doctrine->getRepository(PayementMethod::class)->findBy(
  259.       ['id_user' =>  $userconnexion->getId(),'evenementId'=>$id,'pai'=>1]  
  260.          );
  261.        
  262.          if(count($connexionverif)>0)
  263.          {
  264.          
  265.          
  266.        
  267.           
  268.           return $this->render('paiment/retour.html.twig', array(
  269.             'name'=>"",'depositAmount'=>"",
  270.             'ErrorCode'=>1,
  271.             'ErrorMessage'=>"Vous étes inscrit a la formation "
  272.         ));
  273.          }
  274.        
  275. /******* */
  276. /******* */
  277.      $url='https://ipay.clictopay.com/payment/rest/register.do?amount='.($total*1000).'&currency=788&language=en&orderNumber='.$order_number.'&password=I7Vh2o1e&returnUrl=https://astp.tn/retour-paiment/&userName=0799902085';
  278.      $ch curl_init();  
  279.      curl_setopt($chCURLOPT_RETURNTRANSFER1); 
  280.      curl_setopt($chCURLOPT_URL$url); 
  281.      curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  282.      $result curl_exec($ch); 
  283.      $PayementMethod = new PayementMethod();
  284.      $PayementMethod->setOrderNumber($order_number+1);
  285.      $PayementMethod->setUrl("0");
  286.      $PayementMethod->setMontant(($prix));
  287.      $PayementMethod->setSupp(($supp));
  288.      $PayementMethod->setTotal(($total));
  289.      $PayementMethod->setAdhesion($adhesion);
  290.      $PayementMethod->setPourcentage(($pourcentage));
  291.      $PayementMethod->setEvenementId($congrevide);
  292.      $PayementMethod->setIdUser($userconnexion);
  293.      $ddate=date("Y-m-d h:i:s");$PayementMethod->setDateAd(\DateTime::createFromFormat("Y-m-d h:i:s",$ddate));
  294.      $PayementMethod->setPai(0);
  295.      $em->persist($PayementMethod);
  296.      $em->flush();
  297.      $result=json_decode($result);
  298.         
  299.      $idorder_number $em->createQueryBuilder()
  300.      ->select('MAX(e.id)')
  301.      ->from('App\Entity\PayementMethod''e')
  302.      ->getQuery()
  303.      ->getSingleScalarResult();
  304.      $session->set('idpaiment'$idorder_number);
  305.      header('Location: '.$result->formUrl);
  306.      exit();
  307.       
  308.     }
  309.     public function indexautre(ManagerRegistry $doctrine,Request $request,$id,$idprix)
  310.     {
  311.         
  312.       $ret=false;
  313.       $session $this->requestStack->getSession();
  314.      
  315.       $repository $doctrine->getRepository(PrixVariable::class);
  316.       $etape $repository->findAll();    
  317.       foreach($etape as $a)
  318.       {
  319.         /********** verification prix and paimenet congre */
  320.           if($a->getEvenementprixId()==$id && $a->getId()==$idprix)
  321.           {
  322.            
  323.              $id_event=$a->getEvenementprixId();
  324.              
  325.              $repository $doctrine->getRepository(EvenementAVenir::class);
  326.                   $p $repository->findBy(
  327.                     ['id' => $id_event,'desplay'=>true]
  328.             );
  329.             if(count($p)>0)
  330.             { 
  331.               $ret=true;
  332.             }
  333.             else
  334.             {
  335.               echo "évenement non disponible .";
  336.               exit();
  337.             }
  338.           }
  339.         
  340.           
  341.       }
  342.       if($ret)
  343.       {
  344.         $repository $doctrine->getRepository(PrixVariable::class);
  345.                   $p $repository->findBy(
  346.                     ['id' => $idprix]
  347.             );
  348.            $prix$p[0]->getPrix();
  349.           
  350.            $session->set('prix'$prix);
  351.            $session->set('idevenement'$id);
  352.            $session->set('idprix'$idprix);
  353.          
  354.       }
  355.       else
  356.       {
  357.         echo "erreur";exit();
  358.       }
  359.       $repository $doctrine->getRepository(ConnexionUser::class);
  360.       $px $repository->findBy(['email' => $session->get('email')]);
  361.       if($id!=49)
  362.       {
  363.         if(count($px)>0)
  364.         {
  365.           
  366.          
  367.         }
  368.         else
  369.         {
  370.          echo "Erreur";exit();
  371.         }
  372.       }
  373.         
  374.       /*
  375.         
  376.         //Afficher le résultat
  377.         var_dump($result);*/
  378.         $repository $doctrine->getRepository(PayementMethod::class);
  379.         $p $repository->findAll(
  380.          
  381.           array('id' => 'DESC'),
  382.           1,
  383.           0
  384.         );
  385.         $em $doctrine->getManager();
  386.         $order_number $em->createQueryBuilder()
  387.     ->select('MAX(e.orderNumber)')
  388.     ->from('App\Entity\PayementMethod''e')
  389.     ->getQuery()
  390.     ->getSingleScalarResult();
  391.     /************** */
  392.     $repository $doctrine->getRepository(EvenementAVenir::class);
  393.     $congrevide $repository->find($id);
  394.     $repository $doctrine->getRepository(ConnexionUser::class);
  395.     if($id!=49)
  396.     {
  397.       $userconnexion $repository->find($px[0]->getId());
  398.     }else
  399.     {
  400.       $userconnexion null;
  401.     }
  402.    
  403.     $connexionverif $doctrine->getRepository(PayementMethod::class)->findBy(
  404.       ['id_user' =>  $userconnexion->getId(),'evenementautre'=>$id,'pai'=>1]  
  405.          );
  406.        
  407.          if(count($connexionverif)>0)
  408.          {
  409.          
  410.          
  411.        
  412.           
  413.           return $this->render('paiment/retour.html.twig', array(
  414.             'name'=>"",'depositAmount'=>"",
  415.             'ErrorCode'=>1,
  416.             'ErrorMessage'=>"Vous étes inscrit a la formation "
  417.         ));
  418.          }
  419.          /****** inscription fermé */
  420.          $connexionverif $doctrine->getRepository(PayementMethod::class)->findBy(
  421.           ['evenementautre' => $id'pai' => true]
  422.         );
  423.         $connexionverifsurplace $doctrine->getRepository(PayementMethod::class)->findBy(
  424.           ['evenementautre' => $id,'surplace' => true]
  425.         );
  426.         
  427.          
  428.              if(count($connexionverif)+count($connexionverifsurplace)>32)
  429.              {
  430.              
  431.              
  432.            
  433.               
  434.               return $this->render('paiment/retour.html.twig', array(
  435.                 'name'=>"",'depositAmount'=>"",
  436.                 'ErrorCode'=>1,
  437.                 'ErrorMessage'=>"Inscription fermé"
  438.             ));
  439.              }
  440.        
  441. /******* */
  442. /******* */
  443.    
  444.      $url='https://ipay.clictopay.com/payment/rest/register.do?amount='.($prix*1000).'&currency=788&language=en&orderNumber='.$order_number.'&password=I7Vh2o1e&returnUrl=https://astp.tn/retour-paiment/&userName=0799902085';
  445.     
  446.      $ch curl_init();  
  447.      curl_setopt($chCURLOPT_RETURNTRANSFER1); 
  448.      curl_setopt($chCURLOPT_URL$url); 
  449.      curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  450.      $result curl_exec($ch); 
  451.      $PayementMethod = new PayementMethod();
  452.      $PayementMethod->setOrderNumber($order_number+1);
  453.      $PayementMethod->setUrl("1");
  454.      if($id==49)
  455.      {
  456.       $PayementMethod->setPhone(($session->get('evenementspecifique')));
  457.      }
  458.      $PayementMethod->setMontant(($prix));
  459.      $PayementMethod->setEvenementautre($congrevide);
  460.      $PayementMethod->setIdUser($userconnexion);
  461.                $ddate=date("Y-m-d h:i:s");$PayementMethod->setDateAd(\DateTime::createFromFormat("Y-m-d h:i:s",$ddate));
  462.      $PayementMethod->setPai(0);
  463.      $em->persist($PayementMethod);
  464.      $em->flush();
  465.      $result=json_decode($result);
  466.      if(isset($result->errorCode))
  467.      {
  468.        if($result->errorCode!=0)
  469.        {
  470.         return $this->render('paiment/retour.html.twig', array(
  471.           'name'=>"",'depositAmount'=>"",
  472.           'ErrorCode'=>1,
  473.           'ErrorMessage'=>($order_number+1)."  ".$result->errorMessage
  474.       ));
  475.        }
  476.      }
  477.     /* var_dump($result);
  478.      echo $result->formUrl;*/
  479.      $idorder_number $em->createQueryBuilder()
  480.      ->select('MAX(e.id)')
  481.      ->from('App\Entity\PayementMethod''e')
  482.      ->getQuery()
  483.      ->getSingleScalarResult();
  484.      $session->set('idpaiment'$idorder_number);
  485.      header('Location: '.$result->formUrl);
  486.      exit();
  487.       
  488.     }
  489. public function indexsurplace(ManagerRegistry $doctrine,Request $request,$id,$idprix,$supp)
  490. {
  491.   $suppadd=0;
  492.   if($supp != 65 && $supp != 145 && $supp != 165 && $supp != 125 &&  $supp != 0)
  493.   {
  494.     echo "Erreur au niveau de prix .<br>merci de retour a la page accueil <a href='/'>accueil</a>";
  495.     exit();
  496.   }
  497.   else
  498.   {
  499.     
  500.   }
  501.       $ret=false;
  502.       $session $this->requestStack->getSession();
  503.      /* if ( $session->has('idpp')){
  504.         $session->remove('idpp');
  505.         return $this->render('paiment/retour.html.twig', array(
  506.           'name'=>"",'depositAmount'=>"",
  507.           'ErrorCode'=>1,
  508.           'ErrorMessage'=>"Erreur"
  509.       ));
  510.     }*/
  511.       $repository $doctrine->getRepository(PrixVariableCongre::class);
  512.       $etape $repository->findAll();    
  513.       foreach($etape as $a)
  514.       {
  515.       
  516.         /********** verification prix and paimenet congre */
  517.           if($a->getEvenementprixId()==$id && $a->getId()==$idprix)
  518.           {
  519.           
  520.              $id_event=$a->getEvenementprixId();
  521.              $repository $doctrine->getRepository(Congre::class);
  522.                   $p $repository->findBy(
  523.                     ['id' => $id_event,'desplay'=>true]
  524.             );
  525.             if(count($p)>0)
  526.             { 
  527.               $ret=true;
  528.             }
  529.             else
  530.             {
  531.               echo "évenement non disponible .";
  532.               exit();
  533.             }
  534.           }  
  535.       }
  536.       if($ret)
  537.       {
  538.         $repository $doctrine->getRepository(PrixVariableCongre::class);
  539.                   $p $repository->findBy(
  540.                     ['id' => $idprix]
  541.             );
  542.            $prix$p[0]->getPrix();
  543.           
  544.            $session->set('prix'$prix);
  545.            $session->set('idevenement'$id);
  546.            $session->set('idprix'$idprix);  
  547.       }
  548.       else
  549.       {
  550.         echo "merci de retour a la page accueil <a href='/'>accueil</a>";exit();
  551.       }
  552.       $repository $doctrine->getRepository(ConnexionUser::class);
  553.       $px $repository->findBy(['email' => $session->get('email')]);
  554.          if(count($px)>0)
  555.           {
  556.             
  557.            
  558.           }
  559.           else
  560.           {
  561.             echo "Merci de connecter <a href='/connexion/'>connexion</a>";exit();
  562.           }
  563.         $repository $doctrine->getRepository(PayementMethod::class);
  564.         $p $repository->findAll(
  565.           array('id' => 'DESC'),
  566.           1,
  567.           0
  568.         );
  569.        
  570.         /************** */
  571.         $repository $doctrine->getRepository(Congre::class);
  572.         $congrevide $repository->find($id);
  573.         $repository $doctrine->getRepository(ConnexionUser::class);
  574.         $userconnexion $repository->find($px[0]->getId());
  575.         $connexionverif $doctrine->getRepository(PayementMethod::class)->findBy(
  576.           ['id_user' =>  $userconnexion->getId(),'evenementId'=>$id]  
  577.              );
  578.            
  579.              if(count($connexionverif)>0)
  580.              {
  581.              
  582.              
  583.            
  584.               
  585.               return $this->render('paiment/retour.html.twig', array(
  586.                 'name'=>"",'depositAmount'=>"",
  587.                 'ErrorCode'=>1,
  588.                 'ErrorMessage'=>"Vous étes inscrit a la formation "
  589.             ));
  590.              }
  591.            
  592. /******* */
  593. $total=$supp+$prix;
  594. $adhesion=0;
  595.         $em $doctrine->getManager();
  596.         $order_number $em->createQueryBuilder()
  597.           ->select('MAX(e.orderNumber)')
  598.           ->from('App\Entity\PayementMethod''e')
  599.           ->getQuery()
  600.           ->getSingleScalarResult();
  601.               $PayementMethod = new PayementMethod();
  602.               $PayementMethod->setOrderNumber($order_number+1);
  603.               $PayementMethod->setUrl("00");
  604.               $PayementMethod->setMontant(($prix));
  605.               $PayementMethod->setSupp(($supp));
  606.               $PayementMethod->setTotal(($total));
  607.               $PayementMethod->setAdhesion($adhesion);
  608.               $PayementMethod->setPourcentage((0));
  609.               $PayementMethod->setEvenementId($congrevide);
  610.               $PayementMethod->setIdUser($userconnexion);
  611.               $ddate=date("Y-m-d h:i:s");$PayementMethod->setDateAd(\DateTime::createFromFormat("Y-m-d h:i:s",$ddate));
  612.               $PayementMethod->setPai(0);
  613.               $em->persist($PayementMethod);
  614.               $em->flush();
  615.               $session->set('idpp'"0");  
  616.               return $this->render('paiment/retour.html.twig', array(
  617.                 'name'=>"",'depositAmount'=>"",
  618.                 'ErrorCode'=>-1,
  619.                 'ErrorMessage'=>""
  620.             ));
  621.     }
  622.     public function indexsurplaceautre(ManagerRegistry $doctrine,Request $request,$id,$idprix)
  623. {
  624.       $ret=false;
  625.       $session $this->requestStack->getSession();
  626.       if ( $session->has('idpp')){
  627.         $session->remove('idpp');
  628.         return $this->render('paiment/retour.html.twig', array(
  629.           'name'=>"",'depositAmount'=>"",
  630.           'ErrorCode'=>1,
  631.           'ErrorMessage'=>"Erreur"
  632.       ));
  633.     }
  634.       $repository $doctrine->getRepository(PrixVariable::class);
  635.       $etape $repository->findAll();    
  636.       foreach($etape as $a)
  637.       {
  638.         /********** verification prix and paimenet congre */
  639.           if($a->getEvenementprixId()==$id && $a->getId()==$idprix)
  640.           {
  641.            
  642.              $id_event=$a->getEvenementprixId();
  643.              $repository $doctrine->getRepository(EvenementAVenir::class);
  644.                   $p $repository->findBy(
  645.                     ['id' => $id_event,'desplay'=>true]
  646.             );
  647.             if(count($p)>0)
  648.             { 
  649.               $ret=true;
  650.             }
  651.             else
  652.             {
  653.               echo "évenement non disponible .";
  654.               exit();
  655.             }
  656.           }  
  657.       }
  658.       if($ret)
  659.       {
  660.         $repository $doctrine->getRepository(PrixVariable::class);
  661.                   $p $repository->findBy(
  662.                     ['id' => $idprix]
  663.             );
  664.            $prix$p[0]->getPrix();
  665.           
  666.            $session->set('prix'$prix);
  667.            $session->set('idevenement'$id);
  668.            $session->set('idprix'$idprix);  
  669.       }
  670.       else
  671.       {
  672.         echo "erreur3";exit();
  673.       }
  674.       $repository $doctrine->getRepository(ConnexionUser::class);
  675.       $px $repository->findBy(['email' => $session->get('email')]);
  676.          if(count($px)>0)
  677.           {
  678.             
  679.            
  680.           }
  681.           else
  682.           {
  683.            echo "Erreur";exit();
  684.           }
  685. /************** */
  686. $repository $doctrine->getRepository(EvenementAVenir::class);
  687. $congrevide $repository->find($id);
  688. $repository $doctrine->getRepository(ConnexionUser::class);
  689. $userconnexion $repository->find($px[0]->getId());
  690. /***** *addd supppp code ejay na7yyha y anis  */
  691. /**************** */
  692. $connexionverif $doctrine->getRepository(PayementMethod::class)->findBy(
  693.   ['id_user' =>  $userconnexion->getId(),'evenementautre'=>$id,'surplace'=>1]  
  694.      );
  695.    
  696.      if(count($connexionverif)>0)
  697.      {
  698.      
  699.      
  700.    
  701.       
  702.       return $this->render('paiment/retour.html.twig', array(
  703.         'name'=>"",'depositAmount'=>"",
  704.         'ErrorCode'=>1,
  705.         'ErrorMessage'=>"Vous étes inscrit a la formation "
  706.     ));
  707.      }
  708.     
  709. /******* */
  710. $connexionverif $doctrine->getRepository(PayementMethod::class)->findBy(
  711.   ['evenementautre' => $id'pai' => true]
  712. );
  713. $connexionverifsurplace $doctrine->getRepository(PayementMethod::class)->findBy(
  714.   ['evenementautre' => $id,'surplace' => true]
  715. );
  716.  
  717.      if(count($connexionverif)+count($connexionverifsurplace)>32)
  718.      {
  719.      
  720.      
  721.    
  722.       
  723.       return $this->render('paiment/retour.html.twig', array(
  724.         'name'=>"",'depositAmount'=>"",
  725.         'ErrorCode'=>1,
  726.         'ErrorMessage'=>"Inscription fermé"
  727.     ));
  728.      }
  729.         $repository $doctrine->getRepository(PayementMethod::class);
  730.         $p $repository->findAll(
  731.           array('id' => 'DESC'),
  732.           1,
  733.           0
  734.         );
  735.         $em $doctrine->getManager();
  736.         $order_number $em->createQueryBuilder()
  737.           ->select('MAX(e.orderNumber)')
  738.           ->from('App\Entity\PayementMethod''e')
  739.           ->getQuery()
  740.           ->getSingleScalarResult();
  741.               /************** */
  742.     $repository $doctrine->getRepository(EvenementAVenir::class);
  743.     $congrevide $repository->find($id);
  744.     $repository $doctrine->getRepository(ConnexionUser::class);
  745.     $userconnexion $repository->find($px[0]->getId());
  746. /******* */
  747. $repository $doctrine->getRepository(PayementMethod::class);
  748.     $count $repository->findAll();
  749. $countcount($count);
  750.   $PayementMethod = new PayementMethod();
  751.   $PayementMethod->setOrderNumber($order_number+1);
  752.   $PayementMethod->setUrl("01");
  753.   $PayementMethod->setMontant(($prix));
  754.   $PayementMethod->setEvenementautre($congrevide);
  755.   $PayementMethod->setIdUser($userconnexion);
  756.   
  757.    $ddate=date("Y-m-d h:i:s");$PayementMethod->setDateAd(\DateTime::createFromFormat("Y-m-d h:i:s",$ddate));
  758.   $PayementMethod->setPai(0);
  759.   $PayementMethod->setSurPlace(1);
  760.   $em->persist($PayementMethod);
  761.   $em->flush();
  762.   $session->set('idpp'"0");  
  763.   return $this->render('paiment/retour.html.twig', array(
  764.     'name'=>"",'depositAmount'=>"",
  765.     'ErrorCode'=>-1,
  766.     'ErrorMessage'=>""
  767. ));
  768.            
  769.     }
  770.      
  771.    
  772.     public function retourPaiment(ManagerRegistry $doctrine,Request $request)
  773.     {
  774.       $session $this->requestStack->getSession();
  775.       $session->remove('evenementspecifique');
  776.     $session $this->requestStack->getSession();
  777.   
  778.      $orderId$_GET['orderId'];
  779.      $em $this->getDoctrine()->getManager();
  780.      $product $em->getRepository(PayementMethod::class)->find($session->get('idpaiment'));
  781.  
  782.      if (!$product) {
  783.          throw $this->createNotFoundException(
  784.              'Erreur '
  785.          );
  786.      }
  787.  
  788.      $product->setOrdernumberid($orderId);
  789.      $em->flush();
  790.      $session->set('idppt'"0");  
  791.      $url='https://ipay.clictopay.com/payment/rest/getOrderStatus.do?orderId='.$orderId.'&language=en&password=I7Vh2o1e&userName=0799902085';
  792.      $ch curl_init();  
  793.      curl_setopt($chCURLOPT_RETURNTRANSFER1); 
  794.      curl_setopt($chCURLOPT_URL$url); 
  795.      curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  796.      $result curl_exec($ch); 
  797.      $result=json_decode($result);
  798.      $name=$result->cardholderName;
  799.      $depositAmount=$result->depositAmount;
  800.      $ErrorCode=$result->ErrorCode;
  801.      $ErrorMessage=$result->ErrorMessage;
  802.      if($ErrorCode==0)
  803.      {
  804.       $em $this->getDoctrine()->getManager();
  805.       $product $em->getRepository(PayementMethod::class)->find($session->get('idpaiment'));
  806.   
  807.       if (!$product) {
  808.           throw $this->createNotFoundException(
  809.               'Erreur '
  810.           );
  811.       }
  812.       
  813.       $product->setPai(1);
  814.       $em->flush();
  815.       $session->set('idppt'"0");  
  816.      }
  817.  
  818.      
  819.       return $this->render('paiment/retour.html.twig', array(
  820.         'name'=>$name,'depositAmount'=>$depositAmount,
  821.         'ErrorCode'=>$ErrorCode,
  822.         'ErrorMessage'=>$ErrorMessage
  823.     ));
  824.     }
  825.     public function testanis()
  826.     {
  827.       /*$orderId= '59a7c903-5260-4dae-b769-322208e295d7';
  828.       $url='https://ipay.clictopay.com/payment/rest/getOrderStatus.do?orderId='.$orderId.'&language=en&password=I7Vh2o1e&userName=0799902085';
  829.       $ch = curl_init();  
  830.       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  831.       curl_setopt($ch, CURLOPT_URL, $url); 
  832.       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  833.       $result = curl_exec($ch); 
  834.       $result=json_decode($result);
  835.       print_r($result);*/
  836.     exit();
  837.   }
  838.   public function omar()
  839.   {
  840.     $em $this->getDoctrine()->getManager();
  841.     $productRepository $em->getRepository(EvenementFormulaire::class);
  842.     
  843.     // Utilisez la méthode findAll() pour récupérer toutes les données
  844.     $products $productRepository->findAll();
  845.     
  846.     // Affichez les données pour déboguer
  847.     
  848.     return $this->render('omar/liste.html.twig', array(
  849.       'product'=>$products
  850.   ));
  851.     
  852.   }
  853.     
  854. }