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())); }