src/Controller/Backend/InscriptionController.php line 100

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Backend;
  3. use App\Entity\Inscription;
  4. use App\Form\Inscription\InscriptionType;
  5. use App\Repository\CongresRepository;
  6. use App\Repository\EventRepository;
  7. use App\Repository\InscriptionRepository;
  8. use phpDocumentor\Reflection\PseudoTypes\False_;
  9. use phpDocumentor\Reflection\Types\Null_;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Symfony\Component\HttpFoundation\JsonResponse;
  16. use Knp\Component\Pager\PaginatorInterface;
  17. // /**
  18. //  * @Route("/inscription")
  19. //  */
  20. class InscriptionController extends AbstractController
  21. {
  22.     /**
  23.      * @Route("admin/inscription", name="app_inscription_index", methods={"GET"})
  24.      */
  25.     public function index(InscriptionRepository $inscriptionRepository, PaginatorInterface $paginator,Request $request): Response
  26.     {
  27.         $inscription= $paginator->paginate($inscriptionRepository->findAll([],['id'=>'DESC']), $request->query->getInt('page', 1),20 );
  28.        
  29.         return $this->render('backend/inscription/index.html.twig', [
  30.             'inscriptions' =>$inscription
  31.         ]);
  32.     }
  33.       /**
  34.      * @Route("admin/inscription/search", name="search_incription", methods={"GET"})
  35.      */
  36.     public function searchIncription(InscriptionRepository $inscriptionRepository,Request $request)
  37.     {
  38.         $searchItem = $request->request->get('searchTerm');
  39.         $resultats= $inscriptionRepository->searchByAllColumns($searchItem);
  40.         return new JsonResponse($resultats);
  41.         // return $this->render('backend/inscription/search_results.html.twig', [
  42.         //     'resultat' =>$resultats
  43.         // ]);
  44.     }
  45.     /**
  46.      * @Route("admin/accepterInscription", name="accepterInscription", methods={"POST"})
  47.      */
  48.     public function accepterInscription(Request $request, InscriptionRepository $inscriptionRepository, EntityManagerInterface $em){
  49.         $id = $request->request->get('id');
  50.         $inscription = $inscriptionRepository->findOneBy(['id'=>$id]);
  51.         $inscription->setVerified("Accepter");
  52.         $em->persist($inscription);
  53.         $em->flush();
  54.         $titreEvent="";
  55.         $titleEvent="";
  56.         if (!empty($inscription->getEvent())){
  57.             $titreEvent=$inscription->getEvent()->getTitre();
  58.             $titleEvent=$inscription->getEvent()->getTitle();
  59.         }
  60.         elseif (!empty($inscription->getCongres())){
  61.             $titreEvent=$inscription->getCongres()->getLabel();
  62.             $titleEvent=$inscription->getCongres()->getLabelEn();
  63.         }
  64.         $to= $inscription->getEmail();
  65.         $subject = "ATU - Registration";
  66.         $headers = "MIME-Version: 1.0\r\n";
  67.         $headers .= "Content-type: text/html; charset=UTF-8\r\n";
  68.         $headers .= 'From: contact@urotunisia.com' . "\r\n" .
  69.         'Reply-To: contact@urotunisia.com' . "\r\n" .
  70.         'X-Mailer: PHP/' . phpversion();
  71.         // $template= new TwigEngine();
  72.         $message = "<div align='center'><img src='http://urotunisia.com/front-assets/assets/img/logo1.png' width='40%' class='img-responsive center-block' align='center'></div><h4>Dear Dr !</h4><p>Your registration to the ".$titleEvent."<br><strong> is confirmed</strong><br>To print your badge go to <a href='http://urotunisia.com/event/badge/".$inscription->getId()."' target='_blank'>http://urotunisia.com/event/badge/".$inscription->getId()."</a></p>
  73.         <p>Best regards, <br />Le secrétariat de l'ATU</p><br><br>
  74.         <h4>Cher Dr !</h4><p>Votre inscription à la ".$titreEvent." <br> <strong>est confirmée</strong><br>Pour imprimer votre badge allez a <a href='http://urotunisia.com/event/badge/".$inscription->getId()."' target='_blank'>http://urotunisia.com/event/badge/".$inscription->getId()."</a></p>
  75.         <p>Bien à vous, <br />Le secrétariat de l'ATU</p>";
  76.         mail($to, $subject, $message, $headers);
  77.         
  78.         return new JsonResponse('inscriptionAccepter');
  79.     }
  80.     /**
  81.      * @Route("admin/refuserInscription", name="refuserInscription", methods={"POST"})
  82.      */
  83.     public function refuserInscription(Request $request, InscriptionRepository $inscriptionRepository, EntityManagerInterface $em){
  84.         $id = $request->request->get('id');
  85.         $inscription = $inscriptionRepository->findOneBy(['id'=>$id]);
  86.         $inscription->setVerified("Refuser");
  87.         $em->persist($inscription);
  88.         $em->flush();
  89.         
  90.         return new JsonResponse('inscriptionRefuser');
  91.     }
  92.     /**
  93.      * @Route("inscription/{type}/{id}/new", name="app_inscription_new", methods={"GET", "POST"})
  94.      */
  95.     public function new(Request $request, InscriptionRepository $inscriptionRepository, $id,$type,EventRepository $eventRepository, CongresRepository $congresRepository): Response
  96.     {
  97.         $inscription = new Inscription();
  98.         
  99.         $form = $this->createForm(InscriptionType::class, $inscription);
  100.         $form->handleRequest($request);
  101.         
  102.         if ($type=='event'){
  103.             $event= $eventRepository->findOneBy(['id'=>$id]);
  104.             $congres=Null;
  105.         }
  106.         elseif($type=='congres'){
  107.             $congres = $congresRepository->findOneBy(['id'=>$id]);
  108.             $event= NUll;
  109.         }
  110.         
  111.         if ($form->isSubmitted() && $form->isValid()) {
  112.             $titreEvent="";
  113.             $titleEvent="";
  114.             if ($type=='event'){
  115.                 $inscription->setEvent($event);
  116.                 $inscription->setRole("Participant");
  117.                 $titreEvent=$event->getTitre();
  118.                 $titleEvent=$event->getTitle();
  119.             }
  120.            
  121.             elseif($type=='congres'){
  122.                 $inscription->setCongres($congres);
  123.                 $titreEvent=$congres->getLabel();
  124.                 $titleEvent=$congres->getLabelEn();
  125.             }
  126.             
  127.             $inscription->setType($type);
  128.             $inscription->setDate(new \DateTime());
  129.             $inscription->setVerified("en attente");
  130.            
  131.             $inscriptionRepository->add($inscription, true);
  132.             $to      = $inscription->getEmail();
  133.             $subject = "ATU - Registration";
  134.             $headers = "MIME-Version: 1.0\r\n";
  135.             $headers .= "Content-type: text/html; charset=UTF-8\r\n";
  136.             $headers .= 'From: contact@urotunisia.com' . "\r\n" .
  137.             'Reply-To: contact@urotunisia.com' . "\r\n" .
  138.             'X-Mailer: PHP/' . phpversion();
  139.             // $template= new TwigEngine();
  140.             $message = "<div align='center'><img src='http://urotunisia.com/front-assets/assets/img/logo1.png' width='40%' class='img-responsive center-block' align='center'></div><h4>Dear Dr !</h4><p>Thank you for your registration to ".$titleEvent." You will receive a confirmation mail after validation</p>
  141.             <p>Best regards, <br />Le secrétariat de l'ATU</p><br><br>
  142.             <h4>Cher Dr !</h4><p>Nous vous remercions pour votre inscription à la ".$titreEvent." <br>Vous recevez un mail de confirmation après validation</p>
  143.             <p>Bien à vous, <br />Le secrétariat de l'ATU</p>";
  144.             mail($to, $subject, $message, $headers);
  145.             if($request->getLocale()=='fr'){
  146.             $this->addFlash('success','Nous vous remercions pour votre inscription à la '.$titreEvent.'. Vous recevrez un courrier');
  147.         }
  148.         elseif($request->getLocale()=='en'){
  149.             $this->addFlash('success','Thank  you for registering in '.$titleEvent.'. You will receive a mail');
  150.         }
  151.             return $this->redirectToRoute('congres_nationaux');
  152.         }
  153.         return $this->renderForm('backend/inscription/new.html.twig', [
  154.             'inscription' => $inscription,
  155.             'form' => $form,'event'=>$event,'congres'=>$congres,'type'=>$type
  156.         ]);
  157.     }
  158.     /**
  159.      * @Route("admin/inscription/{id}", name="app_inscription_show", methods={"GET"})
  160.      */
  161.     public function show(Inscription $inscription): Response
  162.     {
  163.         return $this->render('backend/inscription/show.html.twig', [
  164.             'inscription' => $inscription,
  165.         ]);
  166.     }
  167.     /**
  168.      * @Route("admin/inscription/{id}/edit", name="app_inscription_edit", methods={"GET", "POST"})
  169.      */
  170.     public function edit(Request $request, Inscription $inscription, InscriptionRepository $inscriptionRepository): Response
  171.     {
  172.         $form = $this->createForm(InscriptionType::class, $inscription);
  173.         $form->handleRequest($request);
  174.         if ($form->isSubmitted() && $form->isValid()) {
  175.             $inscriptionRepository->add($inscription, true);
  176.             return $this->redirectToRoute('app_inscription_index', [], Response::HTTP_SEE_OTHER);
  177.         }
  178.         return $this->renderForm('backend/inscription/edit.html.twig', [
  179.             'inscription' => $inscription,
  180.             'form' => $form,
  181.         ]);
  182.     }
  183.     /**
  184.      * @Route("admin/inscription/{id}", name="app_inscription_delete", methods={"POST"})
  185.      */
  186.     public function delete(Request $request, Inscription $inscription, InscriptionRepository $inscriptionRepository): Response
  187.     {
  188.         // if ($this->isCsrfTokenValid('delete'.$inscription->getId(), $request->request->get('_token'))) {
  189.             $inscriptionRepository->remove($inscription, true);
  190.         // }
  191.         return $this->redirectToRoute('app_inscription_index', [], Response::HTTP_SEE_OTHER);
  192.     }
  193.     /**
  194.      * @Route("/supprimerInscription/{id}", name="supprimer_inscription")
  195.      */
  196.     public function supprimer($id, InscriptionRepository $inscriptionRepository)
  197.     {
  198.         $inscription = $inscriptionRepository->find($id);
  199.         $inscriptionRepository->remove($inscription);
  200.         return $this->redirectToRoute('app_inscription_index');
  201.     }
  202. }