Cómo eliminar una asistencia manual
Retira definitivamente una asistencia manual existente del equipo. En Antylogic se gestiona como un evento de calendario `staff_shift` y se elimina desde el flujo de `calendar-events`, no desde la ruta legacy de turnos.
En este artículo
Una asistencia manual no se borra desde una pantalla técnica aislada. El manager abre el registro, revisa empleado, fecha, horario y origen, y confirma el borrado desde el formulario de edición de asistencia.
Para documentar este flujo en Marea Gran Via, prepara una asistencia de Marta Ruiz con `payload.source=manual`. La aplicación no valida ese origen al borrar: la restricción de esta guía está en el caso operativo que se captura, no en una regla adicional del backend.
Antes de empezar
- Iniciar sesión en Grupo Marea Demo con la ubicación Marea Gran Via seleccionada.
- Tener `staff-shifts:view` para abrir el detalle de la asistencia y `staff-shifts:manage` para confirmar el borrado.
- Disponer de una asistencia existente en la misma ubicación, modelada como `calendar_events.kind=staff_shift`.
- Para que la guía represente asistencia manual, usar un evento preparado con `payload.source=manual`; si el runtime documental no lo incluye, crear un evento temporal y limpiarlo después de la captura.
Instrucciones
- 1.
Abre la asistencia
Entra desde el calendario, desde asistencia o directamente en `calendars/edit/:eventId?kind=staff_shift`. La pantalla solo carga el detalle cuando hay organización, ubicación, modo edición y un `eventId` válido.
- 2.
Revisa el registro
Comprueba que la asistencia corresponde al empleado, fecha y horario que quieres retirar. En el caso de documentación, valida que sea el registro manual de Marta Ruiz antes de continuar.
- 3.
Abre la confirmación
Pulsa Eliminar en el formulario. La app muestra el modal Eliminar evento con el aviso de borrado definitivo; si el registro no debe retirarse, usa Cancelar.
- 4.
Confirma el borrado
Pulsa Eliminar en el modal para ejecutar `DELETE /api/app/{orgId}/{locationId}/calendar-events/{eventId}`. Si la operación se completa, la app muestra Evento eliminado correctamente y vuelve a la ruta de retorno configurada.
- 5.
Ten en cuenta la tabla de correcciones
Desde `attendance/corrections?pending_only=true`, la acción de fila Eliminar solo debe documentarse para filas sin corrección pendiente. Si la fila tiene una corrección pendiente, primero hay que resolverla desde las acciones disponibles.
Validaciones y límites
- La acción Eliminar no aplica en modo creación; requiere modo edición y `editEventId`.
- El backend exige que el evento exista, pertenezca a la ubicación activa y tenga un tipo reconocido.
- Para `staff_shift`, el permiso de borrado es `staff-shifts:manage`; `staff-shifts:notify` o autoservicio no conceden esta operación.
- El flujo correcto usa `calendar-events`. No documentar `DELETE /api/app/{orgId}/{locationId}/staff/{staffId}/shifts/{shiftId}` como vía operativa.
- El borrado no valida empleado, fechas ni `payload.source`; esas comprobaciones las debe hacer el operador antes de confirmar.
- La eliminación borra físicamente la fila de `calendar_events` y refresca las consultas relacionadas.
- La restricción de corrección pendiente está implementada en la tabla de correcciones; no es una validación global del formulario ni del backend.
Resultado esperado
La asistencia manual deja de aparecer en las vistas de asistencia y calendario. La app invalida las cachés de `calendar-events`, elimina el detalle del evento borrado y conserva el retorno hacia la pantalla operativa desde la que se abrió el flujo.