src/Controller/PaimentController.php line 28

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