Cómo actualizar comensales de un ticket TPV
Corrige el número de personas asociado a un ticket TPV abierto. El cambio se muestra como `{{count}} pax` y no modifica productos, pagos, totales ni facturas.
En este artículo
Actualizar comensales sirve para ajustar el dato operativo de personas de una cuenta abierta sin rehacer el ticket. En Marea Gran Via, el equipo puede hacerlo desde el detalle dedicado del ticket o desde el ticket seleccionado en la pantalla principal del TPV.
La acción actualiza solo `party_size`. No recalcula importes, no cambia líneas de producto, no cobra, no cierra el ticket y no emite facturas.
Antes de empezar
- Tener sesión iniciada con `orgId` y `locationId` seleccionados.
- Trabajar sobre un ticket TPV de la misma ubicación, abierto y no marcado como `void` ni `closed`.
- Tener permisos para gestionar el ticket. Con solo `tpv:use`, el ticket debe pertenecer a la sesión de servicio activa de la ubicación.
- Para capturas del demo ES, usar `ORG_ID`, `LOCATION_ID`, `TPV_TICKET_ID`, `TPV_TERMINAL_ID` y `TPV_STAFF_ID` del runtime de Marea Gran Via.
Instrucciones
- 1.
Abre el ticket
Entra en el detalle del ticket TPV o selecciona un ticket abierto desde la pantalla principal del TPV. Comprueba que pertenece a la ubicación activa.
- 2.
Revisa el valor actual
Localiza el resumen de personas. La interfaz lo muestra como `{{count}} pax`; si el ticket no trae valor, la pantalla lo normaliza a `1 pax`.
- 3.
Abre Editar personas
Pulsa `Personalizar` o el menú de acciones del ticket y elige `Editar personas`. La pantalla abre un modal o sheet con el campo `Personas` inicializado con el valor actual.
- 4.
Introduce el nuevo número
Escribe un entero positivo en `Personas`, por ejemplo `4` si la mesa pasa a ser de cuatro comensales.
- 5.
Guarda el cambio
Pulsa `Guardar`. La app valida el valor, envía el payload parcial `{ party_size: parsedPartySize }` y refresca el ticket.
- 6.
Verifica el resultado
Comprueba que el resumen del ticket vuelve a mostrar el nuevo valor como `4 pax` o el número introducido. El resto del ticket debe permanecer igual.
Validaciones y límites
- Si el campo queda vacío, vale `0` o no produce un entero positivo, aparece `Introduce un número de personas válido.` y no se llama al endpoint.
- La UI elimina caracteres no numéricos antes de validar el número de personas.
- La acción queda deshabilitada en tickets `void` o `closed`.
- La actualización usa `PUT /api/app/{orgId}/{locationId}/tickets/{ticketId}` mediante `useUpdateTicket`.
- Si un cliente API envía `party_size <= 0`, el backend no aplica ese valor como nuevo número de comensales.
- No hay evidencia de una validación backend de máximo de comensales para `party_size`.
- La implementación actual del endpoint compartido también recalcula asignaciones de mesa desde `table_id` y `table_ids`; si el payload trae solo `{ party_size }`, puede limpiar la asignación de mesa. Tratarlo como riesgo de producto, no como instrucción de operación.
Resultado esperado
El ticket queda actualizado con el nuevo número de comensales visible como `{{count}} pax`. No cambian las líneas, los pagos, los totales, la factura ni el estado de producción.