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