Consultar turnos de asistencia
Permite abrir Asistencia en Marea Gran Via y consultar el estado operativo de los turnos de Marta Ruiz. La pantalla usa esa lista para saber si existe un turno abierto y decidir qué acción de fichaje corresponde mostrar.
En este artículo
Esta guía documenta la consulta operativa de turnos dentro de Asistencia. El responsable selecciona a Marta Ruiz y Antylogic carga sus turnos para calcular el estado de fichaje.
No es una tabla histórica de asistencias: el dato clave es si existe un turno sin hora de salida. El listado visible de correcciones pertenece a otra superficie.
Antes de empezar
- Grupo Marea Demo y Marea Gran Via están activos en la aplicación.
- El usuario puede acceder a la pantalla Asistencia de la ubicación.
- Marta Ruiz pertenece a Marea Gran Via.
- Para que la consulta de responsable se active en la pantalla, el perfil tiene capacidad de notificar turnos (`staff-shifts:notify`).
- En autoservicio, el usuario autenticado está vinculado al `staffId` que consulta.
Instrucciones
- 1.
Abrir Asistencia
Entra en Asistencia desde Marea Gran Via. En este estado todavía no hay `staffId`, así que la pantalla prepara la selección de empleado y no ejecuta la consulta de turnos.
- 2.
Seleccionar a Marta Ruiz
Elige Marta Ruiz o abre la pantalla con `attendance?staff=:staffId`. Al recibir el empleado seleccionado, la pantalla consulta sus turnos por la ruta de responsable o por la ruta de autoservicio si el empleado pertenece al usuario autenticado.
- 3.
Comprobar el turno abierto
Revisa el estado que muestra Asistencia. La pantalla ordena los turnos de más reciente a más antiguo y toma el primero sin `exit_at` como turno abierto.
- 4.
Interpretar casos sin turnos
Si no hay eventos de turno válidos, la respuesta es una lista vacía y no se detecta turno abierto. Un empleado vacío, de otra ubicación o no propio en autoservicio no devuelve una lista utilizable.
Validaciones y límites
- La consulta necesita `orgId`, `locationId` y `staffId`; sin empleado seleccionado no se habilita.
- En `LocationAttendancePage`, el modo responsable activa `useStaffShifts` con `staff-shifts:notify`.
- La respuesta operativa es `StaffShift[]` con `id`, `staff_id`, `entry_at`, `exit_at` opcional y `created_at` opcional.
- El listado se alimenta de `calendar_events` con `kind == "staff_shift"`, no de una tabla histórica visible.
- El endpoint no implementa filtros por fecha, rango, estado, turno abierto ni paginación.
- La tabla visible de correcciones de asistencia usa `/calendar-events`, no esta acción.
Resultado esperado
Asistencia conoce el estado de turnos de Marta Ruiz y puede mostrar la acción de fichaje correcta según exista o no un turno abierto.