예제 #1
0
 public function saisonBaseAction(Hotel $hotel)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $this->getRequest()->getSession();
     $request = $this->getRequest();
     if ($hotel->getFicheTechnique() == null) {
         $session->getFlashBag()->add('info', "Votre devez remplire la fiche technique");
         return $this->redirect($this->generateUrl("fiche_technique", array('id' => $hotel->getId())));
     }
     if ($hotel->getSaisonBase() != NULL) {
         $saison = $hotel->getSaisonBase();
     } else {
         $saison = new Saison();
     }
     $form = $this->createForm(new SaisonType(), $saison);
     $form->add("ArrBase", "entity", array('class' => 'BackHotelTunisieBundle:Arrangement', 'query_builder' => function (EntityRepository $er) use($hotel) {
         return $er->createQueryBuilder('a')->join("a.hotels", "h")->where('h.id = :id')->setParameter('id', $hotel->getId());
     }));
     if ($request->isMethod("POST")) {
         $form->bind($request);
         if ($form->isValid()) {
             $saison = $form->getData();
             $hotel->setSaisonBase($saison);
             $em->persist($saison->setLibelle("Saison de base"));
             foreach ($saison->getArrangements() as $arr) {
                 if ($arr->getArrangement()->getId() == $saison->getArrBase()->getId()) {
                     $em->remove($arr);
                 }
             }
             $em->persist($hotel);
             $em->flush();
             $session->getFlashBag()->add('success', " Votre saison de base a été modifié avec succées ");
             return $this->redirect($this->generateUrl("saison_base", array('id' => $hotel->getId())));
         }
     }
     return $this->render('BackHotelTunisieBundle:SaisonBase:base.html.twig', array('hotel' => $hotel, 'form' => $form->createView()));
 }