Resolver turno abierto antes de nueva entrada
Cierra la salida pendiente de Marta Ruiz en Marea Gran Via antes de registrar otra Entrada, evitando que el empleado acumule un turno abierto sin salida.
En este artículo
Cuando un empleado intenta empezar una nueva jornada y la anterior sigue abierta, Antylogic detiene la nueva entrada y muestra Corrección de tiempo requerida. El objetivo es completar primero la salida real del turno pendiente.
La resolución no es una sola notificación: la app guarda primero una salida para cerrar el turno abierto y, si esa operación termina bien, registra después la nueva entrada con la hora del servidor.
Antes de empezar
- Tener seleccionadas la organización Grupo Marea Demo y la ubicación Marea Gran Via.
- Abrir `attendance?staff=:staffId` con Marta Ruiz seleccionada, o con un empleado equivalente de la ubicación.
- El empleado ya tiene un `staff_shift` abierto, con entrada registrada y sin salida.
- Para operación de manager, contar con `staff-shifts:notify`; en autoservicio, el `staffId` debe pertenecer al usuario conectado.
- Usar la vista normal de Asistencia. El aviso no se resuelve desde `attendance/corrections`.
Instrucciones
- 1.
Abre la asistencia del empleado
Entra en Asistencia de Marea Gran Via y selecciona a Marta Ruiz. La tarjeta del empleado debe mostrar las acciones Entrada y Salida antes de iniciar el fichaje.
- 2.
Intenta registrar la nueva entrada
Pulsa Entrada y confirma en Confirmar entrada. Si Marta ya tiene un turno abierto, Antylogic no crea todavía la nueva entrada y abre el aviso Corrección de tiempo requerida.
- 3.
Completa la salida pendiente
En el aviso, revisa el turno abierto y completa Hora de salida. Si la hora indicada es anterior a la hora de entrada del turno, Antylogic la interpreta como salida al día siguiente.
- 4.
Guarda la corrección
Pulsa Guardar. La app envía primero una salida con `exit_time` y `exit_day_offset`; solo si el cierre funciona envía después una nueva `entry`.
- 5.
Cancela si la hora no es segura
Si no sabes la salida real, cierra o cancela el aviso. En ese caso no se envía la salida ni se registra una nueva entrada, y el turno queda pendiente de resolver.
Validaciones y límites
- Debe haber un empleado seleccionado antes de enviar cualquier fichaje.
- Hora de salida es obligatoria y debe usar formato `HH:mm`.
- La salida calculada debe ser posterior a la entrada del turno abierto y no puede estar en el futuro.
- La API solo admite salida el mismo día o al día siguiente mediante `exit_day_offset` con valor `0` o `1`.
- Tener solo `staff-shifts:manage` permite superficies de revisión, pero no basta para enviar el fichaje de manager.
- En autoservicio no se puede operar sobre otro empleado; el `staffId` debe estar vinculado al usuario conectado.
- Si falla el cierre del turno abierto, la nueva entrada no se intenta y el aviso permanece abierto.
- Si el cierre funciona pero falla la entrada posterior, el turno anterior queda cerrado y no se abre uno nuevo.
- Si hay varios turnos abiertos, el backend actúa sobre el más reciente y no corrige automáticamente los anteriores.
Resultado esperado
El turno anterior queda cerrado con `exit_at`, la nueva entrada se registra como un turno abierto independiente, la pantalla actualiza la lista de turnos y muestra Turno actualizado.