Exemplo n.º 1
0
 public function GenererAction(Hotel $hotel)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $this->getRequest()->getSession();
     $data = array();
     $form = $this->createFormBuilder()->add('libelle', 'text')->add('type', 'choice', array('choices' => array('1' => 'Saison', '2' => 'Promotion', '4' => 'Contingent', '3' => 'Amicales'), 'required' => TRUE, 'empty_value' => 'Type de saison', 'empty_data' => NULL))->add('saisons', 'entity', array('class' => 'BackHotelTunisieBundle:Saison', 'query_builder' => function (EntityRepository $er) use($hotel) {
         return $er->createQueryBuilder('s')->where('s.hotel = :id')->setParameter('id', $hotel->getId())->orderBy('s.id', 'desc');
     }, 'property' => 'contratLibelle', 'required' => FALSE, 'empty_value' => 'Saison de base', 'empty_data' => NULL))->add('contrats', 'entity', array('class' => 'BackHotelTunisieBundle:Contrat', 'query_builder' => function (EntityRepository $er) use($hotel) {
         return $er->createQueryBuilder('c')->where('c.hotel = :id')->setParameter('id', $hotel->getId())->orderBy('c.id', 'desc');
     }, 'required' => TRUE, 'attr' => array('required' => TRUE)))->getForm();
     $request = $this->getRequest();
     if ($request->isMethod("POST")) {
         $form->submit($request);
         $data = $form->getData();
         if ($data['saisons'] == NULL) {
             $Saison = $hotel->getSaisonBase();
         } else {
             $Saison = $data['saisons'];
         }
         $newSaison = clone $Saison;
         $newSaison->setContrat($data['contrats']);
         $newSaison->setHotelBase(NULL);
         $newSaison->setHotel($hotel);
         $newSaison->setLibelle($data['libelle']);
         $newSaison->setType($data['type']);
         $newSaison->setCreated(new \DateTime());
         $em->persist($newSaison);
         foreach ($Saison->getArrangements() as $entity) {
             $newEntity = clone $entity;
             $em->persist($newEntity->setSaison($newSaison));
         }
         foreach ($Saison->getAutresReductions() as $entity) {
             $newEntity = clone $entity;
             $em->persist($newEntity->setSaison($newSaison));
         }
         foreach ($Saison->getAutresSupplements() as $entity) {
             $newEntity = clone $entity;
             $em->persist($newEntity->setSaison($newSaison));
         }
         foreach ($Saison->getChambres() as $entity) {
             $newEntity = clone $entity;
             $em->persist($newEntity->setSaison($newSaison));
         }
         foreach ($Saison->getSuppChambres() as $entity) {
             $newEntity = clone $entity;
             $em->persist($newEntity->setSaison($newSaison));
         }
         foreach ($Saison->getVues() as $entity) {
             $newEntity = clone $entity;
             $em->persist($newEntity->setSaison($newSaison));
         }
         $em->flush();
         $session->getFlashBag()->add('success', " Votre saison a été générer avec succées ");
         return $this->redirect($this->generateUrl("PeriodeSaison", array('id' => $newSaison->getId())));
     }
     return $this->render('BackHotelTunisieBundle:Saisons:generer.html.twig', array('hotel' => $hotel, 'form' => $form->createView()));
 }
Exemplo n.º 2
0
 public function saisonAutreReducAction(Hotel $hotel, $id2)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $this->getRequest()->getSession();
     if ($id2 == null) {
         $saisonAutreReduc = new SaisonAutreReduc();
     } else {
         $saisonAutreReduc = $em->getRepository("BackHotelTunisieBundle:SaisonAutreReduc")->find($id2);
     }
     $saisonAutreReduc->setSaison($hotel->getSaisonBase());
     $form = $this->createForm(new SaisonAutreReducType(), $saisonAutreReduc);
     $request = $this->getRequest();
     if ($request->isMethod("POST")) {
         $form->submit($request);
         if ($form->isValid()) {
             $saisonAutreReduc = $form->getData();
             $em->persist($saisonAutreReduc);
             $em->flush();
             $session->getFlashBag()->add('success', " Votre saison de base a été modifié avec succées ");
             return $this->redirect($this->generateUrl("saison_autres_reduc", array('id' => $hotel->getId())));
         }
     }
     return $this->render('BackHotelTunisieBundle:SaisonBase:autre_reduc.html.twig', array('hotel' => $hotel, 'form' => $form->createView(), 'saisonAutreReduc' => $saisonAutreReduc));
 }