Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsEquipo
Dispositivo

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. 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. 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. 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. 4.

    Pulsa Rechazar

    La app abre una confirmación con el empleado y el rango de fechas para evitar resolver una solicitud equivocada.

  5. 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. 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.

Artículos relacionados