Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsTPV
Dispositivo

Cómo cerrar un servicio TPV

Cierra la sesión activa de TPV de Marea Gran Via cuando el servicio ya está liquidado: todos los tickets están pagados, cerrados o anulados, y no queda ninguna caja abierta asociada al servicio.

En este artículo

El cierre de servicio marca una `service_session` como `closed`. No cobra tickets ni cierra cajas automáticamente; por eso conviene usarlo sólo cuando la operativa del servicio ya está resuelta.

En Marea Gran Via, el operador ejecuta el cierre desde el menú de acciones del TPV. Si Marta Ruiz está seleccionada, la app puede registrar `closed_by_staff_id`; si no hay empleado seleccionado, el cierre se envía sin ese dato.

Antes de empezar

  • Sesión iniciada en Antylogic con acceso a Grupo Marea Demo y a la ubicación Marea Gran Via.
  • Permiso `tpv:use` en la ubicación. No documentar `tpv:close-service` como suficiente por sí solo con la implementación actual.
  • Una `service_session` activa en el TPV.
  • Todos los tickets del servicio en estado `paid`, `closed` o `void`.
  • Todas las cajas del servicio cerradas, incluidas las abiertas desde otros terminales.
  • Empleado seleccionado en el TPV sólo si se quiere registrar quién ejecuta el cierre.

Instrucciones

  1. 1.

    Abre el TPV activo

    Entra en el TPV de Marea Gran Via en la vista de plano. Si hay un servicio activo, verás el TPV operativo; si no lo hay, la pantalla muestra el flujo de apertura y la acción de cierre no aparece.

  2. 2.

    Cierra cualquier caja abierta

    Antes de cerrar el servicio, revisa que no quede ninguna `cash_register_session` abierta para esa sesión. El TPV bloquea Cerrar servicio aunque la caja abierta pertenezca a otro terminal.

  3. 3.

    Resuelve los tickets pendientes

    Comprueba que no quedan tickets operativos pendientes. Cerrar servicio no cambia tickets: si alguno no está en `paid`, `closed` o `void`, el backend rechazará el cierre.

  4. 4.

    Ejecuta Cerrar servicio

    Abre el menú de acciones de la cabecera del TPV y pulsa Cerrar servicio. No hay confirmación intermedia: al pulsar, la app envía el cierre de la sesión activa con `closed_by_staff_id` sólo cuando hay empleado seleccionado.

  5. 5.

    Revisa el resultado

    Tras un cierre correcto, la app muestra "Servicio cerrado correctamente.", limpia la selección operativa y actualiza las sesiones. Después puedes revisar la sesión cerrada desde el histórico de sesiones.

Validaciones y límites

  • La pantalla operativa y el wrapper actual exigen `tpv:use`.
  • La UI actual usa `POST` para cerrar; el backend también acepta `PUT` en la misma ruta.
  • El endpoint exige un cuerpo JSON decodificable, aunque `closed_by_staff_id` sea opcional.
  • No puede existir ninguna `cash_register_session` con `status` `open` asociada a la `service_session`.
  • Cada ticket de la sesión debe tener `status` exactamente `paid`, `closed` o `void`.
  • `closed_by_staff_id` se recorta antes de guardar, pero no se valida contra `staff`.
  • La acción queda deshabilitada mientras el cierre está en curso.
  • No describir el cierre como idempotente: el análisis no verifica una regla explícita para sesiones ya cerradas.

Resultado esperado

La sesión queda guardada con `status` `closed` y hora de cierre en UTC. El detalle puede recalcular el resumen de facturación con tickets no anulados e incluir el evento u ocurrencia si la sesión estaba vinculada al calendario.

Artículos relacionados