# Instructivo general del sistema

Este sistema permite administrar cotizaciones de viajes, excursiones, itinerarios con bloqueo, agencias, clientes, comisionistas, reservas, tickets y recibos de pago.

La plataforma está pensada para trabajar con distintos accesos:

- Cliente final
- Agencia o agente de viajes
- Administrador
- Comisionista

## 1. Página principal

La página principal es el portal público del sistema.

Desde aquí el cliente puede:

- Buscar una cotización por número.
- Entrar al panel de cliente.
- Ver excursiones públicas.
- Ver itinerarios públicos.
- Ver itinerarios con bloqueo.
- Compartir opciones disponibles cuando existan botones de redes sociales.

El cliente final no debe ver información interna como:

- Panel de administrador.
- Accesos internos de agencia si no ha iniciado sesión.
- Información de comisiones.
- Datos privados de agentes o comisionistas.

## 2. Acceso de cliente

El cliente puede consultar su viaje usando su número de cotización o entrando al panel de cliente.

En el panel de cliente puede revisar:

- Hoteles seleccionados.
- Transportes seleccionados.
- Itinerarios relacionados.
- Excursiones públicas.
- Opciones alternativas bajo el mensaje "También puedes ver".
- Avisos de disponibilidad y cambios de precio.

Los precios están sujetos a disponibilidad y cambios sin previo aviso. Solo se respetan cuando la reserva está confirmada.

## 3. Cotizaciones de agencia

La agencia puede crear cotizaciones de grupo o multidestino.

Cada cotización puede incluir:

- Número de cotización.
- Destinos.
- Fechas.
- Número de pasajeros.
- Hoteles.
- Habitaciones.
- Transportes.
- Tramos.
- Visibilidad pública o privada.
- Información de comisión.

Las cotizaciones se pueden marcar como:

- Privadas: solo se consultan con número de cotización o desde la agencia.
- Públicas: pueden mostrarse en la página del cliente como alternativas.

En "Mis cotizaciones" la agencia puede:

- Buscar por destino.
- Buscar por número, fecha o estado.
- Filtrar por fecha.
- Filtrar públicas o privadas.
- Abrir cotizaciones existentes.
- Borrar cotizaciones que ya no se necesiten.

## 4. Guardado de cotizaciones

Para guardar una cotización:

1. Capturar los datos generales.
2. Agregar destinos y fechas.
3. Agregar hoteles y habitaciones.
4. Agregar transportes o tramos.
5. Seleccionar visibilidad pública o privada.
6. Indicar si es comisionable.
7. Presionar el botón de guardar cotización.

El sistema genera o conserva el número de cotización para que pueda ser consultado posteriormente.

## 5. Excursiones

Las excursiones pueden ser públicas o privadas.

Una excursión puede incluir:

- Título.
- Código.
- Imagen.
- Fecha.
- Precio.
- Moneda.
- Asientos.
- Hoteles opcionales.
- Transportes opcionales.
- Servicios relacionados.
- Información de comisión.

El cliente puede:

- Ver excursiones públicas.
- Seleccionar asientos.
- Agregar hoteles o transportes al carrito.
- Registrar pasajeros.
- Crear una reserva aunque todavía no se pague.
- Descargar tickets con los asientos y servicios elegidos.

La agencia puede ver las reservas generadas por clientes y revisar los pasajeros registrados.

## 6. Carrito de compras

El carrito suma los elementos seleccionados por el cliente.

Puede incluir:

- Asientos de excursión.
- Habitaciones seleccionadas.
- Transportes seleccionados.
- Servicios agregados.

Cuando el cliente presiona el botón de pagar o reservar, el sistema crea una reserva. Aunque el pago no se haga en ese momento, la reserva queda guardada para recuperarla después.

## 7. Tickets de excursión

Cuando una excursión tiene reserva, el cliente puede descargar sus tickets.

Los tickets deben mostrar:

- Código de reserva.
- Nombre de la excursión.
- Fecha.
- Pasajeros.
- Asientos elegidos.
- Servicios agregados al carrito.
- Total de la reserva.

Estos tickets sirven como comprobante interno de la reserva generada.

## 8. Itinerarios con bloqueo

Los itinerarios con bloqueo son viajes que ya tienen precios pactados en vuelos, hoteles y transportes.

Estos viajes pueden manejarse en:

- Pesos mexicanos.
- Dólares.

La agencia puede capturar:

- Nombre del itinerario.
- Descripción.
- Imagen.
- Precio pactado.
- Moneda.
- Anticipo.
- Tipo de pagos.
- Fecha del viaje.
- Fecha límite de liquidación.
- Tipo de cambio, cuando aplique.
- Archivo PDF o Word del itinerario.

El cliente puede:

- Ver el itinerario en la página principal si es público.
- Descargar el PDF.
- Compartir el enlace del itinerario.
- Solicitar o generar una reserva.

El sistema debe mostrar "Escoge tu plan de pago" y puede sugerir cálculos mensuales, bimestrales o semestrales, pero el plan final se define al momento de reservar.

## 9. Reservas de itinerarios con bloqueo

Cada reserva debe manejarse con número de reserva.

Esto permite:

- Buscar por cliente.
- Buscar por número de reserva.
- Relacionar recibos.
- Mantener ordenados los pagos.
- Evitar confusión entre distintos clientes del mismo viaje.

Las reservas pueden tener pagos de:

- Anticipo.
- Pago mensual.
- Pago bimestral.
- Pago semestral.
- Abonos personalizados.

## 10. Recibos de pago

El sistema permite generar recibos para pagos relacionados con itinerarios con bloqueo.

Los recibos pueden usarse para:

- Anticipos.
- Mensualidades.
- Abonos.
- Liquidaciones.

Cuando el viaje está en dólares, el sistema puede usar el tipo de cambio capturado para calcular el monto en pesos.

## 11. Comisionistas

Los comisionistas son personas externas que recomiendan viajes o excursiones.

El comisionista puede:

- Registrarse.
- Entrar a su panel.
- Ver opciones comisionables.
- Compartir enlaces con su referencia.
- Saber qué recomendó.
- Ver la comisión estimada que le corresponde.

La comisión solo se considera válida si la recomendación termina en una venta confirmada.

## 12. Comisiones

Los viajes, cotizaciones, excursiones e itinerarios pueden marcarse como comisionables o no comisionables.

La agencia puede indicar:

- Si el viaje es comisionable.
- Si la comisión ya está incluida en el precio.
- Si la comisión se agrega al precio final.
- Si se calcula por porcentaje.
- Si se calcula por monto fijo.

El comisionista puede agregar una comisión propia con límites definidos:

- Hasta 5% en viajes normales.
- Hasta 10% en excursiones.

El sistema debe mostrar una alerta para recordar que el precio debe ser competitivo en el mercado.

La información de comisión no debe mostrarse al cliente final en la página principal.

## 13. Registro de agencia

La agencia puede registrarse desde el acceso de agencia.

El registro debe incluir:

- Nombre de usuario.
- Contraseña.
- Nombre de agencia.
- Correo.
- Logo de la agencia.
- Firma autógrafa digital.
- Aceptación del contrato.
- Aceptación del aviso de privacidad.

El logo y nombre de agencia sirven para personalizar las cotizaciones.

## 14. Contrato y aviso de privacidad

Durante el registro de agencia se presenta un contrato/instructivo y aviso de privacidad.

Puntos importantes:

- La plataforma funciona como intermediaria tecnológica.
- Las agencias son responsables de los itinerarios que suben.
- Las agencias son responsables de cumplir lo ofrecido al cliente.
- La plataforma no garantiza ni sustituye los servicios turísticos ofrecidos por cada agencia.
- La agencia deslinda a la plataforma de responsabilidades por incumplimientos propios.
- La plataforma puede cobrar en el futuro una comisión o cuota por uso.
- Los datos personales deben usarse solo para la operación del viaje y la reserva.

La firma digital en el registro deja constancia de aceptación.

## 15. Administrador

El administrador tiene acceso restringido.

Solo usuarios con rol de administrador pueden:

- Entrar al panel administrador.
- Ver opciones administrativas.
- Aprobar agencias.
- Revisar accesos internos.
- Administrar datos sensibles.

El botón o liga de administrador no debe mostrarse a usuarios sin sesión administrativa.

Además de ocultar botones, las páginas administrativas deben validar permisos en backend usando la sesión de PHP.

## 16. Roles y permisos

El sistema usa roles para proteger accesos.

Roles principales:

- administrador
- usuario/agencia
- comisionista

Cuando un usuario inicia sesión:

1. Se valida usuario y contraseña.
2. Se obtiene su rol desde la base de datos.
3. El rol se guarda en `$_SESSION`.
4. Cada página protegida valida el rol antes de permitir acceso.

No debe permitirse que un usuario común cree cuentas con rol administrador desde el registro público.

## 17. Cierre de sesión

El sistema incluye opción para cerrar sesión.

Sirve para:

- Probar accesos.
- Cambiar de usuario.
- Evitar que una sesión abierta muestre opciones incorrectas.
- Confirmar que administrador, agencia y cliente ven solo lo que les corresponde.

## 18. Seguridad recomendada

Para operar el sistema de forma segura:

- Mantener protegidas las páginas administrativas.
- Validar permisos en backend, no solo ocultar botones.
- No permitir registro público de administradores.
- Usar contraseñas seguras.
- Mostrar opción de ver contraseña en formularios de acceso.
- Revisar que los archivos subidos sean PDF, Word o imágenes permitidas.
- No exponer información de comisiones al cliente final.
- Respaldar la base de datos con frecuencia.

## 19. Flujo recomendado para agencia

1. Iniciar sesión como agencia.
2. Revisar o subir logo y nombre de agencia.
3. Crear una cotización, excursión o itinerario con bloqueo.
4. Elegir si será público o privado.
5. Elegir si será comisionable.
6. Guardar.
7. Compartir el enlace o número de cotización con el cliente.
8. Revisar reservas generadas.
9. Registrar pagos cuando aplique.
10. Generar recibos o tickets.

## 20. Flujo recomendado para cliente

1. Entrar a la página principal.
2. Buscar su cotización o revisar opciones públicas.
3. Ver detalles del viaje.
4. Elegir excursiones, asientos, hoteles o transportes cuando aplique.
5. Agregar al carrito.
6. Registrar pasajeros.
7. Crear reserva.
8. Descargar tickets o comprobantes disponibles.

## 21. Flujo recomendado para comisionista

1. Registrarse como comisionista.
2. Iniciar sesión.
3. Revisar viajes o excursiones comisionables.
4. Elegir qué compartir.
5. Copiar o compartir el enlace con referencia.
6. Revisar recomendaciones generadas.
7. Confirmar comisión cuando la venta quede cerrada.

## 22. Notas operativas

- Las cotizaciones públicas ayudan a mostrar alternativas al cliente.
- Las cotizaciones privadas sirven para propuestas específicas.
- Las excursiones públicas funcionan como producto abierto al público general.
- Los itinerarios con bloqueo se manejan como viajes armados con bloque y precio pactado.
- Los recibos deben relacionarse con una reserva para mantener orden.
- Las reservas deben poder buscarse por cliente, número de reserva, fecha o destino.

## 23. Mensajes importantes para clientes

Debe mostrarse un aviso discreto en páginas públicas:

"Precios sujetos a disponibilidad y cambios sin previo aviso, solo se respetarán cuando esté confirmada la reserva."

Este aviso protege a la agencia y a la plataforma frente a cambios de tarifa, disponibilidad o condiciones de proveedores.

