05 – Manual de Usuario: Orden Receiver (Receiver + plus)
App del Manager / Recepcionista
Sistema:ZEUMAX(ZEUMAX)
Versión: React Native + Expo SDK ~55
Dirigido a: Personal de restaurante, managers, recepcionistas y encargados de turno
Documento:05-orden-receiver.md
0. Interfaz visual / Vistas principales
A continuación se muestran las capturas de pantalla principales de Orden Receiver.
Mockups visuales de Orden Receiver
Pantalla de acceso y bienvenida a la aplicacion movil.
Pantalla de acceso y bienvenida a la aplicacion movil.
Vista de 3. BranchSelectorScreen dentro de la aplicacion movil.
Vista principal con metricas y resumen operativo de la aplicacion movil.
Gestion de pedidos: listado, detalle, estados y acciones desde la aplicacion movil.
Gestion de pedidos: listado, detalle, estados y acciones desde la aplicacion movil.
Administracion de productos, categorias y opciones del catalogo.
Vista de 8. ProductDetailScreen dentro de la aplicacion movil.
Vista de 9. StatisticsScreen dentro de la aplicacion movil.
Vista de 10. StatisticsDetailScreen dentro de la aplicacion movil.
Pantalla de configuracion y ajustes del sistema.
Vista de 12. ProfileScreen dentro de la aplicacion movil.
Pantalla de configuracion y ajustes del sistema.
Pantalla de configuracion y ajustes del sistema.
Gestion de impresoras conectadas y sus ajustes.
Vista de 16. EmployeeListScreen dentro de la aplicacion movil.
Vista de 17. EmployeeFormScreen dentro de la aplicacion movil.
Vista de 18. DeliveryListScreen dentro de la aplicacion movil.
Vista de 19. MaintenanceScreen dentro de la aplicacion movil.
1. Introducción
Orden Receiver (nombre publicado en el dispositivo como "Receiver + plus") es la aplicación móvil y tablet que lleva el restaurante directamente en la palma de tu mano. Es la herramienta principal —y más importante— para que el manager, el recepcionista o la persona encargada del turno pueda recibir, gestionar, imprimir y controlar cada pedido que entra al restaurante.
Imagina esta app como el cerebro operativo de la cocina y del mostrador. Desde aquí se decide si un pedido se acepta, se rechaza, se manda a preparar, se empaqueta, se asigna a un repartidor o se entrega en mesa. Todo fluye desde Orden Receiver. Si esta app no funciona o no está atenta, el restaurante no sabe qué cocinar ni a quién entregarle.
Orden Receiver está diseñada para trabajar las 24 horas del día escuchando al servidor. No necesita que estés tocando la pantalla constantemente: tiene un sistema de sonidos, vibraciones y encendido automático de pantalla que te avisa cuando llega un nuevo pedido, incluso si la app está minimizada o la tablet está "dormida". Es como tener un recepcionista digital que nunca se duerme.
Este manual te guiará pantalla por pantalla, paso a paso, como si fuera tu primer día de trabajo. No necesitas saber de programación ni de tecnología: solo sigue las instrucciones, mira los colores, escucha los sonidos y toca los botones que aquí te indicamos. Al finalizar esta guía, serás capaz de operar la app con total confianza.
2. Requisitos y Material Necesario
Antes de empezar, asegúrate de contar con lo siguiente:
| Requisito | Detalle | Obligatorio |
|---|---|---|
| Dispositivo | Tablet o móvil Android (recomendado: tablet de 10" para mejor visibilidad) | Sí |
| Internet | Conexión Wi-Fi o datos móviles estable (mínimo 3 Mbps recomendado) | Sí |
| Sonido | Volumen activo y audible en el dispositivo | Sí |
| Impresora térmica | Bluetooth (BT) o por Red (Wi-Fi/Ethernet). Opcional pero muy recomendada para imprimir tickets en cocina y barra | Recomendada |
| Batería | El dispositivo debe mantenerse conectado a la corriente durante el turno | Sí |
| Acceso | Un usuario "manager" creado previamente desde el Panel Admin de ZEUMAX, con email y PIN de 4 dígitos asignados | Sí |
Consejo: Si usas una tablet, configúrala en modo "No apagar pantalla" mientras está cargando. Así el polling nativo puede despertar la pantalla al instante cuando llegue un pedido nuevo.
3. Instalación y Primer Acceso
3.1. Descarga de la app
Orden Receiver no está en Google Play. Tu administrador te enviará un enlace directo (normalmente un archivo .apk o un enlace de descarga interno de la empresa). Para instalar:
- Toca el enlace en tu dispositivo Android.
- Si pide permiso para instalar apps de fuentes desconocidas, acepta (esto es normal para apps empresariales internas).
- Espera a que la instalación termine. Verás el icono de la app con el nombre "Receiver + plus" en tu pantalla de inicio.
Importante: Anota en un papel el email de acceso y tu PIN de 4 dígitos. El admin te los debe proporcionar antes del primer día.
3.2. Pantalla de bienvenida (WelcomeScreen)
Al abrir la app por primera vez, verás la WelcomeScreen:
- En el centro: El logo grande de ZEUMAX (o "Receiver + plus" si el branding está actualizado).
- Texto de bienvenida: Un mensaje corto como "Bienvenido a tu centro de control de pedidos".
- Botón grande "Comenzar": Situado en la parte inferior, color principal del tema (normalmente verde o azul corporativo).
Al tocar "Comenzar", la app solicitará permisos:
- Notificaciones: Permite que la app te avise con sonido y vibración. Toca "Permitir".
- Bluetooth: Necesario si vas a usar impresoras térmicas Bluetooth. Toca "Permitir".
- Ubicación (en algunos casos): El Bluetooth en Android requiere permiso de ubicación para escanear dispositivos cercanos. Toca "Permitir todo el tiempo" o "Permitir solo con la app en uso" según lo que permita tu versión de Android.
Si rechazas algún permiso por error, puedes activarlo luego desde Ajustes del teléfono → Aplicaciones → Receiver + plus → Permisos.
3.3. Login (LoginScreen)
Después de la bienvenida, llegas a la LoginScreen. Es una pantalla sencilla y minimalista:
- Campo de Email: Arriba, una caja de texto con icono de sobre. Toca y escribe tu email completo (ejemplo:
manager@trestaurante.com). - PIN de 4 dígitos: Debajo, aparece un teclado numérico personalizado que ocupa la mitad inferior de la pantalla. Los números son grandes para evitar errores de dedo gordo. Toca los 4 dígitos de tu PIN uno por uno.
- Botón "Entrar": Situado debajo del PIN o flotando en la parte inferior. Color verde o azul brillante. Al tocarlo, la app envía tu email + PIN al servidor (
https://a.masquetapas.bar/api/v1/login). - ⏳ Indicador de carga: Mientras verifica, aparece un spinner o una barra de progreso. No cierres la app.
Si el PIN es incorrecto, la app muestra un toast rojo: "Credenciales incorrectas". Borra los números y vuelve a intentar. Si olvidaste tu PIN, contacta al admin desde el Panel Web.
3.4. Selección de sucursal (BranchSelectorScreen)
Si tu usuario tiene acceso a más de una sucursal o cocina (por ejemplo, eres manager de zona), después del login aparece la BranchSelectorScreen:
- Lista de sucursales: Cada item es una tarjeta con:
- Nombre de la sucursal (ej: "Cocina Central - Calle Mayor").
- Dirección corta debajo.
- Un radio button (círculo) a la derecha para seleccionarla.
- Botón "Confirmar": En la parte inferior, color principal. Solo se activa si has seleccionado una sucursal.
Toca la sucursal donde estás trabajando hoy, luego toca "Confirmar". La app guardará esta selección en el almacenamiento local (MMKV) para que la próxima vez entre directamente.
3.5. Primer Dashboard (DashboardScreen)
¡Felicidades! Has entrado. La primera pantalla que ves es el DashboardScreen, el corazón palpitante de la app. Aparece inmediatamente y muestra:
- Tarjeta "Nuevos": Número grande en rojo/amarillo de pedidos que acaban de entrar y no has visto.
- Tarjeta "En preparación": Número en naranja de pedidos que la cocina está cocinando ahora.
- Tarjeta "Listos": Número en verde claro de pedidos que ya están empaquetados y esperan repartidor o cliente.
- Tarjeta "Entregados hoy": Número en gris/verde oscuro del total de pedidos completados en el día.
- Lista scrollable abajo de las tarjetas: los pedidos más recientes con su número, hora, tipo y estado.
- Bottom Tabs en la parte inferior: Inicio (Dashboard), Pedidos, Menú, Repartidores, Más.
Tu pantalla está viva. Si llega un pedido nuevo mientras estás aquí, la tarjeta "Nuevos" parpadeará o aumentará su número, y sonará un tono especial.
4. Guía Visual Pantalla por Pantalla
A continuación, describimos cada pantalla como si fuera tu primer día. Para cada una indicamos: cómo llegar, cómo se ve y qué hace cada elemento.
4.1. DashboardScreen — El Tablero Principal
Cómo llegar: Es la pantalla inicial al abrir la app. También desde la bottom tab "Inicio" (icono de casa).
Cómo se ve:
- Barra superior: Muestra el nombre de la app o de la sucursal, a veces la hora actual, y un icono de ** campana** a la derecha (notificaciones).
- Grid de tarjetas resumen (2×2):
- Cada tarjeta es un rectángulo con esquinas redondeadas, color de fondo suave y número grande en el centro.
- "Nuevos": Fondo rojo muy pálido, número grande en rojo intenso. Esta es la tarjeta más importante. Si hay un número mayor que 0, significa que hay pedidos que no has aceptado.
- "En preparación": Fondo naranja pálido, número naranja.
- "Listos": Fondo verde lima pálido, número verde.
- "Entregados hoy": Fondo gris muy claro, número gris oscuro o verde.
- Sección "Pedidos recientes": Debajo de las tarjetas, un título "Pedidos recientes" y una lista vertical scrollable.
- Cada fila de pedido: número pequeño a la izquierda (ej: #1042), hora (10:35 AM), nombre del cliente, tipo de pedido ( Delivery, Takeaway, Mesa), total en dinero, y a la derecha un badge de color con el estado actual.
- Botones rápidos: Algunas versiones muestran botones flotantes o accesos rápidos como "Ver todos los pedidos" o "Imprimir último ticket".
- Badge de impresoras: En la esquina superior o inferior, un pequeño icono de impresora con un punto verde (conectada) o rojo (desconectada).
Qué hace cada elemento:
- Tocar una tarjeta de resumen: Normalmente te lleva a la OrderListScreen filtrada por ese estado (ej: tocar "Nuevos" te lleva a la lista de pedidos nuevos).
- Tocar un pedido de la lista reciente: Abre el OrderDetailScreen de ese pedido para ver todo el detalle y actuar sobre él.
- Icono de campana: Muestra un historial de notificaciones recientes (nuevos pedidos, cambios de estado, mensajes del sistema).
Flujo paso a paso (ejemplo):
Es martes 10:30 AM. Abres la app. El Dashboard muestra Nuevos: 0, En preparación: 2, Listos: 1, Entregados hoy: 5. De repente, el dispositivo emite un sonido especial (
new-order.mp3), vibra y la pantalla se enciende sola (si estaba apagada). La tarjeta "Nuevos" cambia a 1. Tocas la tarjeta "Nuevos" y la app te lleva a la lista de pedidos.
4.2. OrderListScreen — La Lista de Pedidos
Cómo llegar: Desde la bottom tab "Pedidos" (icono de lista o documento). También tocando cualquier tarjeta de resumen del Dashboard.
Cómo se ve:
- Barra superior: Título "Pedidos", a veces un botón de calendario para filtrar por fecha.
- Tabs horizontales: Una fila de pestañas scrollable debajo de la barra:
- Nuevos (rojo)
- Activos (azul/naranja)
- Delivery (morado/azul)
- Completados (verde/gris)
- La tab activa tiene una línea de color debajo y texto en negrita.
- Lista de pedidos: Cada item es una tarjeta blanca con sombra suave que ocupa casi todo el ancho.
- Izquierda: Un indicador de color vertical o un círculo con el color del estado.
- Centro: Número de pedido grande (ej: #1045), debajo la hora (10:42 AM), nombre del cliente ("María García"), tipo de pedido con icono ( Delivery), y el total en grande a la derecha (ej: $24.50).
- Derecha: Badge de estado con texto y color (ej: un rectángulo rojo que dice "Pendiente").
- Pull-to-refresh: Si bajas la lista hacia abajo con el dedo, aparece un spinner y se recargan los pedidos desde el servidor.
- Filtros: Tocando el icono de calendario o filtro arriba a la derecha, puedes elegir "Hoy", "Ayer", "Esta semana" o una fecha específica.
Qué hace cada elemento:
- Tocar una tab: Cambia la lista para mostrar solo pedidos de esa categoría. Por ejemplo, la tab "Delivery" muestra solo pedidos que tienen que ir a domicilio.
- Tocar un pedido: Abre la OrderDetailScreen.
- Pull-to-refresh: Fuerza una consulta al servidor (
GET /manager/orders) para traer los pedidos más recientes. Úsalo si crees que te falta un pedido.
Flujo paso a paso (ejemplo):
Estás en la tab Nuevos. Ves un solo pedido: #1045, 10:42 AM, María García, Delivery, $24.50, estado Pendiente (badge rojo). Tocas la tarjeta. La app se desliza hacia la derecha mostrando la pantalla de detalle del pedido.
4.3. OrderDetailScreen — El Detalle del Pedido (¡La más importante!)
Cómo llegar: Tocando cualquier pedido en la OrderListScreen o en el Dashboard.
Cómo se ve: Es una pantalla larga, scrollable verticalmente, con mucha información. La dividimos en secciones de arriba a abajo:
Header (Parte superior, fija al hacer scroll)
- Flecha "←" a la izquierda para volver atrás.
- Número de pedido grande y centrado (ej: #1045).
- Estado del pedido: Debajo del número, un badge grande y muy colorido con el nombre del estado (ej: "PENDIENTE" en letras blancas sobre fondo rojo intenso, o "CONFIRMADO" sobre fondo azul).
- Fecha y hora: Texto pequeño debajo del estado (ej: "Recibido: 10:42 AM, 15 Jun 2026").
Sección Cliente
- Título "Cliente" con icono de persona .
- Nombre: María García.
- Teléfono: +1 809 555 1234. Tocar el número puede abrir la app de llamadas del teléfono.
- Dirección de entrega (solo Delivery): Un bloque de texto formateado con la dirección completa, incluyendo calle, número, edificio, apartamento, ciudad y referencias. Ej: "Calle Principal #45, Edificio Sol, Apt 3B, Santo Domingo. Referencia: Portón negro junto a la farmacia".
- Notas del cliente: Un recuadro amarillo claro con notas como "Sin cebolla, por favor" o "Tocar el timbre dos veces".
Sección Productos
- Título "Productos" con icono de cubiertos .
- Lista detallada: Cada producto es una tarjeta o fila con:
- Nombre del producto: En negrita (ej: "Hamburguesa Doble").
- Cantidad: Número grande a la izquierda (ej: ×2).
- Variaciones: Texto secundario (ej: "Pan brioche, carne medio, queso cheddar").
- Extras: Lista con + (ej: "+ Tocino extra ($1.50)").
- Precio unitario: A la derecha (ej: "$8.00 c/u").
- Subtotal del producto: Más a la derecha o debajo (ej: "$16.00").
- Separadores: Líneas finas grises entre productos.
Sección Totales
- Subtotal: Suma de todos los productos.
- Envío: Costo de entrega (solo Delivery).
- Impuestos: ITBIS u otros impuestos aplicados.
- Descuento: Si hay cupón o promoción, aparece en verde con signo menos (ej: "-$2.00").
- Total: Número muy grande y en negrita al final (ej: $24.50). Es el dinero que debe pagar el cliente.
Sección Repartidor (aparece solo cuando el pedido está en estado handover o posterior)
- Título "Repartidor" con icono de moto .
- Nombre: Juan Pérez.
- Teléfono: +1 809 555 9876.
- Estado: "En línea" o "Desconectado" .
- Botón "Cambiar repartidor": Si ya hay uno asignado, aparece un botón gris para cambiarlo.
Botones de Acción Inferiores (Fijos en la parte inferior)
Estos son los botones más importantes de la app. Ocupan toda la parte inferior y siempre están visibles. Cambian según el estado del pedido:
| Estado del pedido | Botones que aparecen | Color y Texto |
|---|---|---|
pending (Pendiente) |
Aceptar + Rechazar | Verde "Aceptar" / Rojo "Rechazar" |
confirmed (Confirmado) |
Preparar | Azul "Preparar" |
processing (En preparación) |
Listo para recogida | Naranja "Listo para recogida" |
handover (Listo para recogida) |
Asignar repartidor | Azul "Asignar repartidor" |
Nota: Si el pedido es tipo
takeawayomesa, el botón de "Asignar repartidor" no aparece. En su lugar, el flujo puede terminar con "Entregado al cliente" o similar (según la versión del backend).
Botón de Impresión
- Icono de impresora en la barra superior o flotando en alguna esquina. Tocarlo envía el ticket del pedido a la impresora térmica configurada (cocina o caja).
- Si la impresora está desconectada, aparece un toast rojo: "Impresora no conectada".
Botón de Chat
- Icono de chat en la barra superior o junto a los datos del cliente. Tocarlo abre la ChatDetailScreen con este cliente para poder enviarle mensajes (por ejemplo, "Su pedido está en camino").
Flujo paso a paso (ejemplo completo):
Estás viendo el pedido #1045 de María García. Estado: PENDIENTE (rojo grande). Productos: 2 hamburguesas dobles con tocino extra. Total: $24.50. Dirección: Calle Principal #45.
Paso 1: Revisas que todo esté correcto. Tocas el botón verde grande "Aceptar". La app envía la orden al servidor (
POST /manager/orders/1045/accept). El badge rojo cambia a "CONFIRMADO" azul. El botón inferior cambia ahora a "Preparar" azul.Paso 2: La cocina ya puede ver el pedido (si tienes impresora, se imprimió automáticamente el ticket). Esperas 5 minutos. La cocina te dice que ya empezaron. Tocas "Preparar". Estado cambia a "EN PREPARACIÓN" naranja. Botón inferior ahora dice "Listo para recogida".
Paso 3: 10 minutos después, la cocina te dice que el pedido está empaquetado. Tocas "Listo para recogida". Estado cambia a "LISTO PARA RECOGIDA" verde. El botón inferior ahora dice "Asignar repartidor".
Paso 4: Juan Pérez, el repartidor, llega al mostrador. Tocas "Asignar repartidor". Se abre un modal (ventana emergente) con la lista de repartidores activos. Tocas a Juan Pérez. Confirmas. El modal se cierra. La sección de repartidor aparece con el nombre de Juan. El estado pasa a
picked_up(Entregado al repartidor) oout_for_delivery(En camino) según lo que marque el backend o el repartidor desde su app.Paso 5: El repartidor entrega. El cliente confirma desde su app o el repartidor marca como entregado. El pedido pasa a "ENTREGADO" verde oscuro y desaparece de tus listas activas.
4.4. DeliveryListScreen — Lista de Repartidores
Cómo llegar: Desde la bottom tab "Repartidores" (icono de moto o personas).
Cómo se ve:
- Barra superior: Título "Repartidores".
- Lista vertical: Cada item es una tarjeta con:
- Foto circular: A la izquierda, foto del repartidor o un avatar genérico.
- Nombre: En negrita (ej: "Juan Pérez").
- Teléfono: Debajo del nombre.
- Estado: A la derecha, un badge verde "En línea" o gris "Desconectado".
- Entregas hoy: Un número pequeño debajo del estado (ej: "12 entregas hoy").
- Sin botones de acción: Esta pantalla es solo de visualización. No puedes navegar, hacer tracking en tiempo real ni asignar pedidos desde aquí. Para asignar un repartidor, debes hacerlo desde el OrderDetailScreen.
Qué hace cada elemento:
- Tocar un repartidor: Normalmente no hace nada o muestra un toast informativo. No hay detalle individual de repartidor en esta app (eso está en el Panel Admin o en la app del repartidor).
- Usar: Te sirve para saber quién está trabajando hoy y cuántos pedidos ha llevado cada uno.
4.5. MenuListScreen — Menú del Restaurante
Cómo llegar: Desde la bottom tab "Menú" (icono de libro o hamburguesa).
Cómo se ve:
- Barra superior: Título "Menú".
- Grid de categorías: En la parte superior, una fila horizontal scrollable de píldoras o chips con nombres de categorías (ej: "Hamburguesas", "Pizzas", "Bebidas", "Postres"). La categoría activa tiene fondo oscuro y texto blanco.
- Grid de productos: Debajo, una cuadrícula de 2 columnas con tarjetas de producto:
- Imagen: Cuadrada, en la parte superior de la tarjeta.
- Nombre del producto: Debajo de la imagen.
- Precio: En negrita.
- Toggle disponibilidad: Un interruptor (switch) a la derecha. Verde = Disponible. Gris = No disponible (agotado o desactivado).
Qué hace cada elemento:
- Tocar una categoría: Filtra los productos para mostrar solo los de esa categoría.
- Tocar el toggle de un producto: Cambia su disponibilidad inmediatamente (
PUT /manager/products/{id}/availability). Si lo pones en gris, el producto desaparece de la app de los clientes y nadie puede pedirlo. Útil para decir "Se acabaron las hamburguesas de pollo". - Tocar una tarjeta de producto: Abre la ProductDetailScreen.
4.6. ProductDetailScreen — Ficha de Producto
Cómo llegar: Tocando un producto en la MenuListScreen.
Cómo se ve:
- Imagen grande: Ocupa la mitad superior de la pantalla. Si no hay imagen, muestra un placeholder gris.
- Nombre del producto: Grande, debajo de la imagen.
- Descripción: Texto gris con la descripción del producto.
- Ingredientes: Lista con viñetas o chips de ingredientes.
- Precios: Tabla o lista con precios según tamaño o variación (ej: "Pequeña $8.00", "Grande $12.00").
- Toggle "Disponible": Un interruptor grande al final. Verde = a la venta. Gris = fuera de venta.
- Botón "Guardar cambios" (si aplica): Si editaste precio o disponibilidad, aparece este botón para confirmar.
Qué hace cada elemento:
- Toggle de disponibilidad: Igual que en la lista. Controla si el producto puede pedirse o no.
- Nota: La edición de precios puede ser rápida (tocar el precio y cambiarlo) o solo informativa dependiendo de los permisos del usuario. Si no puedes editar el precio, aparece como texto solo.
4.7. PrinterSettingsScreen — Impresoras Configuradas
Cómo llegar: Desde el menú "Más" → "Configuración de impresoras" o desde SettingsScreen → "Impresoras".
Cómo se ve:
- Barra superior: Título "Impresoras".
- Lista de impresoras: Cada item es una tarjeta con:
- Nombre: "Impresora Cocina", "Impresora Barra", "Impresora Caja".
- Tipo: Icono de Bluetooth o Red (Wi-Fi).
- Dirección: MAC address (ej:
AA:BB:CC:11:22:33) para Bluetooth, o IP (ej:192.168.1.50) para Red. - Estado de conexión: Un punto o badge:
- Verde = Conectada y lista para imprimir.
- Rojo = Desconectada. Toca para reintentar conexión.
- Botón flotante "+" o "Añadir impresora" en la parte inferior.
Qué hace cada elemento:
- Tocar una impresora: Muestra opciones para "Probar impresión" (imprime un ticket de prueba), "Editar" o "Eliminar".
- Tocar "Añadir impresora": Abre la PrinterFormScreen.
4.8. PrinterFormScreen — Formulario de Nueva Impresora
Cómo llegar: Tocando "Añadir impresora" en la pantalla anterior.
Cómo se ve:
- Barra superior: Título "Nueva Impresora" y flecha para volver.
- Formulario vertical:
- Campo "Nombre": Texto libre (ej: "Impresora Cocina Principal").
- Selector "Tipo": Dos opciones: ** Bluetooth o ** Red.
- Campo "Dirección":
- Si elegiste Bluetooth: aparece un botón "Buscar dispositivos". Al tocarlo, la app escanea dispositivos Bluetooth cercanos. Seleccionas tu impresora de la lista (muestra nombre y MAC). O puedes escribir la MAC manualmente.
- Si elegiste Red: escribes la IP (ej:
192.168.1.100) y el Puerto (normalmente9100para impresoras térmicas de red).
- Selector "Categorías asignadas": Checkboxes para indicar qué tipo de tickets imprimirá esta impresora:
- Cocina (tickets con los productos para cocinar).
- Barra (tickets de bebidas).
- Caja (tickets de factura/resumen para el cliente).
- Botón "Guardar" en la parte inferior, color verde.
Flujo paso a paso (emparejamiento Bluetooth):
- Tocas "Añadir impresora".
- Escribes el nombre: "Impresora Cocina".
- Tocas "Bluetooth".
- Tocas "Buscar dispositivos". La app pide permiso de Bluetooth (si no lo tiene). Esperas 5-10 segundos.
- Aparece una lista con dispositivos encontrados. Tocas tu impresora (ej: "PT-210" o similar).
- El campo "Dirección" se llena automáticamente con la MAC.
- Marcas Cocina.
- Tocas "Guardar".
- La app intenta conectar. Si el punto se pone verde, imprimes una prueba tocando la impresora en la lista anterior y seleccionando "Probar impresión".
- Si sale el ticket de prueba con texto de ZEUMAX, ¡todo está perfecto!
4.9. StatisticsScreen — Estadísticas de Ventas
Cómo llegar: Desde el menú "Más" → "Estadísticas" o desde la bottom tab si está configurada.
Cómo se ve:
- Barra superior: Título "Estadísticas", a veces con un selector de fecha arriba a la derecha.
- Cards de resumen (horizontal o 2×2):
- "Ventas hoy": Número grande con el dinero total vendido (ej: $1,245.00).
- "Órdenes hoy": Número de pedidos recibidos (ej: 47).
- "Ticket promedio": Promedio de dinero por pedido (ej: $26.49).
- "Producto más vendido": Nombre del producto estrella (ej: "Hamburguesa Clásica").
- Gráfico de barras: Título "Ventas por hora". Eje X: horas del día (8 AM, 9 AM, 10 AM...). Eje Y: dinero. Barras azules o verdes que suben según el volumen de cada hora.
- Gráfico circular (donut): Título "Ventas por categoría". Porciones de colores: azul para Hamburguesas, naranja para Pizzas, verde para Bebidas, etc. En el centro el total.
Qué hace cada elemento:
- Tocar una card: Puede llevar a la StatisticsDetailScreen con el desglose.
- Tocar el selector de fecha: Cambia el período de análisis (hoy, ayer, esta semana, este mes).
- Los gráficos: Son visuales. Te ayudan a ver en qué horas vendes más (para poner más cocineros) y qué categorías son más populares.
4.10. StatisticsDetailScreen — Detalle de Estadísticas
Cómo llegar: Tocando una card o un gráfico en la StatisticsScreen.
Cómo se ve:
- Barra superior: Título con el filtro activo (ej: "Estadísticas - Hoy").
- Filtros por fecha: Botones de chip: "Hoy", "Ayer", "7 días", "30 días", o un botón de calendario para rango personalizado.
- Tabla de datos: Lista desglosada con:
- Hora o fecha.
- Número de pedidos.
- Total de ventas.
- Promedio de ticket.
- Botón "Descargar reporte": En la parte inferior o superior. Al tocarlo, genera un archivo (normalmente CSV o PDF) con los datos del período seleccionado y lo guarda en el dispositivo o lo comparte.
Qué hace cada elemento:
- Cambiar filtros: Actualiza todos los números y gráficos.
- Descargar reporte: Útil para enviar al dueño o para contabilidad.
4.11. ChatListScreen — Lista de Conversaciones
Cómo llegar: Desde el menú "Más" → "Mensajes" o desde un icono de chat en la barra superior del Dashboard. También puede llegarse desde el botón en el OrderDetailScreen.
Cómo se ve:
- Barra superior: Título "Mensajes".
- Lista de conversaciones: Cada item es una fila con:
- Avatar circular: A la izquierda. Foto del cliente o iniciales.
- Nombre del cliente: En negrita.
- Último mensaje: Texto corto gris debajo (ej: "¿Cuánto falta para mi pedido?").
- Timestamp: Hora del último mensaje a la derecha (ej: "10:45 AM").
- Badge de no leídos: Un círculo rojo con número si hay mensajes nuevos que no has visto.
Qué hace cada elemento:
- Tocar una conversación: Abre la ChatDetailScreen con ese cliente.
4.12. ChatDetailScreen — Conversación con Cliente
Cómo llegar: Tocando una conversación en la ChatListScreen o el botón chat en el OrderDetailScreen.
Cómo se ve:
- Barra superior: Flecha atrás, nombre del cliente, y a veces el número de pedido relacionado.
- Área de mensajes: Ocupa la mayor parte de la pantalla. Los mensajes aparecen como burbujas:
- Burbujas del cliente: Alineadas a la izquierda, fondo gris claro, texto negro.
- Tus burbujas (manager): Alineadas a la derecha, fondo azul o verde corporativo, texto blanco.
- Timestamp pequeño: Debajo de cada burbuja (ej: "10:46 AM").
- Input inferior: Fijo en la parte inferior.
- Campo de texto: Línea que ocupa todo el ancho. Toca para escribir.
- Botón "Enviar" (icono de avión de papel ) a la derecha del input. Gris cuando está vacío, azul/verde cuando hay texto.
Flujo paso a paso:
Un cliente te escribe: "¿Cuánto falta para mi pedido?".
1. Ves la notificación o entras al chat.
2. Tocas el campo de texto.
3. Escribes: "¡Hola María! Tu pedido #1045 está en camino. Llega en 10 minutos. ".
4. Tocas el botón ** Enviar**.
5. Tu mensaje aparece en la burbuja azul/verde a la derecha. El cliente lo recibe en su app.
4.13. EmployeeListScreen — Lista de Empleados
Cómo llegar: Desde el menú "Más" → "Empleados".
Cómo se ve:
- Barra superior: Título "Empleados".
- Botón "Añadir empleado" arriba a la derecha (icono ).
- Lista de empleados: Cada item es una tarjeta con:
- Foto circular o iniciales.
- Nombre: En negrita.
- Rol: Debajo del nombre (ej: "Cocinero", "Recepcionista", "Manager").
- Estado: Badge verde "Activo" o gris "Inactivo".
Qué hace cada elemento:
- Tocar un empleado: Puede abrir una vista de detalle o el formulario de edición.
- Tocar "Añadir empleado": Abre la EmployeeFormScreen.
4.14. EmployeeFormScreen — Formulario de Empleado
Cómo llegar: Tocando "Añadir empleado" o editando uno existente.
Cómo se ve:
- Barra superior: Título "Nuevo Empleado" o "Editar Empleado".
- Formulario scrollable:
- Nombre completo: Campo de texto.
- Email: Campo de texto con teclado de email.
- Teléfono: Campo numérico.
- PIN de 4 dígitos: Campo numérico. Es el código que usará este empleado para entrar a la app (si la usa).
- Rol: Selector desplegable (Dropdown) con opciones: Manager, Cocinero, Recepcionista, Repartidor, etc.
- Permisos (checkboxes granulares): Sección con título "Permisos" y una lista de checks:
- Ver pedidos.
- Editar menú.
- Gestionar repartidores.
- Ver estadísticas.
- Gestionar empleados.
- Imprimir tickets.
- Chatear con clientes.
- (y otros según la versión del sistema)
- Botón "Guardar" en la parte inferior, color verde.
Flujo paso a paso (crear recepcionista):
- Tocas "Añadir empleado".
- Escribes nombre: "Ana López".
- Email: "ana@trestaurante.com".
- Teléfono: "8095554444".
- PIN: "1234" (la app te dirá si debe ser único).
- Rol: seleccionas "Recepcionista".
- Permisos: marcas Ver pedidos, Chatear con clientes, Imprimir tickets. Desmarcas el resto.
- Tocas "Guardar". La app envía los datos al servidor (
POST /manager/employees).- Ana aparece ahora en la lista. Puedes darle su email y PIN para que entre a la app.
4.15. RestaurantSettingsScreen — Configuración de la Sucursal
Cómo llegar: Desde el menú "Más" → "Configuración de sucursal".
Cómo se ve:
- Barra superior: Título "Sucursal".
- Formulario scrollable:
- Nombre de la sucursal: Texto.
- Dirección: Texto largo.
- Teléfono: Numérico.
- Horarios de atención: Campos para hora de apertura y cierre por día de la semana.
- Tiempo de preparación estimado: Selector numérico (ej: "15 minutos"). Es el tiempo que el cliente ve estimado en su app.
- Radio de entrega: Numérico (ej: "5 km"). Hasta dónde llegan tus repartidores.
- Activar/desactivar servicios: Toggles:
- Delivery (a domicilio).
- Takeaway (para llevar).
- Mesa (comer en el local).
Qué hace cada elemento:
- Cambiar un toggle: Si desactivas "Delivery", la app dejará de recibir pedidos a domicilio. Los clientes solo verán takeaway y mesa.
- Guardar cambios: Tocas el botón verde inferior. Los cambios se envían al servidor y afectan inmediatamente cómo te ven los clientes.
4.16. SettingsScreen — Ajustes de la App
Cómo llegar: Desde la bottom tab "Más" (icono de tres líneas o puntos) → "Ajustes".
Cómo se ve:
- Barra superior: Título "Ajustes".
- Lista de opciones en secciones:
Sección Notificaciones:
- Sonido de nuevo pedido: Toggle. Si está activo, suena new-order.mp3.
- Vibración: Toggle. Vibra al llegar un pedido nuevo.
- Auto-aceptar pedidos: Toggle. MUY IMPORTANTE. Si está activo, los pedidos pending se aceptan automáticamente y se mandan a impresión sin que tú toques nada. Útil en horas pico si el menú está actualizado y la cocina está al día.
- ⏱ Intervalo de polling: Puede aparecer un selector para ajustar cada cuánto segundos pregunta el servidor (por defecto: 10s).
Sección General:
- Idioma: Selector (Español, Inglés, etc.).
- Tema: Selector (Claro, Oscuro, Sistema).
- Impresora por defecto: Selector para elegir cuál imprime cuando no hay una específica.
- URL del servidor: Muestra la base URL actual (https://a.masquetapas.bar/api/v1). Solo editable si el admin lo permite.
Sección Cuenta:
- Cambiar PIN: Abre una pantalla para cambiar tu PIN de 4 dígitos.
- Cerrar sesión: Botón rojo al final. Al tocarlo, borra tu token y datos locales, y te devuelve a la pantalla de login.
Qué hace cada elemento:
- Auto-aceptar: Si lo activas, cuando llegue un pedido nuevo, la app hará
POST /manager/orders/{id}/acceptautomáticamente, cambiará el estado aconfirmed, y disparará la impresión del ticket en la impresora de cocina. Tú no tienes que tocar nada. Pero ten cuidado: si un producto está agotado y no lo marcaste en el menú, el pedido se aceptará igual. - Cerrar sesión: Úsalo al final de tu turno si compartes la tablet con otro manager. Si eres el único usuario, puedes dejarla siempre abierta para que el polling nativo funcione las 24 horas.
4.17. ProfileScreen — Perfil de Usuario
Cómo llegar: Desde la bottom tab "Más" → "Perfil" o tocando tu avatar en alguna barra superior.
Cómo se ve:
- Foto circular grande: Centrada arriba. Tocarla puede permitir cambiarla (subir foto).
- Nombre del usuario: Grande, debajo de la foto.
- Email: Gris, debajo del nombre.
- Sucursal actual: Una fila con icono de tienda y el nombre de la cocina/sucursal donde estás logueado.
- Botones:
- Cambiar PIN: Abre formulario con PIN actual y PIN nuevo.
- Cerrar sesión: Igual que en Settings.
4.18. MaintenanceScreen — Modo Mantenimiento
Cómo llegar: Aparece automáticamente si el servidor está en modo mantenimiento, o desde el menú "Más" si está habilitado.
Cómo se ve:
- Icono grande: o en el centro.
- Texto: "Estamos en mantenimiento. Volveremos pronto."
- No hay botones de acción. Solo información.
5. Sistema de Notificaciones de Nuevos Pedidos (¡El Cerebro!)
Orden Receiver tiene uno de los sistemas más robustos para asegurarse de que nunca se te escape un pedido nuevo. No usa FCM (Firebase Cloud Messaging) ni WebSockets. En su lugar, usa un sistema de polling multi-capa que funciona como un centinela que nunca duerme.
¿Qué es polling? Imagina que un perro guardian se asoma por la ventana cada 10 segundos a ver si hay alguien en la puerta. Si hay alguien, ladra. Eso es polling: la app pregunta al servidor "¿hay pedidos nuevos?" una y otra vez, automáticamente.
5.1. Capa Nativa (Android) — La Guardiana Principal
Cuando instalas la app, se activa un servicio nativo en Kotlin (OrderPollingModule) que corre en el sistema operativo Android como un servicio en foreground (es decir, Android sabe que es importante y no lo mata para ahorrar batería fácilmente).
- ¿Qué hace? Cada 10 segundos hace una petición silenciosa al servidor:
GET /manager/orders/new-check. - ¿Y si hay un pedido nuevo?
- Reproduce un sonido especial:
new-order.mp3(un tono único que no se confunde con mensajes de WhatsApp). - Vibra el dispositivo: Patrón de vibración corto pero intenso.
- Enciende la pantalla: Si la tablet estaba apagada o bloqueada, se enciende sola para que veas el pedido inmediatamente.
- Manda un evento a la app: La app de JavaScript se entera y puede mostrar un toast flotante o actualizar el Dashboard.
Magia: Aunque cierres la app (la minimices), este servicio nativo sigue corriendo. Es como tener un recepcionista invisible que nunca para de vigilar.
5.2. Capa Foreground (JavaScript) — La Vigilancia Activa
Cuando la app está abierta y en pantalla, el hook useNewOrderCheck (usando TanStack Query) hace su propio polling cada 10 segundos.
- ¿Por qué dos pollings? Por si el nativo falla o si estás en iOS (donde el nativo no existe). En Android, se refuerzan mutuamente.
- Visual: Si detecta un pedido nuevo mientras la app está abierta, aparece un toast flotante (una barra de notificación que cae desde arriba) diciendo: "¡Nuevo pedido #1050!".
5.3. Capa Background JS — El Seguro de Fallo
Si por alguna razón el servicio nativo de Android muere (el sistema operativo lo cerró por ahorro de batería agresivo), hay un fallback:
expo-background-taskcon WorkManager (la tecnología de Android para tareas programadas).- Corre cada aproximadamente 15 minutos.
- No es tan rápido como los 10 segundos, pero es un paracaídas: si el nativo murió, al menos cada 15 minutos revisará si hay pedidos acumulados.
Por eso es crucial: No cierres la app con el botón "Cerrar todas" del sistema Android. Si la matas manualmente, matas también el servicio nativo. La app debe quedarse "durmiendo" en segundo plano, no "muerta".
5.4. Auto-Aceptar — El Modo Turbo
En SettingsScreen, puedes activar la opción "Auto-aceptar pedidos".
Cuando está activo:
- Llega un pedido nuevo (
pending). - La app nativa o el JS detecta el nuevo pedido.
- El hook
useAutoAcceptOrdersejecuta automáticamentePOST /manager/orders/{id}/accept. - El estado pasa a
confirmedsin que tú toques nada. - Se dispara la impresión automática del ticket en la impresora de cocina configurada.
- La cocina ya sabe qué hacer mientras tú atiendes otras cosas.
¿Cuándo usarlo?
- En horas pico (12:00 PM - 2:00 PM, 7:00 PM - 9:00 PM) cuando entran muchos pedidos seguidos.
- Cuando el menú está 100% actualizado y no hay productos agotados.
- Cuando confías en que la cocina puede manejar el volumen sin tu aprobación manual uno por uno.¿Cuándo NO usarlo?
- Si el menú no está actualizado (puedes aceptar un pedido de algo que no tienes).
- Si la cocina está colapsada y necesitas filtrar qué pedidos entran primero.
- Si eres muy detallista y quieres revisar cada nota del cliente antes de aceptar.
6. Flujo de Trabajo Diario Típico (Cronología) ⏰
A continuación, un día completo de trabajo usando Orden Receiver, desde la apertura hasta el cierre.
8:00 AM — Apertura del turno
- Tomas la tablet. La conectas al cargador (¡siempre conectada!).
- Enciendes la pantalla. La app está donde la dejaste ayer.
- Si la cerraste, abres Receiver + plus.
- Si te pide login, introduces tu email y PIN de 4 dígitos.
- Si te pide sucursal, eliges la tuya (ej: "Cocina Central").
- Entras al DashboardScreen. Revisas las tarjetas:
- Nuevos: 0 (normal, aún no abren los clientes).
- Entregados hoy: 0 (es un nuevo día).
- Tocas "Más" → "Ajustes":
- Verificas que Sonido esté activo.
- Verificas que Vibración esté activa.
- Verificas que el volumen de la tablet esté al 80% o más.
- Decides si activas Auto-aceptar según el pronóstico del día.
- Tocas "Más" → "Impresoras".
- Verificas que la Impresora Cocina tenga el punto verde .
- Si está roja , tocas la impresora y luego "Reconectar" o "Probar impresión".
- Si no imprime, revisas que la impresora esté encendida, con papel y con Bluetooth activo.
- Tocas "Más" → "Menú".
- Revisas rápidamente que los productos agotados de ayer estén marcados como No disponibles (toggle gris).
- Actualizas precios si el admin te avisó de cambios.
- Vuelves al Dashboard. Dejas la tablet sobre el mostrador, pantalla visible. El día comienza.
10:30 AM — Llega el primer pedido
- Estás organizando la caja. De repente:
- "¡Ding-ding-ding!" (el sonido
new-order.mp3). - La tablet vibra sobre la mesa.
- La pantalla se enciende sola (si estaba apagada).
- Miras la tablet. En la pantalla aparece un toast flotante o el Dashboard ya muestra Nuevos: 1.
- Tocas la tarjeta "Nuevos" o el toast.
- Llegas a la OrderListScreen, tab Nuevos. Ves el pedido:
- #1045 | 10:30 AM | María García | Delivery | $24.50 | Estado: Pendiente (rojo).
- Tocas el pedido. Entras al OrderDetailScreen.
- Revisas rápidamente:
- Productos: 2 hamburguesas dobles. ¿Hay carne? Sí.
- Notas: "Sin cebolla". ¿Hay cebolla? No importa, no se pide.
- Dirección: Calle Principal #45. Zona de cobertura. OK.
- Total: $24.50. Todo correcto.
- Tocas el botón grande verde "Aceptar".
- La app envía la orden al servidor.
- El estado cambia a "Confirmado" (azul).
- El botón inferior cambia a "Preparar".
- La impresora de cocina imprime automáticamente el ticket con el pedido completo.
- Tomas el ticket impreso, lo pones en la pinza de la cocina o se lo entregas al cocinero.
- Vuelves al Dashboard. La tarjeta "Nuevos" vuelve a 0. "En preparación" muestra 1.
10:35 AM — Cocina marca listo
- El cocinero te dice: "¡Pedido 1045 listo!".
- Tocas el pedido #1045 en el Dashboard o en la lista.
- Estás en el OrderDetailScreen. Estado: "Confirmado" (azul). Botón: "Preparar".
- Tocas "Preparar" (quizá ya lo tocaste cuando lo aceptaste, o la cocina lo confirma desde su pantalla si tienen una). Estado pasa a "En preparación" (naranja). Botón: "Listo para recogida".
- En este caso, la cocina lo hizo rápido. El cocinero ya empaquetó todo.
10:40 AM — Pedido listo para entregar
- Vuelves a entrar al pedido #1045 (o nunca saliste).
- Estado: "En preparación" (naranja).
- Tocas el botón naranja "Listo para recogida".
- Estado cambia a "Listo para recogida" (verde).
- Botón inferior ahora dice "Asignar repartidor".
- El pedido está empaquetado, con la nota "Sin cebolla" verificada, y sobre el mostrador.
10:42 AM — Llega el repartidor Juan
- Juan Pérez entra al local. Dice: "Vengo por el 1045".
- Tocas el pedido #1045.
- Estado: "Listo para recogida" (verde). Botón: "Asignar repartidor".
- Tocas "Asignar repartidor".
- Se abre un modal (ventana emergente) oscura con una lista de repartidores activos.
- Juan Pérez En línea.
- Pedro Sánchez Desconectado.
- Ana Ruiz En línea.
- Tocas Juan Pérez.
- Aparece un botón de "Confirmar" o se asigna directamente.
- La sección de repartidor aparece ahora con el nombre y teléfono de Juan.
- El estado cambia a "Entregado al repartidor" o "En camino" (según la configuración del backend).
- Juan toma la bolsa, marca el pedido en su app de repartidor (si aplica), y sale.
10:45 AM — Pedido en camino
- En tu pantalla, el pedido #1045 ya no aparece en "Activos" ni "Listos".
- Si vas a la tab "Delivery" o "Completados", lo verás con estado "En camino" (azul oscuro).
- El cliente recibe una notificación push en su teléfono: "Tu pedido va en camino con Juan. ".
- Tú sigues atendiendo otros pedidos que van llegando. El sonido suena de nuevo. Repites el ciclo.
11:00 AM — Pedido entregado
- Juan llega a la casa de María García. Le entrega el pedido.
- María confirma en su app que recibió todo bien (o Juan marca como entregado desde su app de repartidor).
- El estado del pedido #1045 cambia a "Entregado" (verde fuerte) en el servidor.
- En tu app, si buscas el pedido en la lista de completados, verá el estado verde. Ese pedido ya está cerrado.
- El dinero ($24.50) ya está contabilizado en las estadísticas del día.
9:00 PM — Cierre del día
- La hora pico terminó. Entraste unos 47 pedidos hoy. Estás cansado pero feliz.
- Tocas "Más" → "Estadísticas".
- Revisas las cards:
- Ventas hoy: $1,245.00.
- Órdenes hoy: 47.
- Ticket promedio: $26.49.
- Producto más vendido: "Hamburguesa Clásica" (¡18 unidades!).
- Miras el gráfico de barras: la hora pico fue 1:00 PM a 2:00 PM (barra más alta). Eso te dice que necesitas un cocinero extra ese horario mañana.
- Miras el gráfico circular: 40% Hamburguesas, 30% Pizzas, 20% Bebidas, 10% Postres.
- Tocas "Descargar reporte" si necesitas enviar los números al dueño o a contabilidad.
- Revisas la impresora. ¿Quedó papel? ¿Necesita recarga? Lo anotas para el admin.
- Tocas "Más" → "Ajustes" → "Cerrar sesión" (solo si otro manager usará la tablet mañana; si es tuya, déjala logueada para que el polling nativo siga trabajando toda la noche).
- Apagas la pantalla (o la dejas cargando con la app abierta). Fin del turno.
7. Estados del Pedido y Colores (Tabla Visual)
Esta tabla es tu brújula. Memoriza los colores para saber de un vistazo qué está pasando con cada pedido.
| Estado (Código) | Etiqueta en la App | Color del Badge | ¿Qué significa? | ¿Quién lo puede cambiar? | ¿Desde dónde? |
|---|---|---|---|---|---|
pending |
Pendiente | Rojo / Amarillo | Pedido recién entrado. Nadie lo ha visto o aceptado. | Manager / Recepcionista | Orden Receiver (botón Aceptar) |
confirmed |
Confirmado | Azul | El manager aceptó el pedido. La cocina debe empezar. | Manager / Cocina (si tiene app) | Orden Receiver (botón Preparar) |
processing |
En preparación | Naranja | La cocina está cocinando o empaquetando el pedido ahora. | Manager / Cocina | Orden Receiver (botón Listo para recogida) |
ready |
Listo | Verde claro | Todo está cocinado y empaquetado. Esperando que alguien lo recoja. | Sistema / Manager | Automático o manual según flujo |
handover |
Listo para recogida | Verde | El pedido está en el mostrador listo para ser entregado a repartidor o cliente. | Manager | Orden Receiver (botón Asignar repartidor) |
picked_up |
Entregado al repartidor | Verde oscuro | Un repartidor ya tomó el pedido físicamente. | Repartidor / Sistema | App del repartidor o automático |
out_for_delivery |
En camino | Azul oscuro | El repartidor está en ruta hacia el cliente. | Repartidor | App del repartidor (botón "En camino") |
delivered |
Entregado | Verde fuerte | El cliente recibió el pedido. Todo cerrado. | Cliente / Repartidor | App del cliente o del repartidor |
completed |
Completado | Gris | El pedido fue procesado, pagado y archivado. | Sistema | Automático al finalizar flujo |
canceled / cancelled |
Cancelado | Rojo intenso | El pedido fue rechazado o cancelado por el manager o el cliente. | Manager / Cliente | Orden Receiver (botón Rechazar) o app del cliente |
returned |
Devuelto | Rojo oscuro / Marrón | El repartidor no pudo entregar y devolvió el pedido. | Repartidor / Manager | App del repartidor o Panel Admin |
failed |
Fallido | Rojo oscuro | Hubo un error grave (pago fallido, dirección inválida, etc.). | Sistema | Automático |
cooking |
Cocinando | Naranja | Variante de processing usada en algunas configuraciones. |
Cocina | App de cocina o Orden Receiver |
done |
Cocina lista | Verde | Variante de ready o handover indicando que la cocina terminó. |
Cocina | App de cocina |
Transiciones Válidas desde el Frontend (Orden Receiver)
Desde esta app, tú (como manager) puedes hacer estas transiciones:
pending Aceptar → confirmed Preparar → processing Listo → handover
Rechazar → canceled
(Cancelar en cualquier momento antes de entregar)
handover Asignar repartidor → picked_up / out_for_delivery (automático)
No puedes saltar estados. No puedes tocar un botón que pase directamente de
pendingahandover. Debes pasar porconfirmedyprocessingprimero. Esto asegura que la cocina tenga tiempo de ver el ticket y preparar todo.
8. Consejos Prácticos para el Día a Día
-
No cierres la app completamente. Si la matas con el botón de "Cerrar todo" de Android, el polling nativo muere y no escucharás pedidos nuevos hasta que abras la app de nuevo. Minimiza la app (botón de inicio) pero no la mates.
-
Mantén el Bluetooth activo si usas impresora térmica. Si la apagas, la impresora se desconecta y los tickets no saldrán. La app mostrará el icono de impresora en rojo .
-
Revisa el volumen del dispositivo cada mañana. Puede haber bajado por la noche o alguien lo silenció. Si el volumen está en 0, escucharás el sonido de nuevos pedidos muy bajo o nada.
-
Usa auto-aceptar con precaución. Es una herramienta poderosa pero peligrosa si tu menú no está actualizado. Si aceptas automáticamente un pedido de un producto agotado, tendrás que cancelar el pedido después y molestar al cliente.
-
Cierra sesión al final del turno si compartes la tablet. Si eres el único usuario, déjala abierta para que la guardiana nativa siga escuchando. Pero si Juan de la noche usa la misma tablet, cierra sesión para que él entre con su cuenta.
-
Haz pull-to-refresh si algo huele mal. Si un cliente llama diciendo que hizo un pedido hace 10 minutos y tú no lo ves, baja la lista de pedidos con el dedo para forzar una recarga.
-
Verifica la dirección de delivery antes de asignar repartidor. Si la dirección está fuera del radio de entrega o es confusa, llama al cliente desde el botón de teléfono en el OrderDetailScreen antes de que el repartidor salga.
-
Usa el chat con el cliente. Si la cocina se retrasa 10 minutos, envía un mensaje al cliente desde el chat. Un cliente informado es un cliente feliz.
-
Revisa la disponibilidad del menú antes de la hora pico. Si se acabó el pollo a las 11:30 AM, desactívalo en el menú antes del almuerzo para evitar pedidos imposibles.
-
Guarda la tablet en un lugar fresco. El polling nativo y la pantalla siempre encendida consumen batería. Si la tablet se calienta, el sistema Android puede matar la app para protegerse. Mantén ventilación o ventilador cerca.
9. Solución de Problemas Comunes (FAQ del Manager)
"No escucho los pedidos nuevos"
| Posible causa | Solución paso a paso |
|---|---|
| Volumen del dispositivo en 0 o en silencio | Toca los botones de volumen del costado y súbelo al 80%. Asegúrate de que no esté en modo "No molestar" (silencio total). |
| Notificaciones desactivadas en la app | Ve a Ajustes de Android → Aplicaciones → Receiver + plus → Notificaciones → Permitir todo. |
| Polling nativo muerto | La app fue cerrada por Android por ahorro de batería. Abre la app de nuevo. Ve a Ajustes de Android → Batería → Optimización de batería → Receiver + plus → No optimizar para evitar que Android la mate. |
| App cerrada manualmente | No uses "Cerrar todas". Abre la app y déjala en segundo plano (botón de inicio). |
| Conexión a internet caída | Revisa el Wi-Fi o los datos móviles. Abre el navegador y visita cualquier página. Si no carga, no hay internet. |
| Servidor en mantenimiento | Ve a Más → Mantenimiento o intenta hacer pull-to-refresh en la lista de pedidos. Si dice "Servidor no disponible", espera o contacta al admin. |
"No se conecta la impresora"
| Posible causa | Solución paso a paso |
|---|---|
| Bluetooth apagado en el dispositivo | Activa Bluetooth desde el panel de notificaciones de Android. |
| Impresora apagada o sin batería | Presiona el botón de encendido de la impresora. Debe emitir una luz LED. Si tiene batería, cárgala. |
| No emparejada correctamente | Ve a Ajustes de Android → Bluetooth → Buscar dispositivos. Empareja la impresora. Luego en la app, ve a Más → Impresoras → Añadir impresora y selecciónala de la lista. |
| Dirección MAC cambió o es incorrecta | Borra la impresora de la app y vuelve a añadirla desde cero. |
| Impresora de red: IP incorrecta | Verifica la IP de la impresora desde su panel o configuración de red. Asegúrate de que el puerto sea 9100. |
| Sin papel o atascada | Abre la tapa de la impresora. Revisa que haya papel térmico. Si está atascado, saca el papel suavemente y recarga. |
| Categorías mal configuradas | Ve a la impresora en la app y verifica que tenga marcada la categoría correcta (ej: Cocina para tickets de cocina). |
"No puedo aceptar un pedido"
| Posible causa | Solución paso a paso |
|---|---|
| Sin conexión a internet | Revisa Wi-Fi/datos. Intenta pull-to-refresh. Si no carga, no hay red. |
| Login expirado o token inválido | El servidor rechazó tu sesión. Ve a Más → Ajustes → Cerrar sesión y vuelve a loguearte con email + PIN. |
| El pedido ya fue aceptado por otro dispositivo | Otro manager o la auto-aceptación ya lo tomó. Ve a la lista de pedidos y busca el estado actual. Si ya está confirmed, no necesitas hacer nada. |
| App en modo offline o cacheada | Cierra la app completamente (sí, en este caso ciérrala) y vuelve a abrirla para forzar una sincronización limpia. |
| Servidor caído o error 500 | Si al tocar "Aceptar" aparece "Error del servidor", espera 1 minuto y reintenta. Si persiste, contacta al admin. |
"El cliente dice que no recibió su pedido y yo ya lo marqué como entregado"
- Ve a Pedidos → Completados y busca el pedido por número o fecha.
- Abre el OrderDetailScreen.
- Revisa la sección de Repartidor. ¿A quién se lo asignaste? Llama a ese repartidor.
- Si el repartidor dice que sí entregó, el cliente puede estar confundido. Pide al repartidor que confirme la dirección exacta donde dejó el pedido.
- Si el repartidor dice que no encontró la casa y devolvió el pedido, el estado debería ser
returnedofailed. Contacta al cliente y ofrece reenvío o reembolso según la política del restaurante. - Usa el Chat desde el OrderDetail para escribirle al cliente y coordinar.
"La app está muy lenta"
- Cierra otras apps que estén corriendo en la tablet (juegos, navegador, videos).
- Reinicia la tablet (apagar y encender) una vez al día.
- Asegúrate de que la tablet tenga al menos 2 GB de RAM libre. Si es una tablet muy antigua, considera pedir una actualización al admin.
- Verifica que la conexión a internet sea estable. Una red lenta hace que la app se sienta lenta.
10. Resumen de Atajos y Navegación Rápida
| Quiero hacer... | Voy a... | Toco... |
|---|---|---|
| Ver pedidos nuevos | Dashboard o Pedidos | Tab "Nuevos" |
| Aceptar un pedido | OrderDetailScreen | Botón verde "Aceptar" |
| Imprimir ticket de cocina | OrderDetailScreen | Icono en la barra superior |
| Escribirle al cliente | OrderDetailScreen | Icono en la barra superior |
| Asignar repartidor | OrderDetailScreen (estado handover) | Botón "Asignar repartidor" |
| Ver quién está trabajando hoy | Repartidores (bottom tab) | Cualquier item de la lista |
| Desactivar un producto agotado | Menú (bottom tab) | Toggle del producto |
| Configurar una impresora nueva | Más → Impresoras | "Añadir impresora" |
| Activar auto-aceptar | Más → Ajustes | Toggle "Auto-aceptar pedidos" |
| Ver cuánto vendí hoy | Más → Estadísticas | Card "Ventas hoy" |
| Crear un nuevo empleado | Más → Empleados | "Añadir empleado" |
| Cambiar mi PIN | Más → Ajustes o Perfil | "Cambiar PIN" |
| Cerrar sesión | Más → Ajustes o Perfil | Botón rojo "Cerrar sesión" |
11. Glosario de Términos Técnicos (Simplificados)
| Término | Significado sencillo |
|---|---|
| Polling | Preguntar al servidor una y otra vez si hay novedades. Es como refrescar Instagram cada 10 segundos, pero automático. |
| FCM | Firebase Cloud Messaging. Es otra forma de recibir notificaciones que Orden Receiver NO usa. |
| Foreground | La app está abierta y la estás viendo en pantalla. |
| Background | La app está minimizada pero viva, trabajando en segundo plano. |
| Foreground Service | Un permiso especial de Android que permite que la app siga "despierta" aunque no la veas. |
| Token | Una llave digital que te identifica ante el servidor. Se guarda al hacer login. |
| Bearer token | Forma de enviar esa llave en cada petición. Es como mostrar tu credencial de empleado cada vez que entras a una zona restringida. |
| Modal | Una ventana pequeña que se abre encima de la pantalla actual, como para elegir un repartidor. |
| Toast | Un mensajito que aparece brevemente y desaparece solo, como "Pedido aceptado". |
| Badge | Un recuadro de color con texto (ej: "Pendiente" en rojo). |
| Toggle / Switch | El interruptor que se desliza: izquierda = apagado, derecha = encendido. |
| Pull-to-refresh | Bajar la lista con el dedo para recargar datos. |
12. Contacto y Soporte
Si este manual no resuelve tu problema, o si encuentras un comportamiento extraño en la app (botones que no responden, colores raros, números que no cuadran), contacta a tu administrador de ZEUMAX con la siguiente información:
- Versión de la app: Ve a Más → Ajustes y busca "Versión" (normalmente al final).
- Sucursal: Nombre exacto de la cocina.
- Tu usuario: Email con el que entras.
- Descripción del problema: Qué estabas haciendo, qué botón tocaste, qué esperabas que pasara y qué pasó realmente.
- Captura de pantalla: Toma foto con otro teléfono si la misma app no permite screenshot (aunque sí permite).
Documento finalizado.
¡Ahora eres un experto en Orden Receiver!
Abre la app y pon a prueba lo aprendido.
¡Buen servicio y buenas ventas!
Documento generado para el sistema ZEUMAX (ZEUMAX).
App: Receiver + plus (com.zeumax.reactmanager).
Tecnología: React Native + Expo SDK ~55 + NativeWind + Zustand + TanStack Query.
Ruta del documento: manual de usuario/05-orden-receiver.md