/**
  * @Route("/admin/peninsula/create", name="peninsula_crear")
  * @Method("POST")
  */
 public function createPeninsulaAction(Request $request)
 {
     $serializer = $this->get('serializer');
     try {
         $seccionPeninsula = null;
         $peninsula = $request->get('peninsula');
         $id = $this->getDoctrine()->getRepository('VisitaYucatanBundle:Articulo')->createArticulo($peninsula, Generalkeys::TIPO_ARTICULO_PENINSULA, $seccionPeninsula);
         $response = new ResponseTO(Generalkeys::RESPONSE_TRUE, "Peninsula creado Correctamente", Generalkeys::RESPONSE_SUCCESS, Generalkeys::RESPONSE_CODE_OK);
         $response->setId($id);
         return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
     } catch (\Exception $e) {
         $response = new ResponseTO(Generalkeys::RESPONSE_FALSE, $e->getMessage(), Generalkeys::RESPONSE_ERROR, $e->getCode());
         return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
     }
 }
 /**
  * @Route("/admin/idioma/create", name="idioma_crear")
  * @Method("POST")
  */
 public function createLanguageAction(Request $request)
 {
     $serializer = $this->get('serializer');
     try {
         $idiomaJson = $request->get('language');
         $idioma = $serializer->deserialize($idiomaJson, 'VisitaYucatanBundle\\Entity\\Idioma', Generalkeys::JSON_STRING);
         $id = $this->getDoctrine()->getRepository('VisitaYucatanBundle:Idioma')->createLanguage($idioma);
         $response = new ResponseTO(Generalkeys::RESPONSE_TRUE, "Idioma creado correctamente", Generalkeys::RESPONSE_SUCCESS, Generalkeys::RESPONSE_CODE_OK);
         $response->setId($id);
         return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
     } catch (\Exception $e) {
         $response = new ResponseTO(Generalkeys::RESPONSE_FALSE, $e->getMessage(), Generalkeys::RESPONSE_ERROR, $e->getCode());
         return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
     }
 }
 /**
  * @Route("/admin/logincheck", name="admin_login_check")
  * @Method("GET")
  */
 public function loginCheckAction(Request $request)
 {
     $em = $this->getDoctrine()->getEntityManager()->getRepository('VisitaYucatanBundle:Usuario');
     $serializer = $this->get('serializer');
     $translator = $this->get('translator');
     $response = new ResponseTO(Generalkeys::RESPONSE_FALSE, $translator->trans('login.validate.message.user.not.exist'), Generalkeys::RESPONSE_INFO, Generalkeys::RESPONSE_CODE_OK);
     $user = $request->query->get('user');
     $password = $request->query->get('pass');
     if ($em->existUser($user)) {
         $usuario = $em->findUserByUsernameAndPassword($user, $password);
         if ($usuario) {
             $session = $request->getSession();
             $session->set(Generalkeys::LABEL_STATUS, Generalkeys::USER_IN_SESSION);
             $session->set("iduser", $usuario->getId());
             $session->set("user", $usuario->getUsername());
             $session->set("nombre", $usuario->getDatosPersonales()->getNombres() . " " . $usuario->getDatosPersonales()->getApellidos());
             $response->setStatus(Generalkeys::RESPONSE_TRUE);
         }
         $response->setMessage($translator->trans('login.validate.message.pass.not.coincidence'));
     }
     return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
 }
 /**
  * @Route("/tour/createReservationTour", name="web_tour_reserva_create")
  * @Method("POST")
  */
 public function createReservationTour(Request $request)
 {
     $serializer = $this->get('serializer');
     $em = $this->getDoctrine()->getManager();
     $em->getConnection()->beginTransaction();
     try {
         $ventaCompletaTO = $serializer->deserialize($request->get('ventaCompletaTO'), 'VisitaYucatanBundle\\utils\\to\\VentaCompletaTO', Generalkeys::JSON_STRING);
         $idVenta = $em->getRepository('VisitaYucatanBundle:Venta')->createSaleTour($ventaCompletaTO);
         //echo "idventa = ".$idVenta;
         //$this->voucherTour($idVenta);
         $em->getConnection()->commit();
         $response = new ResponseTO(Generalkeys::RESPONSE_TRUE, 'Se ha creado la reserva', Generalkeys::RESPONSE_SUCCESS, Generalkeys::RESPONSE_CODE_OK);
         $response->setId($idVenta);
         $request->getSession()->set("idVentaGenerada", $idVenta);
         return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
     } catch (\Exception $e) {
         $em->getConnection()->rollback();
         $response = new ResponseTO(Generalkeys::RESPONSE_FALSE, $e->getMessage(), Generalkeys::RESPONSE_ERROR, $e->getCode());
         return new Response($serializer->serialize($response, Generalkeys::JSON_STRING));
     }
 }
 /**
  * @Route("/hotel/find/rates", name="web_hotel_rates")
  * @Method("POST")
  */
 public function getPricesRoom(Request $request)
 {
     try {
         // obtiene los datos de session moneda e idioma
         $datos = $this->getParamsTour($request);
         $adults = $request->get('adults');
         $minors = $request->get('minors');
         $dateFrom = $request->get('from');
         $dateTo = $request->get('to');
         $idHotel = $request->get('idHotel');
         //echo "adultos = ".$adults;
         //TODO path test = http://localhost/visitayucatan2.0/hotel/find/rates?adults=2&minors=3&from=08/05/2016&to=31/05/2016&idHotel=1
         $idContract = $this->getDoctrine()->getRepository('VisitaYucatanBundle:HotelContrato')->findIdContractActiveByHotel($idHotel);
         //echo "idcontrado activo = ".$idContract." <br>";
         $dateClosing = $this->getDoctrine()->getRepository('VisitaYucatanBundle:HotelFechaCierre')->findClosingDateByContractAndHotel($idHotel, $idContract);
         //echo "fechas cierre = ".print_r($dateClosing); echo " <br>";
         $costosRoom = $this->getDoctrine()->getRepository('VisitaYucatanBundle:HotelTarifa')->getRateByRooms(DateUtil::formatDate($dateFrom), DateUtil::subtractOneDayTodate(DateUtil::formatDate($dateTo)), $idHotel, $datos[Generalkeys::NUMBER_ZERO], $datos[Generalkeys::NUMBER_ONE], $idContract);
         $costs = HotelUtils::getCotizationRoom($costosRoom, $adults, $minors, $dateClosing);
         //print_r($costs);
         $response = new ResponseTO(Generalkeys::RESPONSE_TRUE, Generalkeys::EMPTY_STRING, Generalkeys::RESPONSE_SUCCESS, Generalkeys::RESPONSE_CODE_OK);
         $response->setData($costs);
         // TODO siguiente codigo comentado para impresion de fechas y costos mas rapido
         /*foreach ($response->getData() as $value) {
                         echo "habitacion = ".$value->getNombre()."<br> descripcion = ".$value->getDescripcion()."<br>";
                         echo "<br><br>";
                         foreach ($value->getHotelTarifasTOCollection() as $item) {
                             echo "capacidad maxima = ".$item->getCapacidadMaxima()." fecha = ".$item->getSmallDate()." costo = ".$item->getCosto()." disponible = ".$item->getIsAvailable()." msj = ".$item->getMsjAvailable();
                             echo "<br>";
                         }
                         echo "GRAND TOTAL = ".$value->getTotalCostoHabitacion();
                         echo "<br><br>";
                         echo "cambio de habitacion *****************************************************************************************************************************";
                         echo "<br><br>";
         
                     }*/
         return new Response($this->get('serializer')->serialize($response, Generalkeys::JSON_STRING));
     } catch (\Exception $e) {
         return new Response($this->get('serializer')->serialize(new ResponseTO(Generalkeys::RESPONSE_FALSE, $e->getMessage(), Generalkeys::RESPONSE_ERROR, $e->getCode()), Generalkeys::JSON_STRING));
     }
 }