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