public function saveReservation(Periode $periode, Client $client, $data, $source)
 {
     $supplements = array();
     $coordoonnes = array($client->getNomPrenom(), $client->getTel1(), $client->getTel2(), $client->getAdresse());
     $tarifCommercial = $this->em->getRepository('BackCommercialBundle:Tarif')->find(1);
     $reservation = new Reservation();
     $reservation->setClient($client)->setCoordonnees($coordoonnes)->setEtat(1)->setPeriode($periode)->setProgramme($periode->getProgramme());
     if ($tarifCommercial && $tarifCommercial->getTimbre()) {
         $reservation->setTimbre($tarifCommercial->getMontantTimbre());
     }
     if ($source == 'frontoffice') {
         $reservation->setFrontOffice(TRUE);
     }
     $this->em->persist($reservation);
     $x = 0;
     $nbrAdulte = $data['adultes'];
     $nbrEnfant = $data['enfants'];
     for ($i = 1; $i <= $nbrAdulte; $i++) {
         $reservationPersonne = new ReservationPersonne();
         $reservationPersonne->setReservationA($reservation)->setNomPrenom($data['Anom_' . $i]);
         $this->em->persist($reservationPersonne);
         $reservationLigne = new ReservationLigne();
         $reservationLigne->setPersonne($reservationPersonne)->setLibelle('Prix Adulte')->setCode('PrixAdulte')->setAchat($periode->getPrixAdulteAchat())->setVente($periode->getPrixAdulteVente());
         $this->em->persist($reservationLigne);
         foreach ($periode->getSupplements() as $supp) {
             if ($supp->getObligatoire() || isset($data['supplement' . $supp->getId()])) {
                 if ($i == 1) {
                     $supplements[] = $supp->getId();
                 }
                 $reservationLigne = new ReservationLigne();
                 $reservationLigne->setPersonne($reservationPersonne)->setLibelle($supp->getLibelle())->setCode('SupplementAdulte')->setAchat($supp->getAdulteAchat())->setVente($supp->getAdulteVente());
                 $this->em->persist($reservationLigne);
             }
         }
     }
     for ($i = 1; $i <= $nbrEnfant; $i++) {
         $reservationPersonne = new ReservationPersonne();
         $reservationPersonne->setReservationE($reservation)->setNomPrenom($data['Enom_' . $i])->setAge($data['Eage_' . $i]);
         $this->em->persist($reservationPersonne);
         $reservationLigne = new ReservationLigne();
         $reservationLigne->setPersonne($reservationPersonne)->setLibelle('Prix Enfant')->setCode('PrixEnfant')->setAchat($periode->getPrixEnfantAchat())->setVente($periode->getPrixEnfantVente());
         $this->em->persist($reservationLigne);
         foreach ($periode->getSupplements() as $supp) {
             if ($supp->getObligatoire() || isset($data['supplement' . $supp->getId()])) {
                 $reservationLigne = new ReservationLigne();
                 $reservationLigne->setPersonne($reservationPersonne)->setLibelle($supp->getLibelle())->setCode('SupplementEnfant')->setAchat($supp->getEnfantAchat())->setVente($supp->getEnfantVente());
                 $this->em->persist($reservationLigne);
             }
         }
     }
     $this->em->persist($reservation->setSupplements($supplements));
     $this->em->flush();
     return $reservation->getId();
 }
 public function consulterAction(Reservation $reservation)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $this->getRequest()->getSession();
     $request = $this->getRequest();
     if ($reservation->getEtat() == 1 && $reservation->getPeriode()->getMax() - $reservation->getPeriode()->getNombreInscription() <= 0) {
         $session->getFlashBag()->add('info', 'Il y a plus de place dans cette Période <br><strong>Maximum d\'inscription : </strong>' . $reservation->getPeriode()->getMax() . '<br><strong>Nombre de place</strong> : ' . $reservation->getPeriode()->getNombreInscription());
     }
     $reservationLigne = new ReservationLigne();
     $form = $this->createForm(new ReservationLigneType(), $reservationLigne->setCode('Manuelle'));
     if ($request->isMethod('POST')) {
         $form->submit($request);
         if ($form->isValid()) {
             $reservationLigne = $form->getData();
             $em->persist($reservationLigne);
             $em->flush();
             $session->getFlashBag()->add('success', "Votre ligne a été modifé avec succées");
             return $this->redirect($this->generateUrl('back_programmes_reservation_consulter', array('id' => $reservation->getId())));
         }
     }
     return $this->render('BackProgrammeBundle:reservation:consulter.html.twig', array('reservation' => $reservation, 'form' => $form->createView()));
 }