Cómo rechazar una solicitud de vacaciones
Rechaza una solicitud pendiente del equipo desde el detalle de vacaciones. Antylogic conserva el mismo `calendar_event` de tipo `staff_vacation` y cambia su estado efectivo a `payload.status = "rejected"`; no borra la solicitud ni crea un evento nuevo.
En este artículo
Este flujo está pensado para responsables de personal y managers de ubicación que necesitan revisar una petición antes de tomar una decisión. La solicitud sigue formando parte del calendario operativo, con trazabilidad de empleado, fechas y motivo.
Para documentación y capturas conviene resolver el rechazo desde el formulario de detalle. La acción rápida de fila existe, pero tiene una discrepancia de payload pendiente de validar frente a la validación actual del backend.
Antes de empezar
- Iniciar sesión en Grupo Marea Demo con la ubicación Marea Gran Via seleccionada.
- Tener `vacation:view` para ver la cola y `vacation:manage` para rechazar solicitudes.
- Disponer de una solicitud `staff_vacation` pendiente dentro del rango visible de `calendars/vacations/requests?pending_only=true`.
- Usar preferentemente el detalle de la solicitud para capturar y ejecutar el rechazo.
Instrucciones
- 1.
Abre la cola de pendientes
Entra en `calendars/vacations/requests?pending_only=true`. La pantalla muestra el `Listado de vacaciones` filtrado a solicitudes pendientes del año visible.
- 2.
Localiza la solicitud
Busca la fila pendiente del empleado, por ejemplo Marta Ruiz en el demo ES, y revisa estado, fechas y notas antes de continuar.
- 3.
Abre el detalle
Pulsa la solicitud para entrar en el formulario de vacaciones. Si el evento sigue siendo `staff_vacation` y está pendiente, el detalle muestra las acciones `Rechazar` y `Aceptar`.
- 4.
Pulsa Rechazar
La app abre una confirmación con el empleado y el rango de fechas para evitar resolver una solicitud equivocada.
- 5.
Confirma la decisión
Al confirmar, la app actualiza el evento existente con `payload.status = "rejected"`, manteniendo empleado, fechas, `all_day`, zona horaria y motivo si existía.
- 6.
Comprueba el resultado
Tras el éxito, la lista se refresca. Con `pending_only=true`, la solicitud deja de aparecer; con `pending_only=false`, queda visible con la etiqueta `Rechazada`.
Validaciones y límites
- La cola carga eventos con `kinds=staff_vacation` y filtra pendientes en cliente con estados `requested` o `pending`.
- `Rechazar` solo aparece para solicitudes pendientes cuando el usuario tiene `vacation:manage`.
- El backend actualiza por `PUT /calendar-events/{eventId}`; no existe endpoint dedicado `/approve` o `/reject`.
- El tipo del evento no puede cambiar: debe seguir siendo `staff_vacation`.
- El payload válido para vacaciones de personal admite `status`, `reason` y `proration_fictional`; `status` debe ser `requested`, `accepted` o `rejected`.
- Un solape con bloqueos de vacaciones puede impedir la actualización, porque la UI no expone `skip_blackout_validation` en este flujo.
Resultado esperado
La solicitud queda persistida como el mismo `calendar_event`, ahora en estado `rejected`. Ya no cuenta como vacación solicitada o aceptada y, si la transición fue de `requested` a `rejected`, puede generar una notificación para el empleado cuando exista usuario destino resoluble.