Modifiée par : Pierre Cros, Anaïs Ecuvillon

Pré-réservation d'un rendez-vous ou d'un évènement

Il s'agit de réserver temporairement un créneau horaire ou un évènement, laissant ainsi le temps pour l'usager (ou l'agent lors de la saisie backoffice) de compléter le formulaire sans que le rendez-vous ou l'évènement ne soit réservé par une autre personne entre temps.

Paramétrage (exemple pour les rendez-vous)

Pour permettre la pré-réservation temporaire, il faut :

  1. Créer un appel de webservice qui utilise la méthode POST (JSON) avec la même URL que le webservice de réservation  dans le workflow. Dans Et renseigner dans les « Données à envoyer dans le corps de la requête » indiquez « lock_code » comme variable avec le gabarit {{ session_hash_id }}.
    Dans cet exemple, l'identifiant de l'appel webservice est « rdv_fillslot_preblocage ».


  2. Côté formulaire, ajouter une condition de sortie de page sur la page qui permet de choisir le créneau du RDV (ou l'évènement), et les suivantes.
    Condition : webservice.rdv_fillslot_preblocage.err == 0
    Message d'erreur si condition non statisfaite : Veuillez choisir un nouveau créneau, le pré-blocaque de votre réservation n'a pas pu aboutir.
  3. Toujours côté formulaire, dans le champ qui permet d'afficher les créneaux de l'agenda, ajouter le paramètre lock_code à la source de donnée :
    • soit à la fin de l'URL du JSON, exemple : {{ agendas_url }}api/agenda/agenda-de-type-rdv/meetings/{{ form_var_meeting_type_raw }}/datetimes/?lock_code={{ session_hash_id }}
    • soit en dupliquant la source de donnée de l'agenda pour ajouter dans les données à envoyer en paramètres de l'URL : lock_code : {{ session_hash_id }}

  4. Côté workflow, dans le webservice de réservation, ajouter des données à envoyer dans le corps de la requête.
    lock_code : {{ session_hash_id }}
    confirm_after_lock : true

Explication


Le paramètre « lock_code » permet deux choses :

  • de valider la disponibilité du créneau : il vérifie que le créneau est toujours accessible à chaque sortie de page ;
  • de poser un verrou temporaire : le créneau sera bloqué pendant 10 minutes. Durant ce laps de temps, le créneau ne sera plus considéré comme disponible, bien que la réservation ne soit pas encore définitive.


Chaque fois que ce paramètre est appelé, le verrouillage existant est prolongé de 10 minutes. Il est donc important de maintenir la condition de sortie de page jusqu'à la fin du formulaire.

Ce nouveau paramètre est également utilisable pour la réservation multiple (réservation de plusieurs places à un évènement + réservation d'une place à plusieurs évènements).

Affichage côté agenda en backoffice

Côté agenda, la pré-réservation indique comme libellé « Réservé » dans un agenda de type Rendez-vous et « Anonyme » dans un agenda de type Évènements.
Une amélioration de cet affichage arrive prochainement.

agende L'affichage côté agenda arrive bientôt !