Control de Afluencia
El Control de Afluencia es el centro de comando de SinFila. Desde esta pantalla, el Host puede gestionar todo el flujo de clientes: desde su llegada hasta que finalizan su visita. Es la herramienta principal para la operación diaria del restaurante.
Vista General
La pantalla de Control de Afluencia está organizada en 4 pestañas principales:
| Pestaña | Descripción |
|---|---|
| Ingreso | Registra nuevos clientes: check-in directo, fila virtual o reservaciones |
| Estado Actual | Visualiza y gestiona las sesiones activas en tiempo real |
| Fila Virtual | Monitorea y gestiona la fila de espera |
| Reservaciones | Administra las reservaciones pendientes del día |

1. Ingreso (Registro de Entrada)
La pestaña Ingreso es el punto de entrada para todos los clientes. Cuenta con 3 sub-pestañas para diferentes tipos de registro:
1.1 Check-in (Walk-in)
El Check-in directo es para clientes que llegan sin reservación ni registro previo en la fila virtual.

Campos del formulario:
| Campo | Obligatorio | Descripción |
|---|---|---|
| Nombre del cliente | No | Nombre para identificar al cliente |
| Teléfono | No | Número de 10 dígitos para contacto |
| Número de comensales | ✅ Sí | Cantidad de personas en el grupo |
| Mesas | ✅ Sí | Selección de mesa(s) disponibles |
Selección de mesas
Al hacer clic en el campo de mesas, se despliega un selector múltiple con las mesas disponibles:

Cada mesa muestra su capacidad disponible. Para mesas combinables, puedes seleccionar varias mesas para un mismo grupo grande.
Confirmación exitosa
Al completar el registro, aparece una notificación de éxito:

1.2 Fila Virtual
Cuando no hay mesas disponibles inmediatamente, puedes agregar clientes a la Fila Virtual.
Importante: Antes de agregar a la fila virtual, el sistema verifica si hay mesas disponibles. Si las hay, mostrará un modal preguntando si realmente deseas enviar al cliente a la fila.

Formulario de ingreso a fila

| Campo | Obligatorio | Descripción |
|---|---|---|
| Nombre del cliente | ✅ Sí | Nombre para llamar al cliente |
| Teléfono | No | Para notificaciones |
| Número de comensales | ✅ Sí | Cantidad de personas |

1.3 Reservación
Crea reservaciones para clientes que desean asegurar su lugar en una fecha y hora específicas.

Campos del formulario:
| Campo | Obligatorio | Descripción |
|---|---|---|
| Nombre del cliente | ✅ Sí | Nombre de quien hace la reservación |
| Teléfono | ✅ Sí | Número de 10 dígitos |
| Número de comensales | ✅ Sí | De 1 a 50 personas |
| Fecha | ✅ Sí | Desde hoy hasta 1 mes en adelante |
| Hora | ✅ Sí | Horarios disponibles según el día |
| Notas especiales | No | Alergias, celebraciones, preferencias |
Restricción de horario: Las reservaciones para el mismo día deben hacerse con al menos 2 horas de anticipación.
2. Estado Actual
La pestaña Estado Actual muestra todas las sesiones activas en tiempo real. Aquí gestionas el progreso de cada cliente desde que se sienta hasta que finaliza.

Columnas de la tabla:
| Columna | Descripción |
|---|---|
| Mesa | Nombre de la(s) mesa(s) asignadas |
| Usuario | Nombre del cliente |
| Comensales | Número de personas |
| Tipo | Origen: Walk-in, Fila Virtual o Reservación |
| Hora de entrada | Momento del check-in |
| Acciones | Botón de estado con progresión |
Tipos de origen (badges)
Cada sesión muestra un badge de color indicando su origen:
| Badge | Significado |
|---|---|
| 🔵 Walk-in | Cliente que llegó sin previo aviso |
| 🟣 Fila Virtual | Cliente que esperó en la fila virtual |
| 🟠 Reservación | Cliente con reservación previa |
Progresión de Estados
El botón de acciones permite avanzar (o retroceder) el estado de cada sesión. Los estados siguen una secuencia lógica:
Estado 1: Sentado

Estado 2: Ordenando

Estado 3: Sirviendo

Estado 4: Pagando

Estado 5: Finalizado
Al hacer clic para finalizar, aparece un diálogo de confirmación:

Al finalizar una sesión, la mesa se libera automáticamente y queda disponible para nuevos clientes. Esta acción no se puede deshacer fácilmente.
Secuencia Completa de Estados
Sentado → Ordenando → Sirviendo → Pagando → Finalizado
↑___________________________________________|
(Botón de retroceso)3. Fila Virtual
La pestaña Fila Virtual muestra a todos los clientes esperando ser atendidos.

Columnas de la tabla:
| Columna | Descripción |
|---|---|
| Ticket | Número de turno asignado automáticamente |
| Nombre | Nombre del cliente en espera |
| Personas | Número de comensales |
| Tiempo en fila | Minutos transcurridos desde el registro |
| Acciones | Botón de Check-in para sentar al cliente |
Proceso de Check-in desde Fila Virtual
- Haz clic en el botón Check-in del cliente:

- Los datos del cliente vienen precargados (nombre, teléfono, comensales)
- Solo necesitas seleccionar la(s) mesa(s):

- Haz clic en Registrar Check-in
- El cliente pasa automáticamente a Estado Actual
✅ Al hacer check-in desde la fila virtual, el sistema registra el tiempo de espera del cliente para análisis posterior.
4. Reservaciones
La pestaña Reservaciones muestra todas las reservaciones pendientes para el día.

Columnas de la tabla:
| Columna | Descripción |
|---|---|
| Nombre | Nombre del cliente con reservación |
| Personas | Número de comensales esperados |
| Fecha | Fecha de la reservación |
| Hora | Hora programada |
| Acciones | Botón de Check-in cuando llega el cliente |
Proceso de Check-in desde Reservación
El flujo es similar al de la fila virtual:
- Cuando el cliente llega, haz clic en Check-in
- Los datos vienen precargados
- Selecciona la(s) mesa(s) disponibles
- Confirma el registro
5. Historial de Sesiones
Los usuarios con rol de Administrador u Owner pueden acceder al historial de sesiones.
Activar vista de Historial
Usa el toggle en la esquina superior derecha para cambiar entre Vista Actual e Historial:

Filtrar por fecha
Usa el selector de calendario para ver sesiones de fechas específicas.
Columnas adicionales en Historial:
| Columna | Descripción |
|---|---|
| Estado | Estado final de la sesión |
| Fecha | Fecha en que ocurrió la sesión |
Ver Detalles de Sesión
Haz clic en el ícono de ojo (👁️) para ver los detalles completos:

Información en el Modal de Detalles:
Información básica:
- Mesa - Mesa(s) utilizadas
- Comensales - Número de personas
- Fecha - Fecha de la sesión
- Entrada - Hora de check-in
- Cliente - Nombre del cliente
- Teléfono - Contacto (si se proporcionó)
Línea de tiempo:
Visualiza cada etapa con su hora exacta:
- Sentado
- Ordenó
- Servido
- Pagando
- Finalizado
Tiempos de servicio:
Métricas automáticas para análisis de eficiencia:
| Métrica | Descripción |
|---|---|
| Tiempo hasta ordenar | Desde sentado hasta que ordenó |
| Tiempo de preparación | Desde que ordenó hasta que fue servido |
| Tiempo comiendo | Desde servido hasta pedir la cuenta |
| Tiempo pagando | Desde pedir cuenta hasta finalizar |
| Tiempo total en mesa | Duración completa de la sesión |
Estas métricas son valiosas para optimizar la operación y entender los tiempos de rotación de mesas.
Casos Especiales
Sin mesas disponibles
Cuando no hay mesas disponibles, el sistema muestra una alerta:

En este caso, tienes dos opciones:
- Ir a Estado Actual → Para liberar una mesa finalizando una sesión
- Agregar a Fila Virtual → Para que el cliente espere
Flujos de Trabajo Completos
Flujo A: Walk-in Directo
1. Cliente llega
2. Pestaña Ingreso → Check-in
3. Llenar datos + Seleccionar mesa(s)
4. Registrar Check-in
5. Aparece en Estado Actual
6. Progresar estados hasta FinalizadoFlujo B: Fila Virtual → Check-in
1. Cliente llega pero no hay mesa
2. Pestaña Ingreso → Fila Virtual
3. Registrar en fila
4. Aparece en pestaña Fila Virtual
5. Cuando hay mesa: Click Check-in
6. Seleccionar mesa(s)
7. Aparece en Estado Actual
8. Progresar hasta FinalizadoFlujo C: Reservación → Check-in
1. Crear reservación (puede ser desde app cliente)
2. Aparece en pestaña Reservaciones
3. Cliente llega a la hora de su reservación
4. Click Check-in
5. Seleccionar mesa(s)
6. Aparece en Estado Actual
7. Progresar hasta FinalizadoSiguientes Pasos
Una vez dominado el Control de Afluencia, puedes: