# Manual de Restaurante (Administración)

# Salón y mesas

# Crear áreas (zonas del salón)

## ¿Qué es / para qué sirve?

Un **área** es una zona del local donde se agrupan las mesas (ej. "Salón
Principal", "Terraza", "Barra"). Toda mesa pertenece a un área, así que crea las
áreas **antes** que las mesas.

## Paso a paso

1. Ve a **Mesas → Áreas → Agregar**.
2. Completa los campos:
   - **Sucursal** (obligatorio): a qué local pertenece el área.
   - **Nombre del Área** (obligatorio): ej. "Terraza".
   - **Breve Descripción** (opcional).
   - **Cajero** (obligatorio): el usuario cajero responsable del área.
   - **Imagen del Área** (opcional): foto cuadrada (relación 1:1), hasta el tamaño
     permitido (jpeg/png/gif).
3. Marca, si aplican, las casillas de tipo de área:
   - **Privado**: el área es privada.
   - **Autoservicio**: zona de mostrador/barra de autoservicio.
   - **Habitación**: para pedidos de habitación (hotel). Al marcarla, se activa
     **Privado** automáticamente y aparece un **rango horario**.
4. Si marcaste **Habitación**, define **Hora de Inicio** y **Hora de
   Finalización** (opcional): los pedidos por el QR de la habitación solo se
   permiten en ese rango. Déjalas vacías para no restringir horario.
5. Guarda.

[CAPTURA: cuadro de área con Nombre, Sucursal, Cajero, Imagen y las casillas Privado/Autoservicio/Habitación]

## Quién puede crear, editar o eliminar áreas

Son **tres permisos separados**, que se marcan en **Configuración → Roles**:

| Permiso | Qué habilita |
|---|---|
| **Añadir Área** | crear áreas, tanto aquí como con el botón **+ Área** de la vista en planta |
| **Editar Área** | cambiar nombre, sucursal, cajero y tipo |
| **Eliminar Área** | borrar un área |

Quien no tenga *Añadir Área* **no ve el botón + Área** en la vista en planta. El rol
**Administrador** puede hacer las tres cosas siempre, sin marcarle nada.

> **Un área con cuentas abiertas no se puede eliminar**, aunque tengas el permiso.
> Borrar un área se lleva sus mesas, así que primero hay que cobrar o anular las
> cuentas de esas mesas.

Cada eliminación de área queda registrada en **Reportes → Logs**.

## Notas y avisos

> - El **Cajero** del área se actualiza según la **Sucursal** elegida.
> - En el listado, cada área muestra su **Tipo** (Habitación, Autoservicio,
>   Privada o Pública) y su sucursal.
> - Crea primero las áreas; luego asigna las [mesas](crear-mesas.md) a cada una.

PENDIENTE DE VERIFICAR: cómo se usa exactamente el QR de habitación y el rango
horario en la operación diaria.

# Crear y configurar mesas

## ¿Qué es / para qué sirve?

Las **mesas** son los puntos donde se atiende a los clientes. Cada mesa pertenece
a un **área** y a una **sucursal**. Aquí las creas y configuras.

## Paso a paso

1. Crea primero las [áreas](crear-areas.md).
2. Ve a **Mesas → Mesas → Agregar**.
3. Completa los campos:
   - **Sucursal** (obligatorio).
   - **Área** (obligatorio): se carga según la sucursal elegida.
   - **Nombre de la Mesa** (obligatorio): ej. "Mesa 1".
   - **Breve Descripción** (opcional): ej. "Cerca de la ventana".
   - **Número de Sillas** (obligatorio): capacidad de la mesa (por defecto 1).
   - **Marcador Bluetooth** (opcional): es solo un campo identificador de la mesa;
     **no requiere ningún equipo ni integración** (ver [Vipers](vipers.md)).
   - **Mesa Preseleccionada en el POS** (casilla): si la marcas, esa mesa queda
     elegida por defecto al abrir el POS en esa sucursal.
4. Guarda.

[CAPTURA: cuadro de mesa con Sucursal, Área, Nombre, Número de Sillas y Marcador Bluetooth]

## Listado y acciones

En **Mesas** ves todas con su **Sucursal**, **Área** y **Descripción**. Por cada
una puedes **Editar**, **Eliminar** o ver su **código QR** — según los permisos que
tenga tu rol.

## Quién puede crear, editar o eliminar mesas

Son **tres permisos separados**, que se marcan en **Configuración → Roles**:

| Permiso | Qué habilita |
|---|---|
| **Añadir Mesa** | crear mesas y guardar la distribución del salón |
| **Editar Mesa** | cambiar nombre, área, sillas y demás datos |
| **Eliminar Mesa** | borrar una mesa |

Quien no tenga el permiso **no ve el botón**: ni en el listado de Mesas ni en la
vista en planta. El rol **Administrador** puede hacer las tres cosas siempre, sin
necesidad de marcarle nada.

[CAPTURA: los tres permisos de mesas en la pantalla de Roles]

> **Una mesa con cuenta abierta no se puede eliminar**, aunque tengas el permiso.
> Primero hay que cobrar o anular esa cuenta. Es para que no se pierda una mesa que
> todavía tiene consumo cargado.

Cada eliminación queda registrada: quién la hizo, qué mesa y desde qué pantalla. Se
consulta en **Reportes → Logs**.

## Notas y avisos

> - Solo puede haber **una "Mesa Preseleccionada"** por sucursal; si ya existe,
>   la casilla aparece deshabilitada.
> - El **Área** depende de la **Sucursal**: si cambias la sucursal, vuelve a
>   elegir el área.
> - Estas mesas son las que el salonero ve en el
>   [plano de mesas](../manual-salonero/plano-de-mesas.md).

# Vipers (llamadores)

## ¿Qué es / para qué sirve?

Un **Viper** es un dispositivo (llamador/marcador) que se asocia a la operación
del salón. Se registra en el sistema para poder vincularlo con las mesas mediante
su marcador.

## Paso a paso

1. Ve a **Mesas → Vipers → Agregar**.
2. Completa:
   - **Sucursal** (obligatorio).
   - **Nombre del Viper** (obligatorio): ej. "Viper-001" o "Llamador Mesa 5".
3. Guarda.

[CAPTURA: cuadro "Añadir Viper" con Sucursal y Nombre]

## Listado y acciones

En **Vipers** ves cada dispositivo con su **Sucursal**. Por cada uno puedes
**Editar** o **Eliminar**.

## Relación con las mesas

El vínculo con una mesa se hace por el campo **Marcador Bluetooth** de la mesa
(ver [Crear y configurar mesas](crear-mesas.md)).

## Notas y avisos

> - Registra el Viper con un **nombre claro** para identificarlo fácilmente.

PENDIENTE DE VERIFICAR: el funcionamiento físico del Viper (cómo llama/identifica
la mesa) y el flujo completo de emparejamiento con el marcador Bluetooth, según el
hardware de tu negocio.

# Vipers (identificador de pedido)

## ¿Qué es / para qué sirve?

Un **Viper** es un **número/identificador** que se asocia a un pedido para
ubicarlo o reconocerlo (similar a un número de "espera" que se le entrega al
cliente). Es **totalmente manual**: **no se conecta a ningún equipo** ni hay
integración con hardware. Aquí registras los Vipers disponibles para luego
asignarlos a los pedidos.

## Paso a paso

1. Ve a **Mesas → Vipers → Agregar**.
2. Completa:
   - **Sucursal** (obligatorio).
   - **Nombre del Viper** (obligatorio): ej. "Viper 1", "V-05".
3. Guarda.

[CAPTURA: cuadro "Añadir Viper" con Sucursal y Nombre]

## Listado y acciones

En **Vipers** ves cada uno con su **Sucursal**. Puedes **Editar** o **Eliminar**.

## Uso en la venta

Al tomar un pedido, se le puede asignar un **Viper** para identificarlo. La
asignación es manual; el Viper solo sirve como **etiqueta de referencia** del
pedido.

## Notas y avisos

> - No requiere ningún dispositivo: es solo un identificador que tú asignas.
> - Registra nombres/números claros para reconocerlos fácil.

# Configuración del servicio

# Crear modificadores (extras)

## ¿Qué es / para qué sirve?

Los **modificadores** (extras) son las opciones que el cajero o salonero agrega a
un producto al tomar el pedido: "queso adicional", "sin cebolla", "salsa extra".
Se organizan en **conjuntos de modificadores** (ej. el conjunto "Salsas") que
luego se asocian a los productos.

## Crear un conjunto de modificadores

1. Ve a **Productos → Modificadores → Agregar**.
2. Completa:
   - **Conjunto de Extras** (obligatorio): nombre del conjunto (ej. "Ingredientes
     Extra").
   - **Gestionar Stock** (casilla, si está habilitado): para llevar inventario de
     los extras.
3. Define **cuántos extras** se pueden elegir de la lista:
   - Modo **rango**: **Min** y **Max** (ej. mínimo 0, máximo 3).
   - Modo **cantidad fija**: usa **Cambiar** para alternar a "Igual" e indicar una
     cantidad exacta.
4. Agrega cada extra en la tabla, con:
   - **Nombre** del extra (ej. "Queso").
   - **Mostrar precio**: si se muestra su precio en la pantalla del POS.
   - **Precio** del extra.
   - **ITBMS**: el impuesto que aplica (o "Ninguno").
   - (Opcional) **Receta**: define los componentes del extra si se prepara.
   - Usa **+** para agregar más filas y **−** para quitarlas.
5. Guarda.

[CAPTURA: cuadro "Añadir Extra" con el conjunto, el rango Min/Max y la tabla de extras (nombre, precio, ITBMS)]

## Editar un conjunto

Al editar, cada extra muestra además la casilla **Activo** (desmárcala para
deshabilitar un extra sin borrarlo) y el botón **Ver receta**. El botón
**No Aplicar** quita la restricción de cantidad.

## Asociar el conjunto a productos

En el listado de modificadores, cada conjunto tiene el botón **Administrar
productos**: ábrelo y selecciona a qué **productos** se aplica ese conjunto de
extras. Así esos extras aparecen al tomar el pedido de esos productos. La columna
**Productos** del listado muestra a cuántos está asociado.

## Notas y avisos

> - El **Min/Max** controla cuántos extras puede (o debe) elegir el cliente; el
>   POS no deja confirmar hasta cumplir la regla.
> - Estos extras son los que el cajero/salonero ve al
>   [agregar productos](../manual-cajero/agregar-productos-y-extras.md).
> - La asociación a productos se hace desde el **conjunto** (botón "Administrar
>   productos"), no desde la ficha del producto.

# Tipos de servicio

## ¿Qué es / para qué sirve?

Un **tipo de servicio** define la modalidad de la venta: **comer aquí**, **para
llevar**, **delivery** o **entrega por tercero**. Cada tipo puede aplicar un
**cargo adicional** (ej. empaque) y una **lista de precios** distinta por sucursal.

## Paso a paso

1. Ve a **Configuración → Tipos de servicio → Agregar**.
2. Completa:
   - **Nombre** (obligatorio): ej. "Comer aquí", "Llevar", "Delivery".
   - **Descripción** (opcional).
   - **Grupo de Precios por Ubicación**: para cada sucursal, elige qué grupo de
     precios aplica con este tipo de servicio (ej. precios distintos para
     delivery).
3. Configura el **cargo adicional** (si aplica):
   - **Tipo de Carga de Embalaje**: **Fijo** (monto) o **Porcentaje** (% del total).
   - **Cargo Adicional**: el monto o el porcentaje.
4. (Opcional) **Habilitar Campos Personalizados**: agrega hasta 4 campos extra al
   vender con este tipo de servicio (ej. datos del delivery).
5. Guarda.

[CAPTURA: cuadro "Tipo de Servicio" con nombre, grupo de precios por ubicación y cargo adicional]

## Notas y avisos

> - El **cargo adicional** se suma a la venta cuando se elige ese tipo de servicio.
> - Usa el **grupo de precios por ubicación** para cobrar distinto en delivery vs.
>   en el local, sin duplicar productos.
> - El listado muestra cada tipo con su **Cargo Adicional**.

PENDIENTE DE VERIFICAR: en qué punto exacto del POS el cajero/salonero elige el
tipo de servicio durante la venta.

# Reservas

# Reservas con Cupos y Factura Asociada

## ¿Qué es / para qué sirve?

El módulo de **Reservas** ahora permite controlar la agenda con **cupos**: turnos con
horario fijo y aforo que usted define una sola vez. Así evita choques de agenda — por
ejemplo, que dos clientes reserven el local completo el mismo día.

Además, cada reserva puede quedar **asociada a una factura** (una cuenta abierta del
cliente con los productos del paquete), que se cobra el día del servicio desde el POS.

En el menú, **Reservas** ahora tiene dos opciones:

- **Calendario** — donde se crean y ven las reservas (como siempre).
- **Configuraciones** — donde el administrador define los cupos.

## Paso a paso

### Definir los cupos (una sola vez)

1. Vaya a **Reservas → Configuraciones**.
2. Pulse **Añadir cupo** y complete:
   - **Nombre del cupo**: como quiera llamarlo, por ejemplo `FULL PARK` o `RESERVADO`.
   - **Qué se reserva**:
     - **Sucursal completa** — el cliente reserva todo el local.
     - **Salón completo** — el cliente reserva un salón (área) entero.
     - **Una mesa** — el cupo reserva esa mesa.
   - **Horario** del turno (por ejemplo 11:00 a 14:00).
   - **Días de la semana** en que existe el cupo.
   - **Aforo**: cuántas reservas admite el mismo día. `1` = exclusivo.
3. Guarde. Repita para cada turno (por ejemplo, otro par de cupos de 15:00 a 18:00).

[CAPTURA: pantalla Reservas → Configuraciones con la lista de cupos]

### Ejemplo real: FULL PARK y RESERVADO

Un parque define para la mañana dos posibilidades:

| Cupo | Qué se reserva | Efecto |
|---|---|---|
| FULL PARK | Sucursal completa | Reserva todo el local: nadie más puede reservar nada en ese horario |
| RESERVADO | Salón completo (área Reservado) | Reserva el salón privado: FULL PARK queda bloqueado, pero el público sigue entrando al área pública pagando su entrada (sin reserva) |

El bloqueo es **automático**: si cualquiera de los dos está reservado, el otro aparece
como "No disponible (choca con otra reserva)" y el sistema rechaza el intento aunque se
fuerce. Al día siguiente ambos vuelven a estar libres.

### Crear una reserva con cupo

1. En **Reservas → Calendario**, pulse **Añadir Nueva Reserva** (o doble clic en un día).
2. Elija la sucursal y el **cliente** (el campo permite buscar escribiendo; con el
   botón **+** crea un cliente nuevo).
3. Elija la **fecha**: el campo **Cupo (turno)** muestra los cupos de ese día con los
   espacios que quedan. Los llenos o bloqueados aparecen deshabilitados.
4. Al elegir el cupo, los campos de hora desaparecen: el horario es el del turno y se
   muestra en pantalla. Si no elige cupo, la reserva funciona a **horario libre** y ahí
   sí se indican las horas de inicio y fin.
5. Guarde.

[CAPTURA: modal de reserva con el selector de cupo mostrando "quedan 2"]

### Asociar una factura a la reserva

Si el cliente reserva un paquete con productos (por ejemplo, un cumpleaños con comida),
primero cree la cuenta en el **POS** como venta en espera o cuenta por cobrar. Luego:

1. En el modal de reserva, en **Factura asociada**, elija la cuenta del cliente. Si
   elige primero la factura, **el cliente se selecciona solo**.
2. Guarde. El detalle de la reserva mostrará el número de la factura, el monto y su
   estado.
3. **El día del servicio**, el cajero recupera esa cuenta en el POS y cobra el 100%.

> Cancelar o eliminar la reserva **no** toca la factura: la cuenta sigue abierta en el
> POS para cobrarla o anularla por el camino normal.

## Notas y avisos

> **Sin cupos, nada cambia.** Si usted no define cupos, las reservas funcionan a horario
> libre exactamente como antes.

> **El aforo es por cupo y por día.** Un cupo con aforo 10 admite 10 reservas ese día y
> luego aparece "Lleno".

> La sección **Configuraciones** solo la ven los usuarios con permiso de administrar
> todas las reservas.

> Al guardar la reserva puede enviarse una **notificación** al cliente por correo o
> WhatsApp. El texto de esa notificación se edita en **Configuración → Plantillas de
> Notificación** (revise que esté en español).

# Áreas y Mesas

# Enrolar personal por área

## ¿Qué es / para qué sirve?

Cuando el **Control de acceso por áreas** está activo (se enciende en
Configuración → POS), cada área del restaurante tiene su lista de personal
enrolado: solo esas personas ven las mesas del área en el POS y en la Vista en
Planta. Este artículo explica cómo armar esa lista. Solo los administradores
pueden enrolar, y ellos siempre ven todas las mesas.

## Paso a paso

1. Entre a **Restaurante → Áreas**. Con el control activo, cada fila muestra el
   botón **Enrolar personal**. [CAPTURA: listado de áreas con el botón naranja]
2. Haga clic en el botón del área que quiere configurar.

**Si el esquema es de enrolamiento fijo:**

3. Elija en la lista a las personas que pertenecen al área y presione **Guardar**.
   [CAPTURA: modal con la lista de personal]

**Si el esquema es por día de la semana:**

3. Verá una tabla con una fila por empleado y una columna por día (Domingo a
   Sábado). Haga clic sobre la casilla del día que le toca a cada persona; la
   celda se pinta de verde. [CAPTURA: rejilla semanal con casillas marcadas]
4. Debajo de cada día aparece un **contador** con cuántas personas quedaron
   asignadas; si un día queda en **0 (en rojo)**, ese día nadie —salvo los
   administradores— verá las mesas del área.
5. Con mucho personal, use el **buscador por nombre** de la parte superior; filtrar
   no borra lo que ya marcó.
6. Presione **Guardar**.

## Notas y avisos

> **Estaciones compartidas (una caja para varios saloneros con PIN):** enrole
> también a la **cuenta con la que la estación inicia sesión** en todas las áreas
> que atiende esa estación, para que el equipo muestre las mesas. Al tomar o
> guardar un pedido, quien decide es el **PIN**: si el PIN es de un salonero que no
> pertenece al área de la mesa, el sistema lo rechaza en el momento.

> **Tablets personales (cada salonero con su usuario, sin PIN):** basta con enrolar
> a cada usuario en sus áreas; su tablet solo mostrará esas mesas, también en modo
> sin internet.

> Guardar el enrolamiento de un esquema no borra el del otro: si un día cambia del
> esquema fijo al de días (o al revés), lo ya configurado en cada uno se conserva.

> Una mesa **sin área asignada** no se restringe: la ve todo el personal.

# Mapa de Salones e Impresoras

## ¿Qué es / para qué sirve?

Es un dibujo que muestra, de un solo vistazo, **qué impresora atiende a cada salón**.

Hasta ahora, para saber por dónde imprime un salón había que abrir su ficha y leer tres
desplegables; y para comparar dos salones, abrir dos fichas y acordarse. Con varios
salones y varias impresoras eso no lo sostiene nadie de memoria. Aquí está todo junto.

Es una pantalla de **solo consulta**: no se cambia nada desde el mapa. Para modificar la
configuración se sigue entrando a la ficha del salón.

## Paso a paso

1. Entre a **Restaurante → Áreas**.
2. Presione el botón **Mapa de impresoras**, arriba a la derecha. [CAPTURA: el botón
   junto a "Añadir"]
3. Verá los **salones a la izquierda** y las **impresoras a la derecha**, unidos por
   líneas. [CAPTURA: el mapa completo]
4. **Pase el mouse sobre un salón** para que se apague todo lo demás y queden encendidas
   solo sus conexiones. Funciona igual señalando una impresora.
5. Arriba puede encender o apagar los tres tipos de línea: **Comandas** (viene
   encendida), **Precuenta** y **Factura**.
6. Más abajo está la **misma información en una tabla de texto**, que se puede imprimir o
   copiar a un correo.

## Cómo se lee el dibujo

| Lo que ve | Qué significa |
|---|---|
| Línea azul | Por ahí salen las **comandas** de ese salón |
| Línea morada punteada | Por ahí sale la **precuenta** |
| Línea naranja punteada | Por ahí sale la **factura** |
| **Línea ámbar y gruesa** | Hay una **redirección**: ese salón no usa la impresora de siempre |

Las líneas ámbar son las que hay que mirar. Todo lo demás es el comportamiento normal;
una redirección es una excepción que alguien configuró a propósito, y es lo que uno no
puede adivinar. En la tabla de texto aparece además de qué impresora venía.

## Los dos avisos

Si arriba aparece un **aviso amarillo** con categorías sin impresora, tome nota: lo que
se venda de esas categorías **no se imprime en ningún salón**. Se arregla asignándoles
impresora en el nomenclador de Categorías.

Si aparece un **aviso rojo**, hay una redirección que apunta a una impresora que ya no
existe. Esas comandas no salen por ningún lado y hay que corregir la redirección en la
ficha del salón.

## Notas y avisos

> Solo se dibujan las impresoras que **de verdad reciben algo**. Si tiene una impresora
> configurada que ninguna categoría usa y ningún salón redirige hacia ella, no aparece en
> el mapa — no tendría ninguna línea que mostrar.

> Las comandas se rutean por **categoría de producto**, y esa regla es la misma para todo
> el negocio. La redirección por salón es una capa encima: cambia el destino solo para
> las mesas de ese salón.

> El mapa usa el mismo permiso que el nomenclador de Áreas, así que quien puede ver las
> áreas puede ver el mapa.

# Mesas y salón

# Pasar una mesa a otro salonero

## ¿Qué es / para qué sirve?

Sirve para **cambiarle el salonero a una mesa que ya tiene pedido abierto**, sin entrar a
editar el pedido.

Se usa todos los días: alguien sale a almorzar, termina su turno, o se pidió una mesa por
error a nombre de otro. Antes esto se hacía cambiando el desplegable de personal de
servicio dentro del pedido — cualquiera podía hacerlo y no quedaba constancia de quién lo
hizo.

Ahora es una acción aparte, con su propio permiso y con registro.

## Paso a paso

1. Ubique la mesa, ya sea en el **salón** o en el listado **Todos los Pedidos**.
2. Abra el menú de acciones de esa mesa y elija **Reasignar personal de servicio**.
3. En la ventana que aparece, escoja el **nuevo personal de servicio**.
4. Confirme.

El sistema avisa **"Personal de servicio reasignado correctamente"** y la mesa pasa a
mostrar el nombre nuevo.

[CAPTURA: la opción "Reasignar personal de servicio" en el menú de acciones de una mesa]

[CAPTURA: la ventana para escoger el nuevo personal de servicio]

## Notas y avisos

> **Solo aparece si usted tiene el permiso.** Se llama *"Reasignar el personal de servicio
> de una mesa"* y se marca por rol. Si no lo ve, pídaselo al administrador.

> **Solo se puede reasignar un pedido abierto.** Una vez cobrado, ya no: esa venta quedó
> registrada a nombre de quien la atendió, y cambiarla alteraría los reportes y las
> propinas ya calculadas.

> **Queda constancia.** El sistema registra quién hizo el cambio y cuándo.

> El permiso para reasignar es **independiente** del de abrir ventas de otros. Un cajero
> puede repartir mesas sin poder editar los pedidos de nadie.