src/Controller/EvenementController.php line 530

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