Configuration des réservations extérieures : Différence entre versions

Aller à : navigation, rechercher
(Créer les profils)
(Activer et paramétrer le module des réservations extérieures)
 
(81 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 6 : Ligne 6 :
 
=Mise en place=
 
=Mise en place=
  
==Créer les profils==
+
==Créer un profil pour les utilisateurs effectuant les activités liées aux réservations extérieures==
 
Aller dans '''Admin > Utilisateurs > Profils''', puis :
 
Aller dans '''Admin > Utilisateurs > Profils''', puis :
*Créer un profil pour les clients extérieurs. Le profil ne doit avoir aucun droit. Il doit être configuré pour être affecté automatiquement aux clients extérieurs (cf. [[#Activer-et-paramétrer-le-module-des-réservations-extérieures|Activer et paramétrer le module des réservations extérieures]]).
+
*Créer un profil pour les utilisateurs effectuant les activités liées aux réservations extérieures
*Créer un profil pour les pilotes pouvant faire passer un baptême de l'air.
+
Ce profil doit avoir les droits suivants afin qu'il soit possible de gérer les disponibilités des personnes concernées :
Ce profil doit avoir les droits
+
 
*'''Réservations > Planning personnel'''
 
*'''Réservations > Planning personnel'''
 
*'''Réservations > Planning individuel visible pour les autres'''
 
*'''Réservations > Planning individuel visible pour les autres'''
 
Aller dans '''Admin > Utilisateurs > Profils plus''', colonne '''Profils visibles''', cocher le profil précédemment créé pour les profils qui doivent pouvoir voir les lignes de réservations de ces utilisateurs ou modifier les disponibilités de ces utilisateurs.
 
Aller dans '''Admin > Utilisateurs > Profils plus''', colonne '''Profils visibles''', cocher le profil précédemment créé pour les profils qui doivent pouvoir voir les lignes de réservations de ces utilisateurs ou modifier les disponibilités de ces utilisateurs.
 +
 +
==Créer un profil pour les clients extérieurs==
 +
Aller dans '''Admin > Utilisateurs > Profils''', puis :
 +
*Créer un profil pour les clients extérieurs. Le profil ne doit avoir aucun droit. Il doit être configuré pour être affecté automatiquement aux clients extérieurs (cf. [[#Activer-et-paramétrer-le-module-des-réservations-extérieures|Activer et paramétrer le module des réservations extérieures]]).
  
 
==Gérer les places==
 
==Gérer les places==
Ligne 33 : Ligne 36 :
 
* Balade découverte
 
* Balade découverte
  
==Créer un type de validité pour les bons de réduction (facultatif)==
+
==Créer un type de validité pour les bons d'achats (facultatif)==
 
+
 
Il est possible de donner la possibilité aux clients de fournir un bon de réduction. Ce bon de réduction sera ensuite stocké dans une validité. Pour ce faire :
 
Il est possible de donner la possibilité aux clients de fournir un bon de réduction. Ce bon de réduction sera ensuite stocké dans une validité. Pour ce faire :
 +
*Aller dans '''Admin > Utilisateurs > Types de validités'''.
 +
*Cliquer sur le bouton '''Ajouter un type de validité'''.
 +
*Lui donner un nom comme "Bon d'achat" et cocher '''Associer un document'''.
 +
*Valider en cliquant sur '''Enregistrer'''.
 +
*Aller dans '''Admin > Utilisateurs > Profils plus'''.
 +
*Vérifier que les profils pouvant gérer cette validité ont bien la validité en question dans la liste '''Types de validités que l'utilisateur peut gérer et certifier'''.
  
# Aller dans '''Admin > Utilisateurs > Types de validités'''.
+
==Ajouter une règle pour les réservations extérieures==
# Cliquer sur le bouton '''Ajouter un type de validité'''.
+
# Lui donner un nom comme "Bon de réduction" et cocher '''Associer un document'''.
+
# Valider en cliquant sur '''Enregistrer'''.
+
# Aller dans '''Admin > Utilisateurs > Profils plus'''.
+
# Vérifier que les profils pouvant gérer cette validité ont bien la validité en question dans la liste '''Types de validités que l'utilisateur peut gérer et certifier'''.
+
  
==Ajouter une règle pour les réservations extérieures==
 
  
 +
Aller dans '''Admin > Structure > Paramétrage > Planning'''.
  
Aller dans '''Admin > Structure > Structure > Paramétrage''' et descendre dans la catégorie '''Gestion du planning'''.
 
 
Dans '''Régles de saisie XML''' ajouter une règle de la forme suivante :
 
Dans '''Régles de saisie XML''' ajouter une règle de la forme suivante :
  
Ligne 68 : Ligne 70 :
  
 
==Activer et paramétrer le module des réservations extérieures==
 
==Activer et paramétrer le module des réservations extérieures==
 +
*Aller dans '''Admin > Structure > Paramétrage > Réservations extérieures'''
 +
*Activer le toggle-switch '''Réservations extérieures'''.
 +
*Cliquer sur '''Enregistrer'''
  
# Aller dans '''Admin > Structure > Structure > Paramétrage''' et descendre dans la catégorie '''Gestion des réservations extérieures'''.
+
Renseigner les champs suivants avec les paramètres souhaités :
# Mettre '''Gestion des réservations extérieures''' sur '''Activé(e)''' et valider en appuyant sur le bouton '''Enregistrer'''.
+
*'''Synchronisation avec une API REST tierce''' (voir [[#Interfacer-les-réservations-extérieures-avec-un-service-web-de-gestion-des-codes-de-référence-de-vente|Interfacer les réservations extérieures avec un service web de gestion des codes de référence de vente]])
# Remplir les différents champs manquants :
+
*'''Heure minimale (locale) de début de réservation d'une réservation extérieure'''
#* '''Profil des pilotes pouvant effectuer un baptême de l'air'''
+
*'''Heure maximale (locale) de fin de réservation d'une réservation extérieure'''
#* '''Profil à affecter aux clients'''
+
*'''Durée d'une réservation extérieure'''
#* '''Type d'activité à affecter aux réservations'''
+
*'''Interdire d'effectuer une réservation débutant dans moins de'''
# Si un type de validité pour les bons de réduction a été créé, le sélectionner dans la liste déroulante '''Enregistrer les bons de réduction en tant que'''.
+
*'''Interdire d'effectuer une réservation se terminant dans plus de'''
# Si besoin, modifier les autres champs :
+
*'''Limitation du nombre de réservations'''
#* '''Heure minimale (locale) de début de réservation d'un baptême de l'air'''
+
*'''Permettre de choisir la durée d'activité'''
#* '''Heure maximale (locale) de fin de réservation d'un baptême de l'air'''
+
*Champ '''Profil utilisateur partie prenante''' : sélectionner le profil créé par la procédure [[#Créer-un-profil-pour-les-utilisateurs-effectuant-les-activités-liées-aux-réservations-extérieures|Créer un profil pour les utilisateurs effectuant les activités liées aux réservations extérieures]]
#* '''Durée d'un baptême de l'air'''
+
**Si '''Aucun''' est sélectionné, cela désactive la prise en compte de la disponibilité des pilotes et montre les périodes disponibles pour réservation externe uniquement en fonction de la disponibilité des ressources, ce qui rend les réservations externes effectuées sans pilote.
#* '''Interdire d'effectuer une réservation débutant dans moins de ___'''
+
*Champs: '''Filtrer les utilisateurs avec le champ métier''' et '''Filtrer les ressources avec le champ métier''' (voir [[#Filtrer-les-utilisateurs/ressources-prises-en-compte-pour-les-créneaux-horaires-disponibles|Filtrer les utilisateurs/ressources prises en compte pour les créneaux horaires disponibles]])
#* '''Interdire d'effectuer une réservation se terminant dans plus de ___'''
+
*Champ '''Profil à affecter aux clients''' : sélectionner le profil créé par la procédure [[#Créer-un-profil-pour-les-clients-extérieurs|Créer un profil pour les clients extérieurs]]
#* '''Limitation du nombre de réservations'''
+
*Champ '''Type d'activité à affecter aux réservations''' : sélectionner le type d'activité à affecter aux réservations extérieures
#* '''Permettre de choisir le temps de vol'''
+
Si un type de validité pour les bons d'achat a été créé, le sélectionner dans la liste déroulante '''Demander une pièce jointe et l'enregistrer dans le type de validité suivant '''
#* '''Template du mail contenant le bon de réservation''' (voir [[#Template]])
+
# Valider en appuyant sur le bouton '''Enregistrer'''.
+
  
L'interface des réservations extérieures ('''Planning > Planning > Réservations extérieures'''). Devrait désormais afficher un calendrier (vide).
+
Si un type de validité pour les bons d'achat a été sélectionné, il est possible de:
  
==Ajouter des pilotes==
+
- Modifier le label associé au champ d'importation de la pièce jointe qui apparait dans l'interface de la saisie des coordonnées en éditant le champ '''Nom du champ pour la pièce jointe'''.
  
# Aller dans '''Gestion > Utilisateurs > Utilisateurs > Actifs'''.
+
- Préciser si l'import de la pièce jointe est obligatoire ou facultative en sélectionnant l'une des deux options du champ '''Pièce jointe'''.
# Choisir un pilote à ajouter et cliquer sur l'icône '''modifier'''.
+
*'''Enregistrer la référence transmise en paramètre GET en tant que''' (voir [[#Affecter-la-référence-du-bon-d'achat-à-la-réservation-extérieure|Affecter la référence du bon d'achat à la réservation extérieure]])
# Dans la liste '''profil''' sélectionner le profil indiquant que le pilote peut effectuer des baptêmes de l'air.
+
*'''Template de l'e-mail de confirmation de réservation''' (voir [[#Template|Template]])
# Valider en appuyant sur le bouton '''Enregistrer'''.
+
*'''Personnaliser l'objet de l'e-mail d'annulation de réservation''' (voir [[#Template|Template]])
# Si ce n'est pas déjà fait, aller dans '''Planning > Données > (In)disponibilités''' et indiquer les disponibilités du pilote.
+
*'''Template de l'e-mail d'annulation de réservation''' (voir [[#Template|Template]])
 +
*Cliquer sur le bouton '''Enregistrer'''
  
==Ajouter des ressources==
+
L'interface des réservations extérieures ('''Planning > Planning > Réservations extérieures'''). Devrait désormais afficher un calendrier (vide)
  
# Aller dans '''Gestion > Ressources > Actives'''.
+
==Filtrer les utilisateurs/ressources prises en compte pour les créneaux horaires disponibles==
# Choisir la ressource à ajouter et cliquer sur l'icône '''modifier'''.
+
Il est possible de restreindre les utilisateurs et/ou les ressources en fonction de paramètres attribués dans un champ métier utilisateur/ressource
# Cocher '''Peut effectuer des baptêmes de l'air''' dans la colonne '''Champs métier'''.
+
# Valider en appuyant sur le bouton '''Enregistrer'''.
+
  
=Template=
+
Voici un exemple de paramétrage permettant de prendre en compte les utilisateurs en fonction de leur base géographique d'affectation :
 +
*Aller dans '''Admin > Structure > Variables > Champs métiers'''
 +
Sur la dernier ligne :
 +
*Colonne '''Nom de variable''', renseigner "locationPerson"
 +
*Colonne '''Intitulé''', renseigner "Base géographique"
 +
*Colonne '''Catégorie''', sélectionner ''Utilisateur''
 +
*Colonne '''Type de valeur''', sélectionner ''dbObject:Location''
 +
*Cliquer sur le bouton '''Ajouter'''
  
Le mail contenant le bon de réservation peut être personnalisé :
 
  
# Aller dans '''Admin > Structure > Structure > Paramétrage > Gestion des réservations extérieures'''
+
*Aller dans '''Admin > Structure > Paramétrage > Réservations extérieures'''
# Modifier '''Template du mail contenant le bon de réservation'''
+
*Champ '''Filtrer les utilisateurs avec le champ métier''' : sélectionner le champ préalablement créé '''Base géographique (locationPerson)'''
# Valider en cliquant sur '''Enregistrer'''
+
*Cliquer sur le bouton '''Enregistrer'''
 +
 
 +
Cela permet de ne prendre en compte que les utilisateurs pour lesquels le champ métier ''Base géographique'' correspond au paramètre GET locationPerson passé dans l'URL permettant d'afficher l'interface de réservations extérieures.
 +
 
 +
Exemple :
 +
<pre>https://localhost/4.0/externalBooking.php?locationPerson=LFBD</pre>
 +
Permet de ne prendre en compte que les utilisateurs disponibles ayant dans le champ '''Base géographique''' la valeur ''LFBD (BORDEAUX MERIGNAC)''.
 +
 
 +
==Affecter la référence du bon d'achat à la réservation extérieure==
 +
Il est possible d'affecter le code de la référence du bon d'achat à la réservation extérieure en fonction de paramètre attribué dans un champ métier réservation.
 +
 
 +
Voici un exemple de paramétrage permettant d'ajouter le champ métier dédié au stockage de la référence du bon d'achat :
 +
*Aller dans '''Admin > Structure > Variables > Champs métiers'''
 +
Sur la dernier ligne :
 +
*Colonne '''Nom de variable''', renseigner "reference"
 +
*Colonne '''Intitulé''', renseigner "Référence d'achat"
 +
*Colonne '''Catégorie''', sélectionner ''Réservation''
 +
*Colonne '''Type de valeur''', sélectionner ''Chaîne textuelle''
 +
*Cliquer sur le bouton '''Ajouter'''
 +
 
 +
 
 +
*Aller dans '''Admin > Structure > Paramétrage > Réservations extérieures'''
 +
*Champ '''Enregistrer la référence transmise en paramètre GET en tant que''' : sélectionner le champ préalablement créé '''Référence d'achat (reference)'''
 +
*Cliquer sur le bouton '''Enregistrer'''
 +
 
 +
Cela permet de capturer le code associé au paramètre GET '''reference''' passé dans l'URL permettant d'afficher l'interface de réservations extérieures et de le stocker dans le champ métier '''Référence d'achat''' lors de l'enregistrement de la réservation.
 +
 
 +
Exemple :
 +
<pre>https://localhost/4.0/externalBooking.php?reference=AZERTY</pre>
 +
Permet d'attribuer le code de référence d'achat ''AZERTY'' à la réservation en cours.
 +
 
 +
==Interfacer les réservations extérieures avec un service web de gestion des codes de référence de vente==
 +
OpenFlyers implémente un interfaçage vers une API REST tierce de gestion des codes qui permet de vérifier si le code de référence renseigné par l'utilisateur ou transmis via l'URL est valide ou non.
 +
 
 +
Les échanges se font au format JSON.
 +
 
 +
OpenFlyers renvoie à l'API la date de la réservation, le type de ressource et les coordonnées de la personne en charge de l'activité lors de la prise de réservation extérieure ou lors de son annulation.
 +
 
 +
Pour interfacer OpenFlyers avec l'API, il faut :
 +
*Aller dans '''Admin > Structure > Paramétrage > Réservations extérieures'''
 +
*Champ '''Synchronisation avec une API REST tierce''' : activer le '''toggle switch'''.
 +
 
 +
Renseigner les champs suivants avec les paramètres souhaités :
 +
*'''URL de l'API REST tierce''' : Assigner le lien de base de l'API
 +
*'''Jeton d'authentification''' : Assigner le Jeton d'authentification de l'API
 +
 
 +
Une fois que la configuration est faite par OpenFlyers, les opérations suivantes s'effectuent systématiquement :
 +
*Vérification de la validité du code de référence via le lien '''externalBookingWebServiceURL/{code}''' avec la méthode '''GET''', auquel l'API doit répondre en transmettant un JSON sous le format suivant :
 +
<javascript>{
 +
  "validity": true,
 +
  "code": "Code_De_Référence",
 +
  "buyer_name": "Nom_Agence_web",
 +
  "validity_date": "YYYY-MM-DD",
 +
  "video": "true",
 +
  "cancellable": "true",
 +
  "activity_type": 4,
 +
  "booking_duration": "45"
 +
}</javascript>
 +
 
 +
NB:Le code est valide si la valeur de '''validity''' est '''true'''.
 +
*Si la variable '''booking_duration''' est définie et contient une valeur multiple de '''15''', elle sera utilisée à la place du paramètre '''Durée d'une réservation extérieure'''.
 +
*Si la variable '''activity_type''' est définie et correspond à l'id d'un type d'activité actif, la valeur sera utilisée à la place du paramètre ''' Type d'activité à affecter aux réservations'''.
 +
 
 +
 
 +
*Notification à l'API tierce d'une nouvelle réservation via le lien '''externalBookingWebServiceURL/{code}/activate'''  avec la méthode '''PUT''', en passant les données de requête suivantes :
 +
<javascript>{
 +
    "date" : "2022-04-05T06:00:00Z", //date de la réservation en format ISO UTC
 +
    "resource_type" : "le type de la ressource utilisée dans la réservation",
 +
    "structure_person_name" : "le nom du pilote",
 +
    "structure_person_email" : "l'email du pilote",
 +
    "structure_person_phone" : "le numéro de téléphone du pilote"
 +
}</javascript>
 +
- En retour l'API doit répondre en cas de succès :
 +
<javascript>{
 +
  "status": true
 +
}</javascript>
 +
- En retour l'API doit répondre en cas d'échec :
 +
<javascript>{
 +
  "status": false,
 +
  "error_msg": "le message d'erreur"
 +
}</javascript>
 +
 
 +
*Notification à l'API tierce de l'annulation d'une réservation via le lien '''externalBookingWebServiceURL/{code}/release''' avec la méthode '''PUT'''
 +
 
 +
- En cas de la réussite de la notification, l'API répond :
 +
<javascript>{
 +
  "status": true
 +
}</javascript>
 +
 
 +
- En cas d'échec l'API répond :
 +
<javascript>{
 +
  "status": false,
 +
  "error_msg": "le message d'erreur"
 +
}</javascript>
 +
 
 +
 
 +
'''Exemple de la communication en PHP avec l'API:'''
 +
<php>
 +
// Prepare data to send by request
 +
$requestData = array(
 +
    'date'                  => "2022-04-05T06:00:00Z", //date de la réservation en format ISO UTC
 +
    'resource_type'          => 'resource_type',
 +
    'structure_person_name'  => 'pilot_full_name',
 +
    'structure_person_email' => 'pilot_email',
 +
    'structure_person_phone' => 'pilot_cell_phone',
 +
);
 +
// Initialize a curl session
 +
$curl = curl_init();
 +
// Set options
 +
curl_setopt_array($curl, array(
 +
                CURLOPT_URL            => 'externalBookingWebServiceURL/42E390B0D843561F/activate',
 +
                CURLOPT_RETURNTRANSFER => true,
 +
                CURLOPT_FOLLOWLOCATION => true,
 +
                CURLOPT_CUSTOMREQUEST  => 'PUT',
 +
                CURLOPT_HTTPHEADER    => array('Content-Type: application/json', 'Authorization: Bearer uqpsildfqtw5o2qq9o45guz3ydfceehb'),
 +
                CURLOPT_SSL_VERIFYPEER => false,
 +
                CURLOPT_POSTFIELDS    => json_encode($requestData),
 +
));
 +
// Execute the curl session
 +
curl_exec($curl);
 +
// Close curl session
 +
curl_close($curl);
 +
</php>
 +
 
 +
==Ajouter des utilisateurs==
 +
*Aller dans '''Gestion > Utilisateurs > Utilisateurs > Actifs'''
 +
*Choisir un utilisateur à ajouter et cliquer sur l'icône '''modifier'''
 +
*Dans la liste '''profil''' sélectionner le profil indiquant que l'utilisateur peut être sur des réservations extérieures
 +
*Valider en appuyant sur le bouton '''Enregistrer'''
 +
*Aller dans '''Planning > Données > (In)disponibilités''' et indiquer les disponibilités de l'utilisateur
 +
 
 +
==Ajouter des ressources==
 +
*Aller dans '''Gestion > Ressources > Actives'''.
 +
*Choisir la ressource à ajouter et cliquer sur l'icône '''modifier'''.
 +
*Cocher '''Peut être utilisé pour les réservations extérieures''' dans la colonne '''Champs métier'''.
 +
*Valider en appuyant sur le bouton '''Enregistrer'''.
 +
 
 +
=Template=
 +
L'e-mail de confirmation de réservation peut être personnalisé :
 +
*Aller dans '''Admin > Structure > Paramétrage > Réservations extérieures'''
 +
*Modifier '''Template de l'e-mail de confirmation de réservation'''
 +
*Valider en cliquant sur '''Enregistrer'''
 +
 
 +
L'e-mail et l'objet de l'annulation de la réservation peuvent être personnalisés :
 +
*Aller dans '''Admin > Structure > Paramétrage > Réservations extérieures'''
 +
*Modifier '''Personnaliser l'objet de l'e-mail d'annulation de réservation'''
 +
*Modifier '''Template de l'e-mail d'annulation de réservation'''
 +
*Valider en cliquant sur '''Enregistrer'''
  
 
Variables disponibles :
 
Variables disponibles :
Ligne 121 : Ligne 276 :
 
| %ACTIVITY_TYPE_NAME
 
| %ACTIVITY_TYPE_NAME
 
| Le nom du type d'activité affecté aux réservations.
 
| Le nom du type d'activité affecté aux réservations.
 +
|-
 +
|%AUTHENTICATION_LOGIN
 +
|Le nom + prénom d'utilisateur connecté
 
|-
 
|-
 
| %BOOKING_ID
 
| %BOOKING_ID
Ligne 133 : Ligne 291 :
 
| %END_TIME
 
| %END_TIME
 
| L'heure de fin de la réservation.
 
| L'heure de fin de la réservation.
 +
|-
 +
|%EXTRAFIELDxx
 +
|Permet de récupérer le contenu d'un champ métier. xx = numéro d'identifiant du champ métier. Exemple : %EXTRAFIELD35
 +
|-
 +
| %PILOT_EMAIL
 +
| L'adresse email du pilote.
 +
|-
 +
| %PILOT_HOME_PHONE
 +
| Le numéro de téléphone personnel du pilote.
 +
|-
 +
| %PILOT_WORK_PHONE
 +
| Le numéro de téléphone professionnel du pilote.
 +
|-
 +
| %PILOT_CELL_PHONE
 +
| Le numéro de téléphone portable du pilote.
 
|-
 
|-
 
| %PILOT_FULL_NAME
 
| %PILOT_FULL_NAME
Ligne 142 : Ligne 315 :
 
| %START_TIME
 
| %START_TIME
 
| L'heure de début de la réservation.
 
| L'heure de début de la réservation.
 +
|-
 +
|%STRUCTURE_NAME
 +
|Le nom de la structure
 
|}
 
|}

Version actuelle en date du 4 avril 2024 à 17:28

Présentation

Cette page présente le paramétrage du module de réservations extérieures.

Voir la page Utilisation des réservations extérieures pour la présentation et l'utilisation du module.

Mise en place

Créer un profil pour les utilisateurs effectuant les activités liées aux réservations extérieures

Aller dans Admin > Utilisateurs > Profils, puis :

  • Créer un profil pour les utilisateurs effectuant les activités liées aux réservations extérieures

Ce profil doit avoir les droits suivants afin qu'il soit possible de gérer les disponibilités des personnes concernées :

  • Réservations > Planning personnel
  • Réservations > Planning individuel visible pour les autres

Aller dans Admin > Utilisateurs > Profils plus, colonne Profils visibles, cocher le profil précédemment créé pour les profils qui doivent pouvoir voir les lignes de réservations de ces utilisateurs ou modifier les disponibilités de ces utilisateurs.

Créer un profil pour les clients extérieurs

Aller dans Admin > Utilisateurs > Profils, puis :

Gérer les places

Aller dans Admin > Utilisateurs > Profils plus, dans la colonne Attribution de place :

  • S'assurer que le profil des clients extérieurs puisse s'attribuer une place de pilote (place de gauche) sur les types de ressources concernés par les baptêmes de l'air.
  • S'assurer que le profil des pilotes pouvant effectuer un baptême puisse s'attribuer une place d'instructeur (place de droite) sur les types de ressources concernés par les baptêmes de l'air.

Créer un type d'activité

Si ce n'est pas déjà fait, créer un type d'activité pour les réservations extérieures en allant dans Admin > Types d'activités > Actifs. Le nom du type d'activité apparaitra sur le bon de commande. Afin qu'il s'intègre correctement dans le reste de l'interface (sans créer de faute d'orthographe), le nom du type d'activité doit être un groupe nominal masculin.

Exemples :

  • Baptême de l'air
  • Vol découverte

Déconseillé :

  • Balade découverte

Créer un type de validité pour les bons d'achats (facultatif)

Il est possible de donner la possibilité aux clients de fournir un bon de réduction. Ce bon de réduction sera ensuite stocké dans une validité. Pour ce faire :

  • Aller dans Admin > Utilisateurs > Types de validités.
  • Cliquer sur le bouton Ajouter un type de validité.
  • Lui donner un nom comme "Bon d'achat" et cocher Associer un document.
  • Valider en cliquant sur Enregistrer.
  • Aller dans Admin > Utilisateurs > Profils plus.
  • Vérifier que les profils pouvant gérer cette validité ont bien la validité en question dans la liste Types de validités que l'utilisateur peut gérer et certifier.

Ajouter une règle pour les réservations extérieures

Aller dans Admin > Structure > Paramétrage > Planning.

Dans Régles de saisie XML ajouter une règle de la forme suivante :

<rule>
    <activityTypeList>
        <activityType><!-- ID de l'activité "baptême de l'air" --></activityType>
    </activityTypeList>
    <resourceTypeList minQty="1" maxQty="1">
        <resourceType>*</resourceType>
    </resourceTypeList>
    <placeList>
        <place index="0" minQty="1" maxQty="1" status="4">
            <profile><!-- ID du profil des clients extérieurs --></profile>
        </place>
        <place index="1" minQty="1" maxQty="1" status="4">
            <profile><!-- ID du profil des pilotes pouvant faire des baptême de l'air --></profile>
        </place>
    </placeList>
</rule>

Activer et paramétrer le module des réservations extérieures

  • Aller dans Admin > Structure > Paramétrage > Réservations extérieures
  • Activer le toggle-switch Réservations extérieures.
  • Cliquer sur Enregistrer

Renseigner les champs suivants avec les paramètres souhaités :

Si un type de validité pour les bons d'achat a été créé, le sélectionner dans la liste déroulante Demander une pièce jointe et l'enregistrer dans le type de validité suivant

Si un type de validité pour les bons d'achat a été sélectionné, il est possible de:

- Modifier le label associé au champ d'importation de la pièce jointe qui apparait dans l'interface de la saisie des coordonnées en éditant le champ Nom du champ pour la pièce jointe.

- Préciser si l'import de la pièce jointe est obligatoire ou facultative en sélectionnant l'une des deux options du champ Pièce jointe.

L'interface des réservations extérieures (Planning > Planning > Réservations extérieures). Devrait désormais afficher un calendrier (vide)

Filtrer les utilisateurs/ressources prises en compte pour les créneaux horaires disponibles

Il est possible de restreindre les utilisateurs et/ou les ressources en fonction de paramètres attribués dans un champ métier utilisateur/ressource

Voici un exemple de paramétrage permettant de prendre en compte les utilisateurs en fonction de leur base géographique d'affectation :

  • Aller dans Admin > Structure > Variables > Champs métiers

Sur la dernier ligne :

  • Colonne Nom de variable, renseigner "locationPerson"
  • Colonne Intitulé, renseigner "Base géographique"
  • Colonne Catégorie, sélectionner Utilisateur
  • Colonne Type de valeur, sélectionner dbObject:Location
  • Cliquer sur le bouton Ajouter


  • Aller dans Admin > Structure > Paramétrage > Réservations extérieures
  • Champ Filtrer les utilisateurs avec le champ métier : sélectionner le champ préalablement créé Base géographique (locationPerson)
  • Cliquer sur le bouton Enregistrer

Cela permet de ne prendre en compte que les utilisateurs pour lesquels le champ métier Base géographique correspond au paramètre GET locationPerson passé dans l'URL permettant d'afficher l'interface de réservations extérieures.

Exemple :

https://localhost/4.0/externalBooking.php?locationPerson=LFBD

Permet de ne prendre en compte que les utilisateurs disponibles ayant dans le champ Base géographique la valeur LFBD (BORDEAUX MERIGNAC).

Affecter la référence du bon d'achat à la réservation extérieure

Il est possible d'affecter le code de la référence du bon d'achat à la réservation extérieure en fonction de paramètre attribué dans un champ métier réservation.

Voici un exemple de paramétrage permettant d'ajouter le champ métier dédié au stockage de la référence du bon d'achat :

  • Aller dans Admin > Structure > Variables > Champs métiers

Sur la dernier ligne :

  • Colonne Nom de variable, renseigner "reference"
  • Colonne Intitulé, renseigner "Référence d'achat"
  • Colonne Catégorie, sélectionner Réservation
  • Colonne Type de valeur, sélectionner Chaîne textuelle
  • Cliquer sur le bouton Ajouter


  • Aller dans Admin > Structure > Paramétrage > Réservations extérieures
  • Champ Enregistrer la référence transmise en paramètre GET en tant que : sélectionner le champ préalablement créé Référence d'achat (reference)
  • Cliquer sur le bouton Enregistrer

Cela permet de capturer le code associé au paramètre GET reference passé dans l'URL permettant d'afficher l'interface de réservations extérieures et de le stocker dans le champ métier Référence d'achat lors de l'enregistrement de la réservation.

Exemple :

https://localhost/4.0/externalBooking.php?reference=AZERTY

Permet d'attribuer le code de référence d'achat AZERTY à la réservation en cours.

Interfacer les réservations extérieures avec un service web de gestion des codes de référence de vente

OpenFlyers implémente un interfaçage vers une API REST tierce de gestion des codes qui permet de vérifier si le code de référence renseigné par l'utilisateur ou transmis via l'URL est valide ou non.

Les échanges se font au format JSON.

OpenFlyers renvoie à l'API la date de la réservation, le type de ressource et les coordonnées de la personne en charge de l'activité lors de la prise de réservation extérieure ou lors de son annulation.

Pour interfacer OpenFlyers avec l'API, il faut :

  • Aller dans Admin > Structure > Paramétrage > Réservations extérieures
  • Champ Synchronisation avec une API REST tierce : activer le toggle switch.

Renseigner les champs suivants avec les paramètres souhaités :

  • URL de l'API REST tierce : Assigner le lien de base de l'API
  • Jeton d'authentification : Assigner le Jeton d'authentification de l'API

Une fois que la configuration est faite par OpenFlyers, les opérations suivantes s'effectuent systématiquement :

  • Vérification de la validité du code de référence via le lien externalBookingWebServiceURL/{code} avec la méthode GET, auquel l'API doit répondre en transmettant un JSON sous le format suivant :
{
  "validity": true,
  "code": "Code_De_Référence",
  "buyer_name": "Nom_Agence_web",
  "validity_date": "YYYY-MM-DD",
  "video": "true",
  "cancellable": "true",
  "activity_type": 4,
  "booking_duration": "45"
}

NB:Le code est valide si la valeur de validity est true.

  • Si la variable booking_duration est définie et contient une valeur multiple de 15, elle sera utilisée à la place du paramètre Durée d'une réservation extérieure.
  • Si la variable activity_type est définie et correspond à l'id d'un type d'activité actif, la valeur sera utilisée à la place du paramètre Type d'activité à affecter aux réservations.


  • Notification à l'API tierce d'une nouvelle réservation via le lien externalBookingWebServiceURL/{code}/activate avec la méthode PUT, en passant les données de requête suivantes :
{
    "date" : "2022-04-05T06:00:00Z", //date de la réservation en format ISO UTC 
    "resource_type" : "le type de la ressource utilisée dans la réservation",
    "structure_person_name" : "le nom du pilote",
    "structure_person_email" : "l'email du pilote",
    "structure_person_phone" : "le numéro de téléphone du pilote"
}

- En retour l'API doit répondre en cas de succès :

{
  "status": true
}

- En retour l'API doit répondre en cas d'échec :

{
  "status": false,
  "error_msg": "le message d'erreur"
}
  • Notification à l'API tierce de l'annulation d'une réservation via le lien externalBookingWebServiceURL/{code}/release avec la méthode PUT

- En cas de la réussite de la notification, l'API répond :

{
  "status": true
}

- En cas d'échec l'API répond :

{
  "status": false,
  "error_msg": "le message d'erreur"
}


Exemple de la communication en PHP avec l'API:

 
// Prepare data to send by request
$requestData = array(
    'date'                   => "2022-04-05T06:00:00Z", //date de la réservation en format ISO UTC 
    'resource_type'          => 'resource_type',
    'structure_person_name'  => 'pilot_full_name',
    'structure_person_email' => 'pilot_email',
    'structure_person_phone' => 'pilot_cell_phone',
);
// Initialize a curl session
$curl = curl_init();
// Set options
curl_setopt_array($curl, array(
                CURLOPT_URL            => 'externalBookingWebServiceURL/42E390B0D843561F/activate',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_CUSTOMREQUEST  => 'PUT',
                CURLOPT_HTTPHEADER     => array('Content-Type: application/json', 'Authorization: Bearer uqpsildfqtw5o2qq9o45guz3ydfceehb'),
                CURLOPT_SSL_VERIFYPEER => false,
                CURLOPT_POSTFIELDS     => json_encode($requestData),
));
// Execute the curl session
curl_exec($curl);
// Close curl session
curl_close($curl);
 

Ajouter des utilisateurs

  • Aller dans Gestion > Utilisateurs > Utilisateurs > Actifs
  • Choisir un utilisateur à ajouter et cliquer sur l'icône modifier
  • Dans la liste profil sélectionner le profil indiquant que l'utilisateur peut être sur des réservations extérieures
  • Valider en appuyant sur le bouton Enregistrer
  • Aller dans Planning > Données > (In)disponibilités et indiquer les disponibilités de l'utilisateur

Ajouter des ressources

  • Aller dans Gestion > Ressources > Actives.
  • Choisir la ressource à ajouter et cliquer sur l'icône modifier.
  • Cocher Peut être utilisé pour les réservations extérieures dans la colonne Champs métier.
  • Valider en appuyant sur le bouton Enregistrer.

Template

L'e-mail de confirmation de réservation peut être personnalisé :

  • Aller dans Admin > Structure > Paramétrage > Réservations extérieures
  • Modifier Template de l'e-mail de confirmation de réservation
  • Valider en cliquant sur Enregistrer

L'e-mail et l'objet de l'annulation de la réservation peuvent être personnalisés :

  • Aller dans Admin > Structure > Paramétrage > Réservations extérieures
  • Modifier Personnaliser l'objet de l'e-mail d'annulation de réservation
  • Modifier Template de l'e-mail d'annulation de réservation
  • Valider en cliquant sur Enregistrer

Variables disponibles :

Nom de la variable Valeur de la variable
 %ACTIVITY_TYPE_NAME Le nom du type d'activité affecté aux réservations.
%AUTHENTICATION_LOGIN Le nom + prénom d'utilisateur connecté
 %BOOKING_ID Le numéro de commande. / L'identifiant de la réservation.
 %CLIENT_FULL_NAME Le nom + prénom du client.
 %DATE La date de la réservation.
 %END_TIME L'heure de fin de la réservation.
%EXTRAFIELDxx Permet de récupérer le contenu d'un champ métier. xx = numéro d'identifiant du champ métier. Exemple : %EXTRAFIELD35
 %PILOT_EMAIL L'adresse email du pilote.
 %PILOT_HOME_PHONE Le numéro de téléphone personnel du pilote.
 %PILOT_WORK_PHONE Le numéro de téléphone professionnel du pilote.
 %PILOT_CELL_PHONE Le numéro de téléphone portable du pilote.
 %PILOT_FULL_NAME Le nom + prénom du pilote.
 %RESOURCE_NAME Le nom de la ressource réservée.
 %START_TIME L'heure de début de la réservation.
%STRUCTURE_NAME Le nom de la structure