public function createSalePackage(VentaCompletaTO $ventaCompletaTO) { $em = $this->getEntityManager(); $venta = new Venta(); $personalData = $em->getRepository('VisitaYucatanBundle:Datospersonales')->createPersonalData($ventaCompletaTO); $em->persist($personalData); $dataLocation = $em->getRepository('VisitaYucatanBundle:Datosubicacion')->createDataLocation($ventaCompletaTO); $em->persist($dataLocation); $dataReservation = $em->getRepository('VisitaYucatanBundle:DatosReserva')->createDataReserva($ventaCompletaTO->getHotelPickup(), $ventaCompletaTO->getCheckIn(), null); $em->persist($dataReservation); $datosPago = $em->getRepository('VisitaYucatanBundle:DatosPago')->createDatosPago(); $em->persist($datosPago); $datosVuelo = $em->getRepository('VisitaYucatanBundle:DatosVuelo')->createDatosVuelo($ventaCompletaTO); $em->persist($datosVuelo); $venta->setDatosPersonales($personalData); $venta->setDatosUbicacion($dataLocation); $venta->setDatosReserva($dataReservation); $venta->setDatosPago($datosPago); $venta->setDatosVuelo($datosVuelo); $venta->setFechaVenta(new \DateTime()); $venta->setEstatus($em->getReference('VisitaYucatanBundle:Estatus', Estatuskeys::ESTATUS_ACTIVO)); $venta->setIdioma($em->getReference('VisitaYucatanBundle:Idioma', $ventaCompletaTO->getIdIdioma())); $venta->setMoneda($em->getReference('VisitaYucatanBundle:Moneda', $ventaCompletaTO->getIdMoneda())); $venta->setTipoCambio($ventaCompletaTO->getTipoCambio()); $venta->setSubtotal($ventaCompletaTO->getCostoTotal()); //TODO recordar el el total se debe guardar en mxn, si esta en otra moneda convertir antes $venta->setTotal($ventaCompletaTO->getCostoTotal()); $em->persist($venta); $em->flush(); $em->getRepository('VisitaYucatanBundle:VentaDetalle')->createVentaDetallePackage($ventaCompletaTO, Generalkeys::TIPO_PRODUCTO_PAQUETE, $venta->getId()); return $venta->getId(); }
public static function getVentaCompleteTOPackage(Venta $venta, Paquete $package) { $ventaCompletaTO = new VentaCompletaTO(); $ventaCompletaTO->setIdVenta($venta->getId()); $ventaCompletaTO->setCostoTotal($venta->getTotal()); $ventaCompletaTO->setNombrePaquete($package->getDescripcion()); $ventaCompletaTO->setCircuito($package->getCircuito()); $ventaCompletaTO->setHotelPickup($venta->getVentaDetalle()->get(0)->getHotel()->getDescripcion()); $ventaCompletaTO->setNumeroAdultos($venta->getVentaDetalle()->get(0)->getNumeroAdultos()); $ventaCompletaTO->setNumeroMenores($venta->getVentaDetalle()->get(0)->getNumeroMenores()); $ventaCompletaTO->setNombres($venta->getDatosPersonales()->getNombres()); $ventaCompletaTO->setApellidos($venta->getDatosPersonales()->getApellidos()); $ventaCompletaTO->setLada($venta->getDatosUbicacion()->getLada()); $ventaCompletaTO->setTelefono($venta->getDatosUbicacion()->getTelefono()); $ventaCompletaTO->setEmail($venta->getDatosUbicacion()->getEmail()); $ventaCompletaTO->setCiudad($venta->getDatosUbicacion()->getCiudad()); $dias = $package->getPaqueteIdioma()->get(0)->getDias(); $ventaCompletaTO->setDiasPaquete($package->getPaqueteIdioma()->get(0)->getDias()); $ventaCompletaTO->setNochePaquete((int) $dias - 1); $ventaCompletaTO->setCheckIn($venta->getDatosReserva()->getCheckIn()); $ventaCompletaTO->setPagado($venta->getDatosPago()->getPagado()); $ventaCompletaTO->setNumeroVoucher($venta->getDatosPago()->getNumeroVoucher()); $ventaCompletaTO->setNumeroOperacion($venta->getDatosPago()->getNumeroOperacion()); $ventaCompletaTO->setNumeroAutorizacion($venta->getDatosPago()->getNumeroAutorizacion()); $ventaCompletaTO->setTipoTarjeta($venta->getDatosPago()->getTipoTarjeta()); return $ventaCompletaTO; }