Exemple #1
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;
    }
}
Exemple #2
0
        break;
    }
}
if (isset($data['hotel']) && !is_null($data['hotel']) && is_array($data['hotel'])) {
    $hoteles = array();
    foreach ($data['hotel'] as $hotel) {
        if (!is_null($hotel) && strlen(trim($hotel))) {
            $hoteles[] = trim($hotel);
        }
    }
    $data['hotel'] = $hoteles;
} else {
    $valid = false;
}
if ($valid) {
    $usuario = getUsuarioByEmail($data['email']);
    if (count($usuario) == 0) {
        $usuario_id = registrarCliente($data);
        if ($usuario_id) {
            $usuario = getUsuario($usuario_id);
            try {
                $to = $data['email'];
                $subject = 'Gracias por registrarse en Vika Hotel';
                $smarty->assign('usuario', $usuario);
                $smarty->assign('empresa', $data);
                $smarty->assign('hoteles', $data['hotel']);
                $body = $smarty->fetch('admin/confirmacionRegistroEmail.tpl');
                $mail = new Core_Mailer();
                $mail->send_email($to, $subject, $body);
            } catch (Exception $e) {
                print_r($e);