Cómo abrir una corrección para resolución manual
Abre una corrección de asistencia pendiente, revisa el turno staff_shift del empleado, ajusta la hora si procede y cierra la solicitud desde el formulario de asistencia.
En este artículo
La resolución manual se usa cuando un manager necesita revisar una incidencia de fichaje antes de cerrarla. El flujo parte de la lista de correcciones pendientes y abre el evento de calendario del turno para decidir sobre la entrada, la salida o ambas.
En el demo ES, el recorrido corresponde a Grupo Marea Demo en Marea Gran Via. La corrección se guarda sobre un calendar_event de tipo staff_shift; no se resuelve editando una tabla staff_shifts independiente.
Antes de empezar
- Sesión iniciada con organización y ubicación seleccionadas; para el demo, Grupo Marea Demo en Marea Gran Via.
- Permisos staff-shifts:view para consultar correcciones y staff-shifts:manage para abrir y resolverlas.
- Debe existir un calendar_event de tipo staff_shift en la ubicación activa, con staff_id y payload.start_status o payload.end_status en correction_requested.
- La entrada habitual es attendance/corrections?pending_only=true con un rango de fechas que incluya la corrección pendiente.
Instrucciones
- 1.
Abre correcciones pendientes
En Asistencia, entra en la vista de correcciones pendientes. La tabla muestra los turnos staff_shift que siguen esperando revisión y permite filtrar por rango o empleado.
- 2.
Elige la corrección
Localiza la fila del empleado afectado y comprueba si la pendiente corresponde a la entrada, la salida o ambas. Este flujo continúa abriendo el formulario, aunque la tabla también pueda mostrar acciones directas.
- 3.
Abre el formulario del turno
Pulsa la fila o la acción de ver para abrir calendars/edit/:eventId?kind=staff_shift&returnRoute=LocationAttendanceCorrections. La aplicación carga el evento staff_shift y conserva el retorno a la lista.
- 4.
Revisa el lado pendiente
Comprueba empleado, fecha y horas del turno. Durante la resolución, las fechas quedan bloqueadas y solo se habilita la hora de entrada o salida que está en correction_requested.
- 5.
Acepta o ajusta la hora
Si la hora pendiente es correcta, deja el valor sin cambios y usa Aceptar corrección. Si hay que cambiarla, modifica la hora antes de confirmar; la interfaz muestra Rechazar corrección, pero el estado guardado sigue siendo correction_made.
- 6.
Confirma el guardado
Confirma la decisión en el modal. El sistema guarda el evento actualizado, cambia cada lado pendiente a correction_made y muestra La corrección se ha guardado.
Validaciones y límites
- La vista de correcciones solo se muestra a usuarios con staff-shifts:manage; el backend vuelve a validar permisos al guardar.
- El evento debe pertenecer a la ubicación activa y mantener kind staff_shift; si no existe, pertenece a otra ubicación o no es staff_shift, se muestra el error del evento solicitado.
- La resolución requiere staff_id, starts_at válido y, si hay ends_at, que ends_at sea posterior a starts_at.
- Una corrección pendiente se identifica por payload.start_status o payload.end_status en correction_requested.
- Al resolver, el sistema escribe correction_made en cada lado pendiente; no existe un estado rejected persistido para staff_shift.
Resultado esperado
La corrección queda cerrada en el calendar_event de tipo staff_shift, el turno conserva un rango horario válido y la lista de pendientes deja de tratar ese lado como correction_requested.