src/Controller/EvenementController.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\HttpFoundation\Session\Session;
  4. use Symfony\Component\HttpFoundation\Session\Storage\PhpBridgeSessionStorage;
  5. use Symfony\Component\HttpFoundation\RequestStack;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use App\Entity\Post;
  8. use App\Entity\AncienEvenement;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use App\Form\formulaireEvenementType;
  11. use App\Entity\AttachmentCongre;
  12. use App\Entity\Attachment;
  13. use App\Entity\Carousel;
  14. use App\Entity\Etape;
  15. use App\Entity\Speakers;
  16. use App\Entity\Sponsored;
  17. use App\Entity\Congre;
  18. use App\Entity\PrixVariableCongre;
  19. use App\Entity\PrixVariable;
  20. use App\Entity\PayementMethod;
  21. use App\Entity\PaymenetMethode;
  22. use Symfony\Component\HttpFoundation\Request;
  23. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  24. use Symfony\Component\Routing\Annotation\Route;
  25. use App\Entity\EvenementAVenir;
  26. use App\Entity\EvenementFormulaire;
  27. use App\Entity\ConnexionUser;
  28. use Doctrine\Persistence\ManagerRegistry;
  29. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  30. use Symfony\Component\HttpFoundation\RedirectResponse;
  31. class EvenementController extends AbstractController
  32. {
  33.         private $requestStack;
  34.         public function __construct(RequestStack $requestStack)
  35.         {
  36.             $this->requestStack $requestStack;
  37.         }
  38.     public function index(ManagerRegistry $doctrine,$id)
  39.     {
  40.       
  41.             $title="";
  42.         if($id==1)
  43.         {
  44.             $ancien $doctrine->getRepository(Congre::class)->findAll();
  45.             $title="Congre";
  46.         }
  47.         else
  48.            if($id==2)
  49.            {
  50.           
  51.             $title="formation  avec paiment";
  52.             $repository$doctrine->getRepository(EvenementAVenir::class);
  53.             $ancien $repository->findBy(
  54.               ['category' => $title]  
  55.                  );
  56.            }
  57.            else if($id==3)
  58.            {
  59.            
  60.             $title="webinaire sans paiment";
  61.             $repository$doctrine->getRepository(EvenementAVenir::class);
  62.             $ancien $repository->findBy(
  63.               ['category' => $title]  
  64.                  );
  65.            }
  66.            else if($id==4)
  67.            {
  68.           
  69.             $title="Symposium avec paiment";
  70.             $repository$doctrine->getRepository(EvenementAVenir::class);
  71.             $ancien $repository->findBy(
  72.               ['category' => $title]  
  73.                  );
  74.            }
  75.            else
  76.                if($id==5)
  77.                {
  78.                
  79.                 $title="action humanitaire sans paiment";
  80.                 $repository$doctrine->getRepository(EvenementAVenir::class);
  81.                 $ancien $repository->findBy(
  82.                   ['category' => $title]  
  83.                      );
  84.                }
  85.                else
  86.                {
  87.                 return $this->redirectToRoute('index');
  88.                }
  89.          
  90.        $repository $doctrine->getRepository(EvenementAVenir::class);
  91.        $article $repository->findBy(
  92.          ['id' => 20]  
  93. );
  94. $article=$doctrine->getRepository(Congre::class)->findBy(array('desplay'=>1), array('id' => 'desc'),1,0);
  95. $k=1;
  96. if(count($article)<1)
  97. {
  98.     $k=0;
  99.     $article=$doctrine->getRepository(EvenementAVenir::class)->findBy(array('desplay'=>1), array('id' => 'desc'),1,0);
  100. }
  101. $repository $doctrine->getRepository(Attachment::class);
  102.         $carousel $repository->findBy(
  103.             ['evenement_id' => 20]);
  104.           
  105.      //  $repository = $doctrine->getRepository(PaymenetMethode::class);
  106.      
  107.         return $this->render('evenement/index.html.twig',['event'=>$article,'ancien'=>$ancien,'carousel'=>$carousel,'title'=>$title,'id'=>$id,'tt'=>$k]);
  108.     }
  109.     public function detail(ManagerRegistry $doctrine,$id)
  110.     {   
  111.      
  112.         
  113.         $autre=0;
  114.         $sesisonHas=0;
  115.        
  116.         $session $this->requestStack->getSession();
  117.         $session->set('typesendpaiment',1);
  118.         $evenementsprcifique=0;
  119.         if($id==49)
  120.         {
  121.             $evenementsprcifique=$id;
  122.         }
  123.         if($session->has('email') && $session->has('password'))
  124.         {
  125.             $sesisonHas=1;
  126.         }
  127.     $tab=[];
  128.     $repository $doctrine->getRepository(PrixVariableCongre::class);
  129.     $etape $repository->findAll();    
  130.     foreach($etape as $a)
  131.     {
  132.         if($a->getEvenementprixId()==$id)
  133.         {
  134.             array_push($tab,['id_evenement'=>$a->getEvenementprixId(),'id_prix'=>$a->getId(),'titre'=>$a->getName(),'category'=>$a->getCategory(),'prix'=>$a->getPrix()]);
  135.          
  136.         }
  137.        
  138.          
  139.     }
  140.     if($session->has('typesendpaiment'))
  141.     {
  142.         if($session->get('typesendpaiment')==1)
  143.         {
  144.             unset($tab[0]);
  145.             unset($tab[1]);
  146.             unset($tab[2]);
  147.             
  148.             unset($tab[5]);
  149.         }else
  150.         {
  151.             unset($tab[1]);
  152.             unset($tab[2]);
  153.             unset($tab[3]);
  154.             unset($tab[4]);
  155.             unset($tab[5]);
  156.         }
  157.     }else
  158.     {
  159.      
  160.         $session->set('typesendpaiment',1);
  161.     }
  162.   
  163.   
  164.          
  165.         return $this->render('detailEvenement/index.html.twig',['sessionHas'=>$sesisonHas,'tab'=>$tab,'autre'=>$autre,'nb'=>-1]);
  166.     }
  167.     public function congre(ManagerRegistry $doctrine,$id)
  168.     {
  169.         $session $this->requestStack->getSession();
  170.         $session->set('typesendpaiment'"");
  171.      
  172.        
  173.         $repository $doctrine->getRepository(Congre::class);
  174.         $article $repository->find($id);
  175.         if($article==Null)
  176.         {
  177.             return $this->redirectToRoute('index');
  178.         }
  179.         $repository $doctrine->getRepository(Carousel::class);
  180.         $carousel $repository->findBy(
  181.             ['carousel_congre_id' => $id]       
  182.        );
  183.        $repository $doctrine->getRepository(AttachmentCongre::class);
  184.        $gallerie $repository->findBy(
  185.            ['id' => $article->getId()]       
  186.       ); 
  187.       $repository $doctrine->getRepository(Etape::class);
  188.        $etape $repository->findBy(
  189.            ['etape_new_id' => $article->getId()]       
  190.       );     
  191.       $tab=[];
  192.       $tab2=[];
  193.       $tab3=[];
  194.       foreach($etape as $a)
  195.       {
  196.         //$arr = [ "id" => $bu->getId(), "name" => $bu->getName()];
  197.         array_push($tab,['Etape'=>$a->getId(),'posetion'=>$a->getPosetionEtape(),'decription'=>$a->getDescriptionEtape(),'timeN'=>$a->getTimeEtape(),'titre'=>$a->getTitreEtape()]);
  198.        
  199.         $anis=$a->getPosetionEtape();
  200.         if (!in_array($anis$tab2))
  201.             {
  202.   
  203.                array_push($tab3,$a->getPosetionEtape());
  204.   
  205.             }
  206.             array_push($tab2,$a->getPosetionEtape());
  207.       }
  208.       $repository $doctrine->getRepository(Speakers::class);
  209.        $speakers $repository->findBy(
  210.            ['evenement_speaker_id' => $id]       
  211.       ); 
  212.       $repository $doctrine->getRepository(Sponsored::class);
  213.       $sponsored $repository->findBy(
  214.           ['evenement_sponsored_id' =>$id]       
  215.      ); 
  216.      
  217.      $tab5=[];
  218.      $repository $doctrine->getRepository(PrixVariableCongre::class);
  219.      $etape $repository->findAll();    
  220.      foreach($etape as $a)
  221.      {
  222.          if($a->getEvenementprixId()==$id)
  223.          {
  224.              array_push($tab5,['id_evenement'=>$a->getEvenementprixId(),'id_prix'=>$a->getId(),'titre'=>$a->getName(),'category'=>$a->getCategory(),'prix'=>$a->getPrix()]);
  225.           
  226.          }
  227.         
  228.           
  229.      }
  230.     
  231.      
  232.     
  233.         return $this->render('congre/congre.html.twig',['article'=>$article,'gallerie'=>$gallerie,'carousel'=>$carousel,'tab'=>$tab,'tab3'=>$tab3,'speakers'=>$speakers,'sponsored'=>$sponsored,'id'=>$id,'tab5'=>$tab5]);
  234.     }
  235.     function autre(ManagerRegistry $doctrine,string $title,int $id)
  236.     {
  237.         
  238.         //$product = $doctrine->getRepository(Accueil::class)->find(4);
  239.         $ancien $doctrine->getRepository(EvenementAVenir::class)->find($id);
  240.     
  241.         $gallerie  $doctrine->getRepository(Attachment::class);
  242.         $carousel $gallerie->findBy(
  243.             ['evenement_id' => $ancien->getId()]       
  244.        );     
  245.         return $this->render('ancien/index.html.twig',['ancien'=>$ancien,'carousel'=>$carousel]);
  246.     }
  247.     public function detailautre(ManagerRegistry $doctrine,$id)
  248.     {  
  249.         if($id==51)
  250.         {
  251.             $session $this->requestStack->getSession();
  252.             if($session->has('email') && $session->has('password'))
  253.             {
  254.                 $repository $doctrine->getRepository(ConnexionUser::class);
  255.                 $user $repository->findOneBy(['email' => $session->get('email')]);
  256.                     
  257.                 $repository2 $doctrine->getRepository(EvenementFormulaire::class);
  258.                 $user2 $repository2->findBy(['user' => $user->getId(),'evenement'=>51]);
  259.                
  260.                 if(count($user2)==0)
  261.                 {
  262.                     return  new RedirectResponse("/formulaire/evenement/51"); 
  263.                 }
  264.               
  265.               
  266.             }
  267.         }
  268.         $autre=1;
  269.         $sesisonHas=0;
  270.         $sesisonHas49=0;
  271.         $evenementsprcifique=0;
  272.         if($id==49)
  273.         {
  274.             $evenementsprcifique=$id;
  275.         }
  276.         $session $this->requestStack->getSession();
  277.         if($session->has('email') && $session->has('password'))
  278.         {
  279.             $sesisonHas=1;
  280.         }
  281.         if($session->has('evenementspecifique'))
  282.         {
  283.             $sesisonHas49=1;
  284.         }
  285.     $tab=[];
  286.     $repository $doctrine->getRepository(PrixVariable::class);
  287.     $etape $repository->findAll();    
  288.     foreach($etape as $a)
  289.     {
  290.       
  291.         if($a->getEvenementprixId()==$id)
  292.         {
  293.             
  294.             array_push($tab,['id_evenement'=>$a->getEvenementprixId(),'id_prix'=>$a->getId(),'titre'=>$a->getName(),'category'=>$a->getCategory(),'prix'=>$a->getPrix()]);
  295.          
  296.         }
  297.        
  298.          
  299.     }
  300.        $nbevenement $repository->findBy(
  301.             ['id' => $id]);
  302.          $nbevenement=count($nbevenement);
  303.        
  304.           
  305.              $session->set('typesendpaiment',1);
  306.          
  307.         return $this->render('detailEvenement/index.html.twig',['sessionHas'=>$sesisonHas,'tab'=>$tab,'autre'=>$autre,'nb'=>$nbevenement,'evenementsprcifique'=>$evenementsprcifique,'sesisonHas49'=>$sesisonHas49]);
  308.     }
  309.     public function getall(ManagerRegistry $doctrine,$id)
  310.     {
  311.         $ancien=[];
  312.         $tab=[];
  313.         if($id==2)
  314.         {
  315.             $ancien $doctrine->getRepository(EvenementAVenir::class)->findAll();
  316.             foreach($ancien as $item)
  317.             {
  318.                 array_push($tab,['id'=>$item->getId(),'titre'=>$item->getTitre()]);
  319.               
  320.             }
  321.         }
  322.         else
  323.         {
  324.             $ancien $doctrine->getRepository(Congre::class)->findAll();
  325.             foreach($ancien as $item)
  326.             {
  327.                 array_push($tab,['id'=>$item->getId(),'titre'=>$item->getTitre()]);
  328.               
  329.             }
  330.         }
  331.         $response = new Response(json_encode($tab));
  332.         $response->headers->set('Content-Type''application/json');
  333.         return $response;
  334.     }
  335.     public function formulaireEvenement(ManagerRegistry $doctrine,Request $request,int $id)
  336.     {
  337.               $session $this->requestStack->getSession();
  338.             if(!$session->has('email') || !$session->has('password'))
  339.             {
  340.               
  341.                 return  new RedirectResponse("/evenement/autre/detail/51/register/"); 
  342.             }
  343.           
  344.                 $session $this->requestStack->getSession();
  345.                 if($session->has('email') && $session->has('password'))
  346.                 {
  347.                     $repository $doctrine->getRepository(ConnexionUser::class);
  348.                     $user $repository->findOneBy(['email' => $session->get('email')]);
  349.                         
  350.                     $repository2 $doctrine->getRepository(EvenementFormulaire::class);
  351.                     $user2 $repository2->findBy(['user' => $user->getId(),'evenement'=>51,'pay'=>true]);
  352.                      
  353.                     if(count($user2)>0)
  354.                     {
  355.                         return  new RedirectResponse("/evenement/autre/detail/51/register/"); 
  356.                     }
  357.                   
  358.                   
  359.                 }
  360.             
  361.         $erreur="";
  362.         $verif=true;
  363.         $messageSuccess="";
  364.         $entityManager $doctrine->getManager();
  365.         $article = new EvenementFormulaire();
  366.         $form $this->createForm(formulaireEvenementType::class, $article);
  367.         $form->handleRequest($request);
  368.                 if ($form->isSubmitted() && $form->isValid()) {
  369.                 if($article->getType() == "Etudiant")
  370.                 {
  371.                     $erreur="C'est exclusif pour les professionnels.";
  372.                     $verif=false;
  373.                 }
  374.                 if(Empty($article->getNom()))
  375.                 {
  376.                 $erreur.="Nom invalide <br>";
  377.                 $verif=false;
  378.                 }
  379.                 else if(strlen($article->getNom())<|| strlen($article->getNom())>30)
  380.                 {
  381.                     $erreur.="Nom invalide <br>";
  382.                     $verif=false;
  383.                 }
  384.                 else
  385.                 {
  386.                     $verif=true;
  387.                 }
  388.                 if(Empty($article->getPrenom()))
  389.                 {
  390.                 $erreur.="Prénom invalide <br>";
  391.                 $verif=false;
  392.                 }
  393.                 else if(strlen($article->getPrenom())<|| strlen($article->getPrenom())>30)
  394.                 {
  395.                     $erreur.="Prénom invalide <br>";
  396.                     $verif=false;
  397.                 }
  398.                 /**** verif email */
  399.                 if(strlen($article->getEmail())<|| strlen($article->getEmail())>30)
  400.                 {
  401.                     $erreur.="Email invalide <br>";
  402.                     $verif=false;
  403.                 }
  404.                 else
  405.                 {
  406.                     $verif=true;
  407.                 }
  408.                 /***** */
  409.                 if(Empty($article->getPhone()))
  410.                 {
  411.                 $erreur.="Prénom invalide <br>";
  412.                 $verif=false;
  413.                 }
  414.                 else if(strlen($article->getPhone())<|| strlen($article->getPhone())>11)
  415.                 {
  416.                     $erreur.="Numéro de téléphone invalide <br>";
  417.                     $verif=false;
  418.                 }
  419.                 if(strlen($erreur)==0)
  420.                 {
  421.                     if($id!=51)
  422.                     {
  423.                         $erreur"Erreur lors de l'inscription";
  424.                     }else
  425.                     {
  426.                         $repository $doctrine->getRepository(EvenementFormulaire::class);
  427.                         $p $repository->findBy(
  428.                           ['phone' => $article->getPhone(),
  429.                           'evenement'=>51]  
  430.                   );
  431.                   $repository $doctrine->getRepository(EvenementFormulaire::class);
  432.                 
  433.                   $pp $repository->findBy(
  434.                     [
  435.                         'nom' => $article->getNom(),
  436.                         'prenom' => $article->getPrenom(),
  437.                         'evenement'=>51
  438.                         
  439.                     ]
  440.                 );
  441.                         if(count($p)>|| count($pp)>0)
  442.                         {
  443.                         $erreur.= "Vous êtes déjà inscrit à un événement.";
  444.                         }
  445.                         else
  446.                         {
  447.                             $repository $doctrine->getRepository(EvenementFormulaire::class);
  448.                             $evenements $repository->findBy(['evenement' => 51]);
  449.                             $count=0;
  450.                             if($evenements)
  451.                             {
  452.                                 $count count($evenements);
  453.                             }
  454.                           
  455.                             if($count>40)
  456.                             {
  457.                                 $erreur.= "Nous avons dépassé le nombre limite d'inscriptions. Au revoir.";
  458.                             
  459.                             }
  460.                             else if($count>32 && $count <= 60 )
  461.                                 {
  462.                                     $article->setEvenement($id);
  463.                                    
  464.                                     $entityManager->persist($article);
  465.                                     
  466.                                     $entityManager->flush();
  467.                                     $erreur="<center><b>Cher Participant,</b><center> merci pour l'intérêt que vous portez à vous inscrire. Actuellement vous êtes en liste d'attente , nous vous tiendrons informés dès qu'une place se liberera 
  468.                                     <br>Merci pour votre intérêt.
  469.                                    ";
  470.                                 }
  471.                             else
  472.                             {
  473.                                 $repository $doctrine->getRepository(ConnexionUser::class);
  474.                                 $user $repository->findOneBy(['email' => $session->get('email')]);
  475.                                     
  476.                                 
  477.                                 $article->setUser($user->getId());
  478.                                 $article->setEvenement($id);
  479.                                 $article->setPay(1);
  480.                                 $entityManager->persist($article);
  481.                                 $entityManager->flush();
  482.                                 $messageSuccess="Cher Participant, Votre  pré-inscription est effectuée avec succès. 
  483.                                 Vous avez 5 jours pour effectuer le paiement en ligne et valider votre inscription.
  484.                                 Merci
  485.                                 ";
  486.                                 $session->set('message-success'$messageSuccess);
  487.                                 return  new RedirectResponse("/formulaire/evenement/51"); 
  488.                               
  489.                             }
  490.                          
  491.             
  492.                         }
  493.                     }
  494.                 
  495.                  /* $entityManager->persist($article);
  496.                   $entityManager->flush();*/
  497.                 }
  498.                 
  499.                 
  500.                 }
  501.                 
  502.         return $this->render('formulaireevenement/formulaire.html.twig', array(
  503.             'form' => $form->createView(),'erreur'=>$erreur,'message'=>$messageSuccess,'id'=>$id
  504.         ));
  505.     }
  506.     public function formulaireEvenementPost()
  507.     {
  508.         echo "hello";exit();
  509.     }
  510.     public function formulaireEvenementCongreDeuxType(ManagerRegistry $doctrine,Request $request)
  511.     {
  512.        
  513.         $type=$_POST['id'];
  514.         if($type==|| $type==2)
  515.         {
  516.             $session $this->requestStack->getSession();
  517.             $session->set('typesendpaiment'$type);
  518.         }
  519.         $erreur="";
  520.         $messageSuccess="1";
  521.                 $err='{"erreur": "'.$erreur.'", "message":"'.$messageSuccess.'"}';
  522.         echo $err;exit();
  523.       
  524.     }
  525.     public function programme()
  526.     {
  527.         return $this->redirect('https://programme.astp.tn/login');
  528.     }
  529.     public function programmePdf($id)
  530.     {
  531.             if($id=='-18.pdf' || $id=='18-35.pdf' || $id='+35.pdf')
  532.             {
  533.                 return $this->render('document/afficher_pdf.html.twig', array(
  534.                     'id'=>$id
  535.                 ));
  536.             }else {
  537.             }
  538.     }
  539.   
  540. }