src/Controller/EvenementsController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Evenements;
  4. use App\Form\EvenementsType;
  5. use App\Repository\EvenementsRepository;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  11. use App\Repository\ReservationsRepository;
  12. /**
  13.  * @Route("/evenements")
  14.  * @Security("is_granted('ROLE_ADMIN')")
  15.  */
  16. class EvenementsController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/", name="app_evenements_index", methods={"GET"})
  20.      */
  21.     public function index(EvenementsRepository $evenementsRepository,ReservationsRepository $reservations): Response
  22.     {
  23.         $events = array();
  24.         $ev $evenementsRepository->findBy(array('Archive'=>0));
  25.         $i=-1;
  26.         foreach($ev as $res2)
  27.         {
  28.             $i++;
  29.             if(empty($res2->getEvenements()))
  30.             {
  31.                 $type 'billet';
  32.             }
  33.             else
  34.             {
  35.                 $type 'abo';
  36.             }
  37.             
  38.             // CALCUL DES PLACES A LUNITE
  39.             $resa $reservations->findBy(array('Evenements'=>$res2));
  40.             $pRes 0;
  41.             foreach($resa as $res)
  42.             {
  43.                 $pRes $pRes $res->getNbPlaces();
  44.             }
  45.              // CALCUL DES PLACES POUR L'ABO
  46.             if(!empty($res2->getEvenements()))
  47.             {
  48.                 $resa $reservations->findBy(array('Evenements'=>$res2->getEvenements()));
  49.               
  50.                 foreach($resa as $res)
  51.                 {
  52.                     $pRes $pRes $res->getNbPlaces();
  53.                 }
  54.             }
  55.             
  56.             
  57.             $pDispo $res2->getNbPlaces() - $pRes;
  58.             
  59.             
  60.             
  61.             
  62.             
  63.                 $events[$i]['NbPlaces'] =  $pDispo;
  64.                 $events[$i]['id'] = $res2->getId(); 
  65.                 $events[$i]['Titre'] = $res2->getTitre();
  66.                 $events[$i]['Image'] = $res2->getImage(); 
  67.                 $events[$i]['Date'] = $res2->getDate(); 
  68.                 $events[$i]['billeterie'] = $res2->getBilleterie(); 
  69.                 $events[$i]['CategoriesEvenements'] = $res2->getCategoriesEvenements()->getLibelle(); 
  70.                 
  71.                 
  72.         }
  73.        
  74.         return $this->render('evenements/index.html.twig', [
  75.             'evenements' => $events,
  76.         ]);
  77.     }
  78.     /**
  79.      * @Route("/new", name="app_evenements_new", methods={"GET", "POST"})
  80.      */
  81.     public function new(Request $requestEvenementsRepository $evenementsRepository): Response
  82.     {
  83.         $evenement = new Evenements();
  84.         $form $this->createForm(EvenementsType::class, $evenement);
  85.         $form->handleRequest($request);
  86.         if ($form->isSubmitted() && $form->isValid()) {
  87.             $file $form->get('Image')->getData();
  88.             if($file != 'ok') {
  89.                 $path '/';
  90.                 $fileName uniqid().'-'.$file->getClientOriginalName();
  91.                 $file->move(
  92.                     $this->getParameter('uploads_directory').$path,
  93.                     $fileName
  94.                 );
  95.              
  96.                 $evenement->setImage($fileName);
  97.             }
  98.             $evenement->setArchive(0);
  99.             $evenementsRepository->add($evenementtrue);
  100.             return $this->redirectToRoute('app_evenements_index', [], Response::HTTP_SEE_OTHER);
  101.         }
  102.         return $this->renderForm('evenements/new.html.twig', [
  103.             'evenement' => $evenement,
  104.             'image'=>'',
  105.             'form' => $form,
  106.         ]);
  107.     }
  108.     /**
  109.      * @Route("/{id}", name="app_evenements_show", methods={"GET"})
  110.      */
  111.     public function show(Evenements $evenement): Response
  112.     {
  113.         return $this->render('evenements/show.html.twig', [
  114.             'evenement' => $evenement,
  115.         ]);
  116.     }
  117.     /**
  118.      * @Route("/{id}/edit", name="app_evenements_edit", methods={"GET", "POST"})
  119.      */
  120.     public function edit(Request $requestEvenements $evenementEvenementsRepository $evenementsRepository): Response
  121.     {
  122.         $oldImage $evenement->getImage();
  123.         $form $this->createForm(EvenementsType::class, $evenement);
  124.         $form->handleRequest($request);
  125.         if ($form->isSubmitted() && $form->isValid()) {
  126.             $file $form->get('Image')->getData();
  127.             if($file != 'ok') {
  128.                 $path '/';
  129.                 $fileName uniqid().'-'.$file->getClientOriginalName();
  130.                 $file->move(
  131.                     $this->getParameter('uploads_directory').$path,
  132.                     $fileName
  133.                 );
  134.              
  135.                 $evenement->setImage($fileName);
  136.             }
  137.             else
  138.             {
  139.                 $evenement->setImage($oldImage);
  140.             }
  141.             $evenementsRepository->add($evenementtrue);
  142.             return $this->redirectToRoute('app_evenements_index', [], Response::HTTP_SEE_OTHER);
  143.         }
  144.         return $this->renderForm('evenements/edit.html.twig', [
  145.             'evenement' => $evenement,
  146.             'image'=>$evenement->getImage(),
  147.             'form' => $form,
  148.         ]);
  149.     }
  150.     /**
  151.      * @Route("/{id}", name="app_evenements_delete", methods={"POST"})
  152.      */
  153.     public function delete(Request $requestEvenements $evenementEvenementsRepository $evenementsRepository): Response
  154.     {
  155.         if ($this->isCsrfTokenValid('delete'.$evenement->getId(), $request->request->get('_token'))) {
  156.             $evenement->setArchive(1);
  157.             $evenementsRepository->add($evenementtrue);
  158.         }
  159.         return $this->redirectToRoute('app_evenements_index', [], Response::HTTP_SEE_OTHER);
  160.     }
  161. }