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; } }
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; } }
} $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]) {
$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(