Cerrar servicio
Cierra el servicio activo de una ubicación cuando la operativa ya está terminada. Antes de cerrar, todos los tickets deben estar pagados, cerrados o anulados, y no puede quedar ninguna caja abierta asociada a la sesión.
En este artículo
Cerrar servicio es el último control operativo del TPV: deja de operar sobre la sesión activa y registra cuándo se cerró, con la empleada responsable si el TPV la tenía seleccionada.
El cierre se ejecuta normalmente desde Más acciones del TPV y también puede aparecer en KDS como entrada alternativa. En ambos casos, Antylogic valida la misma regla: primero se resuelven tickets y cajas, después se cierra el servicio.
Antes de empezar
- Trabajar en Grupo Marea Demo y la ubicación Marea Gran Via.
- Tener permiso efectivo tpv:use en la ubicación.
- Debe existir una service_session activa en TPV o KDS.
- Todos los tickets del servicio deben estar en paid, closed o void.
- Todas las cash_register_sessions de esa sesión deben estar cerradas.
- Si el TPV solicita empleado, seleccionar Marta Ruiz para registrar closed_by_staff_id.
Instrucciones
- 1.
Abrir el servicio activo en TPV
Entrar en el TPV de Marea Gran Via en la pestaña de sala. La cabecera debe mostrar un servicio activo; si no existe, primero hay que abrir un servicio.
- 2.
Resolver tickets y cerrar cajas
Antes del cierre, revisar que no quedan tickets pendientes ni pagos a medias. Después, cerrar todas las cajas abiertas del servicio: cerrar servicio no cierra tickets, pagos ni cajas automáticamente.
- 3.
Seleccionar empleado si procede
Si el TPV pide identificación de empleado, seleccionar Marta Ruiz. El cierre puede ejecutarse sin empleado, pero TPV envía el empleado seleccionado como closed_by_staff_id cuando existe.
- 4.
Abrir Más acciones del TPV
Desde la cabecera del servicio activo, abrir Más acciones del TPV. Si no hay cajas abiertas, la opción Cerrar servicio aparece habilitada con la descripción Cerrar el servicio actual.
- 5.
Cerrar el servicio
Pulsar Cerrar servicio. No hay confirmación intermedia observada: el tap envía directamente POST /api/app/{orgId}/{locationId}/service-sessions/{sessionId}/close.
- 6.
Usar KDS como alternativa
Si KDS está habilitado y hay servicio activo, abrir el resumen del servicio desde KDS y pulsar Cerrar servicio. Esta entrada aplica las mismas validaciones y puede enviarse sin closed_by_staff_id.
- 7.
Corregir bloqueos
Si TPV avisa de caja abierta, cerrar primero la caja. Si el backend rechaza el cierre, revisar tickets pendientes o parcialmente pagados y cualquier caja abierta de la sesión antes de repetir.
Validaciones y límites
- El backend protegido exige tpv:use; no documentar tpv:manage como suficiente por sí solo.
- La ruta close acepta POST y PUT; otros métodos responden 405.
- La sesión debe existir y pertenecer a la ubicación actual; una sesión de otra ubicación se oculta como not found.
- Cualquier ticket fuera de paid, closed o void bloquea el cierre.
- Cualquier cash_register_session abierta para la misma location_id y service_session_id bloquea el cierre.
- closed_by_staff_id es opcional y se normaliza con trim antes de persistirse.
- El cierre no modifica reservas, ocurrencias, optimización ni modo de aceptación.
Resultado esperado
La service_session queda con status closed, closed_at en UTC y closed_by_staff_id si se envió. La app refresca la sesión activa, muestra Servicio cerrado correctamente y deja de operar sobre esa sesión.