public function reservationSHTValiderAction(Reservation $reservation)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $this->getRequest()->getSession();
     $CurrentUser = $this->container->get('security.context')->getToken()->getUser();
     $em->persist($reservation->setValidatedAmicale(new \DateTime())->setResponsableAmicale($CurrentUser->getClient()));
     $em->flush();
     return $this->redirect($this->generateUrl('espace_amicale_reservation_sht'));
 }
Example #2
0
 public function sendMailHotel(Reservation $reservation)
 {
     $agence = $this->em->getRepository('BackAdministrationBundle:Agence')->find(1);
     $user = $this->container->get('security.context')->getToken()->getUser();
     if (!is_null($reservation->getHotel()->getEmail())) {
         $message = \Swift_Message::newInstance()->setSubject('Nouvelle Réservation de la par ' . $agence->getNom())->setFrom($user->getEmail())->setTo($reservation->getHotel()->getEmail())->setCc($user->getEmail());
         $emails = $this->em->getRepository('BackAdministrationBundle:Email')->findByProduit('SHT');
         foreach ($emails as $email) {
             $message->addCc($email->getEmail());
         }
         $message->setContentType("text/html");
         $message->setCharset("utf-8");
         $message->setBody($this->templating->render('BackAdministrationBundle:mails:notifierHotel.html.twig', array('reservation' => $reservation)));
         return $this->mailer->send($message);
     }
     return false;
 }
 public function ajouterChambreDetailsAction(Reservation $res)
 {
     $user = $this->get('security.context')->getToken()->getUser();
     $em = $this->getDoctrine()->getManager();
     $session = $this->getRequest()->getSession();
     $request = $this->getRequest();
     if (!$session->has("reservation")) {
         return $this->redirect($this->generateUrl("consulter_reservation", array('id' => $res->getId())));
     }
     $reservation = $session->get('reservation');
     $hotel = $em->getRepository('BackHotelTunisieBundle:Hotel')->find($reservation['hotel']);
     $client = $em->getRepository("BackUserBundle:Client")->find($reservation['client']);
     $form = $this->createFormBuilder();
     $ordre = 1;
     $chambres = array();
     foreach ($reservation['chambres'] as $value) {
         $adulte = array();
         $enfant = array();
         $tab = explode(',', $value['occupants']);
         for ($i = 1; $i <= $tab[0]; $i++) {
             $form->add("chambre" . $ordre . "adulte" . $i, 'text');
             $adulte[] = "chambre" . $ordre . "adulte" . $i;
         }
         for ($i = 1; $i <= count($tab) - 1; $i++) {
             $form->add("chambre" . $ordre . "Enfant" . $i, 'text');
             $enfant[] = "chambre" . $ordre . "Enfant" . $i;
         }
         $ordre++;
         $chambres[] = array('chambre' => $value['chambre'], 'adultes' => $adulte, 'enfants' => $enfant);
     }
     $form = $form->getForm();
     $result = $this->container->get('reservation')->reservation($reservation);
     if ($request->isMethod('post')) {
         $form->submit($request);
         $data = $form->getData();
         $id = $this->container->get('reservation')->saveReservation($data, $result, 'backoffice', $res);
         $session->remove('reservation');
         $session->getFlashBag()->add('success', " Vos chambres ont  été enregistré avec succès ");
         return $this->redirect($this->generateUrl("consulter_reservation", array('id' => $id)));
     }
     $reservation = $session->get('reservation');
     return $this->render('BackHotelTunisieBundle:Reservation:details.html.twig', array('form' => $form->createView(), 'chambres' => $chambres, 'hotel' => $hotel, 'client' => $client, 'nuitees' => $reservation['nuitees'], 'dateDebut' => new \DateTime($reservation['dateDebut']), 'dateFin' => new \DateTime($reservation['dateFin']), 'resultat' => $result));
 }
 public function paiementAction(Reservation $reservation, $paymentType)
 {
     $em = $this->getDoctrine()->getManager();
     $confPaiement = $em->find('BackHotelTunisieBundle:ConfigurationPayement', 1);
     if ($confPaiement->getRemiseInternetPourcentage()) {
         $remiseInternet = $reservation->getTotal() * $confPaiement->getRemiseInternet() / 100;
     } else {
         $remiseInternet = $confPaiement->getRemiseInternet();
     }
     if ($confPaiement && $confPaiement->getNumeroAffiliation() != 0 && in_array($paymentType, array(2, 3))) {
         $total = $reservation->getTotal();
         if ($paymentType == 2) {
             $monant = $total;
         } elseif ($paymentType == 3 && $confPaiement->getAvance() != 0) {
             $monant = round($total * $confPaiement->getAvance() / 100);
         }
         $em->persist($reservation->setTypePayement($paymentType)->setMontantPayementElectronique($monant)->setRemiseInternet($remiseInternet));
         $em->flush();
         return $this->redirect($confPaiement->getUrl() . 'SHT-' . $reservation->getId() . '&Montant=' . $monant . '&Devise=TND&sid=' . session_id() . '&affilie=' . $confPaiement->getNumeroAffiliation());
     }
     return $this->redirect($this->generateUrl("front_hoteltunisie_thankyou", array('reservation' => $reservation->getId())));
 }
 public function generateSessionReservation(Reservation $reservation)
 {
     $tab = array();
     $tab['hotel'] = $reservation->getHotel()->getId();
     $tab['client'] = $reservation->getClient()->getId();
     $tab['dateDebut'] = $reservation->getDateDebut()->format('Y-m-d');
     $tab['dateFin'] = $reservation->getDateFin()->format('Y-m-d');
     $tab['nuitees'] = $reservation->getNuitees();
     return $tab;
 }