Cómo cerrar la aceptación de una ocurrencia
Cierra una ocurrencia concreta de servicio para que deje de aceptar nuevas reservas confirmadas. La cabecera queda como Completo y el menú pasa a Permitir más reservas.
En este artículo
Usa esta guía cuando un servicio ya no debe admitir más reservas confirmadas, pero las reservas existentes deben conservarse. La acción se ejecuta desde el detalle de una ocurrencia concreta, no desde la serie del servicio.
En el runtime ES, el recorrido parte de Grupo Marea Demo, Marea Gran Via y Servicio de comidas Gran Via con `BOOKING_DETAIL_OCCURRENCE_ID`.
Antes de empezar
- Sesión iniciada en Antylogic con `orgId` y `locationId` seleccionados.
- Detalle de la ocurrencia abierto en `/:orgId/:locationId/reservations/:occurrenceId`.
- La ocurrencia está en `acceptance_state: "open"`; si ya está en `completed`, la acción visible será `Permitir más reservas`.
- El usuario tiene `reservation:manage` en la ubicación para poder usar `Configuraciones`.
- Comprobar que se está actuando sobre la ocurrencia correcta, porque `Marcar completo` no abre una confirmación adicional.
Instrucciones
- 1.
Abrir la ocurrencia
Entra en el detalle de reservas de la ocurrencia que quieres cerrar. La pantalla debe cargar la cabecera, el servicio y las reservas asociadas antes de operar sobre el menú.
- 2.
Abrir Configuraciones
Pulsa `Configuraciones` en la cabecera. El botón solo está disponible para usuarios con gestión de reservas y mientras no haya otra actualización en curso.
- 3.
Seleccionar Marcar completo
Pulsa `Marcar completo`. La app envía `acceptance_state: "completed"` a la ocurrencia y cierra la aceptación de nuevas reservas confirmadas; el texto del menú indica que deja solo lista de espera.
- 4.
Comprobar el resultado
Cuando termina la actualización, revisa que la cabecera muestre `Completo`. Si abres otra vez `Configuraciones`, el menú debe ofrecer `Permitir más reservas` en lugar de `Marcar completo`.
Validaciones y límites
- La acción solo se muestra cuando la ocurrencia está en `acceptance_state: "open"`.
- `handleSetAcceptanceState` no muta si falta la ocurrencia, falta `occurrenceId` o el usuario no tiene `reservation:manage`.
- El frontend usa `PUT /api/app/{orgId}/{locationId}/service-occurrences/{occurrenceId}/acceptance-state` con `{ "acceptance_state": "completed" }`.
- La API solo acepta `open` y `completed`; cualquier otro valor se rechaza como `acceptance_state` inválido.
- No hay modal de confirmación antes de ejecutar `Marcar completo`.
- La acción afecta solo a la `calendar_occurrence` concreta: no modifica la serie, no cancela reservas existentes y no mueve mesas.
- La UI documentada requiere `reservation:manage`; la API también acepta `optimization:manage`, pero esa diferencia no habilita el botón en la pantalla revisada.
- Si la actualización falla, la UI muestra el aviso de error con el respaldo `No pudimos actualizar el estado del servicio.`.
Resultado esperado
La ocurrencia queda marcada como Completo, deja de aceptar nuevas reservas confirmadas y mantiene sus reservas existentes. El menú pasa a ofrecer Permitir más reservas para reabrir la aceptación cuando corresponda.