Eliminar rol de personal
Elimina de Marea Gran Via un rol operativo de personal cuando ya no tiene empleados activos asignados. La acción requiere permiso de gestión, se confirma desde un modal y queda bloqueada si el rol todavía sostiene asignaciones activas.
En este artículo
Los roles de personal organizan el equipo por funciones operativas dentro de una ubicación. El borrado sirve para retirar un rol que ya no se usa y que no mantiene empleados activos asociados.
Antylogic protege las asignaciones activas: si el rol sigue vinculado a empleados, el sistema rechaza la eliminación y el operador debe reasignar, desvincular o archivar primero a esas personas.
Antes de empezar
- Trabajar en Grupo Marea Demo con la ubicación Marea Gran Via seleccionada.
- Tener `staff-roles:manage` en scope location; `staff-roles:view` permite consultar, pero no borrar.
- El rol debe existir en `staff_roles` y pertenecer a la ubicación actual.
- El rol no debe tener empleados activos asignados; los empleados archivados no bloquean esta acción.
Instrucciones
- 1.
Abre los roles de empleados
Entra en `location/staff?tab=roles`. La pestaña Roles de empleados muestra la tabla de roles, la búsqueda y la columna Empleados para revisar qué roles tienen personas asignadas.
- 2.
Comprueba las asignaciones
Antes de borrar, revisa si el rol tiene empleados activos. Si aparecen personas asignadas, cambia su rol, desvincúlalas o archívalas antes de continuar.
- 3.
Inicia la eliminación
Si el rol no tiene empleados activos, usa Eliminar desde la fila de la tabla o abre `location/staff/roles/detail/:roleId` y pulsa Eliminar en el detalle.
- 4.
Confirma el borrado
En el modal Eliminar rol, revisa el mensaje `Se eliminará {{name}}.` y pulsa Eliminar. La app envía `DELETE /api/app/{orgId}/{locationId}/staff-roles/{roleId}` sin body.
- 5.
Verifica el resultado
Cuando la operación termina, el modal se cierra, la lista se actualiza y aparece el mensaje Rol eliminado. Si empezaste desde el detalle, la app vuelve a la pestaña Roles.
- 6.
Resuelve un bloqueo
Si aparece No se puede eliminar un rol asignado, el rol conserva empleados activos. No se elimina nada hasta que esas asignaciones se resuelvan y se repita la acción.
Validaciones y límites
- El borrado requiere `staff-roles:manage`; con `staff-roles:view` no aparecen los controles de eliminación.
- `DELETE /api/app/{orgId}/{locationId}/staff-roles/{roleId}` no lleva payload de confirmación.
- La ruta necesita `orgId`, `locationId` y un único `roleId`; un rol vacío, inexistente o de otra ubicación se trata como NotFound.
- El backend comprueba empleados activos en `staff` con `IncludeDeleted:false`; la tabla solo anticipa el bloqueo cuando tiene datos suficientes.
- Un rol asignado devuelve `error.staff_role.delete_assigned` con estado 400 y código 7003.
- El borrado es físico sobre `staff_roles`; no hay flujo documentado de restauración.
Resultado esperado
El rol queda eliminado de `staff_roles`, deja de aparecer en listado y detalle, la lista se invalida y la caché del detalle del `roleId` eliminado se descarta.