src/Controller/JoursFermeturesController.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\JoursFermetures;
  4. use App\Entity\Tranches;
  5. use App\Form\JoursFermeturesType;
  6. use App\Repository\JoursFermeturesRepository;
  7. use App\Repository\AvocatsRepository;
  8. use App\Repository\LieuxRepository;
  9. use App\Repository\TranchesRepository;
  10. use Datetime;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. /**
  16.  * @Route("/jours/fermetures")
  17.  */
  18. class JoursFermeturesController extends AbstractController
  19. {
  20.     /**
  21.      * @Route("/", name="app_jours_fermetures_index", methods={"GET"})
  22.      */
  23.     public function index(JoursFermeturesRepository $joursFermeturesRepository): Response
  24.     {
  25.         return $this->render('jours_fermetures/index.html.twig', [
  26.             'jours_fermetures' => $joursFermeturesRepository->findAll(),
  27.         ]);
  28.     }
  29.     /**
  30.      * @Route("/new/{lieu}/{avocat}", name="app_jours_fermetures_new", methods={"GET", "POST"})
  31.      */
  32.     public function new(Request $request$lieu$avocatTranchesRepository $tranchesRepoJoursFermeturesRepository $joursFermeturesRepositoryAvocatsRepository $avocatsRepo,LieuxRepository $lieuxRepo): Response
  33.     {
  34.         $joursFermeture = new JoursFermetures();
  35.         $form $this->createForm(JoursFermeturesType::class, $joursFermeture);
  36.         $form->handleRequest($request);
  37.     
  38.       
  39.             $lieuGet $lieu;
  40.         
  41.             $avocatGet $avocat;
  42.         $joursOuvertures $joursFermeturesRepository->findBy(array('Avocats'=>$avocatGet,'Lieux'=>$lieu),array('Date'=>'asc'));
  43.      
  44.         if ($form->isSubmitted() && $form->isValid()) {
  45.             $joursOuverturesExist $joursFermeturesRepository->findOneBy(array('Avocats'=>$avocatGet,'Lieux'=>$lieu,'Date'=>$joursFermeture->getDate()));
  46.           
  47.             if(empty($joursOuverturesExist))
  48.             {
  49.                 if(!empty($_POST['lieux']))
  50.                 {
  51.                     $lieu $lieuxRepo->findOneById($_POST['lieux']);
  52.                     $joursFermeture->setLieux($lieu);
  53.                 }
  54.                 if(!empty($_POST['avocats']))
  55.                 {
  56.                     $avocat $avocatsRepo->findOneById($_POST['avocats']);
  57.                     $joursFermeture->setAvocats($avocat);
  58.                 }
  59.                 $joursFermeture->setAvocats($this->getUser()->getAvocats());
  60.                 $joursFermeturesRepository->add($joursFermeturetrue);
  61.                 
  62.                 
  63.                 $start strtotime($joursFermeture->getDate()->format('Y-m-d'). ' 06:00:00');
  64.                 $end strtotime($joursFermeture->getDate()->format('Y-m-d'). ' 22:00:00');
  65.                 for ($i $start$i <= $end$i $i+1800) {
  66.                     $tranche = new Tranches();
  67.                     $d date('Y-m-d H:i:s',$i);
  68.                     $tranche->setDate(new Datetime($d));
  69.                     $tranche->setOuvert(false);
  70.                     $tranche->setJoursFermetures($joursFermeture);
  71.                     $tranche->setOccupe(false);
  72.                     $tranchesRepo->add($tranche,true);
  73.                     
  74.                 }
  75.                 return $this->redirectToRoute('app_jours_fermetures_new', ['lieu'=>$lieuGet,'avocat'=>$avocatGet], Response::HTTP_SEE_OTHER);
  76.             }
  77.             else
  78.             {
  79.                 return $this->redirectToRoute('app_jours_fermetures_new', ['lieu'=>$lieuGet,'avocat'=>$avocatGet,'erreur'=>'exist'], Response::HTTP_SEE_OTHER);
  80.             }
  81.            
  82.         }
  83.         return $this->renderForm('jours_fermetures/new.html.twig', [
  84.             'jours_fermeture' => $joursFermeture,
  85.             'form' => $form,
  86.             'avocats'=>$avocatsRepo->findAll(),
  87.             'lieux'=>$lieuxRepo->findAll(),
  88.             'lieuGet'=>$lieuGet,
  89.             'avocatGet'=>$avocatGet,
  90.             'joursOuvertures'=>$joursOuvertures
  91.         ]);
  92.     }
  93.     /**
  94.      * @Route("/{id}", name="app_jours_fermetures_show", methods={"GET"})
  95.      */
  96.     public function show(JoursFermetures $joursFermeture): Response
  97.     {
  98.         return $this->render('jours_fermetures/show.html.twig', [
  99.             'jours_fermeture' => $joursFermeture,
  100.         ]);
  101.     }
  102.     /**
  103.      * @Route("/{id}/edit", name="app_jours_fermetures_edit", methods={"GET", "POST"})
  104.      */
  105.     public function edit(Request $requestJoursFermetures $joursFermetureJoursFermeturesRepository $joursFermeturesRepository): Response
  106.     {
  107.         $form $this->createForm(JoursFermeturesType::class, $joursFermeture);
  108.         $form->handleRequest($request);
  109.         if ($form->isSubmitted() && $form->isValid()) {
  110.             $joursFermeturesRepository->add($joursFermeturetrue);
  111.             return $this->redirectToRoute('app_jours_fermetures_index', [], Response::HTTP_SEE_OTHER);
  112.         }
  113.         return $this->renderForm('jours_fermetures/edit.html.twig', [
  114.             'jours_fermeture' => $joursFermeture,
  115.             'form' => $form,
  116.         ]);
  117.     }
  118.     /**
  119.      * @Route("/{id}", name="app_jours_fermetures_delete", methods={"POST"})
  120.      */
  121.     public function delete(Request $requestJoursFermetures $joursFermetureJoursFermeturesRepository $joursFermeturesRepository): Response
  122.     {
  123.         if ($this->isCsrfTokenValid('delete'.$joursFermeture->getId(), $request->request->get('_token'))) {
  124.             $joursFermeturesRepository->remove($joursFermeturetrue);
  125.         }
  126.         return $this->redirectToRoute('app_jours_fermetures_index', [], Response::HTTP_SEE_OTHER);
  127.     }
  128. }