Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsManagers
Dispositivo

Cómo crear un cierre por vacaciones de ubicación

Registra un cierre total de la ubicación activa durante un rango de fechas. Antylogic lo guarda como evento `location_vacation` y lo muestra en el calendario de vacaciones.

En este artículo

Este flujo sirve para cerrar temporalmente toda la ubicación, como Marea Gran Via en Grupo Marea Demo. No registra vacaciones de un empleado: el cierre queda asociado al local completo.

Antes de guardar, conviene revisar el calendario y las reservas del periodo. Las reservas activas bloquean el cierre; las reservas canceladas no lo bloquean.

Antes de empezar

  • Sesión iniciada con Grupo Marea Demo y la ubicación Marea Gran Via activas.
  • Permiso `vacation:manage` sobre la ubicación. `vacation:view` permite consultar el calendario, pero no guardar el cierre.
  • Fechas de comienzo y fin definidas para el cierre.
  • El rango no debe tener reservas activas.
  • Para capturas sin modificar datos, usar el cierre sembrado del demo ES, como `Cierre parcial por inventario`.

Instrucciones

  1. 1.

    Abre el calendario de vacaciones

    Entra en `calendars/vacations?mode=month` para revisar vacaciones, bloqueos y cierres existentes antes de crear uno nuevo.

  2. 2.

    Inicia el formulario de creación

    Desde el calendario, crea una vacación y cambia el alcance con `Cierre total por vacaciones`. En un flujo documental también se puede abrir directamente `calendars/create?kind=location_vacation&preset=vacations`.

  3. 3.

    Confirma el cierre de ubicación

    Mantén activado `Cierre total por vacaciones`. Con este alcance, el formulario crea un evento `location_vacation`; no muestra selector de empleado ni guarda `staff_id`.

  4. 4.

    Define comienzo y fin

    Selecciona las fechas de `Comienzo` y `Fin`. La app guarda el cierre como evento de día completo, con inicio a `00:00` y fin a `23:59` en la zona horaria de Marea Gran Via, `Europe/Madrid`.

  5. 5.

    Añade notas opcionales

    Usa `Notas` para indicar el motivo del cierre. Si se rellena, se guarda como `payload.reason`; si queda vacío, el cierre se puede crear sin motivo.

  6. 6.

    Guarda el cierre

    Pulsa `Crear vacaciones`. La app llama a `POST /api/app/{orgId}/{locationId}/calendar-events`, crea el evento `location_vacation` y vuelve a la ruta indicada por `returnRoute`.

  7. 7.

    Comprueba el resultado

    Vuelve al calendario mensual de vacaciones y revisa el rango creado. El cierre aparece como evento de ubicación, separado de las vacaciones del personal.

Validaciones y límites

  • La app necesita `selectedOrgId` y `selectedLocationId`; si faltan, muestra `No encontramos la ubicación solicitada.`
  • El formulario queda bloqueado si el usuario no cumple `canManageVacationForm`.
  • Las fechas deben ser parseables y `Comienzo` debe ser anterior a `Fin`; para `location_vacation` no se exige `staffId`.
  • Si hay reservas activas dentro del rango, el backend rechaza el cierre con `error.calendar.location_vacation.reservations` e informa los días afectados.
  • Si solo hay ocurrencias de servicio solapadas sin reservas bloqueantes, el backend puede limpiar esas ocurrencias antes de persistir el cierre.
  • `payload.reason` solo se acepta como string opcional. El cierre no guarda `payload.status`.
  • La recurrencia no está permitida para `location_vacation`.
  • No existe endpoint específico de `location_vacation`; la creación usa la superficie genérica `calendar-events`.

Resultado esperado

El cierre queda registrado como `calendar_event` de tipo `location_vacation`, con `all_day` activo, sin empleado asociado y visible en el calendario de vacaciones de la ubicación.

Artículos relacionados