Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsAsistencia
Dispositivo

Eliminar turno de empleado

Elimina de forma definitiva un turno de empleado ya creado en el calendario de la ubicación, usando el evento `calendar_events.kind='staff_shift'` y el permiso `staff-shifts:manage`.

En este artículo

Este flujo sirve para responsables de personal que necesitan retirar un turno de asistencia desde el calendario o desde la tabla de correcciones/asistencias, sin modificar la ficha del empleado.

En el demo ES, la guía debe documentarse con Grupo Marea Demo, Marea Gran Via y un turno de Marta Ruiz cuando exista o se cree temporalmente para capturas.

Antes de empezar

  • Tener sesión iniciada en Grupo Marea Demo y la ubicación Marea Gran Via.
  • Disponer del permiso de ubicación `staff-shifts:manage`; `staff-shifts:view` no permite eliminar.
  • Contar con un evento existente de tipo `staff_shift` en `calendar_events` para la ubicación actual.
  • Para capturas, descubrir un `STAFF_SHIFT_EVENT_ID` por API o crear un turno temporal, porque `maestro-env.json` no expone un id estable.

Instrucciones

  1. 1.

    Abrir el turno editable

    Desde el calendario de Marea Gran Via, abre el turno de asistencia del empleado. También puede abrirse con la ruta `/:orgId/:locationId/calendars/edit/:eventId?kind=staff_shift`.

  2. 2.

    Comprobar empleado y horario

    Revisa que el formulario está en modo edición, que el evento pertenece a Marta Ruiz o al empleado esperado, y que el botón `Eliminar` aparece en el footer.

  3. 3.

    Iniciar la eliminación

    Pulsa `Eliminar`. La app abre el modal `Eliminar evento` con el aviso `Se eliminará Asistencia definitivamente.` antes de ejecutar la acción.

  4. 4.

    Confirmar el borrado

    Confirma de nuevo con `Eliminar`. La app llama a `DELETE /api/app/{orgId}/{locationId}/calendar-events/{eventId}` sin enviar body.

  5. 5.

    Verificar el resultado

    Tras el éxito, la app muestra `Evento eliminado correctamente.`, refresca los eventos del calendario y vuelve a la ruta de retorno configurada.

  6. 6.

    Usar la variante desde correcciones

    En `/:orgId/:locationId/attendance/corrections?pending_only=false`, una fila `staff_shift` sin corrección pendiente puede usar la misma confirmación de eliminación y refresca correcciones y turnos activos.

Validaciones y límites

  • Deben existir `selectedOrgId`, `selectedLocationId` y `editEventId` antes de operar.
  • El detalle cargado debe existir y tener `kind === 'staff_shift'`.
  • `staff-shifts:manage` es obligatorio en UI y backend; `staff-shifts:view` solo permite ver o bloquea la gestión.
  • La ruta operativa documentada es `DELETE /api/app/{orgId}/{locationId}/calendar-events/{eventId}`; no usar `/staff/{staffId}/shifts/{shiftId}` porque no está implementada para este caso.
  • El backend verifica que el evento pertenece a la ubicación actual y devuelve `204 No Content` si el borrado termina sin error.
  • La eliminación es definitiva sobre `calendar_events`; no archiva el turno y no modifica el registro de `staff`.
  • En correcciones, la acción `Eliminar` está deshabilitada cuando la fila tiene `hasPendingCorrection=true`.
  • Si la llamada falla, la pantalla muestra `No se pudo eliminar el evento.` y no navega atrás.

Resultado esperado

El turno se retira de `calendar_events`, las listas y rangos de calendario se refrescan, y el empleado permanece intacto en la ficha de personal.

Artículos relacionados