예제 #1
0
function updateConfiguracion($idConfiguracion, $data_configuracion = array(), $data_reglas = array(), $productos = array(), $favoritos = array())
{
    try {
        $transaction = new Transaction();
        $config = DAOFactory::getConfiguracionDAO()->prepare($data_configuracion, $idConfiguracion);
        DAOFactory::getConfiguracionDAO()->update($config);
        if (count($data_reglas)) {
            $reglas_keys = array();
            foreach ($data_reglas as $data_regla) {
                $data_regla['configuracionId'] = $idConfiguracion;
                $regla = DAOFactory::getReglasCuponesDAO()->prepare($data_regla);
                $reglas_keys[] = $data_regla['id'];
                if (is_numeric($data_regla['id'])) {
                    $reglas_keys[] = $data_regla['id'];
                    $id_regla = DAOFactory::getReglasCuponesDAO()->update($regla);
                } else {
                    $id_regla = DAOFactory::getReglasCuponesDAO()->insert($regla);
                    $reglas_keys[] = $id_regla;
                    if (is_numeric($data_regla['cupones']) && $data_regla['cupones'] > 0) {
                        for ($i = 0; $i < $data_regla['cupones']; $i++) {
                            $codigo = generarLocalizador();
                            $cupon = DAOFactory::getCuponDAO()->prepare(array('codigo' => strtoupper($codigo), 'estado' => 'activo', 'reglasCuponesId' => $id_regla));
                            $id_cupon = DAOFactory::getCuponDAO()->insert($cupon);
                        }
                    }
                }
            }
            $reglas = DAOFactory::getReglasCuponesDAO()->queryByConfiguracionId($idConfiguracion);
            foreach ($reglas as $r) {
                if (!in_array($r->id, $reglas_keys)) {
                    DAOFactory::getCuponDAO()->deleteByReglasCuponesId($r->id);
                    DAOFactory::getReglasCuponesDAO()->delete($r->id);
                }
            }
        }
        DAOFactory::getConfiguracionEventoDAO()->deleteByConfiguracionId($idConfiguracion);
        if (count($productos)) {
            foreach ($productos as $producto) {
                $favorito = 0;
                if (in_array($producto, $favoritos)) {
                    $favorito = 1;
                }
                $producto = DAOFactory::getConfiguracionEventoDAO()->prepare(array("configuracionId" => $idConfiguracion, "eventoId" => $producto, "favorito" => $favorito));
                DAOFactory::getConfiguracionEventoDAO()->insert($producto);
            }
        }
        $transaction->commit();
        return $idConfiguracion;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
예제 #2
0
function insertReserva($idHotel, $data = array(), $data_apartamento = array(), $data_excursiones = array(), $data_usuario = array(), $data_tarjeta = array(), $total = 0)
{
    try {
        $transaction = new Transaction();
        $email = $data_usuario['email'];
        $usuario = getUsuarioByEmail($email);
        if ($usuario && count($usuario)) {
            $usuario_id = $usuario[0]->id;
            $usuario = DAOFactory::getUsuarioDAO()->prepare($data_usuario, $usuario_id);
            DAOFactory::getUsuarioDAO()->update($usuario);
        } else {
            $data_usuario['tiempoCreacion'] = date('Y-m-d');
            $data_usuario['estatus'] = 'Activo';
            $data_usuario['usuarioGrupoId'] = 4;
            $usuario = DAOFactory::getUsuarioDAO()->prepare($data_usuario);
            $usuario_id = DAOFactory::getUsuarioDAO()->insert($usuario);
        }
        $hotel = DAOFactory::getHotelDAO()->load($idHotel);
        $data_reserva = array('hotelId' => $idHotel, 'usuarioId' => $usuario_id, 'tiempoCreacion' => date('Y-m-d'), 'total' => $total, 'peticionesEspeciales' => $data['peticionesEspeciales'], 'urlOrigen' => $data['urlOrigen'], 'monedaId' => $data['monedaId'], 'estado' => $hotel->bookingOnrequest ? 'Pendiente' : 'Aprobada', 'recibirFactura' => $data['recibirFactura'], 'idiomaId' => $data['idiomaId'], 'cartId' => $data['cartId'], 'adultos' => $data['adultos'], 'ninios' => $data['ninios'], 'tipoCobro' => $hotel->tipoReserva);
        if ($data_tarjeta['op'] && strlen(trim($data_tarjeta['op']))) {
            $data_reserva['estado'] = 'Confirmada';
        }
        $stop_sales = DAOFactory::getHotelFechasDAO()->queryInFechas($data_apartamento['inicio'], $data_apartamento['final'], $idHotel);
        if (count($stop_sales)) {
            $data_reserva['estado'] = 'Pendiente';
        }
        $reserva = DAOFactory::getReservaDAO()->prepare($data_reserva);
        $reserva_id = DAOFactory::getReservaDAO()->insert($reserva);
        $localizador = strtoupper(generarLocalizador(5));
        $reserva = DAOFactory::getReservaDAO()->prepare(array('localizador' => $localizador), $reserva_id);
        DAOFactory::getReservaDAO()->update($reserva);
        $data_apartamento['reservaId'] = $reserva_id;
        $apartamento = DAOFactory::getReservaProductoDAO()->prepare($data_apartamento);
        $apartamento_id = DAOFactory::getReservaProductoDAO()->insert($apartamento);
        foreach ($data_excursiones as $data_excursion) {
            $data_excursion['reservaId'] = $reserva_id;
            if ($data_excursion['eventoTpv'] && !is_string($data_excursion['eventoTpv'])) {
                $data_excursion['eventoTpv'] = json_encode($data_excursion['eventoTpv']);
            }
            $excursion = DAOFactory::getReservaProductoDAO()->prepare($data_excursion);
            $excursion_id = DAOFactory::getReservaProductoDAO()->insert($excursion);
        }
        $clave = getClaveByHotel($idHotel);
        $data_tarjeta['reservaId'] = $reserva_id;
        if ($data_tarjeta['tarjetaNumero'] && strlen(trim($data_tarjeta['tarjetaNumero']))) {
            $data_tarjeta['tarjetaNumero'] = Encrypter::encrypt($data_tarjeta['tarjetaNumero'], $clave);
        }
        if ($data_tarjeta['cvv'] && strlen(trim($data_tarjeta['cvv']))) {
            $data_tarjeta['cvv'] = Encrypter::encrypt($data_tarjeta['cvv'], $clave);
        }
        if ($data_tarjeta['importe'] || $hotel->tipoReserva != 'offline') {
            $importe = $data_tarjeta['importe'];
            require 'Logic/afiliado.php';
            insertReservaAfiliado($reserva_id, $importe);
            $pago = DAOFactory::getReservaPagoDAO()->prepare($data_tarjeta);
            $pago_id = DAOFactory::getReservaPagoDAO()->insert($pago);
        }
        $transaction->commit();
        return $reserva_id;
    } catch (Exception $e) {
        var_dump($e);
        $transaction->rollback();
        return false;
    }
}
예제 #3
0
 }
 $smarty->assign('distribuidoras', $distribuidoras);
 if (isset($_GET['id'])) {
     $campania = getCampania($_GET['id']);
     if (!$campania->localizador) {
         $campania->localizador = generarLocalizador();
     }
     if (!$campania->subdominio && $campania->nombreHotel) {
         $campania->subdominio = generarDominioByNombreHotel($campania->nombreHotel);
     }
     if (!$campania->email) {
         $campania->email = $usuario_core->getUsuario()->email;
     }
 } else {
     $campania = new Campania();
     $campania->localizador = generarLocalizador();
 }
 $smarty->assign('usuario', $usuario_core->getUsuario());
 if ($campania->periodos) {
     $smarty->assign('edit', true);
 }
 $campania->porcentajeBeneficio = $distribuidoras[0]->porcentajeBeneficio;
 $smarty->assign('campania', $campania);
 $empresas = array();
 $empresasU = getEmpresasByUsuario($usuario_core->getUsuario()->id);
 foreach ($empresasU as $empresa) {
     if ($empresa->empresaTipoId == 2) {
         $empresas[] = $empresa;
     }
 }
 if ($empresas[0]) {
예제 #4
0
     $hotel->porcentageCobroAnticipado += $cart->apartamentoObj->pagoOnline;
     $cobroAnticipado += $cart->apartamentoObj->pagoOnline / 100;
 }
 $cobroAnticipado *= $precio;
 $data_apartamento['precioUnitario'] = str_replace(',', '.', (string) $precio);
 $data_apartamento['cantidad'] = $_POST['cantidad'];
 $data_apartamento['inicio'] = date('Y-m-d', strtotime($cart->inicio));
 $data_apartamento['final'] = date('Y-m-d', strtotime($cart->salida));
 $data_apartamento['porcientoInicial'] = $hotel->porcentageCobroAnticipado;
 $data_apartamento['importeInicial'] = str_replace(',', '.', (string) $cobroAnticipado);
 $data_apartamento['pagoOffline'] = $hotel->tipoReserva == 'offline' && $cart->apartamentoObj->pagoOnline ? 1 : 0;
 $apartamento->precioTotal_format = number_format($precio, 2, ',', ' ');
 $data_excursiones = array();
 if ($excursiones && count($excursiones)) {
     foreach ($excursiones as $excursion) {
         $data_excursion = array('tipo' => 'excursion', 'nombre' => $excursion->evento, 'precioUnitario' => $excursion->total, 'cantidad' => 1, 'inicio' => $excursion->fecha, 'final' => $excursion->fecha, 'pagoOffline' => $excursion->forma_cobro != 'online' ? 1 : 0, 'modoPagoOffline' => $excursion->forma_cobro_offline, 'eventoTpv' => $excursion->eventoTpv, 'eventoId' => $excursion->eventoId, 'sesion' => $excursion->sesion, 'direccion' => $excursion->direccion, 'emails' => $excursion->emails, 'hotel' => $hotel->nombre, 'telefonoContacto' => $excursion->telefonoReservas, 'localizador' => strtoupper(generarLocalizador(5)));
         $precio += $excursion->total;
         if ($excursion->forma_cobro == 'online') {
             $cobroAnticipado += $excursion->total * $excursion->porcientoInicial / 100;
             $data_excursion['porcientoInicial'] = $excursion->porcientoInicial;
             $data_excursion['importeInicial'] = $excursion->total * $excursion->porcientoInicial / 100;
         }
         //No se que es esto -> $data_excursion['entradas'] = json_encode($reservacion->entradas);
         array_push($data_excursiones, $data_excursion);
     }
 }
 $data_pago['importe'] = str_replace(',', '.', (string) $cobroAnticipado);
 /* Solo para vikahotel
             foreach ($excursiones as $pos=>$excursion) {
                 $distribuidor = getParametrosVikaByHotelId($hotel->id);
                 $data_excursion_ws = array(