src/Controller/EvenementController.php line 317

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