Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsEquipo
Dispositivo

Cómo solicitar vacaciones propias

Permite que una persona empleada pida sus propias vacaciones desde Mi perfil. Antylogic crea un `calendar_event` de tipo `staff_vacation`, de día completo, con estado `requested` y notas opcionales para que responsables con `vacation:manage` lo revisen.

En este artículo

Este flujo está pensado para empleados que necesitan pedir vacaciones sin pasar por correos o chats externos. La solicitud nace desde el perfil propio y queda conectada con el calendario de personal del local.

En el demo de España, el ejemplo operativo es Marta Ruiz en Grupo Marea Demo / Marea Gran Via. La solicitud se registra como pendiente y conserva el contexto necesario para validar saldo anual, bloqueos y permisos.

Antes de empezar

  • Sesión autenticada con organización y ubicación activas; en el demo, Grupo Marea Demo y Marea Gran Via.
  • Tener un empleado propio vinculado a la ubicación; en el runtime ES, Marta Ruiz con `STAFF_ID`.
  • Disponer de permiso de ubicación `vacation:request` o `vacation:manage`.
  • Elegir un rango válido de día completo en la zona horaria de la ubicación, `Europe/Madrid` para el demo.
  • No superar `staff.vacation_days_total` ni coincidir con un bloqueo de vacaciones aplicable.

Instrucciones

  1. 1.

    Abrir Mi perfil

    Entra en `staff/profile` sin `staffId` para cargar el perfil propio. La pantalla muestra los bloques operativos del empleado, incluido `Vacaciones del año` cuando el usuario puede verlo.

  2. 2.

    Iniciar la solicitud

    En el bloque `Vacaciones del año`, pulsa `Solicitar vacaciones`. La acción aparece si existe empleado propio y el usuario tiene `vacation:request` o `vacation:manage`.

  3. 3.

    Revisar el formulario

    El formulario se abre en modo autoservicio con `kind=staff_vacation` y `preset=mine`. El empleado queda bloqueado en la persona usuaria y el estado funcional se fija como `requested`.

  4. 4.

    Completar fechas y notas

    Indica `Comienzo`, `Fin` y, si hace falta, `Notas`. Antylogic prepara un evento de día completo con inicio `00:00`, fin `23:59`, `staff_id`, zona horaria y notas guardadas como `payload.reason`.

  5. 5.

    Enviar la solicitud

    Pulsa `Solicitar vacaciones`. La app envía `POST /api/app/{orgId}/{locationId}/calendar-events` con `kind: "staff_vacation"`, `all_day: true` y `payload.status: "requested"`.

  6. 6.

    Confirmar el resultado

    Si la creación se acepta, la app muestra `Evento creado correctamente.` y vuelve a `StaffProfile`. La solicitud cuenta como vacaciones solicitadas y se notifica a responsables con `vacation:manage`.

  7. 7.

    Usar Mi calendario si procede

    Cuando `calendars/me` está disponible, el usuario también puede abrir el selector de creación y elegir `Solicitar vacaciones`; mantiene `preset=mine` y el empleado propio como destino.

Validaciones y límites

  • `vacation:view` permite consultar superficies de vacaciones, pero no basta para enviar la solicitud.
  • `Comienzo` y `Fin` deben parsearse como fechas válidas y la fecha de comienzo debe ser anterior a la de fin.
  • Toda solicitud `staff_vacation` necesita `staffId`; si falta, la app pide seleccionar empleado.
  • Con solo `vacation:request`, el backend fuerza `staff_id` al empleado asociado al usuario y `payload.status` a `requested`.
  • El backend rechaza recurrencias para `staff_vacation`, claves de payload no permitidas, rangos inválidos y estados distintos de `requested`, `accepted` o `rejected`.
  • La UI no envía `skip_blackout_validation`, por lo que los bloqueos de vacaciones siempre aplican.
  • Las solicitudes en `requested` o `accepted` cuentan para el límite anual; `rejected` no cuenta.
  • `calendars/me` puede no estar habilitado para un usuario solo request-only; la entrada fiable de autoservicio es `staff/profile`.

Resultado esperado

La solicitud queda registrada como evento de vacaciones propio en estado `requested`, visible después en el perfil y lista para revisión por responsables de vacaciones.

Artículos relacionados