<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://doc4-fr.openflyers.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mbouzar</id>
	<title>Documentation de la solution web de gestion OpenFlyers - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://doc4-fr.openflyers.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mbouzar"/>
	<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/Special:Contributions/Mbouzar"/>
	<updated>2026-09-10T23:44:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Validit%C3%A9s&amp;diff=14657</id>
		<title>Validités</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Validit%C3%A9s&amp;diff=14657"/>
		<updated>2026-09-09T09:45:47Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Supprimer la validité d'un utilisateur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'utilisation des validités dans la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
Il existe également une page qui traite du [[paramétrage des validités]].&lt;br /&gt;
&lt;br /&gt;
==Définitions==&lt;br /&gt;
Le terme '''validité''' est utilisé par OpenFlyers pour désigner tout ce qui peut constituer une attestation, autorisation, brevet, certificat, diplôme, échelon, expérience acquise, grade, licence, permis, qualification, etc.&lt;br /&gt;
&lt;br /&gt;
Les '''types de validités''' permettent de [[#Paramètres-de-configuration|définir des validités]] qui seront attribuées aux utilisateurs.&lt;br /&gt;
&lt;br /&gt;
La détention par un utilisateur de validités requises peut être vérifié :&lt;br /&gt;
*A la connexion de l'utilisateur&lt;br /&gt;
*Lors d'une réservation faite pour un utilisateur par lui-même ou un autre utilisateur. OpenFlyers vérifie les validités de l'utilisateur concerné par la réservation.&lt;br /&gt;
*Lors d'une saisie d'activité (par exemple lors de la saisie d'un vol pour l'aéronautique).&lt;br /&gt;
&lt;br /&gt;
===Documents-validités===&lt;br /&gt;
Document associé à la validité d'un utilisateur et qui permet de démontrer la réelle détention de la validité par un utilisateur. Pour qu'un document soit associable à une validité, le type de validité doit avoir le paramètre [[Paramétrage-des-validités#Associer-un-document|Associer un document]].&lt;br /&gt;
&lt;br /&gt;
Pour un tel type de validité, la [[Paramétrage-des-validités#Certification|certification]] est en général activée pour permettre la validation du document par un gestionnaire.&lt;br /&gt;
&lt;br /&gt;
===Validité à échéance===&lt;br /&gt;
Un type de validité est une validité à échéance lorsque le champ de paramétrage du type de validité [[Paramétrage-des-validités#Soumise-à-échéance|Soumise à échéance]] est coché. &lt;br /&gt;
&lt;br /&gt;
Dans ce cas, la date d'échéance doit obligatoirement être renseignée lors de la création de la validité. Une fois cette date dépassée, l'utilisateur ne détient plus cette validité.&lt;br /&gt;
&lt;br /&gt;
===Validité à expérience===&lt;br /&gt;
Un type de validité est une validité à expérience lorsque le champ de paramétrage du type de validité [[Paramétrage-des-validités#Formule-d'expérience|formule d'expérience]] contient une formule. Dans ce cas, la validité n'est pas attribuable à un utilisateur. C'est l'expérience de l'utilisateur, c'est à dire son activité passée vérifiée par la formule d'expérience, qui définit si l'utilisateur détient cette validité.&lt;br /&gt;
&lt;br /&gt;
===Validité à vendre===&lt;br /&gt;
Une validité à vendre est une validité qui est couplée à un [[Gestion-des-produits-et-des-ventes#Configuration-d'un-produit-Validité|produit en vente]].&lt;br /&gt;
&lt;br /&gt;
===Validité complète===&lt;br /&gt;
&lt;br /&gt;
Une validité est complète lorsque tous les points suivants sont réunis :&lt;br /&gt;
&lt;br /&gt;
* Si la date d'expiration est requise, elle doit être renseignée.&lt;br /&gt;
* Si le code identifiant est requis, il doit être renseigné.&lt;br /&gt;
* Si la date d'obtention est requise, elle doit être renseignée.&lt;br /&gt;
* Si un document peut être associé, les pages obligatoires (s'il y en a) doivent être téléversées.&lt;br /&gt;
&lt;br /&gt;
===Validité contrat===&lt;br /&gt;
Une validité contrat est un validité qui a été déclarée comme contrat. Un contrat est une validité avec un document défini, le but est de permettre de mettre en ligne un document que les utilisateurs doivent signer.&lt;br /&gt;
&lt;br /&gt;
Un utilisateur qui n'a pas signé ses contrats ne peux pas se connecter. Il a la possibilité de signer ses contrats lors de ses tentatives de connexion.&lt;br /&gt;
&lt;br /&gt;
Un contrat signé est stocké en base de données avec le nom  et l'adresse IP du signataire ainsi que la date et l'heure de signature.&lt;br /&gt;
&lt;br /&gt;
Suivre [[Paramétrage-des-validités#Paramétrer-une-validité-comme-contrat|cette procédure]] pour mettre en place des contrats.&lt;br /&gt;
&lt;br /&gt;
Voir également la procédure de [[Connexion#Signer-des-validités-contrats|signature des validités-contrats]].&lt;br /&gt;
&lt;br /&gt;
=Alertes sur les validités=&lt;br /&gt;
==Alerte à la connexion==&lt;br /&gt;
Les validités contrôlées à la connexion sont uniquement :&lt;br /&gt;
*celles possédées par l'utilisateur qui se connecte et qui sont [[Validités#Validité-à-échéance|soumises à échéance]]&lt;br /&gt;
*[[Validités#Validité-à-expérience|les validités à expérience]] récente.&lt;br /&gt;
&lt;br /&gt;
Ainsi, les validités sans échéance ne sont pas contrôlées.&lt;br /&gt;
&lt;br /&gt;
OpenFlyers affiche un message d'alerte pour les validités dont la date d'échéance est expirée ou va expirer dans un délai inférieur à la période d'alerte définie dans la fiche utilisateur. L'utilisateur a la possibilité de cliquer sur la case à cocher &amp;quot;Ne plus le rappeler&amp;quot; afin de ne plus avoir de message de rappel. Dans ce cas, lors des connexions ultérieures, il n'aura plus de message de rappel. Il peut cependant réactiver cette alerte en la réactivant dans la colonne &amp;quot;Alertes&amp;quot; de la ligne correspondante dans '''Planning &amp;gt; Données &amp;gt; Personnelles &amp;gt; Validités'''. Cette réactivation est automatique lors d'une modification de la validité.&lt;br /&gt;
&lt;br /&gt;
==Alertes lors d'une réservation ou une saisie d'activité==&lt;br /&gt;
Les [[Gestion-des-activités#Alertes|alertes suivantes sont générées lors de la saisie d'une activité]] ou d'une réservation.&lt;br /&gt;
&lt;br /&gt;
Les validités périmées apparaissent systématiquement lors de la saisie d'une réservation ou d'une activité comme à la connexion. Leur affichage ne dépend pas du type de ressource. C'est juste un rappel.&lt;br /&gt;
&lt;br /&gt;
Ce rappel est notamment utile lorsqu'une personne effectue une réservation ou une saisie de vol pour le compte d'un tiers. Cela lui permet d'être informé et d'informer ce tiers de sa situation.&lt;br /&gt;
&lt;br /&gt;
==Alertes sur la page listant les validités d'un utilisateur==&lt;br /&gt;
*Alerte de cellule vide alors qu'elle devrait être remplie : la cellule affiche une bordure et un panneau rouges.&lt;br /&gt;
*[[#Alertes-d'expiration|Alertes d'expiration]]&lt;br /&gt;
&lt;br /&gt;
==[[Envoi-des-emails#s#E-mail-de-rappel-d'échéance-de-validité|Email de rappel d'échéance de validité]]==&lt;br /&gt;
&lt;br /&gt;
=Certifier des validités=&lt;br /&gt;
La certification permet à une structure d'attester qu'une validité saisie dans OpenFlyers a été vérifiée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un document est associé à une validité, cela permet d'indiquer que le document a été vérifié et que les données saisies correspondantes à la validité sont conformes au document téléversé. Cela permet également d'indiquer que le document est valide.&lt;br /&gt;
&lt;br /&gt;
Un document-validité peut être certifié de 2 façons :&lt;br /&gt;
*Soit manuellement par un gestionnaire disposant des droits de certification du document&lt;br /&gt;
*Soit par un robot dans le cas où le robot dispose d'un modèle du type de document à certifier.&lt;br /&gt;
&lt;br /&gt;
Voir le [[Paramétrage-des-validités#Certification|paramétrage de la certification d'un type de validité]] pour définir les validités qui peuvent être certifiées et la colonne [[Gestion-des-profils#Types-de-validités-que-l'utilisateur-peut-gérer-et-certifier|Types de validités que l'utilisateur peut gérer et certifier]] dans la gestion des profils pour définir ceux qui peuvent certifier.&lt;br /&gt;
&lt;br /&gt;
==Certification manuelle==&lt;br /&gt;
;Pré-requis&lt;br /&gt;
Pour pouvoir certifier une validité, un utilisateur doit disposer du [[Gestion-des-profils#Types-de-validités-que-l'utilisateur-peut-gérer-et-certifier|droit de certifier la validité concernée]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
Pour certifier manuellement une validité, il faut soit :&lt;br /&gt;
*Passer par l'interface de gestion des [[#Validités-en-attente-de-certification|validités en attente de certification]] :&lt;br /&gt;
**Vérifier les informations des validités en attente, corriger si besoin&lt;br /&gt;
**Quand une validités est conforme, cliquer sur certifier&lt;br /&gt;
*Passer par le menu de gestion individuelle des validités des utilisateurs :&lt;br /&gt;
**Aller sur la page de gestion des validités des utilisateurs dans '''Gestion &amp;gt; Utilisateurs &amp;gt; Utilisateurs &amp;gt; Actifs'''&lt;br /&gt;
**Chercher l'utilisateur dont la validité est à certifier puis dans la colonne action cliquer sur l'icône &amp;quot;Editer les validités de l'utilisateur&amp;quot;&lt;br /&gt;
**Sur la page qui s'ouvre, contrôler les informations de la validité puis cliquer sur le bouton dans la colonne &amp;quot;Certifier&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Certification automatique==&lt;br /&gt;
===Certification automatique à partir du numéro de licence délivré par la [https://www.ffa-aero.fr Fédération Française Aéronautique]===&lt;br /&gt;
Cette certification est active lorsque le type de validité est paramétré avec le [[Paramétrage-des-validités#Certification|type de certification '''Par API FFA''']].&lt;br /&gt;
&lt;br /&gt;
;Certification automatique&lt;br /&gt;
Lorsque la validité est nécessaire, à la connexion, lors de la réservation en solo ou lors d'une saisie d'activité en solo, si la validité n'est pas déjà certifiée ou si elle est périmée, le robot OpenFlyers interroge l'API SMILE FFA pour vérifier la validité de la licence.&lt;br /&gt;
&lt;br /&gt;
;Réactualisation manuelle&lt;br /&gt;
Il est possible de forcer la réactualisation de la certification en appuyant sur l'icône de mise à jour qui apparaît dans la colonne '''Actions''' de la liste des validités, cela permet d'appeler le robot OpenFlyers qui interroge l'API SMILE FFA pour vérifier la validité de la licence.&lt;br /&gt;
&lt;br /&gt;
Le bouton n'est actif que si l'une des conditions suivantes est rencontrée :&lt;br /&gt;
*La date d'échéance de la validité est dépassée&lt;br /&gt;
*La date courante est supérieure ou égale au 1er octobre et l'année de la date d'échéance est l'année en cours&lt;br /&gt;
&lt;br /&gt;
; Interrogation de l'API SMILE FFA par le robot OpenFlyers&lt;br /&gt;
* Après interrogation de l'API FFA, nous avons les cas suivants :&lt;br /&gt;
** Si la licence est valide, le robot certifie automatiquement la validité en mettant à jour la date d'échéance au 31/12 de l'année renvoyée par l'API FFA.&lt;br /&gt;
** Si la licence n'est pas valide :&lt;br /&gt;
*** Si une date d'échéance est fournie par API FFA, le robot certifie automatiquement la validité en mettant à jour la date d'échéance avec la date de fin indiquée dans la réponse.&lt;br /&gt;
*** Si non, le robot certifie automatiquement la validité en mettant à jour la date d'échéance au 31/12 de l'année la précédente.&lt;br /&gt;
&lt;br /&gt;
Un document peut-être associé à la validité. Il n'est pas pris en compte pour la certification.&lt;br /&gt;
&lt;br /&gt;
===Certification automatique de l'attestation délivrée par la [https://www.ffa-aero.fr Fédération Française Aéronautique]===&lt;br /&gt;
Cette certification est active lorsque le type de validité est paramétré avec le [[Paramétrage-des-validités#Certification|type de certification '''Possible par robot (FFA)''']].&lt;br /&gt;
&lt;br /&gt;
Le robot d'OpenFlyers est capable d'analyser les fichiers PDF correspondant aux attestations de licence délivrées par la [https://www.ffa-aero.fr Fédération Française Aéronautique (FFA)]. Chaque pilote licencié à la FFA peut récupérer ce document sur le site web [http://projet.ff-aero.fr/SMILE_II/ SMILE]. Le robot extrait du document :&lt;br /&gt;
*Le numéro de licence de l'utilisateur&lt;br /&gt;
*Les noms et prénom de l'utilisateur&lt;br /&gt;
*La date de naissance de l'utilisateur&lt;br /&gt;
*La date de début de validité la licence FFA&lt;br /&gt;
*La date de fin de validité de la licence FFA&lt;br /&gt;
*La présence de l'assurance &amp;quot;Individuelle Accident de base&amp;quot; avec l'attribut &amp;quot;Oui&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ces informations lui permettent de valider que le document est conforme et correspond à l'utilisateur pour qui le document a été téléversé. Il se base sur le nom et la date de naissance.&lt;br /&gt;
&lt;br /&gt;
Lorsque la correspondance est établie, il met à jour la validité avec les données suivantes :&lt;br /&gt;
*Le numéro de licence&lt;br /&gt;
*La date de début de validité&lt;br /&gt;
*La date de fin de validité&lt;br /&gt;
&lt;br /&gt;
Quand un document est sélectionné les champs mis à jour disparaissent dans le formulaire de saisie, car les données seront extraite du document.&lt;br /&gt;
&lt;br /&gt;
===Licence de pilote privé (PPL)===&lt;br /&gt;
''(en développement)''&lt;br /&gt;
 &lt;br /&gt;
La certification de ce type de validité n'est en fonction que lorsque la [[Paramétrage-des-validités#Certification|certification]] de ce type de validité est activé avec le choix '''Possible par OCR'''.&lt;br /&gt;
&lt;br /&gt;
Un deuxième robot d'OpenFlyers permet d'analyser les fichiers PDF ou JPEG qui correspondent aux Licences de Pilote Privé (PPL). &lt;br /&gt;
&lt;br /&gt;
Les champs détéctés par le robot sont : &lt;br /&gt;
*Les noms et prénoms&lt;br /&gt;
*Le numéro de la licence&lt;br /&gt;
*L'intitulé de la licence&lt;br /&gt;
*La date de validité de la licence&lt;br /&gt;
&lt;br /&gt;
Déroulement de la procédure : &lt;br /&gt;
*Quand un document est téléversé, la détéction commence automatiquement.&lt;br /&gt;
*A l'issue du traitment, quatre champs remplis des données résultantes du traitement par le robot apparaîssent. Des boutons de confirmations apparaîssent aussi en dessous de chaque champ :&lt;br /&gt;
*A ce stade, l'utilisateur est amené à '''effectuer certaines actions''' avant de pouvoir valider le formulaire de saisie. '''Il doit vérifier si les résultats sont correctes puis les confirmer ou les corriger''' sinon : &lt;br /&gt;
**Si l'utilisateur corrige le champ, le bouton de confirmation est remplacé par le message &amp;quot;Vous avez corrigé ce champ&amp;quot;.&lt;br /&gt;
**Si l'utilisateur remet le résultat initial dans le champ, le bouton de confirmation réapparaît sous le champ à la place du message.&lt;br /&gt;
**Si l'utilisateur est en train de modifier un champ, des points de suspension sont affichés en dessou du champ réspectif.&lt;br /&gt;
Les champs sont toujours modifiables. C'est-à-dire, l'utilisateur peut corriger un champ même après l'appui sur le bouton de confirmation.&lt;br /&gt;
&lt;br /&gt;
Dans tous les cas, la validation du formulaire n'est possible que si l'utilisateur a '''corrigé''' ou '''validé''' tous les champs.&lt;br /&gt;
&lt;br /&gt;
=Consulter et gérer ses validités ou celles d'un tiers=&lt;br /&gt;
&lt;br /&gt;
L'interface de gestion des validités est accessible :&lt;br /&gt;
*côté planning : '''Planning &amp;gt; Données &amp;gt; Personnelles &amp;gt; Validités'''&lt;br /&gt;
*côté Gestion :&lt;br /&gt;
*'''Gestion &amp;gt; Utilisateurs &amp;gt; Utilisateurs &amp;gt; Validités'''&lt;br /&gt;
*'''Gestion &amp;gt; Utilisateurs &amp;gt; Utilisateurs &amp;gt; Actifs''' et cliquer sur l’icône représentant une check-list dans la colonne '''Actions'''.&lt;br /&gt;
&lt;br /&gt;
Conditions pour consulter et gérer ses validités :&lt;br /&gt;
*Pour consulter ses validités un utilisateur doit posséder le droit [[Gestion-des-profils#Voir-ses-validités|Voir ses validités]].&lt;br /&gt;
*Un utilisateur peut gérer pour lui-même les validités qui sont définies dans le droit [[Gestion des profils#Type-de-validité-que-l'utilisateur-peut-gérer-pour-lui-même|Type de validité que l'utilisateur peut gérer pour lui-même]]. &lt;br /&gt;
*Pour qu'un utilisateur soit autorisé à ajouter une nouvelle validité, il doit détenir le droit [[Gestion-des-profils#Ajout-et-gestion-de-ses-validités|Ajout et gestion de ses validités]].&lt;br /&gt;
*Pour qu'un utilisateur soit autorisé à renouveler une validité détenue ou à mettre à jour le '''Code identifiant''', la '''Date d'obtention''', la '''Limite de validité''' (d'une validité non achetable) ou à supprimer une validité, il doit détenir le droit [[Gestion-des-profils#Ajout-et-gestion-de-ses-validités|Ajout et gestion de ses validités]] ou le droit [[Gestion-des-profils#Gestion-de-ses-validités-détenues|Gestion de ses validités détenues]].&lt;br /&gt;
*Pour qu'un utilisateur soit autorisé à acheter ou renouveler une validité-produit, il doit détenir le droit [[Gestion des profils#Achat-ventes-libres|Achat ventes libres]] et le produit associé à la validité doit être en vente libre.&lt;br /&gt;
&lt;br /&gt;
Conditions pour consulter et gérer les validités d'un tiers :&lt;br /&gt;
*Un utilisateur peut consulter et gérer les validités qui sont définies dans le droit [[Gestion des profils#Type-de-validité-que-l'utilisateur-peut-gérer-pour-lui-même|Types de validités que l'utilisateur peut gérer et certifier]]. &lt;br /&gt;
*Pour qu'un utilisateur soit autorisé à ajouter une validité à vendre à un autre utilisateur, il doit détenir le droit [[Gestion-des-profils#Acheter-pour-les-tiers|Acheter pour les tiers]]&lt;br /&gt;
&lt;br /&gt;
Il est possible d'afficher uniquement les validités nécessaires en sélectionnant un filtre :&lt;br /&gt;
&lt;br /&gt;
[[File:selecteur-validités.png]]&lt;br /&gt;
&lt;br /&gt;
Il est donc possible d'afficher uniquement :&lt;br /&gt;
*les validités qui peuvent être certifiées&lt;br /&gt;
*les validités effectives ([[#Prise-en-compte-d'une-validité|prises en compte]])&lt;br /&gt;
&lt;br /&gt;
Si les validités de tous les utilisateurs sont affichées, il est possible d'afficher uniquement les validités d'un certain type grâce au sélecteur présent en haut à droite de la page. Si tous les types de validités sont affichés, alors il est uniquement possible d'afficher les validités qui peuvent être certifiées.&lt;br /&gt;
&lt;br /&gt;
Pour renouveler une validité détenue, il faut éditer la validité en appuyant sur l'icône crayon qui apparaît dans la colonne '''Actions'''. Une fois sur le formulaire d'édition de la validité concernée un bouton '''Renouveler la validité''' est affiché. Cliquer dessus puis valider.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un type de validité est configuré pour y [[Paramétrage-des-validités#Associer-un-document|associer un document]], l'utilisateur peut [[#Téléverser-un-fichier|téléverser un fichier]]. Une fois le fichier téléversé, il est téléchargeable.&lt;br /&gt;
&lt;br /&gt;
Dans le tableau de la liste des validités, l'utilisateur concerné, peut voir qui et quand ont été certifiées ses validités. Il retrouve aussi les [[#Validité-contrat|validités-contrats]] qu'il a [[Connexion#Signer-des-validités-contrats|signé à la connexion]].&lt;br /&gt;
&lt;br /&gt;
Si l'utilisateur peut gérer les validités de tiers, une liste déroulante '''Utilisateur''' apparaît au-dessus du tableau. Si la valeur '''Tous''' est sélectionné seules les validités à certifier sont affichées. De plus, une colonne ''Nom du titulaire'' est ajoutée et la colonne ''Alerte ?'' ainsi que le champ ''délai de prévenance'' sont cachés. Si on sélectionne un utilisateur autre que soi-même la colonne ''Alerte ?'' et le champ ''délai de prévenance'' sont cachés.&lt;br /&gt;
&lt;br /&gt;
Remarques :&lt;br /&gt;
*Les validités arrivées à échéance apparaissent sur fond orange.&lt;br /&gt;
*Lorsqu'une validité n'est pas certifiée la cellule '''Etat de certification''' apparaît sur fond rouge.&lt;br /&gt;
*La mise à jour de la date d'échéance d'une validité réactive automatiquement la cellule de la colonne [[#Alertes-d'expiration|Alertes ?]] si celle-ci n'est pas modifié lors de la saisie dans le formulaire.&lt;br /&gt;
*Une validité-produit déjà détenue ne peut pas être supprimée.&lt;br /&gt;
&lt;br /&gt;
==Alertes d'expiration==&lt;br /&gt;
Il existe deux types d'alertes liées à l'expiration d'une validité :&lt;br /&gt;
*Lorsque la date limite d'une validité est bientôt atteinte, une '''alerte avant échéance''' apparaît. Celle-ci s'affiche sous la forme d'une cellule à bordure orange et contenant un panneau orange. &lt;br /&gt;
*Lorsque la date limite d'une validité est dépassée, une '''alerte de validité expirée''' apparaît. Celle-ci s'affiche sous la forme d'une cellule à bordure et contenant un panneau rouges.&lt;br /&gt;
&lt;br /&gt;
La case '''Alerte ?''' dans le formulaire de gestion d'une validité permet à un utilisateur d'activer ou désactiver les '''rappels à la connexion''' des validités arrivant à expiration ou ayant expiré.&lt;br /&gt;
&lt;br /&gt;
Le délai de rappel des validités arrivant à expiration est visible dans le champ '''Délai de prévenance en semaines avant chaque échéance''' sous le tableau listant les validités d'un utilisateur. L'utilisateur connecté peut modifier son propre délai. Dans ce cas, ce champ affiche un menu déroulant dans lequel l'utilisateur connecté peut changer le délai. Par ailleurs, pour chaque activité, la case '''Alerte''' doit être cochée.&lt;br /&gt;
&lt;br /&gt;
==Ajouter une validité à un utilisateur==&lt;br /&gt;
*[[#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|Accéder à l'interface de gestion des validités]]&lt;br /&gt;
*Sélectionner la validité à ajouter et valider.&lt;br /&gt;
*Saisir les données dans le formulaire et valider&lt;br /&gt;
&lt;br /&gt;
Si la validité est une [[#Validité-à-vendre|validité à vendre]], l'utilisateur sera automatiquement débité du montant correspondant. Les écritures comptables générées correspondantes sont validées. L'objectif est d'empêcher la réversibilité de cette opération par un utilisateur qui aurait souscrit à une validité. Cela permet de garantir la traçabilité des engagements.&lt;br /&gt;
&lt;br /&gt;
Il est néanmoins possible de [[#Supprimer_la_validité_d'un_utilisateur|supprimer une validité]] à vendre indument attribuée.&lt;br /&gt;
&lt;br /&gt;
Il est également possible de débrayer la vente an cliquant sur le toggle-switch '''Débrayer la vente''' afin que le compte ne soit pas débité. Cela nécessite d'avoir le [[Gestion-des-profils#Débrayage-des-ventes-de-validités|droit de débrayage]].&lt;br /&gt;
&lt;br /&gt;
===Téléverser un fichier===&lt;br /&gt;
Lorsqu'un type de validité est configuré pour y [[Paramétrage-des-validités#Associer-un-document|associer un document]], le téléversement des fichiers se fait comme suit :&lt;br /&gt;
*L'utilisateur téléverse le fichier&lt;br /&gt;
Ensuite :&lt;br /&gt;
*S'il s'agit d'un fichier image, il est stocké en base de données.&lt;br /&gt;
*S'il s'agit d'un PDF contenant du texte, le PDF est stocké en base de données.&lt;br /&gt;
*S'il s'agit d'un PDF qui contient une seule image, celle-ci est extraite du PDF et est stockée en base de données.&lt;br /&gt;
*S'il s'agit d'un PDF qui contient plusieurs images, seule la première image est extraite du PDF et stockée en base de données.&lt;br /&gt;
*Si le fichier est vide (ne contient ni texte ni image), une alerte utilisateur [[Alertes-utilisateur#Le-contenu-du-fichier-est-vide.-Le-fichier-n'as-pas-pu-être-téléchargé|indiquant que le contenu du fichier est vide]] est affichée à l'écran. Le fichier ne peut pas être téléversé.&lt;br /&gt;
Dans un cas particulier où l'image encapsulée dans le PDF se compose de plusieurs masques transparents, OpenFlyers convertit l'ensemble de la page du PDF en une image jpeg. Dans le cas où plusieurs images sont encapsulées dans le fichier sur plusieurs pages, seule la première page est extraite.&lt;br /&gt;
&lt;br /&gt;
Les fichiers téléversés sont stockés directement en base de données sous réserve d'être conforme aux règles de téléversement ci-dessous :&lt;br /&gt;
*Formats des fichiers autorisés : GIF, JPEG, PNG et PDF. Si le fichier téléversé n'est pas dans l'un de ces formats, [[Alertes-utilisateur#Ce-n'est-pas-un-fichier-de-type-:-gif,-jpeg,-png,-pdf|un message d'alerte correspondant]] s'affiche à l'écran.&lt;br /&gt;
*Poids maximal autorisé au moment du téléversement : 10 Mo.&lt;br /&gt;
*Poids maximal autorisé pour le stockage : 500 ko. Si le fichier téléversé dépasse les 500 Ko, il est redimensionné dans le cas où c'est une image. Si le fichier est toujours trop gros, alors il est refusé et le [[Alertes-utilisateur#La-taille-maximale-d'un-fichier-est-500ko|message d'alerte correspondant]] s'affiche.&lt;br /&gt;
&lt;br /&gt;
Récapitulatif :&lt;br /&gt;
&lt;br /&gt;
[[File:traitement-apres-televersement.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==États de la validité==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!État de validité!!description!!&lt;br /&gt;
|-&lt;br /&gt;
|À échéance||La validité est sur le point d'expirer et nécessite une mise à jour||[[File:pendingExpirationValidity.png|1000px]]&lt;br /&gt;
|-&lt;br /&gt;
|Expirée||La validité est périmée, elle n'est plus conforme et ne peut plus être utilisée||[[File:expiredValidity.png|1000px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[#Validités-en-attente-de-certification|Non certifiée]]||La validité n'a pas encore été validée officiellement et ne peut pas être utilisée||[[File:notCertifiedValidity.png|1000px]]&lt;br /&gt;
|-&lt;br /&gt;
|[[#Prise-en-compte-d'une-validité|Prise en compte]]||La validité est active et conforme, elle peut être utilisée sans restrictions||[[File:effectiveValidity.png|1000px]]&lt;br /&gt;
|-&lt;br /&gt;
|Provisoire||un état temporaire où une [[#Historique-des-validités|ancienne version]] reste [[#Prise-en-compte-d'une-validité|prise en compte]] en [[#Certifier-des-validités|attendant la certification]] d'une nouvelle||[[File:provisionalValidity.png|1000px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Modifier la validité d'un utilisateur==&lt;br /&gt;
*[[#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|Accéder à l'interface de gestion des validités]]&lt;br /&gt;
*Les modifications s'effectuent via le formulaire d'édition d'une validité accessible depuis l'icône crayon dans la colonne '''Actions''' du tableau.&lt;br /&gt;
&lt;br /&gt;
''Note :''&lt;br /&gt;
*Avant de faire un enregistrement en base de données, OpenFlyers vérifie s'il y a des modifications par rapport au dernier enregistrement actif de la même validité pour le même utilisateur.&lt;br /&gt;
*Les cellules non renseignées sont en rouges. Lors de l'édition via le formulaire, les champs associés sont également en surbrillance rouge.&lt;br /&gt;
&lt;br /&gt;
Dans le cas d'une [[#Validité-à-vendre|validité à vendre]], la limite de validité n'est pas modifiable. Afin de l'augmenter, il faut passer par un renouvellement. Il est également possible de la modifier manuellement (à condition de disposer du [[Gestion-des-profils#Débrayage-des-ventes-de-validités|droit de débrayage]]) en cliquant sur l'interrupteur '''Débrayer la vente'''.&lt;br /&gt;
&lt;br /&gt;
==Supprimer la validité d'un utilisateur==&lt;br /&gt;
;Introduction&lt;br /&gt;
Attention, la suppression d'une validité attribuée à un utilisateur entraine la suppression de toutes les informations associées à la validité :&lt;br /&gt;
*historique des modifications&lt;br /&gt;
*documents associés&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
*[[#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|Accéder à l'interface de gestion des validités]]&lt;br /&gt;
*Activer l'interrupteur '''Activer la suppression''', présent au-dessus et au-dessous du tableau des validités. Cet interrupteur est systématiquement désactivé à l'arrivée sur la page : il faut donc l'activer à chaque consultation. Tant qu'il est désactivé, aucune icône poubelle n'est affichée.&lt;br /&gt;
*Les suppressions s'effectuent directement sur la ligne de la validité concernée en cliquant sur l'icône poubelle de la validité associée.&lt;br /&gt;
*Confirmer le message d'avertissement :&lt;br /&gt;
:''Attention, la suppression de la validité entraine la suppression de toutes les données et fichiers associés à cette validité de façon irréversible.''&lt;br /&gt;
:''Etes-vous sûr de vouloir supprimer cette validité ?''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Dans le cas où la ligne de la validité concernée ne dispose pas de l'icône poubelle&lt;br /&gt;
*Il y a 2 causes possibles.&lt;br /&gt;
**'''Première cause''' : l'interrupteur '''Activer la suppression''' est désactivé. Il suffit alors de l'activer.&lt;br /&gt;
**'''Seconde cause''' : [[Gestion des produits et des ventes#Configuration_du_produit_Validité_&amp;quot;Cotisation&amp;quot;|la validité est à vendre]]. Il faut effectuer la procédure suivante :&lt;br /&gt;
*Si l'utilisateur a été indument débité, il faut [[Utilisation de la comptabilité#Annuler_l'effet_d'une_écriture_comptable|annuler l'effet d'une écriture comptable]] correspond au montant facturé qui n'aurait pas du l'être&lt;br /&gt;
Supprimer la vente de validité de façon temporaire :&lt;br /&gt;
*'''Admin &amp;gt; Ventes &amp;gt; Produits &amp;gt; Validités à vendre'''&lt;br /&gt;
*Repérer la ligne qui lie le type de validité concerné avec un produit&lt;br /&gt;
*Copier la '''Formule de calcul de la date d'expiration''' de la ligne concernée et la coller dans un fichier texte temporaire pour la récupérer ultérieurement&lt;br /&gt;
*Noter le nom du produit associé&lt;br /&gt;
*Supprimer la ligne&lt;br /&gt;
*Supprimer la validité de l'utilisateur concerné (cf. début de la présente procédure)&lt;br /&gt;
Remettre en place la vente du type de validité :&lt;br /&gt;
*'''Admin &amp;gt; Ventes &amp;gt; Produits &amp;gt; Validités à vendre'''&lt;br /&gt;
Sur la dernière ligne :&lt;br /&gt;
*Champ '''Validité''' : sélectionner le nom du type de validité concerné&lt;br /&gt;
*Champ '''Produit''' : sélectionner le nom du produit associé&lt;br /&gt;
*Champ '''Formule de calcul de la date d'expiration''' : recoller la formule de calcul&lt;br /&gt;
*Cliquer le bouton '''Ajouter'''.&lt;br /&gt;
&lt;br /&gt;
=Contrôle des validités=&lt;br /&gt;
==Contrôle des validités à la connexion==&lt;br /&gt;
Dès que l'utilisateur est identifié, un contrôle de ses validités est effectué. Les validités contrôlées sont uniquement celles que possède l'utilisateur et qui sont soumises à échéance ([[#Validité-complète|complète]]) ou les validités à expérience récente. &lt;br /&gt;
&lt;br /&gt;
Le paramétrage du contrôle des validités s'effectue au travers de 2 champs :&lt;br /&gt;
*le champ '''[[Paramétrage-des-validités#Alerte-à-la-connexion|Alerte à la connexion]]''' qui définit le comportement que l'application OpenFlyers doit adopter à la connexion&lt;br /&gt;
*le champ '''[[Paramétrage-des-validités#Soumise-à-échéance|Soumise à échéance]]''' qui doit être attribué. S'il n'y a pas d'échéance, alors il n'y a pas de contrôle de validité de l'échéance à la connexion&lt;br /&gt;
&lt;br /&gt;
==Contrôle des validités lors de la saisie d'une réservation==&lt;br /&gt;
Lors d'une réservation, OpenFlyers contrôle les validités détenues par la personne occupant la 1ère place dans la ressource '''et seulement s'il n'y a qu'une seule personne pour cette réservation'''. OpenFlyers vérifie également pour cette personne si des validités ne vont pas expirés avant la date de fin de la réservation. Les validités détenues doivent correspondre aux validités demandées pour le type de ressource correspondant à la ressource réservée et aux validités demandées pour les types d'activités sélectionnés.&lt;br /&gt;
&lt;br /&gt;
Il y a 3 comportement possibles :&lt;br /&gt;
*Pas de contrôle des validités.&lt;br /&gt;
*Une [[Présentation-générale-des-alertes#Alerte-orange|alerte non bloquante]] dans le cas où il manque une ou plusieurs validités.&lt;br /&gt;
*Une [[Présentation-générale-des-alertes#Alerte-rouge|alerte bloquante]] dans le cas où il manque une ou plusieurs validités.&lt;br /&gt;
&lt;br /&gt;
Il y a un [[Configuration-des-réservations-internes#Paramétrage-général-du-contrôle-des-validités-pour-les-réservations|paramétrage général]] qui définit si toute validité manquante doit entrainer un blocage. Si ce n'est pas le cas, alors cela dépend du paramétrage associé à chaque type de validité grâce à la case à cocher [[Paramétrage-des-validités#Validité-bloquante-pour-la-saisie-(si-requise)|Validité bloquante pour la saisie des activités (si requise)]].&lt;br /&gt;
&lt;br /&gt;
Le comportement est le même pour toutes les validités.&lt;br /&gt;
&lt;br /&gt;
==Contrôle des validités lors de la saisie d'une activité==&lt;br /&gt;
Lors de la saisie d'une activité, OpenFlyers effectue 2 contrôles :&lt;br /&gt;
#'''S'il n'y a qu'une seule personne pour cette activité''', le logiciel vérifie la présence des validités requises pour la ressource utilisée et les types d'activités sélectionnés. Il y a 2 comportements possibles pour chaque validité manquante :&lt;br /&gt;
#*Une [[Présentation-générale-des-alertes#Alerte-orange|alerte non bloquante]].&lt;br /&gt;
#*Une [[Présentation-générale-des-alertes#Alerte-rouge|alerte bloquante]].&lt;br /&gt;
#:Il y a un [[Paramétrage-des-activités#Paramétrage-général-du-contrôle-des-validités-pour-la-saisie-des-vols|paramétrage général]] qui définit si toute validité manquante doit entrainer un blocage. Si ce n'est pas le cas, alors cela dépend du paramétrage associé à chaque type de validité grâce à la case à cocher [[Paramétrage-des-validités#Validité-bloquante-pour-la-saisie-(si-requise)|Validité bloquante pour la saisie des activités (si requise)]].&lt;br /&gt;
#OpenFlyers affiche une alerte pour les validités périmées [[#Contrôle_des_validités_à_la_connexion|comme à la connexion]].&lt;br /&gt;
&lt;br /&gt;
=Débrayer la vente d'une validité=&lt;br /&gt;
Débrayer la vente d'une validité consiste à modifier la date limite d'une validité sans déclencher de vente afin que l'utilisateur concerné ne soit pas débité.&lt;br /&gt;
&lt;br /&gt;
;Prérequis :&lt;br /&gt;
Pour pouvoir débrayer la vente d'une validité, le gestionnaire doit disposer du droit [[Gestion-des-profils#Débrayage-des-ventes-de-validités|débrayage des ventes de validités]].&lt;br /&gt;
&lt;br /&gt;
;Procédure pour attribuer une nouvelle validité sans la vendre :&lt;br /&gt;
*'''Gestion &amp;gt; Utilisateurs &amp;gt; Utilisateurs &amp;gt; Validités'''&lt;br /&gt;
*Sélectionner en haut à gauche, dans la liste des utilisateurs, l'utilisateur concerné&lt;br /&gt;
*Sélectionner en haut à droite, dans la liste des validités, la validité à attribuer&lt;br /&gt;
Si la validité est une validité à vendre, alors apparait à côté de la liste, un interrupteur&lt;br /&gt;
*Cliquer sur cet interrupteur '''Débrayer la vente'''&lt;br /&gt;
Le bouton '''Acheter''' se transforme en '''Ajouter'''&lt;br /&gt;
*Cliquer sur le bouton '''Ajouter'''&lt;br /&gt;
*Compléter le formulaire, notamment la '''Limite de validité'''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
;Procédure pour modifier la limite validité d'une validité déjà attribuée sans la vendre :&lt;br /&gt;
*'''Gestion &amp;gt; Utilisateurs &amp;gt; Utilisateurs &amp;gt; Validités'''&lt;br /&gt;
*Sélectionner en haut à gauche, dans la liste des utilisateurs, l'utilisateur concerné&lt;br /&gt;
Les validités attribuées à l'utilisateur apparaissent&lt;br /&gt;
*A droite de la ligne de la validité à modifier, cliquer sur le pictogramme avec le symbole de l'euro barré et un crayon&lt;br /&gt;
Le formulaire d'édition de la validité apparait&lt;br /&gt;
*Modifier le champ '''Limite de validité'''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
=Historique des validités=&lt;br /&gt;
Une validité possède un historique contenant tous les états par lesquels elle est passée.&lt;br /&gt;
Chaque changement effectué sur une validité entraîne automatiquement une entrée dans l'historique.&lt;br /&gt;
&lt;br /&gt;
L'historique d'une validité est conservé même si la validité est supprimée, il sera consultable si une nouvelle validité du même type est créée pour le même utilisateur.&lt;br /&gt;
&lt;br /&gt;
Il est possible de consulter les anciens fichiers contenus par la validité mêmes s'ils ont été remplacés.&lt;br /&gt;
&lt;br /&gt;
Les fichiers validités téléversés sont comparés. S'ils sont identiques, alors seul l'ancien fichier est conservé. Cela permet de limiter l'augmentation de la taille de la base de données.&lt;br /&gt;
&lt;br /&gt;
Chaque entrée d'historique affiche également :&lt;br /&gt;
* l'utilisateur (login) ayant effectué l'action ;&lt;br /&gt;
* l'adresse IP de l'utilisateur connecté ayant effectué l'action.&lt;br /&gt;
&lt;br /&gt;
==Afficher l'historique des validités==&lt;br /&gt;
Pour afficher l'historique des validité :&lt;br /&gt;
*Aller sur l'[[#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|interface de gestion des validités d'un utilisateur]].&lt;br /&gt;
*Cliquer sur le nom de la validité dans la colonne de gauche du tableau pour ouvrir la page d'historique.&lt;br /&gt;
L'historique s'affiche chronologiquement, du changement le plus récent au plus ancien.&lt;br /&gt;
&lt;br /&gt;
=Lister les détenteurs d'un type de validité=&lt;br /&gt;
*Aller sur '''Admin &amp;gt; Utilisateurs &amp;gt; Types de validités'''&lt;br /&gt;
*Cliquer sur l'icône symbolisant une liste dans la colonne '''Liste''' de la ligne correspondante à la validité concernée.&lt;br /&gt;
&lt;br /&gt;
Le tableau liste les personnes ayant la validité correspondante.&lt;br /&gt;
&lt;br /&gt;
Lorsque la validité est soumise à échéance, la liste fait ressortir en rouge sur fond gris les dates d'échéances périmées.&lt;br /&gt;
&lt;br /&gt;
Lorsque la validité est une validité à expérience, la liste contient uniquement les utilisateurs remplissant les critères de la formule d'expérience.&lt;br /&gt;
&lt;br /&gt;
=Prise en compte d'une validité=&lt;br /&gt;
&lt;br /&gt;
Une validité prend effet lorsque tous les points suivants sont réunis :&lt;br /&gt;
&lt;br /&gt;
* La validité doit être [[#Validité-complète|complète]].&lt;br /&gt;
* Si une date d'expiration est présente, elle ne doit pas être dépassée.&lt;br /&gt;
* Si la [[#Certifier-des-validités|certification]] est possible, la validité doit être certifiée.&lt;br /&gt;
&lt;br /&gt;
NB : Si la dernière validité enregistrée n'est pas prise en compte pour un utilisateur X et un type de validité Y, on vérifie dans [[#Historique-des-validités|l'historique]] s'il existe une validité qui est encore considérée comme valide pour la prendre en compte, on parle de [[#États-de-la-validité|validité provisoire]].&lt;br /&gt;
&lt;br /&gt;
=Validités en attente de certification=&lt;br /&gt;
&lt;br /&gt;
*[[#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|Accéder à l'interface de gestion des validités]]&lt;br /&gt;
*Par défaut le filtre ''Utilisateur'' est sélectionné sur ''Tous'' ce qui permet de visualiser toutes les validités que l'utilisateur peut certifier.&lt;br /&gt;
&lt;br /&gt;
Il est possible de consulter et modifier les renseignements rentrés par les utilisateurs, dans le cas où les informations sont valides, l'utilisateur peut certifier la validité.&lt;br /&gt;
&lt;br /&gt;
Une fois certifiée, la validité reste encore visible 24h, ainsi il est encore possible de corriger la validité si une erreur apparaît.&lt;br /&gt;
&lt;br /&gt;
Cette page est accessible en suivant le lien contenu dans [[Envoi-des-emails#E-mail-de-demande-de-certification-de-validité|l'e-mail de notification]] envoyé automatiquement aux utilisateurs disposant du [[Gestion-des-profils#Types-de-validités-que-l'utilisateur-peut-gérer-et-certifier|droit de certifier la validité concernée]].&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Gestion-de-la-comptabilit%C3%A9-c%C3%B4t%C3%A9-utilisateur&amp;diff=14644</id>
		<title>Gestion de la comptabilité côté utilisateur</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Gestion-de-la-comptabilit%C3%A9-c%C3%B4t%C3%A9-utilisateur&amp;diff=14644"/>
		<updated>2026-09-01T10:09:17Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Colonne Lettrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter la '''gestion de la comptabilité côté utilisateur''' dans la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
=Alertes générées lors de [[Utilisation de la comptabilité#Saisie_d'écritures_comptables|saisie d'écritures comptables]]=&lt;br /&gt;
&lt;br /&gt;
==Les comptes n'ont pas la même comptabilité==&lt;br /&gt;
&lt;br /&gt;
Cette alerte apparait lors d'une [[Comptabilité#Comptabilités_multiples|comptabilité multiple]] : Le compte débité et le compte crédité doivent être issues de la même comptabilité.&lt;br /&gt;
&lt;br /&gt;
=Consulter son compte ou celui d'un tiers=&lt;br /&gt;
Pour consulter son propre compte :&lt;br /&gt;
*'''Planning &amp;gt; Comptes &amp;gt; Extrait de compte... &amp;gt; &amp;quot;le nom de son compte&amp;quot;''' ou depuis le raccourci présent en en-tête de chaque page (juste en dessous du menu).&lt;br /&gt;
&lt;br /&gt;
Pour consulter le compte d'un tiers, il faut disposer de [[Gestion des profils#Comptes|l'un de ces droits]] : [[Gestion-des-profils#Gestion-des-comptes|'''Gestion des comptes''']], [[Gestion-des-profils#Voir-les-comptes|'''Voir les comptes''']] ou [[Gestion-des-profils#Voir-les-comptes-utilisateurs|'''Voir les comptes utilisateurs''']].&lt;br /&gt;
*'''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; Utilisateurs''' et cliquer sur la loupe du compte que l'on souhaite consulter.&lt;br /&gt;
&lt;br /&gt;
=Consulter une [[Écritures comptables#Facture-client|facture client]] ou un reçu d'encaissement=&lt;br /&gt;
&lt;br /&gt;
Pour consulter une facture client ou un reçu d'encaissement, il faut :&lt;br /&gt;
*Aller sur [[#Consulter-son-compte-ou-celui-d'un-tiers|le compte concerné]]&lt;br /&gt;
*Cibler l'écriture recherchée&lt;br /&gt;
*Colonne [[#Colonne-Numéro-de-pointage,-facture-ou-reçu|'''Numéro de pointage, facture ou reçu''']], cliquer sur l'icône correspondante de la facture ou du reçu&lt;br /&gt;
&lt;br /&gt;
=Créditer son compte utilisateur=&lt;br /&gt;
Un utilisateur, qui dispose du droit [[Gestion-des-profils#Encaisser-ses-paiements|Encaisser ses paiements]] ou du droit [[Gestion-des-profils#Saisir-les-encaissements-pour-les-tiers|Saisir les encaissements pour les tiers]], peut le créditer :&lt;br /&gt;
*Soit par '''Planning &amp;gt; Comptes &amp;gt; Actions &amp;gt; Approvisionner'''&lt;br /&gt;
*Soit par '''Gestion &amp;gt; Comptes &amp;gt; Encaissements &amp;gt; Saisir''' s'il dispose de droits de gestion&lt;br /&gt;
*Soit en affichant un extrait de son compte utilisateur et cliquer sur le bouton '''Approvisionner''' situé en bas à droite de l'affichage de son compte à droite de la ligne du solde de compte.&lt;br /&gt;
Si l'utilisateur arrive sur le formulaire de saisie d'encaissement depuis un extrait de compte utilisateur, alors le compte à créditer par défaut porte le nom de l'utilisateur du compte depuis où la personne a cliqué.&lt;br /&gt;
*Si l'utilisateur dispose du droit [[Gestion-des-profils#Saisir-les-encaissements-pour-les-tiers|Saisir les encaissements pour les tiers]], choisir dans le champ '''Encaissement de l'utilisateur''' le nom de l'utilisateur concerné&lt;br /&gt;
*Si l'utilisateur dispose de plusieurs comptes sur lesquels il peut effectuer son encaissement (défini par le droit [[Gestion-des-profils#Compte-sur-lequel-un-utilisateur-peut-agir|Compte sur lequel un utilisateur peut agir]]), choisir dans le champ '''Compte à créditer''' le nom du compte concerné&lt;br /&gt;
*Dans le champ '''Type de règlement''', sélectionner le type de règlement&lt;br /&gt;
*Si vous effectuez un paiement avec une remise à une personne physique, vous devez préciser le nom de cette personne dans le champ '''Personne qui reçoit'''&lt;br /&gt;
*Dans le champ, montant indiquer le montant de votre paiement.&lt;br /&gt;
*Cliquer sur le bouton '''Valider'''&lt;br /&gt;
Dans le cas où le type de paiement est un paiement par carte bancaire en ligne mis en place par votre structure, alors êtes redirigé sur le terminal de paiement électronique de la banque de votre structure. Il vous faut alors saisir les informations de votre carte bancaire. Il est possible que le terminal de paiement électronique supporte le &amp;quot;[[Wikipedia-fr:3-D_Secure|3-D Secure]]&amp;quot; qui implique un contrôle renforcé. Dans ce cas, c'est votre propre banque qui vous demandera des informations complémentaires pour confirmer que c'est bien vous qui êtes à l'origine de la demande de paiement par carte bancaire.&lt;br /&gt;
&lt;br /&gt;
Une fois le paiement validé, [[Envoi-des-emails#E-mail-de-reçu|un email vous sera automatiquement envoyé par OpenFlyers avec en pièce-jointe votre reçu au format PDF]].&lt;br /&gt;
&lt;br /&gt;
=Extrait de compte=&lt;br /&gt;
'''OpenFlyers''' offre la possibilité à un utilisateur de consulter des extraits de compte : C'est un rapport permettant de visualiser le détail des écritures comptables effectuées sur une période (une année complète ou un mois d'une année) d'un compte ou de tous les comptes d'une comptabilité donnée. Si la gestion des budgets est activée, il est possible de filtrer l'affichage des écritures selon les budgets.&lt;br /&gt;
&lt;br /&gt;
L'extrait de compte est accessible depuis :&lt;br /&gt;
**Le bandeau des soldes de chaque compte sous le menu&lt;br /&gt;
** '''Planning &amp;gt; Comptes &amp;gt; Extrait de compte...''' puis sélectionner un compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; Utilisateurs''' puis cliquer sur l'icône '''Extrait de compte''' du compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; Ressources''' puis cliquer sur l'icône '''Extrait de compte''' du compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; ... ''', sélectionner une catégorie de compte puis cliquer sur l'icône '''Extrait de compte''' du compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Mouvements''' ou '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Rechercher''', pour visualiser ces pages il faut posséder le droit [[Gestion-des-profils#Gestion-des-comptes|Gestion des comptes]], [[Gestion-des-profils#Voir-les-comptes|Voir les comptes]] ou [[Gestion-des-profils#Saisir-tout-flux|Saisir tout flux]]&lt;br /&gt;
&lt;br /&gt;
Dès qu'il y a plus de 50 écritures à afficher pour un extrait de compte, la liste des écritures est paginée pour afficher 50 écritures par page.&lt;br /&gt;
&lt;br /&gt;
'''Note :''' lorsque l'interrupteur '''Lettrage''' est activé et que l'interrupteur '''Afficher les entrées lettrées''' est désactivé, les écritures déjà lettrées sont exclues de la liste : la pagination ne porte alors que sur les écritures restant à lettrer. Le nombre de pages peut donc diminuer au fur et à mesure des lettrages.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une écriture est validée, les montants au débit et au crédit sont affichés en noir gras.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une écriture est non validée, les montants au débit et au crédit sont affichés en vert gras. En fonction du [[Gestion des profils|profil et de ses droits]], dans la colonne '''Actions''', des icônes peuvent apparaitre pour modifier ou supprimer une écriture non validée selon [[Gestion des écritures comptables#Types_d'écritures_comptable_générées_par_OpenFlyers|le type d'écriture comptable qui est générée]].&lt;br /&gt;
&lt;br /&gt;
En bas du tableau, en fonction du [[Gestion des profils|profil et des droits]] de l'utilisateur, les boutons suivants peuvent être présents :&lt;br /&gt;
*'''Saisir un encaissement''' : accès au formulaire de [[#Créditer-son-compte-utilisateur|saisie d'encaissement]]. Ce lien apparaît uniquement dans les extraits de comptes-utilisateurs.&lt;br /&gt;
*'''Saisir un flux''' : accès au formulaire de [[Utilisation-de-la-comptabilité#Saisir-un-flux|saisie d'un flux]].&lt;br /&gt;
&lt;br /&gt;
En haut du tableau, plusieurs filtres et options sont disponibles, variant selon l'interface affichée :&lt;br /&gt;
&lt;br /&gt;
;Pour les extraits de comptes (Utilisateurs, Ressources, etc.)&lt;br /&gt;
*Champs de sélection '''Mois''' et '''Année''' : permettent de filtrer les écritures comptables sur une période mensuelle ou annuelle.&lt;br /&gt;
*Bouton à bascule '''Afficher le bouton de régénération de facture''' : affiche une icône dans la colonne '''Numéro de pointage, facture et/ou reçu''' permettant de forcer la regénération du PDF d'une facture.&lt;br /&gt;
*Interrupteur '''UTC''' : permet d'afficher les horodatages en UTC à côté de l'heure locale.&lt;br /&gt;
*Interrupteur '''Afficher les entrées lettrées''' : permet d'afficher également les écritures déjà lettrées. Cet interrupteur n'est visible que lorsque l'interrupteur '''Lettrage''' est activé, car il n'a d'effet que dans ce mode.&lt;br /&gt;
*Bouton '''Lettrer automatiquement les écritures du compte pour la période sélectionnée''' : permet de [[Utilisation-de-la-comptabilité#Lettrer-des-écritures-comptables|lettrer]] toutes les écritures de la période en un seul clic.&lt;br /&gt;
&lt;br /&gt;
==Colonne Lettrage==&lt;br /&gt;
L'interrupteur '''Lettrage''' active le mode de [[Utilisation-de-la-comptabilité#Lettrer-des-écritures-comptables|lettrage manuel]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est activé :&lt;br /&gt;
*une case à cocher apparaît dans la colonne '''Lettrage''' pour chaque écriture non lettrée ;&lt;br /&gt;
*une icône de suppression apparaît pour chaque écriture déjà lettrée, permettant de supprimer son lettrage ;&lt;br /&gt;
*l'interrupteur '''Afficher les entrées lettrées''' devient visible ;&lt;br /&gt;
*deux icônes '''Tout cocher''' et '''Tout décocher''' apparaissent, permettant de sélectionner ou désélectionner d'un seul clic toutes les écritures de la page affichée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est désactivé :&lt;br /&gt;
*les cases à cocher et les icônes de suppression du lettrage disparaissent ;&lt;br /&gt;
*les icônes '''Tout cocher''' et '''Tout décocher''' disparaissent ;&lt;br /&gt;
*l'interrupteur '''Afficher les entrées lettrées''' n'est plus visible ;&lt;br /&gt;
*les écritures déjà lettrées sont affichées, quel que soit l'état de l'interrupteur '''Afficher les entrées lettrées''', ce dernier n'étant pris en compte que lorsque le mode de lettrage est activé.&lt;br /&gt;
&lt;br /&gt;
'''NB:''' l'état de l'interrupteur '''Lettrage''' est mémorisé par utilisateur. Il est donc conservé lors des changements de page et reste actif d'une session à l'autre, y compris après une déconnexion / reconnexion. Pour revenir à un affichage sans les éléments de lettrage, il faut désactiver explicitement l'interrupteur.&lt;br /&gt;
&lt;br /&gt;
==Colonne Numéro de pointage, facture ou reçu==&lt;br /&gt;
*Lorsque l'écriture est liée à une [[Écritures comptables#Facture-fournisseur|facture fournisseur]], la colonne affiche le numéro de pointage.&lt;br /&gt;
*Lorsque l'écriture est liée à une [[Écritures comptables#Facture-client|facture client]] :&lt;br /&gt;
**Si l'utilisateur dispose de [[Gestion des profils#Comptes|l'un de ces droits]] : [[Gestion-des-profils#Gestion-des-comptes|'''Gestion des comptes''']], [[Gestion-des-profils#Voir-les-comptes|'''Voir les comptes''']] ou [[Gestion-des-profils#Voir-les-comptes-utilisateurs|'''Voir les comptes utilisateurs''']] ou que la facture à afficher '''lui est destinée''' :&lt;br /&gt;
***Pour une écriture non-validée, la colonne affiche les icônes [[File:IconHTML.png|16.png]] qui amènent aux factures pro-format associées.&lt;br /&gt;
***Pour une écriture validée, la colonne affiche les icônes [[File:IconPDF.png|16.png]] qui amène aux factures PDF associées avec le numéro de facture/reçu.&lt;br /&gt;
***Si l'interrupteur '''Afficher le bouton de régénération de facture''' est activé et que l'écriture est validée, la colonne affiche [[File:RegenerateInvoice.png|frameless|16x16px]] qui amène à régénérer les factures associées depuis zéro et d'écraser l'ancienne facture générée associée.&lt;br /&gt;
**Dans le cas contraire, ce sont les numéros des factures qui sont affichés à la place des icônes.&lt;br /&gt;
&lt;br /&gt;
La colonne affiche &amp;quot;--&amp;quot; lorsqu'il s'agit d'une écriture :&lt;br /&gt;
* D'[[Écritures comptables#Encaissement-(d'un-client)|encaissement client]].&lt;br /&gt;
* De [[Écritures comptables#Les-4-grands-types-d'écritures|flux]].&lt;br /&gt;
* De [[Écritures comptables#Facture-client|facture client]] n'ayant pas de facture associée.&lt;br /&gt;
&lt;br /&gt;
=Imprimer un extrait de compte=&lt;br /&gt;
*Afficher l'extrait de compte souhaité&lt;br /&gt;
*[[Navigateurs#Imprimer-avec-un-navigateur|Imprimer avec la commande du navigateur]]&lt;br /&gt;
&lt;br /&gt;
=Transférer de l'argent=&lt;br /&gt;
Selon les droits accordés aux utilisateurs par la structure, il peut être possible d'effectuer un transfert d'argent depuis son compte vers le compte d'un autre utilisateur en suivant la procédure suivante :&lt;br /&gt;
*'''Planning &amp;gt; Comptes &amp;gt; Actions &amp;gt; Transférer'''&lt;br /&gt;
*Dans le champ '''Compte à créditer''' choisir le nom de la personne concernée&lt;br /&gt;
*Dans le champ '''Montant''', saisir le montant que l'on souhaite transférer&lt;br /&gt;
*Remplir éventuellement le champ '''Commentaires'''&lt;br /&gt;
*Cliquer sur le bouton '''Valider''' : '''Attention''' cette opération est irrévocable et une fois que vous aurez validé, il ne sera pas possible de supprimer le virement. Si vous souhaitez faire annuler l'opération il faudra contacter la personne recevant l'argent pour qu'elle fasse à son tour un transfert sur votre compte.&lt;br /&gt;
&lt;br /&gt;
Si le message d'alerte '''Le solde du compte après opération serait inférieur au minimum autorisé (X) pour un transfert''' apparait alors cela signifie qu'une [[Configuration-de-la-comptabilité#Paramétrage-général-des-comptabilités|restriction sur les soldes]] est en place et que vous ne disposez pas d'un solde suffisant.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Param%C3%A9trage-des-activit%C3%A9s&amp;diff=14643</id>
		<title>Paramétrage des activités</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Param%C3%A9trage-des-activit%C3%A9s&amp;diff=14643"/>
		<updated>2026-08-31T08:16:33Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Redirection à la fermeture d'une activité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le paramétrage du module de gestion des activités.&lt;br /&gt;
&lt;br /&gt;
Il existe également des pages qui traitent de :&lt;br /&gt;
*La [[gestion des types d'activités]]&lt;br /&gt;
*La [[gestion des activités]]&lt;br /&gt;
&lt;br /&gt;
Le paramétrage des activités s'effectue dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''.&lt;br /&gt;
&lt;br /&gt;
Pour activer la gestion des activités, il faut activer l'interrupteur '''Activité'''.&lt;br /&gt;
&lt;br /&gt;
Lorsque la gestion des activités est activée, un formulaire s'affiche permettant de configurer le module de gestion des activités.&lt;br /&gt;
&lt;br /&gt;
=Général=&lt;br /&gt;
==Mode==&lt;br /&gt;
Permet de choisir entre les [[Introduction#Modes_de_saisie_ouverture+fermeture_ou_fermeture_seule|modes ouverture+fermeture et fermeture seulement]].&lt;br /&gt;
&lt;br /&gt;
Le mode &amp;quot;fermeture seulement&amp;quot; est sélectionné par défaut.&lt;br /&gt;
&lt;br /&gt;
==Gestion des potentiels==&lt;br /&gt;
Permet d'activer le [[Suivi-de-maintenance#Module-de-suivi-du-potentiel-restant|Module de suivi du potentiel restant]] et ainsi de suivre le potentiel restant avant la prochaine échéance calendaire ou horaire d'une ressource.&lt;br /&gt;
&lt;br /&gt;
==Gestion des anomalies==&lt;br /&gt;
Permet d'activer le module de [[Signalements|signalements]] et ainsi de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'interrupteur est désactivé, le champ [[Signalements#Signature-d'approbation-de-navigabilité|Signature d'approbation de navigabilité]] n'est pas affiché.&lt;br /&gt;
&lt;br /&gt;
==Redirection à la fermeture d'une activité==&lt;br /&gt;
Cette fonctionnalité permet de poser une question à l'utilisateur après la saisie avec succès d'une [[Gestion-des-activités#Saisir-une-activité|fermeture d'activité]]. Si la réponse est oui à la question, OpenFlyers ouvre un nouvel onglet avec comme URL le lien renseigné dans le paramétrage.&lt;br /&gt;
&lt;br /&gt;
Pour activer cette fonctionnalité il faut :&lt;br /&gt;
*Cliquer sur '''OUI'''&lt;br /&gt;
*Champ '''Question''' : renseigner la question à poser à l'utilisateur après qu'il ait saisie une activité&lt;br /&gt;
*Champ '''URL''' : indiquer l'URL complète. Ce champ peut être laissé vide&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
Lorsque le champ '''URL''' est laissé vide, la question est tout de même posée mais aucune redirection n'est effectuée : répondre '''OUI''' produit alors le même résultat que répondre '''NON'''.&lt;br /&gt;
&lt;br /&gt;
Exemple de paramétrage pour demander à un utilisateur s'il veut déclarer un évènement REX FFA :&lt;br /&gt;
*Champ '''Question''' : ''Voulez-vous déclarer un Rex ?''&lt;br /&gt;
*Champ '''URL''' : ''https://rex.ffa-aero.fr''&lt;br /&gt;
&lt;br /&gt;
=Facturation=&lt;br /&gt;
===Regrouper les activités en une facture lors de la validation===&lt;br /&gt;
Cette option est visible à condition que la [[#Gestion-des-comptes|gestion des comptes]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette option est activée, lors de la [[Gestion-des-activités#Valider-une-activité|validation de plusieurs activités]] celles-ci sont [[Facturation-des-clients#Regrouper-les-ventes-par-client|regroupées en une seule facture par client]].&lt;br /&gt;
&lt;br /&gt;
==Envoyer un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email pour chaque facture]]==&lt;br /&gt;
Cette option est visible à condition que la [[#Gestion-des-comptes|gestion des comptes]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette option est activée, à la suite de la [[Gestion-des-activités#Valider-une-activité|validation d'une activité]] ou d'une vente, la facture PDF sera générée dans la minute qui suit et un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email sera automatiquement envoyé à l'utilisateur]] avec en pièce-jointe la facture PDF.&lt;br /&gt;
&lt;br /&gt;
Si l'option est désactivée, l'utilisateur peut toutefois activer pour lui [[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-facture|l'envoi automatique de chaque facture]].&lt;br /&gt;
&lt;br /&gt;
==Autoriser les utilisateurs à choisir de recevoir ou non un email pour chaque facture==&lt;br /&gt;
Cette option est visible à condition que l'option [[#Envoyer-un-email-pour-chaque-facture|Envoyer un email pour chaque facture]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Par défaut un utilisateur va recevoir un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email pour chaque facture]]. Cette option permet à un utilisateur depuis sa fiche personnelle de désactiver ou activer l'envoi d'un email pour chaque facture grâce au paramètre [[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-facture|Recevoir un e-mail pour chaque facture]] présent dans la partie '''Notifications'''.&lt;br /&gt;
&lt;br /&gt;
=[[Paramétrage-des-validités#Paramétrer-le-contrôle-des-validités-pour-les-activités-ou-les-réservations|Paramétrage général du contrôle des validités pour la saisie des vols]]=&lt;br /&gt;
&lt;br /&gt;
=Seconde personne à bord=&lt;br /&gt;
==Type d'activité requis==&lt;br /&gt;
Permet de définir quel type d'activité doit être obligatoirement sélectionné lors de la présence d'un second pilote à bord. Usuellement utilisé pour éviter les erreurs ou oublis en cas de vol d'instruction.&lt;br /&gt;
&lt;br /&gt;
==Demander au moins 2 types d'activités==&lt;br /&gt;
&lt;br /&gt;
=Auto-compléter=&lt;br /&gt;
==Terrain d'arrivée égal au terrain de départ, lorsque l'une des activités suivantes est sélectionnée==&lt;br /&gt;
Cette option définit les types d'activités qui associent automatiquement le terrain de départ d'un vol et son terrain d'arrivée.&lt;br /&gt;
&lt;br /&gt;
Les types d'activités choisis lors du paramétrage se retrouvent dans la page de [[Gestion-des-activités#Saisir-une-activité|saisie d'activité]]. Si l'un des types d'activités est alors sélectionné lors de la [[Gestion-des-activités#Saisir-une-activité|saisie d'une activité]], le terrain d'arrivée et le terrain de départ sont de la même valeur.&lt;br /&gt;
&lt;br /&gt;
=Champs visibles=&lt;br /&gt;
==Heures totales après activité==&lt;br /&gt;
Ce champ existe uniquement en fermeture d'activité&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est coché, il apparait, en lecture seulement, dans le formulaire de saisie d'activité. Il calcule automatiquement et affiche le total des heures de la ressource avec la durée saisie dans ce formulaire.&lt;br /&gt;
&lt;br /&gt;
=Export=&lt;br /&gt;
==Gesasso==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Gesasso|interfaçage de Gesasso avec OpenFlyers]], les informations suivantes doivent être précisées :&lt;br /&gt;
*Gesasso login : permet de définir le login utilisé pour l'authentification auprès de Gesasso&lt;br /&gt;
*Gesasso password : permet de définir le mot de passe utilisé pour l'authentification auprès de Gesasso&lt;br /&gt;
&lt;br /&gt;
=Import=&lt;br /&gt;
==Charterware==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Charterware|interfaçage de Charterware avec OpenFlyers]]:&lt;br /&gt;
*Activer l'interrupteur '''Charterware''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom de la plateforme dans Charterware : permet de définir le nom utilisé dans Charterware&lt;br /&gt;
*Formule date de début du vol Charterware : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Charterware&lt;br /&gt;
*Formule durée du vol Charterware : permet de définir la formule de calcul de la durée par rapport aux données transmises par Charterware&lt;br /&gt;
*Formule temps en l'air Charterware : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par Charterware&lt;br /&gt;
*Règle d'arrondi horaire Charterware : concernant les horaires de vols Charterware a une précision à la seconde contrairement à OpenFlyers qui a une précision à la minute. Il est donc nécessaire de définir comment les secondes seront arrondies.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans Charterware : permet de définir l'activité qui sera choisie si le vol Charterware ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans Charterware : permet de définir l'activité qui sera choisie si le vol Charterware ne peut être associé à une réservation.&lt;br /&gt;
*Récupération des traces de vols Charterware sur messagerie électronique : permet d'activer ou non la récupération des traces de vols créées par Charterware.&lt;br /&gt;
*E-mail : adresse e-mail recevant les vols Charterware.&lt;br /&gt;
*Mot de passe : mot de passe correspondant à l'adresse e-mail.&lt;br /&gt;
*Adresse du serveur : nom de domaine Internet ou une adresse IP de serveur.&lt;br /&gt;
*Port : numéro de port TCP.&lt;br /&gt;
*Options serveur : options liées au serveur.&lt;br /&gt;
&lt;br /&gt;
Il existe trois règles d'arrondi possibles :&lt;br /&gt;
*Arrondi classique&lt;br /&gt;
*Arrondi au supérieur&lt;br /&gt;
*Arrondi à l'inférieur&lt;br /&gt;
&lt;br /&gt;
==Foxtrot Aviation==&lt;br /&gt;
Pour réaliser [[Interfaçage OpenFlyers et Foxtrot Aviation|l'interfaçage de Foxtrot Aviation avec OpenFlyers]] :&lt;br /&gt;
*Activer l'interrupteur '''Foxtrot Aviation''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Formule de date de début Foxtrot : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Formule de durée de vol Foxtrot : permet de définir la formule de calcul de la durée par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Formule de temps en vol Foxtrot : permet de définir la formule de calcul du temps en vol par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans Foxtrot : permet de définir l'activité qui sera choisie si le vol Foxtrot ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans Foxtrot : permet de définir l'activité qui sera choisie si le vol Foxtrot ne peut être associé à une réservation.&lt;br /&gt;
&lt;br /&gt;
==ClickAndTakeoff==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-ClickAndTakeoff|interfaçage de ClickAndTakeoff avec OpenFlyers]] :&lt;br /&gt;
*Activer l'interrupteur '''ClickAndTakeoff''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom de la plateforme pour ClickAndTakeoff : permet de définir le nom utilisé dans ClickAndTakeoff.&lt;br /&gt;
*Formule date de début du vol : permet de définir la formule de calcul de la date de début par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Formule durée du vol : permet de définir la formule de calcul de la durée par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Formule temps en l'air : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans ClickAndTakeoff : permet de définir l'activité qui sera choisie si le vol ClickAndTakeoff ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans ClickAndTakeoff : permet de définir l'activité qui sera choisie si le vol ClickAndTakeoff ne peut être associé à une réservation.&lt;br /&gt;
*Jeton d'accès pour ClickAndTakeoff : permet de définir le jeton utilisé pour l'authentification auprès de ClickAndTakeoff.&lt;br /&gt;
&lt;br /&gt;
==Teltonika==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Teltonika|interfaçage de Teltonika avec OpenFlyers]]:&lt;br /&gt;
*Activer l'interrupteur '''Teltonika''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom d'utilisateur : permet de définir le nom utilisé dans Teltonika.&lt;br /&gt;
*Mot de passe : permet l'authentification auprès de Teltonika.&lt;br /&gt;
*Formule date de début du vol : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Teltonika.&lt;br /&gt;
*Formule durée du vol : permet de définir la formule de calcul de la durée par rapport aux données transmises par Teltonika.&lt;br /&gt;
*Formule temps en l'air : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par Teltonika.&lt;br /&gt;
&lt;br /&gt;
==Fermer les activités ouvertes après import==&lt;br /&gt;
Si cette option est activée, OpenFlyers ferme automatiquement les activités ouvertes après un import (Charterware, Foxtrot Aviation, ClickAndTakeoff, Teltonika).&lt;br /&gt;
&lt;br /&gt;
=Vérification de l'abonnement d'interconnexion avec boitier GPS/GSM=&lt;br /&gt;
Pour synchroniser OpenFlyers avec l'un des boîtiers GPS/GSM ([[#Gestion-de-Charterware|Charterware]], [[#Gestion-de-ClickAndTakeoff|ClickAndTakeOff]], [[#Gestion-de-Teltonika|Teltonika]]), la plateforme doit disposer d'un abonnement d'interconnexion valide. Si cet abonnement n'est pas payé, un message d'erreur apparaître lors de l'activation de l'interrupteur, indiquant que la synchronisation avec le boîtier n'est pas possible. Pour activer l'interfaçage, il est nécessaire de souscrire à l'abonnement d'interconnexion.&lt;br /&gt;
&lt;br /&gt;
=Gestion [[Contrôle-des-accès|armoire à clés]]=&lt;br /&gt;
&lt;br /&gt;
Active le [[Interfaçage-OpenFlyers-et-armoire-à-clés#Activation-et-configuration-de-la-gestion-des-armoires-à-clé|contrôle d'une armoire à clés]].&lt;br /&gt;
&lt;br /&gt;
====Gestion des clés====&lt;br /&gt;
&lt;br /&gt;
Active l'[[Interfaçage-OpenFlyers-et-armoire-à-clés#Attribution-des-clés-aux-ressources/aéronefs|attribution de clés aux ressources]].&lt;br /&gt;
&lt;br /&gt;
====Nombre de clés====&lt;br /&gt;
&lt;br /&gt;
Permet de définir le nombre de clés que l'armoire peut accueillir.&lt;br /&gt;
&lt;br /&gt;
====Logiciel de contrôle de l'armoire à clés====&lt;br /&gt;
&lt;br /&gt;
Permet de définir le logiciel à utiliser pour le contrôle de l'armoire à clés :&lt;br /&gt;
*'''OF_GetFlogBoxFile.exe''' permet de contrôler les [[Contrôle-des-accès#Armoires-à-clés-FlogBox-anciennement-commercialisées-par-Francelog|armoires à clés FlogBox anciennement commercialisées par Francelog]]&lt;br /&gt;
*'''OF_GetKeyGuardFile.exe''' permet de contrôler les [[Contrôle-des-accès#Armoires-à-clés-KeyGuard-anciennement-commercialisées-par-BKS-électronique|armoires à clés KeyGuard anciennement commercialisées par BKS électronique]]&lt;br /&gt;
*'''OpenKey''', '''PyOpenKey''' et '''PyOpenKey2''' permettent de contrôler les [[Contrôle-des-accès#Armoires-à-clés-Deister-commercialisées-par-OpenFlyers|armoires à clés Deister commercialisées par OpenFlyers]]. Si l'une de ces options est sélectionnée alors des champs supplémentaires pour [[Installation-armoire-à-clés#Paramétrage-OpenFlyers|configurer le logiciel de contrôle]] apparaissent.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14640</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14640"/>
		<updated>2026-08-27T15:40:16Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Signature d'approbation de navigabilité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Affichage sur le planning==&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==État du signalement==&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Signature d'approbation de navigabilité==&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans '''[[Configuration#Gestion-des-activités-(Admin-&amp;gt;-Structure-&amp;gt;-Paramétrage-&amp;gt;-Activités)|Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités]]''', sous l'interrupteur '''[[Paramétrage-des-activités#Gestion-des-anomalies|Gestion des anomalies]]'''.&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* [[Formules-de-calcul#%FIRSTNAME|%FIRSTNAME]] : prénom de l'utilisateur connecté ;&lt;br /&gt;
* [[Formules-de-calcul#%LASTNAME|%LASTNAME]] : nom de l'utilisateur connecté ;&lt;br /&gt;
* [[Formules-de-calcul#%EXTRAFIELDxx|%EXTRAFIELDxx]] : contenu du [[Configuration#Structure-&amp;gt;-Champs-métiers|champ métier]] dont l'identifiant est ''xx''.&lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66 %EXTRAFIELD52&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La signature est demandée lors de la clôture d'un signalement ou lors de la modification du statut de l'aéronef. Elle est calculée au moment de la signature, enregistrée avec le commentaire de suivi correspondant, puis affichée dans l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
'''NB :''' une modification ultérieure du texte paramétré ou du contenu d'un champ métier ne modifie pas les signatures déjà enregistrées.&lt;br /&gt;
&lt;br /&gt;
==Statut de l'aéronef==&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14639</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14639"/>
		<updated>2026-08-27T15:37:24Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Signature d'approbation de navigabilité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Affichage sur le planning==&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==État du signalement==&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Signature d'approbation de navigabilité==&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est demandée lors de la clôture d'un signalement ou lors de la modification du statut de l'aéronef.&lt;br /&gt;
&lt;br /&gt;
Elle est enregistrée avec le commentaire de suivi correspondant et apparait dans l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Elle est paramétrée dans '''[[Configuration#Gestion-des-activités-(Admin-&amp;gt;-Structure-&amp;gt;-Paramétrage-&amp;gt;-Activités)|Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités]]''', sous l'interrupteur '''[[Paramétrage-des-activités#Gestion-des-anomalies|Gestion des anomalies]]'''.&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* [[Formules-de-calcul#%FIRSTNAME|%FIRSTNAME]] : prénom de l'utilisateur connecté ;&lt;br /&gt;
* [[Formules-de-calcul#%LASTNAME|%LASTNAME]] : nom de l'utilisateur connecté ;&lt;br /&gt;
* [[Formules-de-calcul#%EXTRAFIELDxx|%EXTRAFIELDxx]] : contenu du [[Configuration#Structure-&amp;gt;-Champs-métiers|champs métier]] dont l'identifiant est ''xx''.&lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66 %EXTRAFIELD52&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La signature est demandée lors de la clôture d'un signalement ou lors de la modification du statut de l'aéronef. Elle est calculée au moment de la signature puis archivée telle quelle.&lt;br /&gt;
&lt;br /&gt;
'''NB :''' une modification ultérieure du texte paramétré ou du contenu d'un champ métier ne modifie pas les signatures déjà enregistrées.&lt;br /&gt;
&lt;br /&gt;
==Statut de l'aéronef==&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Param%C3%A9trage-des-activit%C3%A9s&amp;diff=14636</id>
		<title>Paramétrage des activités</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Param%C3%A9trage-des-activit%C3%A9s&amp;diff=14636"/>
		<updated>2026-08-27T13:51:40Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Gestion des potentiels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le paramétrage du module de gestion des activités.&lt;br /&gt;
&lt;br /&gt;
Il existe également des pages qui traitent de :&lt;br /&gt;
*La [[gestion des types d'activités]]&lt;br /&gt;
*La [[gestion des activités]]&lt;br /&gt;
&lt;br /&gt;
Le paramétrage des activités s'effectue dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''.&lt;br /&gt;
&lt;br /&gt;
Pour activer la gestion des activités, il faut activer l'interrupteur '''Activité'''.&lt;br /&gt;
&lt;br /&gt;
Lorsque la gestion des activités est activée, un formulaire s'affiche permettant de configurer le module de gestion des activités.&lt;br /&gt;
&lt;br /&gt;
=Général=&lt;br /&gt;
==Mode==&lt;br /&gt;
Permet de choisir entre les [[Introduction#Modes_de_saisie_ouverture+fermeture_ou_fermeture_seule|modes ouverture+fermeture et fermeture seulement]].&lt;br /&gt;
&lt;br /&gt;
Le mode &amp;quot;fermeture seulement&amp;quot; est sélectionné par défaut.&lt;br /&gt;
&lt;br /&gt;
==Gestion des potentiels==&lt;br /&gt;
Permet d'activer le [[Suivi-de-maintenance#Module-de-suivi-du-potentiel-restant|Module de suivi du potentiel restant]] et ainsi de suivre le potentiel restant avant la prochaine échéance calendaire ou horaire d'une ressource.&lt;br /&gt;
&lt;br /&gt;
==Gestion des anomalies==&lt;br /&gt;
Permet d'activer le module de [[Signalements|signalements]] et ainsi de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'interrupteur est désactivé, le champ [[Signalements#Signature-d'approbation-de-navigabilité|Signature d'approbation de navigabilité]] n'est pas affiché.&lt;br /&gt;
&lt;br /&gt;
==Redirection à la fermeture d'une activité==&lt;br /&gt;
Cette fonctionnalité permet de poser une question à l'utilisateur après la saisie avec succès d'une [[Gestion-des-activités#Saisir-une-activité|fermeture d'activité]]. Si la réponse est oui à la question, OpenFlyers ouvre un nouvel onglet avec comme URL le lien renseigné dans le paramétrage.&lt;br /&gt;
&lt;br /&gt;
Pour activer cette fonctionnalité il faut :&lt;br /&gt;
*Cliquer sur '''OUI'''&lt;br /&gt;
*Champ '''Question''' : renseigner la question à poser à l'utilisateur après qu'il ait saisie une activité&lt;br /&gt;
*Champ '''URL''' : indiquer l'URL complète&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
Exemple de paramétrage pour demander à un utilisateur s'il veut déclarer un évènement REX FFA :&lt;br /&gt;
*Champ '''Question''' : ''Voulez-vous déclarer un Rex ?''&lt;br /&gt;
*Champ '''URL''' : ''https://rex.ffa-aero.fr''&lt;br /&gt;
&lt;br /&gt;
=Facturation=&lt;br /&gt;
===Regrouper les activités en une facture lors de la validation===&lt;br /&gt;
Cette option est visible à condition que la [[#Gestion-des-comptes|gestion des comptes]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette option est activée, lors de la [[Gestion-des-activités#Valider-une-activité|validation de plusieurs activités]] celles-ci sont [[Facturation-des-clients#Regrouper-les-ventes-par-client|regroupées en une seule facture par client]].&lt;br /&gt;
&lt;br /&gt;
==Envoyer un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email pour chaque facture]]==&lt;br /&gt;
Cette option est visible à condition que la [[#Gestion-des-comptes|gestion des comptes]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette option est activée, à la suite de la [[Gestion-des-activités#Valider-une-activité|validation d'une activité]] ou d'une vente, la facture PDF sera générée dans la minute qui suit et un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email sera automatiquement envoyé à l'utilisateur]] avec en pièce-jointe la facture PDF.&lt;br /&gt;
&lt;br /&gt;
Si l'option est désactivée, l'utilisateur peut toutefois activer pour lui [[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-facture|l'envoi automatique de chaque facture]].&lt;br /&gt;
&lt;br /&gt;
==Autoriser les utilisateurs à choisir de recevoir ou non un email pour chaque facture==&lt;br /&gt;
Cette option est visible à condition que l'option [[#Envoyer-un-email-pour-chaque-facture|Envoyer un email pour chaque facture]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Par défaut un utilisateur va recevoir un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email pour chaque facture]]. Cette option permet à un utilisateur depuis sa fiche personnelle de désactiver ou activer l'envoi d'un email pour chaque facture grâce au paramètre [[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-facture|Recevoir un e-mail pour chaque facture]] présent dans la partie '''Notifications'''.&lt;br /&gt;
&lt;br /&gt;
=[[Paramétrage-des-validités#Paramétrer-le-contrôle-des-validités-pour-les-activités-ou-les-réservations|Paramétrage général du contrôle des validités pour la saisie des vols]]=&lt;br /&gt;
&lt;br /&gt;
=Seconde personne à bord=&lt;br /&gt;
==Type d'activité requis==&lt;br /&gt;
Permet de définir quel type d'activité doit être obligatoirement sélectionné lors de la présence d'un second pilote à bord. Usuellement utilisé pour éviter les erreurs ou oublis en cas de vol d'instruction.&lt;br /&gt;
&lt;br /&gt;
==Demander au moins 2 types d'activités==&lt;br /&gt;
&lt;br /&gt;
=Auto-compléter=&lt;br /&gt;
==Terrain d'arrivée égal au terrain de départ, lorsque l'une des activités suivantes est sélectionnée==&lt;br /&gt;
Cette option définit les types d'activités qui associent automatiquement le terrain de départ d'un vol et son terrain d'arrivée.&lt;br /&gt;
&lt;br /&gt;
Les types d'activités choisis lors du paramétrage se retrouvent dans la page de [[Gestion-des-activités#Saisir-une-activité|saisie d'activité]]. Si l'un des types d'activités est alors sélectionné lors de la [[Gestion-des-activités#Saisir-une-activité|saisie d'une activité]], le terrain d'arrivée et le terrain de départ sont de la même valeur.&lt;br /&gt;
&lt;br /&gt;
=Champs visibles=&lt;br /&gt;
==Heures totales après activité==&lt;br /&gt;
Ce champ existe uniquement en fermeture d'activité&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est coché, il apparait, en lecture seulement, dans le formulaire de saisie d'activité. Il calcule automatiquement et affiche le total des heures de la ressource avec la durée saisie dans ce formulaire.&lt;br /&gt;
&lt;br /&gt;
=Export=&lt;br /&gt;
==Gesasso==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Gesasso|interfaçage de Gesasso avec OpenFlyers]], les informations suivantes doivent être précisées :&lt;br /&gt;
*Gesasso login : permet de définir le login utilisé pour l'authentification auprès de Gesasso&lt;br /&gt;
*Gesasso password : permet de définir le mot de passe utilisé pour l'authentification auprès de Gesasso&lt;br /&gt;
&lt;br /&gt;
=Import=&lt;br /&gt;
==Charterware==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Charterware|interfaçage de Charterware avec OpenFlyers]]:&lt;br /&gt;
*Activer l'interrupteur '''Charterware''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom de la plateforme dans Charterware : permet de définir le nom utilisé dans Charterware&lt;br /&gt;
*Formule date de début du vol Charterware : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Charterware&lt;br /&gt;
*Formule durée du vol Charterware : permet de définir la formule de calcul de la durée par rapport aux données transmises par Charterware&lt;br /&gt;
*Formule temps en l'air Charterware : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par Charterware&lt;br /&gt;
*Règle d'arrondi horaire Charterware : concernant les horaires de vols Charterware a une précision à la seconde contrairement à OpenFlyers qui a une précision à la minute. Il est donc nécessaire de définir comment les secondes seront arrondies.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans Charterware : permet de définir l'activité qui sera choisie si le vol Charterware ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans Charterware : permet de définir l'activité qui sera choisie si le vol Charterware ne peut être associé à une réservation.&lt;br /&gt;
*Récupération des traces de vols Charterware sur messagerie électronique : permet d'activer ou non la récupération des traces de vols créées par Charterware.&lt;br /&gt;
*E-mail : adresse e-mail recevant les vols Charterware.&lt;br /&gt;
*Mot de passe : mot de passe correspondant à l'adresse e-mail.&lt;br /&gt;
*Adresse du serveur : nom de domaine Internet ou une adresse IP de serveur.&lt;br /&gt;
*Port : numéro de port TCP.&lt;br /&gt;
*Options serveur : options liées au serveur.&lt;br /&gt;
&lt;br /&gt;
Il existe trois règles d'arrondi possibles :&lt;br /&gt;
*Arrondi classique&lt;br /&gt;
*Arrondi au supérieur&lt;br /&gt;
*Arrondi à l'inférieur&lt;br /&gt;
&lt;br /&gt;
==Foxtrot Aviation==&lt;br /&gt;
Pour réaliser [[Interfaçage OpenFlyers et Foxtrot Aviation|l'interfaçage de Foxtrot Aviation avec OpenFlyers]] :&lt;br /&gt;
*Activer l'interrupteur '''Foxtrot Aviation''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Formule de date de début Foxtrot : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Formule de durée de vol Foxtrot : permet de définir la formule de calcul de la durée par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Formule de temps en vol Foxtrot : permet de définir la formule de calcul du temps en vol par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans Foxtrot : permet de définir l'activité qui sera choisie si le vol Foxtrot ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans Foxtrot : permet de définir l'activité qui sera choisie si le vol Foxtrot ne peut être associé à une réservation.&lt;br /&gt;
&lt;br /&gt;
==ClickAndTakeoff==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-ClickAndTakeoff|interfaçage de ClickAndTakeoff avec OpenFlyers]] :&lt;br /&gt;
*Activer l'interrupteur '''ClickAndTakeoff''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom de la plateforme pour ClickAndTakeoff : permet de définir le nom utilisé dans ClickAndTakeoff.&lt;br /&gt;
*Formule date de début du vol : permet de définir la formule de calcul de la date de début par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Formule durée du vol : permet de définir la formule de calcul de la durée par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Formule temps en l'air : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans ClickAndTakeoff : permet de définir l'activité qui sera choisie si le vol ClickAndTakeoff ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans ClickAndTakeoff : permet de définir l'activité qui sera choisie si le vol ClickAndTakeoff ne peut être associé à une réservation.&lt;br /&gt;
*Jeton d'accès pour ClickAndTakeoff : permet de définir le jeton utilisé pour l'authentification auprès de ClickAndTakeoff.&lt;br /&gt;
&lt;br /&gt;
==Teltonika==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Teltonika|interfaçage de Teltonika avec OpenFlyers]]:&lt;br /&gt;
*Activer l'interrupteur '''Teltonika''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom d'utilisateur : permet de définir le nom utilisé dans Teltonika.&lt;br /&gt;
*Mot de passe : permet l'authentification auprès de Teltonika.&lt;br /&gt;
*Formule date de début du vol : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Teltonika.&lt;br /&gt;
*Formule durée du vol : permet de définir la formule de calcul de la durée par rapport aux données transmises par Teltonika.&lt;br /&gt;
*Formule temps en l'air : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par Teltonika.&lt;br /&gt;
&lt;br /&gt;
==Fermer les activités ouvertes après import==&lt;br /&gt;
Si cette option est activée, OpenFlyers ferme automatiquement les activités ouvertes après un import (Charterware, Foxtrot Aviation, ClickAndTakeoff, Teltonika).&lt;br /&gt;
&lt;br /&gt;
=Vérification de l'abonnement d'interconnexion avec boitier GPS/GSM=&lt;br /&gt;
Pour synchroniser OpenFlyers avec l'un des boîtiers GPS/GSM ([[#Gestion-de-Charterware|Charterware]], [[#Gestion-de-ClickAndTakeoff|ClickAndTakeOff]], [[#Gestion-de-Teltonika|Teltonika]]), la plateforme doit disposer d'un abonnement d'interconnexion valide. Si cet abonnement n'est pas payé, un message d'erreur apparaître lors de l'activation de l'interrupteur, indiquant que la synchronisation avec le boîtier n'est pas possible. Pour activer l'interfaçage, il est nécessaire de souscrire à l'abonnement d'interconnexion.&lt;br /&gt;
&lt;br /&gt;
=Gestion [[Contrôle-des-accès|armoire à clés]]=&lt;br /&gt;
&lt;br /&gt;
Active le [[Interfaçage-OpenFlyers-et-armoire-à-clés#Activation-et-configuration-de-la-gestion-des-armoires-à-clé|contrôle d'une armoire à clés]].&lt;br /&gt;
&lt;br /&gt;
====Gestion des clés====&lt;br /&gt;
&lt;br /&gt;
Active l'[[Interfaçage-OpenFlyers-et-armoire-à-clés#Attribution-des-clés-aux-ressources/aéronefs|attribution de clés aux ressources]].&lt;br /&gt;
&lt;br /&gt;
====Nombre de clés====&lt;br /&gt;
&lt;br /&gt;
Permet de définir le nombre de clés que l'armoire peut accueillir.&lt;br /&gt;
&lt;br /&gt;
====Logiciel de contrôle de l'armoire à clés====&lt;br /&gt;
&lt;br /&gt;
Permet de définir le logiciel à utiliser pour le contrôle de l'armoire à clés :&lt;br /&gt;
*'''OF_GetFlogBoxFile.exe''' permet de contrôler les [[Contrôle-des-accès#Armoires-à-clés-FlogBox-anciennement-commercialisées-par-Francelog|armoires à clés FlogBox anciennement commercialisées par Francelog]]&lt;br /&gt;
*'''OF_GetKeyGuardFile.exe''' permet de contrôler les [[Contrôle-des-accès#Armoires-à-clés-KeyGuard-anciennement-commercialisées-par-BKS-électronique|armoires à clés KeyGuard anciennement commercialisées par BKS électronique]]&lt;br /&gt;
*'''OpenKey''', '''PyOpenKey''' et '''PyOpenKey2''' permettent de contrôler les [[Contrôle-des-accès#Armoires-à-clés-Deister-commercialisées-par-OpenFlyers|armoires à clés Deister commercialisées par OpenFlyers]]. Si l'une de ces options est sélectionnée alors des champs supplémentaires pour [[Installation-armoire-à-clés#Paramétrage-OpenFlyers|configurer le logiciel de contrôle]] apparaissent.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14635</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14635"/>
		<updated>2026-08-27T13:04:22Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Signature d'approbation de navigabilité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Affichage sur le planning==&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==État du signalement==&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Signature d'approbation de navigabilité==&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* [[Formules-de-calcul#%FIRSTNAME|%FIRSTNAME]] : prénom de l'utilisateur connecté ;&lt;br /&gt;
* [[Formules-de-calcul#%LASTNAME|%LASTNAME]] : nom de l'utilisateur connecté ;&lt;br /&gt;
* [[Formules-de-calcul#%EXTRAFIELDxx|%EXTRAFIELDxx]] : contenu du [[Configuration#Structure-&amp;gt;-Champs-métiers|champs métier]] dont l'identifiant est ''xx''.&lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66 %EXTRAFIELD52&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La signature est demandée lors de la clôture d'un signalement ou lors de la modification du statut de l'aéronef. Elle est calculée au moment de la signature puis archivée telle quelle.&lt;br /&gt;
&lt;br /&gt;
'''NB :''' une modification ultérieure du texte paramétré ou du contenu d'un champ métier ne modifie pas les signatures déjà enregistrées.&lt;br /&gt;
&lt;br /&gt;
==Statut de l'aéronef==&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Gestion-de-la-comptabilit%C3%A9-c%C3%B4t%C3%A9-utilisateur&amp;diff=14634</id>
		<title>Gestion de la comptabilité côté utilisateur</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Gestion-de-la-comptabilit%C3%A9-c%C3%B4t%C3%A9-utilisateur&amp;diff=14634"/>
		<updated>2026-08-27T09:25:41Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Colonne Lettrage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter la '''gestion de la comptabilité côté utilisateur''' dans la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
=Alertes générées lors de [[Utilisation de la comptabilité#Saisie_d'écritures_comptables|saisie d'écritures comptables]]=&lt;br /&gt;
&lt;br /&gt;
==Les comptes n'ont pas la même comptabilité==&lt;br /&gt;
&lt;br /&gt;
Cette alerte apparait lors d'une [[Comptabilité#Comptabilités_multiples|comptabilité multiple]] : Le compte débité et le compte crédité doivent être issues de la même comptabilité.&lt;br /&gt;
&lt;br /&gt;
=Consulter son compte ou celui d'un tiers=&lt;br /&gt;
Pour consulter son propre compte :&lt;br /&gt;
*'''Planning &amp;gt; Comptes &amp;gt; Extrait de compte... &amp;gt; &amp;quot;le nom de son compte&amp;quot;''' ou depuis le raccourci présent en en-tête de chaque page (juste en dessous du menu).&lt;br /&gt;
&lt;br /&gt;
Pour consulter le compte d'un tiers, il faut disposer de [[Gestion des profils#Comptes|l'un de ces droits]] : [[Gestion-des-profils#Gestion-des-comptes|'''Gestion des comptes''']], [[Gestion-des-profils#Voir-les-comptes|'''Voir les comptes''']] ou [[Gestion-des-profils#Voir-les-comptes-utilisateurs|'''Voir les comptes utilisateurs''']].&lt;br /&gt;
*'''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; Utilisateurs''' et cliquer sur la loupe du compte que l'on souhaite consulter.&lt;br /&gt;
&lt;br /&gt;
=Consulter une [[Écritures comptables#Facture-client|facture client]] ou un reçu d'encaissement=&lt;br /&gt;
&lt;br /&gt;
Pour consulter une facture client ou un reçu d'encaissement, il faut :&lt;br /&gt;
*Aller sur [[#Consulter-son-compte-ou-celui-d'un-tiers|le compte concerné]]&lt;br /&gt;
*Cibler l'écriture recherchée&lt;br /&gt;
*Colonne [[#Colonne-Numéro-de-pointage,-facture-ou-reçu|'''Numéro de pointage, facture ou reçu''']], cliquer sur l'icône correspondante de la facture ou du reçu&lt;br /&gt;
&lt;br /&gt;
=Créditer son compte utilisateur=&lt;br /&gt;
Un utilisateur, qui dispose du droit [[Gestion-des-profils#Encaisser-ses-paiements|Encaisser ses paiements]] ou du droit [[Gestion-des-profils#Saisir-les-encaissements-pour-les-tiers|Saisir les encaissements pour les tiers]], peut le créditer :&lt;br /&gt;
*Soit par '''Planning &amp;gt; Comptes &amp;gt; Actions &amp;gt; Approvisionner'''&lt;br /&gt;
*Soit par '''Gestion &amp;gt; Comptes &amp;gt; Encaissements &amp;gt; Saisir''' s'il dispose de droits de gestion&lt;br /&gt;
*Soit en affichant un extrait de son compte utilisateur et cliquer sur le bouton '''Approvisionner''' situé en bas à droite de l'affichage de son compte à droite de la ligne du solde de compte.&lt;br /&gt;
Si l'utilisateur arrive sur le formulaire de saisie d'encaissement depuis un extrait de compte utilisateur, alors le compte à créditer par défaut porte le nom de l'utilisateur du compte depuis où la personne a cliqué.&lt;br /&gt;
*Si l'utilisateur dispose du droit [[Gestion-des-profils#Saisir-les-encaissements-pour-les-tiers|Saisir les encaissements pour les tiers]], choisir dans le champ '''Encaissement de l'utilisateur''' le nom de l'utilisateur concerné&lt;br /&gt;
*Si l'utilisateur dispose de plusieurs comptes sur lesquels il peut effectuer son encaissement (défini par le droit [[Gestion-des-profils#Compte-sur-lequel-un-utilisateur-peut-agir|Compte sur lequel un utilisateur peut agir]]), choisir dans le champ '''Compte à créditer''' le nom du compte concerné&lt;br /&gt;
*Dans le champ '''Type de règlement''', sélectionner le type de règlement&lt;br /&gt;
*Si vous effectuez un paiement avec une remise à une personne physique, vous devez préciser le nom de cette personne dans le champ '''Personne qui reçoit'''&lt;br /&gt;
*Dans le champ, montant indiquer le montant de votre paiement.&lt;br /&gt;
*Cliquer sur le bouton '''Valider'''&lt;br /&gt;
Dans le cas où le type de paiement est un paiement par carte bancaire en ligne mis en place par votre structure, alors êtes redirigé sur le terminal de paiement électronique de la banque de votre structure. Il vous faut alors saisir les informations de votre carte bancaire. Il est possible que le terminal de paiement électronique supporte le &amp;quot;[[Wikipedia-fr:3-D_Secure|3-D Secure]]&amp;quot; qui implique un contrôle renforcé. Dans ce cas, c'est votre propre banque qui vous demandera des informations complémentaires pour confirmer que c'est bien vous qui êtes à l'origine de la demande de paiement par carte bancaire.&lt;br /&gt;
&lt;br /&gt;
Une fois le paiement validé, [[Envoi-des-emails#E-mail-de-reçu|un email vous sera automatiquement envoyé par OpenFlyers avec en pièce-jointe votre reçu au format PDF]].&lt;br /&gt;
&lt;br /&gt;
=Extrait de compte=&lt;br /&gt;
'''OpenFlyers''' offre la possibilité à un utilisateur de consulter des extraits de compte : C'est un rapport permettant de visualiser le détail des écritures comptables effectuées sur une période (une année complète ou un mois d'une année) d'un compte ou de tous les comptes d'une comptabilité donnée. Si la gestion des budgets est activée, il est possible de filtrer l'affichage des écritures selon les budgets.&lt;br /&gt;
&lt;br /&gt;
L'extrait de compte est accessible depuis :&lt;br /&gt;
**Le bandeau des soldes de chaque compte sous le menu&lt;br /&gt;
** '''Planning &amp;gt; Comptes &amp;gt; Extrait de compte...''' puis sélectionner un compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; Utilisateurs''' puis cliquer sur l'icône '''Extrait de compte''' du compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; Ressources''' puis cliquer sur l'icône '''Extrait de compte''' du compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Comptes &amp;gt; ... ''', sélectionner une catégorie de compte puis cliquer sur l'icône '''Extrait de compte''' du compte&lt;br /&gt;
** '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Mouvements''' ou '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Rechercher''', pour visualiser ces pages il faut posséder le droit [[Gestion-des-profils#Gestion-des-comptes|Gestion des comptes]], [[Gestion-des-profils#Voir-les-comptes|Voir les comptes]] ou [[Gestion-des-profils#Saisir-tout-flux|Saisir tout flux]]&lt;br /&gt;
&lt;br /&gt;
Dès qu'il y a plus de 50 écritures à afficher pour un extrait de compte, la liste des écritures est paginée pour afficher 50 écritures par page.&lt;br /&gt;
&lt;br /&gt;
'''Note :''' lorsque l'interrupteur '''Lettrage''' est activé et que l'interrupteur '''Afficher les entrées lettrées''' est désactivé, les écritures déjà lettrées sont exclues de la liste : la pagination ne porte alors que sur les écritures restant à lettrer. Le nombre de pages peut donc diminuer au fur et à mesure des lettrages.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une écriture est validée, les montants au débit et au crédit sont affichés en noir gras.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une écriture est non validée, les montants au débit et au crédit sont affichés en vert gras. En fonction du [[Gestion des profils|profil et de ses droits]], dans la colonne '''Actions''', des icônes peuvent apparaitre pour modifier ou supprimer une écriture non validée selon [[Gestion des écritures comptables#Types_d'écritures_comptable_générées_par_OpenFlyers|le type d'écriture comptable qui est générée]].&lt;br /&gt;
&lt;br /&gt;
En bas du tableau, en fonction du [[Gestion des profils|profil et des droits]] de l'utilisateur, les boutons suivants peuvent être présents :&lt;br /&gt;
*'''Saisir un encaissement''' : accès au formulaire de [[#Créditer-son-compte-utilisateur|saisie d'encaissement]]. Ce lien apparaît uniquement dans les extraits de comptes-utilisateurs.&lt;br /&gt;
*'''Saisir un flux''' : accès au formulaire de [[Utilisation-de-la-comptabilité#Saisir-un-flux|saisie d'un flux]].&lt;br /&gt;
&lt;br /&gt;
En haut du tableau, plusieurs filtres et options sont disponibles, variant selon l'interface affichée :&lt;br /&gt;
&lt;br /&gt;
;Pour les extraits de comptes (Utilisateurs, Ressources, etc.)&lt;br /&gt;
*Champs de sélection '''Mois''' et '''Année''' : permettent de filtrer les écritures comptables sur une période mensuelle ou annuelle.&lt;br /&gt;
*Bouton à bascule '''Afficher le bouton de régénération de facture''' : affiche une icône dans la colonne '''Numéro de pointage, facture et/ou reçu''' permettant de forcer la regénération du PDF d'une facture.&lt;br /&gt;
*Interrupteur '''UTC''' : permet d'afficher les horodatages en UTC à côté de l'heure locale.&lt;br /&gt;
*Interrupteur '''Afficher les entrées lettrées''' : permet d'afficher également les écritures déjà lettrées. Cet interrupteur n'est visible que lorsque l'interrupteur '''Lettrage''' est activé, car il n'a d'effet que dans ce mode.&lt;br /&gt;
*Bouton '''Lettrer automatiquement les écritures du compte pour la période sélectionnée''' : permet de [[Utilisation-de-la-comptabilité#Lettrer-des-écritures-comptables|lettrer]] toutes les écritures de la période en un seul clic.&lt;br /&gt;
&lt;br /&gt;
==Colonne Lettrage==&lt;br /&gt;
L'interrupteur '''Lettrage''' active le mode de [[Utilisation-de-la-comptabilité#Lettrer-des-écritures-comptables|lettrage manuel]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est activé :&lt;br /&gt;
*une case à cocher apparaît dans la colonne '''Lettrage''' pour chaque écriture non lettrée ;&lt;br /&gt;
*une icône de suppression apparaît pour chaque écriture déjà lettrée, permettant de supprimer son lettrage ;&lt;br /&gt;
*l'interrupteur '''Afficher les entrées lettrées''' devient visible ;&lt;br /&gt;
*deux icônes '''Tout cocher''' et '''Tout décocher''' apparaissent, permettant de sélectionner ou désélectionner d'un seul clic toutes les écritures de la page affichée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est désactivé :&lt;br /&gt;
*les cases à cocher et les icônes de suppression du lettrage disparaissent ;&lt;br /&gt;
*les icônes '''Tout cocher''' et '''Tout décocher''' disparaissent ;&lt;br /&gt;
*l'interrupteur '''Afficher les entrées lettrées''' n'est plus visible ;&lt;br /&gt;
*les écritures déjà lettrées ne sont pas affichées, quel que soit l'état de l'interrupteur '''Afficher les entrées lettrées''', ce dernier n'étant pris en compte que lorsque le mode de lettrage est activé.&lt;br /&gt;
&lt;br /&gt;
'''NB:''' l'état de l'interrupteur '''Lettrage''' est mémorisé par utilisateur. Il est donc conservé lors des changements de page et reste actif d'une session à l'autre, y compris après une déconnexion / reconnexion. Pour revenir à un affichage sans les éléments de lettrage, il faut désactiver explicitement l'interrupteur.&lt;br /&gt;
&lt;br /&gt;
==Colonne Numéro de pointage, facture ou reçu==&lt;br /&gt;
*Lorsque l'écriture est liée à une [[Écritures comptables#Facture-fournisseur|facture fournisseur]], la colonne affiche le numéro de pointage.&lt;br /&gt;
*Lorsque l'écriture est liée à une [[Écritures comptables#Facture-client|facture client]] :&lt;br /&gt;
**Si l'utilisateur dispose de [[Gestion des profils#Comptes|l'un de ces droits]] : [[Gestion-des-profils#Gestion-des-comptes|'''Gestion des comptes''']], [[Gestion-des-profils#Voir-les-comptes|'''Voir les comptes''']] ou [[Gestion-des-profils#Voir-les-comptes-utilisateurs|'''Voir les comptes utilisateurs''']] ou que la facture à afficher '''lui est destinée''' :&lt;br /&gt;
***Pour une écriture non-validée, la colonne affiche les icônes [[File:IconHTML.png|16.png]] qui amènent aux factures pro-format associées.&lt;br /&gt;
***Pour une écriture validée, la colonne affiche les icônes [[File:IconPDF.png|16.png]] qui amène aux factures PDF associées avec le numéro de facture/reçu.&lt;br /&gt;
***Si l'interrupteur '''Afficher le bouton de régénération de facture''' est activé et que l'écriture est validée, la colonne affiche [[File:RegenerateInvoice.png|frameless|16x16px]] qui amène à régénérer les factures associées depuis zéro et d'écraser l'ancienne facture générée associée.&lt;br /&gt;
**Dans le cas contraire, ce sont les numéros des factures qui sont affichés à la place des icônes.&lt;br /&gt;
&lt;br /&gt;
La colonne affiche &amp;quot;--&amp;quot; lorsqu'il s'agit d'une écriture :&lt;br /&gt;
* D'[[Écritures comptables#Encaissement-(d'un-client)|encaissement client]].&lt;br /&gt;
* De [[Écritures comptables#Les-4-grands-types-d'écritures|flux]].&lt;br /&gt;
* De [[Écritures comptables#Facture-client|facture client]] n'ayant pas de facture associée.&lt;br /&gt;
&lt;br /&gt;
=Imprimer un extrait de compte=&lt;br /&gt;
*Afficher l'extrait de compte souhaité&lt;br /&gt;
*[[Navigateurs#Imprimer-avec-un-navigateur|Imprimer avec la commande du navigateur]]&lt;br /&gt;
&lt;br /&gt;
=Transférer de l'argent=&lt;br /&gt;
Selon les droits accordés aux utilisateurs par la structure, il peut être possible d'effectuer un transfert d'argent depuis son compte vers le compte d'un autre utilisateur en suivant la procédure suivante :&lt;br /&gt;
*'''Planning &amp;gt; Comptes &amp;gt; Actions &amp;gt; Transférer'''&lt;br /&gt;
*Dans le champ '''Compte à créditer''' choisir le nom de la personne concernée&lt;br /&gt;
*Dans le champ '''Montant''', saisir le montant que l'on souhaite transférer&lt;br /&gt;
*Remplir éventuellement le champ '''Commentaires'''&lt;br /&gt;
*Cliquer sur le bouton '''Valider''' : '''Attention''' cette opération est irrévocable et une fois que vous aurez validé, il ne sera pas possible de supprimer le virement. Si vous souhaitez faire annuler l'opération il faudra contacter la personne recevant l'argent pour qu'elle fasse à son tour un transfert sur votre compte.&lt;br /&gt;
&lt;br /&gt;
Si le message d'alerte '''Le solde du compte après opération serait inférieur au minimum autorisé (X) pour un transfert''' apparait alors cela signifie qu'une [[Configuration-de-la-comptabilité#Paramétrage-général-des-comptabilités|restriction sur les soldes]] est en place et que vous ne disposez pas d'un solde suffisant.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14627</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14627"/>
		<updated>2026-08-19T14:56:49Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Affichage des activités réalisées */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque sous-ligne ouvre son propre formulaire au clic :&lt;br /&gt;
*un clic sur la sous-ligne des réservations ouvre le [[#Formulaire-de-réservation|formulaire de réservation]], y compris sur le [[#Créneau-du-quart-d'heure-en-cours|créneau du quart d'heure en cours]] ;&lt;br /&gt;
*un clic sur la sous-ligne des activités réalisées ouvre le formulaire de [[Gestion-des-activités#Saisir-une-activité|saisie d'activité]]. Un clic sur une activité déjà saisie permet de la modifier, sauf si elle est validée.&lt;br /&gt;
&lt;br /&gt;
La sous-ligne des activités réalisées n'est pas concernée par les [[#Positionner-automatiquement-les-activités-d'un-programme-de-formation|programmes de formation]] : même lorsque des programmes de formation sont disponibles, elle conserve son infobulle et son clic direct au lieu d'afficher un menu contextuel.&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneau du quart d'heure en cours==&lt;br /&gt;
Le quart d'heure en cours est repéré dans le planning par un trait orange. Le créneau correspondant ne se comporte pas comme les autres créneaux libres : il sert à indiquer que l'on part en vol et ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] au lieu du [[#Formulaire-de-réservation|formulaire de réservation]]. Son infobulle affiche alors '''SAISIR''' au lieu de '''RÉSERVER'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend de la gestion des activités et de l'[[#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
*'''Activités gérées, une seule ligne affichée''' : le clic ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]].&lt;br /&gt;
*'''Activités gérées, deux lignes affichées''' : chaque ligne conserve son propre formulaire. Le clic ouvre le [[#Formulaire-de-réservation|formulaire de réservation]] sur la ligne des réservations et [[Gestion-des-activités#Saisir-une-activité|le formulaire de saisie d'activité]] sur la ligne des activités réalisées.&lt;br /&gt;
*'''Activités non gérées''', c'est-à-dire lorsque le paramètre [[Paramétrage-des-activités#Présentation|Activités]] est désactivé : le créneau se comporte comme n'importe quel créneau libre et ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Selon le [[Paramétrage-des-activités#Mode|mode de saisie des activités]], le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] s'ouvre sur '''Départ en vol''' en mode ''Ouverture et fermeture'', et sur '''Retour de vol''' en mode ''Fermeture seulement''.&lt;br /&gt;
&lt;br /&gt;
Lorsque des [[#Positionner-automatiquement-les-activités-d'un-programme-de-formation|programmes de formation]] sont disponibles, la ligne des réservations affiche un menu contextuel au lieu d'une infobulle, et l'item qui ouvre le formulaire porte le nom du formulaire réellement ouvert. La ligne des [[#Affichage-des-activités-réalisées|activités réalisées]] conserve son infobulle et son clic direct.&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le [[#Créneau-du-quart-d'heure-en-cours|créneau du quart d'heure en cours]] fait exception.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un [[#Clic|clic sur un créneau du planning]], à l'exception du [[#Créneau-du-quart-d'heure-en-cours|créneau du quart d'heure en cours]].&lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Plateforme-de-d%C3%A9monstration&amp;diff=14626</id>
		<title>Plateforme de démonstration</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Plateforme-de-d%C3%A9monstration&amp;diff=14626"/>
		<updated>2026-08-19T14:12:43Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Effectuer une réservation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Présentation=&lt;br /&gt;
Cette page est un guide permettant de découvrir les fonctionnalités d'OpenFlyers au travers de l'une des [https://openflyers.com/fr/etudes-cas plateformes de démonstration], à savoir la [https://openflyers.com/demo-aero-club plateforme de démonstration pour les aéro-clubs].&lt;br /&gt;
&lt;br /&gt;
Cette plateforme a été paramétrée dans un but &amp;quot;démonstratif&amp;quot;. Son comportement est donc lié à son paramétrage. Chaque plateforme OpenFlyers a un comportement différent en fonction de son paramétrage. C'est l'une des forces de la solution OpenFlyers : être capable de s'adapter à la politique de la structure.&lt;br /&gt;
&lt;br /&gt;
Les procédures présentées ci-dessous nécessitent de se connecter à la plateforme OpenFlyers en utilisant un utilisateur mentionné dans chaque procédure. Le tableau ci-dessous reprend la liste des utilisateurs concernés.&lt;br /&gt;
&lt;br /&gt;
Il est possible d'avoir une recopie individuelle de cette plateforme afin d'éviter la ré-initialisation du paramétrage de la plateforme de démonstration qui a lieu toutes les heures en [[Créer-une-plateforme-OpenFlyers-pour-sa-structure|créant sa propre plateforme]].&lt;br /&gt;
&lt;br /&gt;
==Utilisateurs définis dans la plateforme démonstration==&lt;br /&gt;
Pour tous les utilisateurs, le mot de passe est '''azerty'''.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable centre&amp;quot;&lt;br /&gt;
!Identifiant!!Profils!!Caractéristiques&lt;br /&gt;
|-&lt;br /&gt;
|admini||Admin||Administrateur.&lt;br /&gt;
|-&lt;br /&gt;
|duce||CE DUBONHEUR&amp;lt;br /&amp;gt;Pilote||Pilote à jour de ses validités. Lâcher sur tous les aéronefs, dispose d'un PPL. Membre du CE DUBONHEUR.&lt;br /&gt;
|-&lt;br /&gt;
|faiblecredit||Pilote||Pilote à jour de ses validités. Lâcher sur un aéronef, dispose d'un PPL. Son compte est créditeur de 50 €.&lt;br /&gt;
|-&lt;br /&gt;
|jenseigne||Instructeur||Instructeur disponible du lundi au vendredi de 9h à 18h.&lt;br /&gt;
|-&lt;br /&gt;
|kleweekend||Instructeur||Instructeur disponible uniquement le week-end.&lt;br /&gt;
|-&lt;br /&gt;
|parfait||Pilote||Pilote à jour de ses validités. Lâcher sur tous les aéronefs, dispose d'un PPL. Son médical périme dans moins de 30 jours.&lt;br /&gt;
|-&lt;br /&gt;
|pasrinscris||Pilote||Détient une cotisation périmée qui a échu le 31/12/2013.&lt;br /&gt;
|-&lt;br /&gt;
|veille||Pilote&amp;lt;br /&amp;gt;Secrétaire||Dispose de 2 profils : 1 profil Pilote et 1 profil Secrétaire. Son compte est à 0 €, mais elle dispose du droit de surpasser le fait que le solde de son compte n'est pas suffisant.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Profils définis dans la plateforme démonstration==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable centre&amp;quot;&lt;br /&gt;
!Profils!!Droits&lt;br /&gt;
|-&lt;br /&gt;
|Admin||Peut tout faire.&lt;br /&gt;
|-&lt;br /&gt;
|CE DUBONHEUR||Profil non sélectionnable (=transparent) par les utilisateurs lors de la connexion. Ce profil permet d'identifier les utilisateurs qui appartiennent au CE DUBONHEUR et ainsi de créditer leur compte spécifique &amp;quot;Quota CE&amp;quot; de 1000 € lors du renouvellement de leur cotisation. Par la suite, ce compte &amp;quot;Quota CA&amp;quot; est débité du montant de chaque vol jusqu'à revenir à 0 €. Ensuite, c'est le compte &amp;quot;Principal&amp;quot; qui est débité.&lt;br /&gt;
|-&lt;br /&gt;
|Instructeur||Peut mettre à jour toutes les validités de tous les utilisateurs.&lt;br /&gt;
|-&lt;br /&gt;
|Pilote||Peut réserver pour lui-même, encaisser ses paiements, saisir ses vols.&lt;br /&gt;
|-&lt;br /&gt;
|Secrétaire||Peut créer/modifier la fiche d'un utilisateur. Peut éditer les validités des utilisateurs sauf celles qui concernent les lâchés.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Se connecter=&lt;br /&gt;
==Tenter de se connecter avec une cotisation périmée==&lt;br /&gt;
*Saisir l'identifiant ''pasrinscris''&lt;br /&gt;
*Saisir le mot de passe&lt;br /&gt;
*Valider&lt;br /&gt;
La connexion n'est pas possible car la plateforme est paramétrée pour que la validité à jour '''Cotisation''' soit requise à la connexion. Son absence bloque l'accès.&lt;br /&gt;
&lt;br /&gt;
==Se connecter avec ''parfait''==&lt;br /&gt;
*Saisir l'identifiant ''parfait''&lt;br /&gt;
*Saisir le mode passe&lt;br /&gt;
*Valider&lt;br /&gt;
Une alerte doit s'afficher indiquant que la validité ''visite médiale'' va bientôt périmer.&lt;br /&gt;
&lt;br /&gt;
==Se connecter avec ''faiblecredit''==&lt;br /&gt;
*Saisir l'identifiant ''faiblecredit''&lt;br /&gt;
*Saisir le mode passe&lt;br /&gt;
*Valider&lt;br /&gt;
Une alerte doit s'afficher indiquant que l'utilisateur dispose de droits réduits car le solde de son compte (0 €) est inférieur au solde requis (50 €).&lt;br /&gt;
&lt;br /&gt;
==Se connecter avec ''veille''==&lt;br /&gt;
*Saisir l'identifiant ''veille''&lt;br /&gt;
*Saisir le mode passe&lt;br /&gt;
*Valider&lt;br /&gt;
Une alerte doit s'afficher indiquant que le solde de son compte (0 €) est inférieur au solde requis (50 €). Mais étant donné que l'utilisateur ''veille'' dispose d'un profil ''Secrétaire'' ses droits ne sont pas réduits.&lt;br /&gt;
&lt;br /&gt;
=Réservation=&lt;br /&gt;
La plateforme de démonstration est paramétrée avec un surbooking par ressource réelle. Cela permet d'effectuer des sur-réservations et ainsi de récupérer automatiquement un créneau dans le cas où une réservation s'annule.&lt;br /&gt;
&lt;br /&gt;
Les [[Envoi-des-emails#E-mail-de-notification-de-réservation|e-mails de notification de réservation]] sont indisponibles.&lt;br /&gt;
&lt;br /&gt;
==Effectuer une réservation==&lt;br /&gt;
*[[#Se_connecter_avec_parfait|Se connecter avec ''parfait'']]&lt;br /&gt;
*Cliquer sur un créneau horaire de la ressource aéronef ''F-BAAB'' sur une période non dépassée (après le trait orange symbolisant [[Utilisation-des-réservations-internes-sur-l'interface-web#Créneau-du-quart-d'heure-en-cours|le quart d'heure en cours]]).&lt;br /&gt;
*Cliquer sur le bouton '''Valider'''&lt;br /&gt;
Une réservation d'une durée d'une heure trente doit apparaitre sur le planning de réservation sur la ligne de la ressource ''F-BAAB'' débutant à partir du quart d'heure sélectionné.&lt;br /&gt;
&lt;br /&gt;
==Tenter d'effectuer une réservation avec ''faiblecredit''==&lt;br /&gt;
*[[#Se_connecter_avec_parfait|Se connecter avec ''faiblecredit'']]&lt;br /&gt;
Un clic sur un quart d'heure de réservation n'entraine pas d'affichage du formulaire de réservation car ''faiblecredit'' a un profil réduit qui ne lui permet pas d'effectuer de réservation.&lt;br /&gt;
&lt;br /&gt;
==Annuler une réservation==&lt;br /&gt;
&lt;br /&gt;
=Vol=&lt;br /&gt;
==Saisir un vol pour l'utilisateur ''parfait''==&lt;br /&gt;
==Saisir un vol pour l'utilisateur ''duce''==&lt;br /&gt;
&lt;br /&gt;
=Pointer les encaissements=&lt;br /&gt;
&lt;br /&gt;
=Pointer les vols=&lt;br /&gt;
&lt;br /&gt;
=Factures fournisseurs=&lt;br /&gt;
==[[Gestion des achats#Saisir-une-facture-fournisseur|Saisir une facture fournisseur]]==&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14625</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14625"/>
		<updated>2026-08-19T14:11:28Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Formulaire de réservation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneau du quart d'heure en cours==&lt;br /&gt;
Le quart d'heure en cours est repéré dans le planning par un trait orange. Le créneau correspondant ne se comporte pas comme les autres créneaux libres : il sert à indiquer que l'on part en vol et ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] au lieu du [[#Formulaire-de-réservation|formulaire de réservation]]. Son infobulle affiche alors '''SAISIR''' au lieu de '''RÉSERVER'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend de la gestion des activités et de l'[[#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
*'''Activités gérées, une seule ligne affichée''' : le clic ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]].&lt;br /&gt;
*'''Activités gérées, deux lignes affichées''' : chaque ligne conserve son propre formulaire. Le clic ouvre le [[#Formulaire-de-réservation|formulaire de réservation]] sur la ligne des réservations et [[Gestion-des-activités#Saisir-une-activité|le formulaire de saisie d'activité]] sur la ligne des activités réalisées.&lt;br /&gt;
*'''Activités non gérées''', c'est-à-dire lorsque le paramètre [[Paramétrage-des-activités#Présentation|Activités]] est désactivé : le créneau se comporte comme n'importe quel créneau libre et ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Selon le [[Paramétrage-des-activités#Mode|mode de saisie des activités]], le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] s'ouvre sur '''Départ en vol''' en mode ''Ouverture et fermeture'', et sur '''Retour de vol''' en mode ''Fermeture seulement''.&lt;br /&gt;
&lt;br /&gt;
Lorsque des [[#Positionner-automatiquement-les-activités-d'un-programme-de-formation|programmes de formation]] sont disponibles, la ligne des réservations affiche un menu contextuel au lieu d'une infobulle, et l'item qui ouvre le formulaire porte le nom du formulaire réellement ouvert. La ligne des [[#Affichage-des-activités-réalisées|activités réalisées]] conserve son infobulle et son clic direct.&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le [[#Créneau-du-quart-d'heure-en-cours|créneau du quart d'heure en cours]] fait exception.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un [[#Clic|clic sur un créneau du planning]], à l'exception du [[#Créneau-du-quart-d'heure-en-cours|créneau du quart d'heure en cours]].&lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14624</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14624"/>
		<updated>2026-08-19T14:08:06Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Clic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneau du quart d'heure en cours==&lt;br /&gt;
Le quart d'heure en cours est repéré dans le planning par un trait orange. Le créneau correspondant ne se comporte pas comme les autres créneaux libres : il sert à indiquer que l'on part en vol et ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] au lieu du [[#Formulaire-de-réservation|formulaire de réservation]]. Son infobulle affiche alors '''SAISIR''' au lieu de '''RÉSERVER'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend de la gestion des activités et de l'[[#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
*'''Activités gérées, une seule ligne affichée''' : le clic ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]].&lt;br /&gt;
*'''Activités gérées, deux lignes affichées''' : chaque ligne conserve son propre formulaire. Le clic ouvre le [[#Formulaire-de-réservation|formulaire de réservation]] sur la ligne des réservations et [[Gestion-des-activités#Saisir-une-activité|le formulaire de saisie d'activité]] sur la ligne des activités réalisées.&lt;br /&gt;
*'''Activités non gérées''', c'est-à-dire lorsque le paramètre [[Paramétrage-des-activités#Présentation|Activités]] est désactivé : le créneau se comporte comme n'importe quel créneau libre et ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Selon le [[Paramétrage-des-activités#Mode|mode de saisie des activités]], le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] s'ouvre sur '''Départ en vol''' en mode ''Ouverture et fermeture'', et sur '''Retour de vol''' en mode ''Fermeture seulement''.&lt;br /&gt;
&lt;br /&gt;
Lorsque des [[#Positionner-automatiquement-les-activités-d'un-programme-de-formation|programmes de formation]] sont disponibles, la ligne des réservations affiche un menu contextuel au lieu d'une infobulle, et l'item qui ouvre le formulaire porte le nom du formulaire réellement ouvert. La ligne des [[#Affichage-des-activités-réalisées|activités réalisées]] conserve son infobulle et son clic direct.&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le [[#Créneau-du-quart-d'heure-en-cours|créneau du quart d'heure en cours]] fait exception.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14623</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14623"/>
		<updated>2026-08-19T14:06:15Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Créneaux horaires */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneau du quart d'heure en cours==&lt;br /&gt;
Le quart d'heure en cours est repéré dans le planning par un trait orange. Le créneau correspondant ne se comporte pas comme les autres créneaux libres : il sert à indiquer que l'on part en vol et ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] au lieu du [[#Formulaire-de-réservation|formulaire de réservation]]. Son infobulle affiche alors '''SAISIR''' au lieu de '''RÉSERVER'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend de la gestion des activités et de l'[[#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
*'''Activités gérées, une seule ligne affichée''' : le clic ouvre le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]].&lt;br /&gt;
*'''Activités gérées, deux lignes affichées''' : chaque ligne conserve son propre formulaire. Le clic ouvre le [[#Formulaire-de-réservation|formulaire de réservation]] sur la ligne des réservations et [[Gestion-des-activités#Saisir-une-activité|le formulaire de saisie d'activité]] sur la ligne des activités réalisées.&lt;br /&gt;
*'''Activités non gérées''', c'est-à-dire lorsque le paramètre [[Paramétrage-des-activités#Présentation|Activités]] est désactivé : le créneau se comporte comme n'importe quel créneau libre et ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Selon le [[Paramétrage-des-activités#Mode|mode de saisie des activités]], le [[Gestion-des-activités#Saisir-une-activité|formulaire de saisie d'activité]] s'ouvre sur '''Départ en vol''' en mode ''Ouverture et fermeture'', et sur '''Retour de vol''' en mode ''Fermeture seulement''.&lt;br /&gt;
&lt;br /&gt;
Lorsque des [[#Positionner-automatiquement-les-activités-d'un-programme-de-formation|programmes de formation]] sont disponibles, la ligne des réservations affiche un menu contextuel au lieu d'une infobulle, et l'item qui ouvre le formulaire porte le nom du formulaire réellement ouvert. La ligne des [[#Affichage-des-activités-réalisées|activités réalisées]] conserve son infobulle et son clic direct.&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement du clic sur le créneau du quart d'heure en cours dépend de l'[[Utilisation-des-réservations-internes-sur-l'interface-web#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
*si une seule ligne est affichée (réservations), le clic ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
*si deux lignes sont affichées (réservations / activités), le clic sur la ligne des réservations ouvre le formulaire de réservation et le clic sur la ligne des activités ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
*si les activités sont désactivées dans les paramètres de la structure et qu'une seule ligne est affichée (réservations), le clic ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Plateforme-de-d%C3%A9monstration&amp;diff=14613</id>
		<title>Plateforme de démonstration</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Plateforme-de-d%C3%A9monstration&amp;diff=14613"/>
		<updated>2026-08-11T10:39:50Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Effectuer une réservation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Présentation=&lt;br /&gt;
Cette page est un guide permettant de découvrir les fonctionnalités d'OpenFlyers au travers de l'une des [https://openflyers.com/fr/etudes-cas plateformes de démonstration], à savoir la [https://openflyers.com/demo-aero-club plateforme de démonstration pour les aéro-clubs].&lt;br /&gt;
&lt;br /&gt;
Cette plateforme a été paramétrée dans un but &amp;quot;démonstratif&amp;quot;. Son comportement est donc lié à son paramétrage. Chaque plateforme OpenFlyers a un comportement différent en fonction de son paramétrage. C'est l'une des forces de la solution OpenFlyers : être capable de s'adapter à la politique de la structure.&lt;br /&gt;
&lt;br /&gt;
Les procédures présentées ci-dessous nécessitent de se connecter à la plateforme OpenFlyers en utilisant un utilisateur mentionné dans chaque procédure. Le tableau ci-dessous reprend la liste des utilisateurs concernés.&lt;br /&gt;
&lt;br /&gt;
Il est possible d'avoir une recopie individuelle de cette plateforme afin d'éviter la ré-initialisation du paramétrage de la plateforme de démonstration qui a lieu toutes les heures en [[Créer-une-plateforme-OpenFlyers-pour-sa-structure|créant sa propre plateforme]].&lt;br /&gt;
&lt;br /&gt;
==Utilisateurs définis dans la plateforme démonstration==&lt;br /&gt;
Pour tous les utilisateurs, le mot de passe est '''azerty'''.&lt;br /&gt;
{| class=&amp;quot;wikitable sortable centre&amp;quot;&lt;br /&gt;
!Identifiant!!Profils!!Caractéristiques&lt;br /&gt;
|-&lt;br /&gt;
|admini||Admin||Administrateur.&lt;br /&gt;
|-&lt;br /&gt;
|duce||CE DUBONHEUR&amp;lt;br /&amp;gt;Pilote||Pilote à jour de ses validités. Lâcher sur tous les aéronefs, dispose d'un PPL. Membre du CE DUBONHEUR.&lt;br /&gt;
|-&lt;br /&gt;
|faiblecredit||Pilote||Pilote à jour de ses validités. Lâcher sur un aéronef, dispose d'un PPL. Son compte est créditeur de 50 €.&lt;br /&gt;
|-&lt;br /&gt;
|jenseigne||Instructeur||Instructeur disponible du lundi au vendredi de 9h à 18h.&lt;br /&gt;
|-&lt;br /&gt;
|kleweekend||Instructeur||Instructeur disponible uniquement le week-end.&lt;br /&gt;
|-&lt;br /&gt;
|parfait||Pilote||Pilote à jour de ses validités. Lâcher sur tous les aéronefs, dispose d'un PPL. Son médical périme dans moins de 30 jours.&lt;br /&gt;
|-&lt;br /&gt;
|pasrinscris||Pilote||Détient une cotisation périmée qui a échu le 31/12/2013.&lt;br /&gt;
|-&lt;br /&gt;
|veille||Pilote&amp;lt;br /&amp;gt;Secrétaire||Dispose de 2 profils : 1 profil Pilote et 1 profil Secrétaire. Son compte est à 0 €, mais elle dispose du droit de surpasser le fait que le solde de son compte n'est pas suffisant.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Profils définis dans la plateforme démonstration==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable centre&amp;quot;&lt;br /&gt;
!Profils!!Droits&lt;br /&gt;
|-&lt;br /&gt;
|Admin||Peut tout faire.&lt;br /&gt;
|-&lt;br /&gt;
|CE DUBONHEUR||Profil non sélectionnable (=transparent) par les utilisateurs lors de la connexion. Ce profil permet d'identifier les utilisateurs qui appartiennent au CE DUBONHEUR et ainsi de créditer leur compte spécifique &amp;quot;Quota CE&amp;quot; de 1000 € lors du renouvellement de leur cotisation. Par la suite, ce compte &amp;quot;Quota CA&amp;quot; est débité du montant de chaque vol jusqu'à revenir à 0 €. Ensuite, c'est le compte &amp;quot;Principal&amp;quot; qui est débité.&lt;br /&gt;
|-&lt;br /&gt;
|Instructeur||Peut mettre à jour toutes les validités de tous les utilisateurs.&lt;br /&gt;
|-&lt;br /&gt;
|Pilote||Peut réserver pour lui-même, encaisser ses paiements, saisir ses vols.&lt;br /&gt;
|-&lt;br /&gt;
|Secrétaire||Peut créer/modifier la fiche d'un utilisateur. Peut éditer les validités des utilisateurs sauf celles qui concernent les lâchés.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Se connecter=&lt;br /&gt;
==Tenter de se connecter avec une cotisation périmée==&lt;br /&gt;
*Saisir l'identifiant ''pasrinscris''&lt;br /&gt;
*Saisir le mot de passe&lt;br /&gt;
*Valider&lt;br /&gt;
La connexion n'est pas possible car la plateforme est paramétrée pour que la validité à jour '''Cotisation''' soit requise à la connexion. Son absence bloque l'accès.&lt;br /&gt;
&lt;br /&gt;
==Se connecter avec ''parfait''==&lt;br /&gt;
*Saisir l'identifiant ''parfait''&lt;br /&gt;
*Saisir le mode passe&lt;br /&gt;
*Valider&lt;br /&gt;
Une alerte doit s'afficher indiquant que la validité ''visite médiale'' va bientôt périmer.&lt;br /&gt;
&lt;br /&gt;
==Se connecter avec ''faiblecredit''==&lt;br /&gt;
*Saisir l'identifiant ''faiblecredit''&lt;br /&gt;
*Saisir le mode passe&lt;br /&gt;
*Valider&lt;br /&gt;
Une alerte doit s'afficher indiquant que l'utilisateur dispose de droits réduits car le solde de son compte (0 €) est inférieur au solde requis (50 €).&lt;br /&gt;
&lt;br /&gt;
==Se connecter avec ''veille''==&lt;br /&gt;
*Saisir l'identifiant ''veille''&lt;br /&gt;
*Saisir le mode passe&lt;br /&gt;
*Valider&lt;br /&gt;
Une alerte doit s'afficher indiquant que le solde de son compte (0 €) est inférieur au solde requis (50 €). Mais étant donné que l'utilisateur ''veille'' dispose d'un profil ''Secrétaire'' ses droits ne sont pas réduits.&lt;br /&gt;
&lt;br /&gt;
=Réservation=&lt;br /&gt;
La plateforme de démonstration est paramétrée avec un surbooking par ressource réelle. Cela permet d'effectuer des sur-réservations et ainsi de récupérer automatiquement un créneau dans le cas où une réservation s'annule.&lt;br /&gt;
&lt;br /&gt;
Les [[Envoi-des-emails#E-mail-de-notification-de-réservation|e-mails de notification de réservation]] sont indisponibles.&lt;br /&gt;
&lt;br /&gt;
==Effectuer une réservation==&lt;br /&gt;
*[[#Se_connecter_avec_parfait|Se connecter avec ''parfait'']]&lt;br /&gt;
*Cliquer sur un créneau horaire de la ressource aéronef ''F-BAAB'' sur une période non dépassée (après le trait orange symbolisant [[Utilisation-des-réservations-internes-sur-l'interface-web#Clic|le quart d'heure en court]]).&lt;br /&gt;
*Cliquer sur le bouton '''Valider'''&lt;br /&gt;
Une réservation d'une durée d'une heure trente doit apparaitre sur le planning de réservation sur la ligne de la ressource ''F-BAAB'' débutant à partir du quart d'heure sélectionné.&lt;br /&gt;
&lt;br /&gt;
==Tenter d'effectuer une réservation avec ''faiblecredit''==&lt;br /&gt;
*[[#Se_connecter_avec_parfait|Se connecter avec ''faiblecredit'']]&lt;br /&gt;
Un clic sur un quart d'heure de réservation n'entraine pas d'affichage du formulaire de réservation car ''faiblecredit'' a un profil réduit qui ne lui permet pas d'effectuer de réservation.&lt;br /&gt;
&lt;br /&gt;
==Annuler une réservation==&lt;br /&gt;
&lt;br /&gt;
=Vol=&lt;br /&gt;
==Saisir un vol pour l'utilisateur ''parfait''==&lt;br /&gt;
==Saisir un vol pour l'utilisateur ''duce''==&lt;br /&gt;
&lt;br /&gt;
=Pointer les encaissements=&lt;br /&gt;
&lt;br /&gt;
=Pointer les vols=&lt;br /&gt;
&lt;br /&gt;
=Factures fournisseurs=&lt;br /&gt;
==[[Gestion des achats#Saisir-une-facture-fournisseur|Saisir une facture fournisseur]]==&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Introduction&amp;diff=14612</id>
		<title>Introduction</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Introduction&amp;diff=14612"/>
		<updated>2026-08-11T10:33:39Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* La gestion des réservations avec OpenFlyers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
OpenFlyers est un logiciel de gestion d'activité qui permet de suivre l'ensemble des phases liées aux activités d'une structure qui propose des services à destination de personnes (sociétés de location, organismes de formation, sociétés de services, etc.). Ces personnes sont appelées dans OpenFlyers les &amp;quot;utilisateurs&amp;quot;. Il peut s'agir de clients, de membres, d'adhérents, de salariés, etc. Elles ont la possibilité d'interagir avec le logiciel OpenFlyers qui sert d'outil de partage de l'information :&lt;br /&gt;
*planning&lt;br /&gt;
*suivi de l'activité&lt;br /&gt;
*comptes utilisateurs&lt;br /&gt;
&lt;br /&gt;
OpenFlyers a été conçu pour répondre à un [[Bien débuter avec OpenFlyers#Workflow|workflow]] défini et qui correspond aux enchainements généralement constatés des actions au sein des structures proposant des services.&lt;br /&gt;
&lt;br /&gt;
=La gestion des réservations avec OpenFlyers=&lt;br /&gt;
OpenFlyers comporte un outil de plannification. Il s'agit d'un planning qui permet de visualiser les réservations de ressources matérielles et humaines. Typiquement, il peut s'agir du triptyque : véhicule, formateur, élève.&lt;br /&gt;
&lt;br /&gt;
[[File:OF-intro-planning.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
Selon les droits attribués aux profils des utilisateurs, ces derniers ont la possibilité d'accéder en mode consultation ou en mode édition.&lt;br /&gt;
&lt;br /&gt;
Lorsque les utilisateurs ont le droit d'effectuer des réservations, il leur suffit de [[Utilisation-des-réservations-internes-sur-l'interface-web#Clic|cliquer]] sur une case correspondant à un quart d'heure du planning pour effectuer leur réservation. Un formulaire de réservation s'affiche alors afin de leur permettre de compléter les informations nécessaires à la réservation :&lt;br /&gt;
&lt;br /&gt;
[[File:OF-intro-reserver.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
=La gestion d'activité avec OpenFlyers=&lt;br /&gt;
==Génération du chiffre d'affaire et gestion des encaissements clients==&lt;br /&gt;
L'une des fonctionnalités d'OpenFlyers est de gérer les comptes comptables des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Le processus chronologique est le suivant :&lt;br /&gt;
===saisie de l'activité===&lt;br /&gt;
Il s'agit typiquement de la saisie des heures de vols.&lt;br /&gt;
&lt;br /&gt;
Cette saisie peut se faire directement par l'utilisateur final ou être centralisée au sein d'un service dédié (secrétariat par exemple). &lt;br /&gt;
&lt;br /&gt;
Cependant, nous recommandons fortement de déléguer la saisie à l'utilisateur final. Cela présente 2 avantages :&lt;br /&gt;
*Renforcement de la qualité de l'action de contrôle effectuée en aval par un service centralisé (secrétariat par exemple). En effet, il a été constaté que lorsque la personne qui saisit l'activité est également la personne qui contrôle la saisie, ce contrôle est effectué avec moins d'assiduité pour des raisons qui relèvent des [[Wikipedia-fr:Facteurs_humains|facteurs humains]] : une personne aura tendance à se faire confiance et à moins remettre en cause sa propre action. De ce fait, elle détectera moins facilement ses propres erreurs de saisie. C'est la raison pour laquelle il est judicieux de faire effectuer ce contrôle par une autre personne.&lt;br /&gt;
*Délégation à l'utilisateur (qui peut être le client) et ainsi une diminution des tâches récurrentes pour la structure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les heures de vols, cette saisie se fait grâce au menu '''Planning &amp;gt; Activités &amp;gt; Saisir''' ou grâce à '''Saisir un vol''' qui apparait dans le menu contextuel en survolant une réservation. L'utilisateur remplit ainsi un formulaire de saisie qui peut être personnalisé selon les règles et la politique de la structure :&lt;br /&gt;
&lt;br /&gt;
[[File:FOF-intro-saisie-activite.jpg|1050px]]&lt;br /&gt;
&lt;br /&gt;
Dès qu'un vol est saisi &amp;quot;fermé&amp;quot; une facture pro-format, un devis ou un bon de commande est généré et les écritures comptables qui en découlent sont automatiquement générées. Ces écritures ne sont pas définitives et peuvent être modifiées en modifiant la saisie du vol. C'est l'équivalent du ''Brouillard'' existant dans les logiciels de comptabilité. Elles apparaissent en vert italique sur les relevés de comptes, les carnets de routes, carnets de vols et sur les listes des vols. La personne qui a saisit le vol peut le reprendre et les personnes disposant des droits de gestion peuvent modifier cette saisie.&lt;br /&gt;
&lt;br /&gt;
Si des anomalies sont détectées lors de la saisie, alors des alertes sont affichées à l'utilisateur demandant à l'utilisateur de compléter/corriger sa saisie. Cela peut également être le cas pour des champs dont la saisie est indispensable et qui n'auraient pas été remplis.&lt;br /&gt;
&lt;br /&gt;
'''Conseil OpenFlyers :'''&lt;br /&gt;
*Dans le cas où les vols sont saisis directement par les pilotes, nous recommandons de demander aux pilotes de saisir d'abord leur vol dans OpenFlyers et ensuite de recopier ce qui est saisit dans OpenFlyers sur le carnet de route. Ainsi, on est sûr que les 2 informations coïncideront et que les calculs faits par l'application OpenFlyers seront en conformité avec les calculs qui seraient fait au vu du carnet de route qui est le seul document officiel.&lt;br /&gt;
&lt;br /&gt;
====Modes de saisie ouverture+fermeture ou fermeture seule====&lt;br /&gt;
Il existe dans OpenFlyers deux modes de gestion de l'activité :&lt;br /&gt;
*mode ouverture+fermeture = on ouvre une activité avant de la débuter et on la referme après l'avoir terminée&lt;br /&gt;
*mode fermeture seule = on ferme uniquement l'activité une fois qu'elle est terminée&lt;br /&gt;
&lt;br /&gt;
Si on choisit la &amp;lt;i&amp;gt;fermeture des vols seulement&amp;lt;/i&amp;gt; le pilote devra remplir à l'issue de son vol un formulaire qui fait office de carnet de route de l'aéronef ; il y renseigne le même type d'informations, entre autres les index de départ et d'arrivée, ce qui permettra à Openflyers de calculer le coût du vol.&lt;br /&gt;
&lt;br /&gt;
Si on choisit &amp;lt;i&amp;gt;ouverture et fermeture des vols&amp;lt;/i&amp;gt; on doit lors de la prise de l'aéronef renseigner un formulaire où l'on précise la durée estimée, la destination ainsi que d'autres informations.&lt;br /&gt;
L'ouverture du vol présente 3 avantages :&lt;br /&gt;
*Alerter le pilote avant son départ en cas de validités expirées, de solde de compte insuffisant&lt;br /&gt;
*Permettre d'avoir un &amp;quot;mini-plan de vol&amp;quot; en connaissant où à prévu d'aller le pilote, pour combien de temps et avec combien de personnes&lt;br /&gt;
*Permettre aux autres utilisateurs de savoir si une ressource est réellement disponible même lorsqu'elle n'a pas été réservée au préalable&lt;br /&gt;
En effet, lorsqu'un vol est ouvert, un créneau bleu apparait sur le planning de réservation et le fond du rectangle de l'aéronef correspondant apparait également sur fond bleu&lt;br /&gt;
&lt;br /&gt;
L'ouverture du vol permet enfin de gérer l'armoire à clef OpenFlyers et ainsi de libérer ou non la clef en fonction des nombreux critères (solde du compte, qualification à jour...)&lt;br /&gt;
&lt;br /&gt;
===Saisie des encaissements===&lt;br /&gt;
Les encaissements peuvent être saisis à tout moment et de façon indépendante de l'activité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tout comme pour l'activité, la saisie peut être autorisée aux utilisateurs finaux ou restreinte à certaines personnes en charge de la gestion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette saisie s'effectue côté planning, par le biais du menu '''Planning &amp;gt; Comptes &amp;gt; Actions &amp;gt; Approvisionner'''.&lt;br /&gt;
&lt;br /&gt;
[[File:OF-intro-encaissement.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
Toutes les écritures saisies sont modifiables comme pour les vols sauf dans le cas d'un paiement par l'intermédiaire d'un Terminal de Paiement Électronique virtuel (paiement en ligne). En effet, dans ce dernier cas, la validation par la banque du numéro de carte bancaire vaut acceptation par celle-ci et confirmation du montant débité sur le compte attaché à la carte bancaire. Il n'y a donc pas nécessité de valider à posteriori cette écriture comptable. C'est même tout son intérêt : elle permet d'automatiser le processus d'encaissement.&lt;br /&gt;
&lt;br /&gt;
===[[Gestion-des-activités#Valider-une-activité|Validation de la saisie de l'activité]]===&lt;br /&gt;
&lt;br /&gt;
===Validation de la saisie des encaissements===&lt;br /&gt;
La validation de la saisie encaissements n'a pas lieu dans le cas d'un paiement par carte bancaire sur un Terminal de Paiement Électronique virtuel (paiement en ligne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dans les autres cas, la validation s'effectue dans '''Gestion &amp;gt; Comptes &amp;gt; Pointer &amp;gt; xxx''' où il faut remplacer xxx par le type de paiement dont on souhaite valider les écritures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Conseils OpenFlyers :'''&lt;br /&gt;
*Le pointage des encaissements doit se faire au vu de ces derniers : on pointe les chèques en contrôlant les chèques.&lt;br /&gt;
*Une fois le pointage effectué dans OpenFlyers et après appuie sur la touche '''Editer le bordereau de remise''', la personne en charge du pointage voit apparaitre le bordereau de remise. Il est important qu'à ce moment là, le bordereau soit imprimé 2 fois : une fois pour la remise en banque et une fois pour archivage.&lt;br /&gt;
&lt;br /&gt;
==Consultation des écritures==&lt;br /&gt;
Un utilisateur peut retrouver l'ensemble des écritures qui concernent son compte depuis le côté Planning en cliquant sur la zone en haut et à droite du planning où apparait le solde de son compte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il retrouve alors l'ensemble des écritures qui impactent son compte :&lt;br /&gt;
*les factures&lt;br /&gt;
*les paiements qu'il a effectué&lt;br /&gt;
Ces écritures sont :&lt;br /&gt;
*soit en vert italique pour indiquer qu'elles peuvent être modifiées : il a alors la possibilité de les modifier lui-même (sous réserve qu'il dispose des droits) à l'aide de la fonction '''modifier''' qui correspond à l'icône symbolisant un '''crayon''' présente dans la colonne '''action''' à droite de son relevé de comptes.&lt;br /&gt;
*soit en noir pour indiquer qu'elles sont définitives&lt;br /&gt;
&lt;br /&gt;
=Le suivi et l'enregistrement de trajectoire avec OpenFlyers et Charterware=&lt;br /&gt;
OpenFlyers se couple à la solution Charterware pour l'enregistrement automatique des vols et la récupération des trajectoires.&lt;br /&gt;
&lt;br /&gt;
Voir https://openflyers.com/fr/fonctionnalites/recuperation-automatique-des-vols-avec-charterware&lt;br /&gt;
&lt;br /&gt;
=[[Bien débuter avec OpenFlyers|Bien débuter avec OpenFlyers]]=&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Configuration-des-r%C3%A9servations-internes&amp;diff=14611</id>
		<title>Configuration des réservations internes</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Configuration-des-r%C3%A9servations-internes&amp;diff=14611"/>
		<updated>2026-08-11T10:18:56Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Affichage possible des activités réalisées dans le planning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Cette page présente le paramétrage du module de réservations interne.&lt;br /&gt;
&lt;br /&gt;
=Général=&lt;br /&gt;
La gestion du planning se fait en allant dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Réservations internes''' :&lt;br /&gt;
[[Image:014_parametrage_gestion_reservation.png|1500px|center|gestion des réservations]]&lt;br /&gt;
&lt;br /&gt;
==Mode de réservation==&lt;br /&gt;
===Réservations standards===&lt;br /&gt;
Cette option permet de faire des réservations classiques, c'est-à-dire que l'on réserve directement une ressource en fonction de son nom (exemple : son immatriculation), cela ne diffère en rien des réservations &amp;quot;papier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une ressource réservée en mode standard est immobilisée, les réservations existantes sur cette ressource sont supprimées.&lt;br /&gt;
&lt;br /&gt;
L'utilisateur est averti avant la confirmation de l'opération.&lt;br /&gt;
&lt;br /&gt;
===Réservation par type de ressource===&lt;br /&gt;
La réservation par type permet non pas de choisir une ressource particulière mais un type de ressource. Dans les structures aéronautiques possédant plusieurs aéronefs d'une même famille (plusieurs DR400-120 par exemple) on choisit alors de réserver un DR400-120 parmi ceux de la flotte. Le moteur de réservation sélectionne l'immatriculation en fonction de la disponibilité des appareils (entretien mécanique par exemple) dans l'ordre d'apparition sur le planning.&lt;br /&gt;
&lt;br /&gt;
La réservation par type comporte un double intérêt :&lt;br /&gt;
*pouvoir donner la priorité à une ressource par rapport à une autre et ainsi pousser telle ou telle ressource à être plus utilisée en fonction des souhaits de programmation (pour les opérations de maintenance par exemple) ;&lt;br /&gt;
*créer une ou plusieurs ressources fictives supplémentaires pour mettre en place le surbooking.&lt;br /&gt;
&lt;br /&gt;
Si des ressources de même type sont indisponibles, que ce soit parce qu'elles sont réservées ou immobilisées, alors c'est la 1ère ressource disponible qui est choisie par le moteur de réservation.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une ressource est immobilisée, les réservations ne sont pas supprimées. Elles sont automatiquement déplacées vers la prochaine ressource disponible du même type, selon le classement de ressources d'un même type.&lt;br /&gt;
Si aucune autre ressource du même type n'est disponible, la réservation concernée est supprimée.&lt;br /&gt;
&lt;br /&gt;
Il est possible de modifier l'ordre de tri des ressources à n'importe quel moment dans '''Gestion › Ressources › Actives'''.&lt;br /&gt;
&lt;br /&gt;
'''Attention :''' dans le cas où la structure exploite plusieurs ressources d'un même type alors les réservations remontent toujours à la première ressource disponible du même type dans l'ordre d'affichage du planning.&lt;br /&gt;
&lt;br /&gt;
Exemple : une structure aéronautique dispose de 2 avions de type DR420. Si les 2 avions sont identifiés avec un même type &amp;quot;DR420&amp;quot;, alors les réservations seront faites toujours en priorité sur le DR420 positionné en premier sur le planning.&lt;br /&gt;
&lt;br /&gt;
Si ce comportement n'est ponctuellement pas souhaité, il faut qu'un utilisateur disposant du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]] coche la case [[Utilisation-des-réservations-internes-sur-l'interface-web#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] sur le formulaire de réservation pour [[Utilisation-des-réservations-internes-sur-l'interface-web#Réservation-épinglée|épingler la réservation]] concernée et ainsi éviter qu'elle ne soit attribuée à la première ressource de disponible.&lt;br /&gt;
&lt;br /&gt;
Si ce comportement n'est jamais souhaité, il faut créer 2 types de ressources (DR420-1 et DR420-2 par exemple) et associer un avion au type DR420-1 et l'autre avion au type DR420-2.&lt;br /&gt;
&lt;br /&gt;
==Code couleur==&lt;br /&gt;
Permet de définir quelle code couleur doit être utilisée pour l'affichage des réservations :&lt;br /&gt;
*Par utilisateur&lt;br /&gt;
:deux champs de sélection s'affichent :&lt;br /&gt;
:*'''Couleur par défaut pour les réservations qui ne concernent pas l'utilisateur'''&lt;br /&gt;
::Il s'agit d'une paire de couleurs [Couleur claire (réservation en solo) / couleur foncée (réservation en instruction)] utilisé pour afficher les réservations qui ne concernent pas l'utilisateur connecté.&lt;br /&gt;
:*'''Couleur par défaut pour les réservations qui concernent l'utilisateur'''&lt;br /&gt;
::Il s'agit d'une paire de couleurs [Couleur claire (réservation en solo) / couleur foncée (réservation en instruction)] utilisé pour afficher les réservations qui concernent l'utilisateur connecté.&lt;br /&gt;
:Il est possible de configurer [[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|une paire de couleurs par utilisateur]].&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-couleur-à-un-type-d'activité|Par type d'activité]]&lt;br /&gt;
&lt;br /&gt;
==Affichage possible des activités réalisées dans le planning==&lt;br /&gt;
Permet aux utilisateurs disposant du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]] d'activer le module d'[[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-activités-réalisées|Affichage des activités réalisées]] sur la page de réservation.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'[[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-activités-réalisées|affichage des activités réalisées]] est activé, le [[Utilisation-des-réservations-internes-sur-l'interface-web#Clic|clic]] sur le créneau du quart d'heure en cours dépend de la ligne sélectionnée.&lt;br /&gt;
&lt;br /&gt;
==Réservation multi-ressources==&lt;br /&gt;
Cette fonctionnalité permet d'autoriser à un utilisateur de réserver plusieurs ressources sur des créneaux horaires qui se chevauchent.&lt;br /&gt;
&lt;br /&gt;
==Affichage du nom des ressources dans le planning==&lt;br /&gt;
Ce paramétrage permet d'afficher ou cacher le nom des ressources dans le planning. Cela permet de diminuer la taille verticale des lignes du planning et de cacher ces noms lorsqu'ils ne sont pas nécessaires.&lt;br /&gt;
&lt;br /&gt;
==Afficher les alertes non bloquantes lors des glisser-déposer==&lt;br /&gt;
Ce paramétrage permet d'afficher les alertes non bloquantes lors des [[Utilisation-des-réservations-internes-sur-l%27interface-web#Glisser-déposer-des-réservations|glisser-déposer des réservations]] sur le planning.&lt;br /&gt;
&lt;br /&gt;
==Autoriser la suppression partielle d'éléments de réservations== &lt;br /&gt;
Ce paramétrage permet d'afficher l'action '''Annuler cet élément du groupe de réservations''' lorsqu'un groupe de réservations est lié. Il autorise ainsi la suppression individuelle d'un élément au sein d'un groupe de réservations, sans devoir annuler l'ensemble du groupe.&lt;br /&gt;
&lt;br /&gt;
==Amplitude du planning==&lt;br /&gt;
===Heure de début et fin (fuseau X)===&lt;br /&gt;
Permet de définir la plage horaire du planning de réservation dans le fuseau horaire de la structure.&lt;br /&gt;
&lt;br /&gt;
'''Remarque :''' les minutes proposées doivent être des multiples de 15 (00, 15, 30, 45).&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
==Durée minimale d'une réservation==&lt;br /&gt;
Permet de définir la durée minimale d'une réservation.&lt;br /&gt;
&lt;br /&gt;
La durée maximale d'une réservation peut se définir pour chaque type de ressource.&lt;br /&gt;
&lt;br /&gt;
==Durée par défaut d'une réservation==&lt;br /&gt;
Permet de définir la durée par défaut.&lt;br /&gt;
&lt;br /&gt;
==Interdire d'effectuer une réservation débutant dans moins de==&lt;br /&gt;
Permet d'empêcher d'effectuer une réservation débutant dans moins de X temps. Cette fonctionnalité est notamment utile en réservation par type lorsque la distribution des ressources réelles par ligne de planning est faite le matin pour la journée. Elle est également utile lorsque la facturation se fait la veille au vu des réservations du lendemain.&lt;br /&gt;
&lt;br /&gt;
== Interdire la modification ou la suppression d'une réservation débutant dans moins de ==&lt;br /&gt;
Permet d'empêcher la modification ou la suppression d'une réservation lorsque son heure de début débute dans moins de X temps.&lt;br /&gt;
&lt;br /&gt;
Il génère l'[[Utilisation-des-réservations-internes-sur-l'interface-web#Alerte-de-délai-minimum-pour-modifier/supprimer-une-réservation|alerte de délai minimum pour modifier/supprimer une réservation]].&lt;br /&gt;
&lt;br /&gt;
Lorsque ce paramètre est activé, il est surpassable avec le droit [[Gestion-des-profils#Surpasser-l'interdiction-de-modifier-ou-supprimer-une-réservation-débutant-dans-moins-de-X-temps|Surpasser l'interdiction de modifier ou supprimer une réservation débutant dans moins de X temps]].&lt;br /&gt;
&lt;br /&gt;
==Limitation dans le temps des réservations==&lt;br /&gt;
Permet de limiter dans le temps les réservations.&lt;br /&gt;
&lt;br /&gt;
==Limitation du nombre de réservations==&lt;br /&gt;
Permet de limiter le nombre de réservations par utilisateur.&lt;br /&gt;
&lt;br /&gt;
=Champs visibles=&lt;br /&gt;
Permet de définir les champs visibles dans le formulaire de réservation :&lt;br /&gt;
*Même jour&lt;br /&gt;
*Lieu de départ&lt;br /&gt;
*Lieu d'arrivée&lt;br /&gt;
&lt;br /&gt;
Les lieux cochés sont ainsi définis avec une valeur par défaut lorsqu'un vol est entré à partir d'une réservation.&lt;br /&gt;
&lt;br /&gt;
;Saisie de la destination&lt;br /&gt;
Ce champ n'est disponible que si le champ '''Lieu d'arrivée''' est activé.&lt;br /&gt;
&lt;br /&gt;
Permet de demander à l'utilisateur d'indiquer sa destination et ce en fonction de la durée de sa réservation.&lt;br /&gt;
&lt;br /&gt;
Lorsque le champ '''Lieu d'arrivée''' est désactivé, la valeur enregistrée pour '''Saisie de la destination''' est vidée.&lt;br /&gt;
&lt;br /&gt;
=Alerte sur le potentiel=&lt;br /&gt;
&lt;br /&gt;
Cette section ne s'affiche que lorsque la [[Paramétrage-des-activités#Gestion-des-potentiels|gestion des potentiels]] est activée.&lt;br /&gt;
&lt;br /&gt;
;Alerter sur le potentiel estimé restant&lt;br /&gt;
Lorsqu'il est activé, permet de vérifier le potentiel restant et [[Utilisation-des-réservations-internes-sur-l'interface-web#Potentiel-estimé-restant-insuffisant|déclencher une alerte]] si celui-ci est inférieur au seuil défini lors d'une réservation.&lt;br /&gt;
&lt;br /&gt;
;Réservations débutant dans moins de&lt;br /&gt;
Indique le délai (en jours ou semaines) avant le début des réservations pour laquelle l'alerte sur le potentiel estimé restant doit être déclenchée. Par exemple, '''7 jours''' déclenche l'alerte pour les réservations commençant dans moins d'une semaine.&lt;br /&gt;
&lt;br /&gt;
;Seuil d'alerte&lt;br /&gt;
Définit le niveau minimal de potentiel estimé restant pour lequel l'alerte sera envoyée. Si le potentiel estimé tombe en dessous de ce seuil, une alerte est générée.&lt;br /&gt;
&lt;br /&gt;
==[[Paramétrage-des-validités#Paramétrer-le-contrôle-des-validités-pour-les-activités-ou-les-réservations|Paramétrage général du contrôle des validités pour les réservations]]==&lt;br /&gt;
&lt;br /&gt;
=Sélections par défaut=&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
Permet de définir le type d'activité à cocher par défaut :&lt;br /&gt;
* lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place sur le [[Utilisation-des-réservations-internes-sur-l%27interface-web#Formulaire-de-réservation|formulaire de réservation de l'ancienne interface]]&lt;br /&gt;
* lors d'une nouvelle réservation sur le [[Utilisation-des-réservations-internes-sur-l%27appli-mobile#Tutoriel-vidéo|planning de la nouvelle interface]]&lt;br /&gt;
&lt;br /&gt;
Pour définir le type :&lt;br /&gt;
* Aller dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Planning'''&lt;br /&gt;
* Champ '''Type d'activité par défaut''' : Sélectionner le type d'activité&lt;br /&gt;
* Cliquer sur '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut pour la seconde place (ancienne interface)==&lt;br /&gt;
Permet de définir le type d'activité à cocher par défaut lorsqu'on sélectionne une personne en seconde place sur le [[Utilisation-des-réservations-internes-sur-l%27interface-web#Formulaire-de-réservation|formulaire de réservation de l'ancienne interface]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour définir le type :&lt;br /&gt;
* Aller dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Planning'''&lt;br /&gt;
* Champ '''Type d'activité par défaut pour la seconde place (ancienne interface)''' : Sélectionner le type d'activité&lt;br /&gt;
* Cliquer sur '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
=Règles de saisies XML=&lt;br /&gt;
Les règles de saisie sont utilisées, pour le moment, uniquement par le moteur de réservation pour construire l'affichage des champs du formulaire de réservation et pour vérifier, après la saisie d'une réservation, que les données saisies respectent bien les règles de saisie.&lt;br /&gt;
&lt;br /&gt;
Elles sont écrites en [[Wikipedia-fr:Extensible_Markup_Language|XML]]. cf. l'exemple de règles de saisie ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Le moteur de vérification des règles s'enclenche dès qu'une réservation n'est plus &amp;quot;nue&amp;quot;, c'est à dire lorsqu'au moins un élément est renseigné (activité, ressource, etc.). Alors il vérifie quelles sont les règles compatibles et en déduit les contenus possibles dans les champs de saisie de l'interface utilisateur.&lt;br /&gt;
&lt;br /&gt;
La compatibilité d'une règle se détermine '''par restriction''' en vérifiant dans cet ordre les informations suivantes :&lt;br /&gt;
#Activités&lt;br /&gt;
#Ressources&lt;br /&gt;
#Profils&lt;br /&gt;
#Places&lt;br /&gt;
&lt;br /&gt;
Pour chaque information, le moteur regarde si elle est renseignée. Si ce n'est pas le cas alors il passe à l'information suivante. Par exemple s'il n'y a pas encore d'activité de saisie alors il ne vérifie pas ce point-là dans la règle.&lt;br /&gt;
&lt;br /&gt;
Pour les activités et les ressources, il regarde les règles qui acceptent celles renseignées. S'il y a des règles qui pose problème alors elles sont rejetées.&lt;br /&gt;
&lt;br /&gt;
Pour les profils ce sont les personnes qui sont étudiées et ce de deux manières différentes selon si sur la saisie il y a une ressource de renseignée ou non.&lt;br /&gt;
*Lorsqu'il y a une ressource de renseignée, le fonctionnement est similaire aux autres informations. le moteur regarde pour toutes les personnes renseignées si sur la place où elles sont, elles ont au moins un profil valide. Si une personne n'a aucun profil pour la place où il est alors la règle est rejetée.&lt;br /&gt;
*Lorsqu'il n'y a pas de ressource le fonctionnement est différent. Au lieu de faire par restriction, le moteur va faire '''par ajout'''. C'est-à-dire qu'au lieu de dire &amp;quot;il ne faut que des pilotes&amp;quot;, il va dire &amp;quot;je veux au moins un pilote&amp;quot;. Pour ce faire il va regarder les profils de chaque personne. S'il trouve une personne avec un profil valide, il accepte la règle. Si aucune des personnes ne correspond, il va faire une seconde vérification au niveau des places. Si pour cette règle l'une des places n'est pas définie, il considère que les personnes présentes vont potentiellement aller sur cette place et il ne rejette pas la règle. Par contre, si toutes les places sont définies et qu'aucune des personnes ne correspond alors la règle est rejetée.&lt;br /&gt;
&lt;br /&gt;
Pour les places, il vérifie qu'il n'y a pas trop de monde. Comme pour les profils il y a deux manières de les étudier en fonction de s'il y a une ressource ou non.&lt;br /&gt;
*Lorsqu'il y a une ressource, il va regarder pour chaque place si le nombre de personnes autorisées n'est pas dépassé. Si sur l'une des places le nombre est dépassé alors la règle est rejetée. Cependant, si le nombre est atteint mais pas dépassé alors la règle n'est pas rejetée.&lt;br /&gt;
*Lorsqu'il n'y a pas de ressource, il va parcourir chaque place pour compter le nombre total de personnes autorisées pour cette règle. Si le nombre est dépassé alors la règle est rejetée. Comme précédemment si le nombre est simplement atteint alors la règle n'est pas rejetée.&lt;br /&gt;
&lt;br /&gt;
Si pour chaque information saisie, la règle est compatible alors elle est conservée.&lt;br /&gt;
&lt;br /&gt;
Pour qu'une saisie soit valide, il faut qu'il existe au moins une règle de conservée, c'est à dire de compatible.&lt;br /&gt;
&lt;br /&gt;
;Exemple de règles de saisie&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ruleList&amp;gt;&lt;br /&gt;
    &amp;lt;rule&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des activités autorisées et requises --&amp;gt;&lt;br /&gt;
        &amp;lt;activityTypeList needs=&amp;quot;bookAlone&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;1&amp;lt;/activityType&amp;gt; &amp;lt;!-- Local --&amp;gt;&lt;br /&gt;
        &amp;lt;/activityTypeList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des ressources autorisées --&amp;gt;&lt;br /&gt;
        &amp;lt;resourceList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;1&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-001 --&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;2&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-002 --&amp;gt;&lt;br /&gt;
        &amp;lt;/resourceList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Définition des places --&amp;gt;&lt;br /&gt;
        &amp;lt;placeList&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;0&amp;quot;  minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;1&amp;quot; needs=&amp;quot;bookAnyone&amp;quot;&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;2&amp;lt;/profile&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
        &amp;lt;/placeList&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des activités autorisées et requises --&amp;gt;&lt;br /&gt;
        &amp;lt;activityTypeList needs=&amp;quot;*(bookAlone)(bookWithInstr)&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;1&amp;lt;/activityType&amp;gt; &amp;lt;!-- Local --&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;2&amp;lt;/activityType&amp;gt; &amp;lt;!-- Instruction --&amp;gt;&lt;br /&gt;
        &amp;lt;/activityTypeList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des ressources autorisées --&amp;gt;&lt;br /&gt;
        &amp;lt;resourceList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;*&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-001, F-002, F-00X --&amp;gt;&lt;br /&gt;
        &amp;lt;/resourceList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Définition des places --&amp;gt;&lt;br /&gt;
        &amp;lt;placeList&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;0&amp;quot;  minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;!-- Pilote--&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;1&amp;lt;/profile&amp;gt; &amp;lt;!-- Elève --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;2&amp;lt;/profile&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;1&amp;quot; minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;!-- Instructeur --&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;4&amp;lt;/profile&amp;gt; &amp;lt;!-- Instructeur --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
        &amp;lt;/placeList&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule&amp;gt;...&amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/ruleList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==attribut needs==&lt;br /&gt;
L'attribut needs peut être utilisé pour les éléments :&lt;br /&gt;
*activityTypeList&lt;br /&gt;
*place&lt;br /&gt;
&lt;br /&gt;
Il contient un ou plusieurs droits qui sont requis par l'utilisateur effectuant la saisie pour que la règle puisse s'appliquer.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il n'y a qu'un droit de requis, il faut écrire ''needs=&amp;quot;nomDuDroit&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a plusieurs droits possibles, un seul étant requis, il faut commencer par le signe * puis lister chaque droit en l'entourant de parenthèses : ''needs=&amp;quot;*(bookAlone)(bookWithInstr)''.&lt;br /&gt;
&lt;br /&gt;
==Capacité maximale autorisée==&lt;br /&gt;
La taille maximale autorisée pour les règles de saisie XML est de '''16 Mo'''.  &lt;br /&gt;
Lors de la création d'un type d'activité ou lors de la modification manuelle depuis '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Réservations internes''',  si la taille des règles de saisie XML dépasse cette limite, un message d'alerte s'affiche indiquant que les règles de saisie XML sont saturées.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre ce problème, il est conseillé de vérifier le contenu XML et d'identifier d'éventuelles données obsolètes afin de les supprimer et d'alléger le fichier.  &lt;br /&gt;
Si cela ne suffit pas, il est recommandé de contacter OpenFlyers pour discuter de la possibilité d'augmenter la taille du champ.&lt;br /&gt;
&lt;br /&gt;
==ruleList==&lt;br /&gt;
Élément racine de la structure XML ne peut contenir comme élément enfant que des éléments &amp;quot;rule&amp;quot; qui correspondent, chacun, à une règle.&lt;br /&gt;
&lt;br /&gt;
Il n'y pas d'attribut possible.&lt;br /&gt;
&lt;br /&gt;
===rule===&lt;br /&gt;
Définit une règle.&lt;br /&gt;
&lt;br /&gt;
Les éléments possibles sont :&lt;br /&gt;
*formulaList&lt;br /&gt;
*activityTypeList&lt;br /&gt;
*resourceList&lt;br /&gt;
*placeList&lt;br /&gt;
&lt;br /&gt;
Il n'y a pas d'attribut possible.&lt;br /&gt;
&lt;br /&gt;
Chaque règle définit les types d'activités, types de ressources et places qui la rendent compatible.&lt;br /&gt;
&lt;br /&gt;
L'exemple suivant définit une règle qui autorise une saisie pour le type d'activité ''Local'', les types de ressources ''F-001'' ou ''F-002'' et pour laquelle il faut exactement 1 utilisateur avec le profil ''Pilote'' à la place 0. Le statut attribué sera celui de numéro 1. De plus, La personne qui fait la réservation doit avoir le droit &amp;quot;bookAlone&amp;quot; et si elle dispose du droit &amp;quot;bookAnyone&amp;quot; alors elle verra en plus la liste des utilisateurs compatibles avec cette règle pour lui permettre d'en choisir une : &lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;rule&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des activités autorisées et requises --&amp;gt;&lt;br /&gt;
        &amp;lt;activityTypeList needs=&amp;quot;bookAlone&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;1&amp;lt;/activityType&amp;gt; &amp;lt;!-- Local --&amp;gt;&lt;br /&gt;
        &amp;lt;/activityTypeList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des ressources autorisées --&amp;gt;&lt;br /&gt;
        &amp;lt;resourceList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;1&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-001 --&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;2&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-002 --&amp;gt;&lt;br /&gt;
        &amp;lt;/resourceList&amp;gt;&lt;br /&gt;
         &amp;lt;!-- Définition des places --&amp;gt;&lt;br /&gt;
        &amp;lt;placeList&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;0&amp;quot;  minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;1&amp;quot; needs=&amp;quot;bookAnyone&amp;quot;&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
                 &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;2&amp;lt;/profile&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
        &amp;lt;/placeList&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====formulaList====&lt;br /&gt;
Contient la liste des formules que la règle doit respecter au travers des éléments ''formula''.&lt;br /&gt;
&lt;br /&gt;
=====formula=====&lt;br /&gt;
Doit contenir les attributs :&lt;br /&gt;
*''action'' : indique l'action concernée pour la vérification de la formule. Si l'action effectuée par l'utilisateur n'est pas celle de la formule, alors la formule n'est pas vérifiée. Par contre, la règle peut quand être compatible. Il est possible de remplacer le nom d'une action par * pour indiquer que la formule doit être vérifiée quelque soit l'action.&lt;br /&gt;
*''title'' : pour indiquer le message d'alerte devant s'afficher lorsque la formule n'est pas respectée&lt;br /&gt;
&lt;br /&gt;
Le contenu de l'élément ''formula'' est une formule qui est testée lors de la saisie.&lt;br /&gt;
&lt;br /&gt;
'''Attention :''' dans la formule, pour les signes de comparaison supérieur ou inférieur, il faut saisir leur équivalent HTML :&lt;br /&gt;
* &amp;gt; doit être remplacé par &amp;lt;code&amp;gt;&amp;amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt; doit être remplacé par &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;gt;= doit être remplacé &amp;lt;code&amp;gt;&amp;amp;amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;= doit être remplacé &amp;lt;code&amp;gt;&amp;amp;amp;lt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;!-- Durée maximum : 30min --&amp;gt;&lt;br /&gt;
&amp;lt;formula action=&amp;quot;update&amp;quot; title=&amp;quot;Vous ne pouvez pas faire de réservation ayant une durée supérieure à 30 minutes.&amp;quot;&amp;gt;(%DURATION &amp;amp;lt;= 300)&amp;lt;/formula&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====activityTypeList====&lt;br /&gt;
Contient la liste des types d'activités qui sont compatibles avec la règle.&lt;br /&gt;
&lt;br /&gt;
Peut contenir l'attribut [[#attribut-needs|needs]].&lt;br /&gt;
=====activityType=====&lt;br /&gt;
Contient l'identifiant d'un type d'activité.&lt;br /&gt;
&lt;br /&gt;
====resourceList====&lt;br /&gt;
Contient la liste des types de ressources qui sont compatibles avec la règle.&lt;br /&gt;
&lt;br /&gt;
Peut contenir les attributs ''maxQty'' et ''minQty'' pour définir le nombre de ressources maximum et minimum.&lt;br /&gt;
&lt;br /&gt;
====placeList====&lt;br /&gt;
Contient la liste définissant les places.&lt;br /&gt;
&lt;br /&gt;
=====place=====&lt;br /&gt;
Contient la définition de chaque place.&lt;br /&gt;
&lt;br /&gt;
Peut contenir des éléments ''profile'' pour indiquer un profil requis parmi plusieurs pour qu'un utilisateur puisse occuper la place.&lt;br /&gt;
&lt;br /&gt;
Doit contenir l'attribut index pour numéroter la place définie.&lt;br /&gt;
&lt;br /&gt;
Peut contenir les attributs ''maxQty'', ''minQty'', ''needs'' et ''status''.&lt;br /&gt;
&lt;br /&gt;
L'attribut ''needs'' permet de définir le droit requis pour l'utilisateur effectuant la saisie afin qu'il puisse choisir l'utilisateur dans la liste des utilisateurs compatibles. typiquement, cet attribut est utilisé ainsi : ''needs=&amp;quot;bookAnyone&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
L'attribut ''status'' permet de définir le statut de la personne à laquelle on attribut la place. Cette définition se fait en utilisant l'identifiant du statut. Exemple : ''status=&amp;quot;1&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
======profile======&lt;br /&gt;
Contient l'identifiant du profile requis.&lt;br /&gt;
&lt;br /&gt;
==Wildcard==&lt;br /&gt;
Le caractère * peut être utilisé dans les éléments '''resourceType'''. Il indique que la règle s'applique à tous les types de ressources existants de la plateforme.&lt;br /&gt;
&lt;br /&gt;
Exemple avec wildcard :&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;resourceTypeList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;*&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
&amp;lt;/resourceTypeList&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple sans wildcard :&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;resourceTypeList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;1&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;2&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;3&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
&amp;lt;/resourceTypeList&amp;gt;&amp;lt;/xml&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14610</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14610"/>
		<updated>2026-08-11T09:45:47Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Clic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement du clic sur le créneau du quart d'heure en cours dépend de l'[[Utilisation-des-réservations-internes-sur-l'interface-web#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
*si une seule ligne est affichée (réservations), le clic ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
*si deux lignes sont affichées (réservations / activités), le clic sur la ligne des réservations ouvre le formulaire de réservation et le clic sur la ligne des activités ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
*si les activités sont désactivées dans les paramètres de la structure et qu'une seule ligne est affichée (réservations), le clic ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14609</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14609"/>
		<updated>2026-08-11T09:45:23Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Clic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement du clic sur le créneau du quart d'heure en cours dépend de l'[[Utilisation-des-réservations-internes-sur-l'interface-web#Affichage-des-activités-réalisées|affichage des activités réalisées]] :&lt;br /&gt;
- si une seule ligne est affichée (réservations), le clic ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
- si deux lignes sont affichées (réservations / activités), le clic sur la ligne des réservations ouvre le formulaire de réservation et le clic sur la ligne des activités ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
- si les activités sont désactivées dans les paramètres de la structure et qu'une seule ligne est affichée (réservations), le clic ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14608</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14608"/>
		<updated>2026-08-11T09:39:55Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Clic */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
Le comportement du clic sur le créneau du quart d'heure en cours dépend de l'affichage des activités réalisées :&lt;br /&gt;
- si une seule ligne est affichée (réservations), le clic ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
- si deux lignes sont affichées (réservations / activités), le clic sur la ligne des réservations ouvre le formulaire de réservation et le clic sur la ligne des activités ouvre le formulaire de saisie d'activité ;&lt;br /&gt;
- si les activités sont désactivées dans les paramètres de la structure et qu'une seule ligne est affichée (réservations), le clic ouvre le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14603</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14603"/>
		<updated>2026-07-20T14:50:22Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Affichage sur le planning &lt;br /&gt;
&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;État du signalement &lt;br /&gt;
&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Signature d'approbation de navigabilité &lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté.&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Statut de l'aéronef &lt;br /&gt;
&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14602</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14602"/>
		<updated>2026-07-20T14:29:14Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
== Affichage sur le planning ==&lt;br /&gt;
&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
== État du signalement ==&lt;br /&gt;
&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
== Signature d'approbation de navigabilité ==&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté.&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Statut de l'aéronef ==&lt;br /&gt;
&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14601</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14601"/>
		<updated>2026-07-20T14:27:09Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
== Statut de l'aéronef ==&lt;br /&gt;
&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
== État du signalement ==&lt;br /&gt;
&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
== Affichage sur le planning ==&lt;br /&gt;
&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
== Signature d'approbation de navigabilité ==&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté.&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14600</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14600"/>
		<updated>2026-07-20T14:11:13Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
= Statut de l'aéronef =&lt;br /&gt;
&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
= État du signalement =&lt;br /&gt;
&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
= Affichage sur le planning =&lt;br /&gt;
&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
= Signature d'approbation de navigabilité =&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté.&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]].&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
*disposer du droit [[Gestion-des-profils#Gestion-des-ressources|Gestion des ressources]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14599</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14599"/>
		<updated>2026-07-20T14:01:12Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
= Statut de l'aéronef =&lt;br /&gt;
&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
= État du signalement =&lt;br /&gt;
&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
= Affichage sur le planning =&lt;br /&gt;
&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
= Signature d'approbation de navigabilité =&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté.&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Procédures =&lt;br /&gt;
&lt;br /&gt;
== Accéder aux signalements ==&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil « Gestion des ressources ».&lt;br /&gt;
&lt;br /&gt;
== Ajouter un commentaire et clôturer un signalement ==&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
== Consulter un signalement ==&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement depuis une activité ==&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
== Créer un signalement sans activité associée ==&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de la ressource.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à une activité.&lt;br /&gt;
&lt;br /&gt;
== Filtrer les signalements ==&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14596</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14596"/>
		<updated>2026-07-15T07:44:10Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Ne pas changer de ressource */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours attribuée à la ressource sélectionnée : elle ne peut être déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option '''Ne pas changer de ressource''' est conservée lors de la modification ou du déplacement de la réservation.&lt;br /&gt;
&lt;br /&gt;
De même, lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'[[#Réservation-épinglée|épingler la réservation]] sur la ressource affichée dans le champ '''Ressource'''.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est épinglée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14580</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14580"/>
		<updated>2026-07-14T14:19:20Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Réservation épinglée */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une [[#Réservation-épinglée|réservation épinglée]], la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Réservation épinglée==&lt;br /&gt;
&lt;br /&gt;
[[File:Réservation épinglée.png]]&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation pour laquelle la case à cocher [[#Ne-pas-changer-de-ressource|Ne pas changer de ressource]] a été sélectionnée dans le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Cette case à cocher n'apparait que dans le mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]] et pour les utilisateurs qui disposent du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]].&lt;br /&gt;
&lt;br /&gt;
Lorsque la case '''Ne pas changer de ressource''' est cochée, la réservation reste toujours affectée à la ressource sélectionnée : elle n'est pas déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
Par contre, si la case '''Ne pas changer de ressource''' n'est pas cochée et que la plateforme est configurée en mode [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|Réservation par type de ressource]], le fonctionnement normal de la réservation par type de ressource s'applique, à savoir que la réservation est attribuée à la première ressource du même type de disponible apparaissant dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cette option est conservée lors de la modification ou du déplacement de la réservation. Lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
[[#Immobilisation-en-conflit-avec-une-réservation-épinglée|Une immobilisation peut être en conflit avec une réservation épinglée]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
*L'[[#Réservation-épinglée|état épinglé]] est conservé&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
Lorsque la plateforme est configurée en [[Configuration-des-réservations-internes#Réservation-par-type-de-ressource|réservation par type de ressource]] et que l'utilisateur dispose du droit de [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'épingler la réservation sur la ressource affichée dans le champ '''Ressource'''. Une réservation épinglée conserve cette ressource même si une autre ressource du même type devient disponible ou si le moteur de planning vérifie à nouveau le surbooking.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est gelée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=File:R%C3%A9servation-%C3%A9pingl%C3%A9e.png&amp;diff=14577</id>
		<title>File:Réservation épinglée.png</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=File:R%C3%A9servation-%C3%A9pingl%C3%A9e.png&amp;diff=14577"/>
		<updated>2026-07-14T14:15:45Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Réservation épinglée&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14561</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14561"/>
		<updated>2026-07-13T10:47:36Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Statut de l'activité d'une ressource */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une réservation épinglée, la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques de type aéronef, une pastille colorée peut être affichée devant le nom de la ressource uniquement si la Gestion des anomalies est activée. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
== Réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation par type pour laquelle l'option '''Ne pas changer de ressource''' a été activée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation épinglée est modifiée ou déplacée, la ressource qui lui est associée est conservée. Une réservation non épinglée continue à suivre les règles habituelles de sélection automatique d'une ressource disponible du même type.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation existante est déplacée par glisser-déposer, son état '''épinglé''' est conservé.&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
&lt;br /&gt;
Lorsque la plateforme est configurée en réservation par type de ressource et que l'utilisateur dispose du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'épingler la réservation sur la ressource affichée dans le champ '''Ressource'''. Une réservation épinglée conserve cette ressource même si une autre ressource du même type devient disponible ou si le moteur de planning vérifie à nouveau le surbooking.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est gelée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14560</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14560"/>
		<updated>2026-07-13T09:53:09Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Alertes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Immobilisation en conflit avec une réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une immobilisation doit être créée sur une ressource et sur une période qui se superpose à une réservation épinglée, la création est refusée afin de préserver la réservation épinglée.&lt;br /&gt;
&lt;br /&gt;
Le message affiché est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques, un badge coloré peut être affiché devant le nom de la ressource. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
== Réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation par type pour laquelle l'option '''Ne pas changer de ressource''' a été activée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation épinglée est modifiée ou déplacée, la ressource qui lui est associée est conservée. Une réservation non épinglée continue à suivre les règles habituelles de sélection automatique d'une ressource disponible du même type.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation existante est déplacée par glisser-déposer, son état '''épinglé''' est conservé.&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
&lt;br /&gt;
Lorsque la plateforme est configurée en réservation par type de ressource et que l'utilisateur dispose du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'épingler la réservation sur la ressource affichée dans le champ '''Ressource'''. Une réservation épinglée conserve cette ressource même si une autre ressource du même type devient disponible ou si le moteur de planning vérifie à nouveau le surbooking.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est gelée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14559</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14559"/>
		<updated>2026-07-13T09:48:36Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Positionner automatiquement les activités d’un programme de formation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques, un badge coloré peut être affiché devant le nom de la ressource. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
== Réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation par type pour laquelle l'option '''Ne pas changer de ressource''' a été activée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation épinglée est modifiée ou déplacée, la ressource qui lui est associée est conservée. Une réservation non épinglée continue à suivre les règles habituelles de sélection automatique d'une ressource disponible du même type.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation existante est déplacée par glisser-déposer, son état '''épinglé''' est conservé.&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
&lt;br /&gt;
Lorsque la plateforme est configurée en réservation par type de ressource et que l'utilisateur dispose du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'épingler la réservation sur la ressource affichée dans le champ '''Ressource'''. Une réservation épinglée conserve cette ressource même si une autre ressource du même type devient disponible ou si le moteur de planning vérifie à nouveau le surbooking.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est gelée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14558</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14558"/>
		<updated>2026-07-13T09:43:57Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Créneaux horaires */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques, un badge coloré peut être affiché devant le nom de la ressource. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
== Réservation épinglée ==&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée est une réservation par type pour laquelle l'option '''Ne pas changer de ressource''' a été activée.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une réservation épinglée est modifiée ou déplacée, la ressource qui lui est associée est conservée. Une réservation non épinglée continue à suivre les règles habituelles de sélection automatique d'une ressource disponible du même type.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
&lt;br /&gt;
Lorsque la plateforme est configurée en réservation par type de ressource et que l'utilisateur dispose du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'épingler la réservation sur la ressource affichée dans le champ '''Ressource'''. Une réservation épinglée conserve cette ressource même si une autre ressource du même type devient disponible ou si le moteur de planning vérifie à nouveau le surbooking.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est gelée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14557</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14557"/>
		<updated>2026-07-13T09:37:46Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Formulaire de réservation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques, un badge coloré peut être affiché devant le nom de la ressource. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== Ne pas changer de ressource ==&lt;br /&gt;
&lt;br /&gt;
Lorsque la plateforme est configurée en réservation par type de ressource et que l'utilisateur dispose du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], le formulaire affiche la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
Cette case permet d'épingler la réservation sur la ressource affichée dans le champ '''Ressource'''. Une réservation épinglée conserve cette ressource même si une autre ressource du même type devient disponible ou si le moteur de planning vérifie à nouveau le surbooking.&lt;br /&gt;
&lt;br /&gt;
La case est désactivée lorsque le type d'activité correspond à une immobilisation. Elle est également désélectionnée lorsque la ressource est gelée.&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Configuration-des-r%C3%A9servations-internes&amp;diff=14556</id>
		<title>Configuration des réservations internes</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Configuration-des-r%C3%A9servations-internes&amp;diff=14556"/>
		<updated>2026-07-13T08:48:03Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Réservation par type de ressource */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Cette page présente le paramétrage du module de réservations interne.&lt;br /&gt;
&lt;br /&gt;
=Général=&lt;br /&gt;
La gestion du planning se fait en allant dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Réservations internes''' :&lt;br /&gt;
[[Image:014_parametrage_gestion_reservation.png|1500px|center|gestion des réservations]]&lt;br /&gt;
&lt;br /&gt;
==Mode de réservation==&lt;br /&gt;
===Réservations standards===&lt;br /&gt;
Cette option permet de faire des réservations classiques, c'est-à-dire que l'on réserve directement une ressource en fonction de son nom (exemple : son immatriculation), cela ne diffère en rien des réservations &amp;quot;papier&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une ressource réservée en mode standard est immobilisée, les réservations existantes sur cette ressource sont supprimées.&lt;br /&gt;
&lt;br /&gt;
L'utilisateur est averti avant la confirmation de l'opération.&lt;br /&gt;
&lt;br /&gt;
===Réservation par type de ressource===&lt;br /&gt;
La réservation par type permet non pas de choisir une ressource particulière mais un type de ressource. Dans les structures aéronautiques possédant plusieurs aéronefs d'une même famille (plusieurs DR400/120 par exemple) on choisit alors de réserver un DR400/120 parmi ceux de la flotte. Le programme choisira l'immatriculation en fonction de la disponibilité des appareils (entretien mécanique par exemple).&lt;br /&gt;
&lt;br /&gt;
La réservation par type comporte un double intérêt :&lt;br /&gt;
*pouvoir donner la priorité à une ressource par rapport à une autre et ainsi pousser telle ou telle ressource à être plus utilisée en fonction des souhaits de programmation (pour les opérations de maintenance par exemple) ;&lt;br /&gt;
*créer une ressource fictive supplémentaire pour mettre en place le surbooking.&lt;br /&gt;
&lt;br /&gt;
Si des ressources de même type sont indisponibles, que ce soit parce qu'elles sont réservées ou immobilisées, alors c'est la 1ère ressource disponible qui est choisie par OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une ressource réservée par type est immobilisée, les réservations ne sont pas supprimées. Elles sont automatiquement déplacées vers la prochaine ressource disponible du même type, selon l'ordre de priorité défini.&lt;br /&gt;
Si aucune autre ressource du même type n'est disponible, la réservation concernée est supprimée.&lt;br /&gt;
&lt;br /&gt;
Il est possible de modifier l'ordre de tri des ressources à n'importe quel moment.&lt;br /&gt;
&lt;br /&gt;
De même, pour les utilisateurs disposant du droit [[Gestion-des-profils#Surpasser-la-réservation-par-type|Surpasser la réservation par type]], il est possible de forcer une réservation sur une ressource donnée en cochant la case '''Ne pas changer de ressource'''.&lt;br /&gt;
&lt;br /&gt;
*Si la case '''Ne pas changer de ressource''' est cochée, la réservation reste affectée à la ressource sélectionnée. Elle n'est pas déplacée automatiquement vers une autre ressource du même type lors d'une nouvelle vérification de disponibilité ou d'un surbooking.&lt;br /&gt;
&lt;br /&gt;
*Si la case '''Ne pas changer de ressource''' n'est pas cochée, le fonctionnement normal de la réservation par type de ressource est conservé : une autre ressource disponible du même type peut être sélectionnée automatiquement.&lt;br /&gt;
&lt;br /&gt;
Cette option est conservée lors de la modification ou du déplacement de la réservation. Lorsqu'une réservation épinglée est déplacée par glisser-déposer, elle reste épinglée.&lt;br /&gt;
&lt;br /&gt;
Une réservation épinglée peut empêcher la création d'une immobilisation sur la même ressource et sur une période qui se chevauche. Dans ce cas, le message suivant s'affiche :&lt;br /&gt;
&lt;br /&gt;
*'''Impossible de créer cette immobilisation : une réservation épinglée existe déjà sur cette ressource pour cette période'''&lt;br /&gt;
&lt;br /&gt;
'''Attention :''' dans le cas où la structure exploite plusieurs ressources d'un même type mais qu'elle souhaite séparer la gestion des réservations pour chaque ressource, il est possible de cocher la case '''Ne pas changer de ressource''' afin de conserver la réservation sur la ressource sélectionnée. Si cette option n'est pas utilisée, il faut créer autant de types de ressource que de ressources. Exemple : une structure aéronautique dispose de 2 avions de type DR420. Si les 2 avions sont identifiés avec un même type &amp;quot;DR420&amp;quot;, alors les réservations seront faites toujours en priorité sur le DR420 de plus forte priorité. Si ce comportement n'est pas souhaité, il faut cocher la case '''Ne pas changer de ressource''' lors de la réservation ou créer 2 types (DR420-1 et DR420-2 par exemple) et associer un avion au type DR420-1 et l'autre avion au type DR420-2.&lt;br /&gt;
&lt;br /&gt;
==Code couleur==&lt;br /&gt;
Permet de définir quelle code couleur doit être utilisée pour l'affichage des réservations :&lt;br /&gt;
*Par utilisateur&lt;br /&gt;
:deux champs de sélection s'affichent :&lt;br /&gt;
:*'''Couleur par défaut pour les réservations qui ne concernent pas l'utilisateur'''&lt;br /&gt;
::Il s'agit d'une paire de couleurs [Couleur claire (réservation en solo) / couleur foncée (réservation en instruction)] utilisé pour afficher les réservations qui ne concernent pas l'utilisateur connecté.&lt;br /&gt;
:*'''Couleur par défaut pour les réservations qui concernent l'utilisateur'''&lt;br /&gt;
::Il s'agit d'une paire de couleurs [Couleur claire (réservation en solo) / couleur foncée (réservation en instruction)] utilisé pour afficher les réservations qui concernent l'utilisateur connecté.&lt;br /&gt;
:Il est possible de configurer [[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|une paire de couleurs par utilisateur]].&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-couleur-à-un-type-d'activité|Par type d'activité]]&lt;br /&gt;
&lt;br /&gt;
==Affichage possible des activités réalisées dans le planning==&lt;br /&gt;
Permet aux utilisateurs disposant du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]] d'activer le module d'[[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-activités-réalisées|Affichage des activités réalisées]] sur la page de réservation.&lt;br /&gt;
&lt;br /&gt;
==Réservation multi-ressources==&lt;br /&gt;
Cette fonctionnalité permet d'autoriser à un utilisateur de réserver plusieurs ressources sur des créneaux horaires qui se chevauchent.&lt;br /&gt;
&lt;br /&gt;
==Affichage du nom des ressources dans le planning==&lt;br /&gt;
Ce paramétrage permet d'afficher ou cacher le nom des ressources dans le planning. Cela permet de diminuer la taille verticale des lignes du planning et de cacher ces noms lorsqu'ils ne sont pas nécessaires.&lt;br /&gt;
&lt;br /&gt;
==Afficher les alertes non bloquantes lors des glisser-déposer==&lt;br /&gt;
Ce paramétrage permet d'afficher les alertes non bloquantes lors des [[Utilisation-des-réservations-internes-sur-l%27interface-web#Glisser-déposer-des-réservations|glisser-déposer des réservations]] sur le planning.&lt;br /&gt;
&lt;br /&gt;
==Autoriser la suppression partielle d'éléments de réservations== &lt;br /&gt;
Ce paramétrage permet d'afficher l'action '''Annuler cet élément du groupe de réservations''' lorsqu'un groupe de réservations est lié. Il autorise ainsi la suppression individuelle d'un élément au sein d'un groupe de réservations, sans devoir annuler l'ensemble du groupe.&lt;br /&gt;
&lt;br /&gt;
==Amplitude du planning==&lt;br /&gt;
===Heure de début et fin (fuseau X)===&lt;br /&gt;
Permet de définir la plage horaire du planning de réservation dans le fuseau horaire de la structure.&lt;br /&gt;
&lt;br /&gt;
'''Remarque :''' les minutes proposées doivent être des multiples de 15 (00, 15, 30, 45).&lt;br /&gt;
&lt;br /&gt;
=Limitations=&lt;br /&gt;
&lt;br /&gt;
==Durée minimale d'une réservation==&lt;br /&gt;
Permet de définir la durée minimale d'une réservation.&lt;br /&gt;
&lt;br /&gt;
La durée maximale d'une réservation peut se définir pour chaque type de ressource.&lt;br /&gt;
&lt;br /&gt;
==Durée par défaut d'une réservation==&lt;br /&gt;
Permet de définir la durée par défaut.&lt;br /&gt;
&lt;br /&gt;
==Interdire d'effectuer une réservation débutant dans moins de==&lt;br /&gt;
Permet d'empêcher d'effectuer une réservation débutant dans moins de X temps. Cette fonctionnalité est notamment utile en réservation par type lorsque la distribution des ressources réelles par ligne de planning est faite le matin pour la journée. Elle est également utile lorsque la facturation se fait la veille au vu des réservations du lendemain.&lt;br /&gt;
&lt;br /&gt;
== Interdire la modification ou la suppression d'une réservation débutant dans moins de ==&lt;br /&gt;
Permet d'empêcher la modification ou la suppression d'une réservation lorsque son heure de début débute dans moins de X temps.&lt;br /&gt;
&lt;br /&gt;
Il génère l'[[Utilisation-des-réservations-internes-sur-l'interface-web#Alerte-de-délai-minimum-pour-modifier/supprimer-une-réservation|alerte de délai minimum pour modifier/supprimer une réservation]].&lt;br /&gt;
&lt;br /&gt;
Lorsque ce paramètre est activé, il est surpassable avec le droit [[Gestion-des-profils#Surpasser-l'interdiction-de-modifier-ou-supprimer-une-réservation-débutant-dans-moins-de-X-temps|Surpasser l'interdiction de modifier ou supprimer une réservation débutant dans moins de X temps]].&lt;br /&gt;
&lt;br /&gt;
==Limitation dans le temps des réservations==&lt;br /&gt;
Permet de limiter dans le temps les réservations.&lt;br /&gt;
&lt;br /&gt;
==Limitation du nombre de réservations==&lt;br /&gt;
Permet de limiter le nombre de réservations par utilisateur.&lt;br /&gt;
&lt;br /&gt;
=Champs visibles=&lt;br /&gt;
Permet de définir les champs visibles dans le formulaire de réservation :&lt;br /&gt;
*Même jour&lt;br /&gt;
*Lieu de départ&lt;br /&gt;
*Lieu d'arrivée&lt;br /&gt;
&lt;br /&gt;
Les lieux cochés sont ainsi définis avec une valeur par défaut lorsqu'un vol est entré à partir d'une réservation.&lt;br /&gt;
&lt;br /&gt;
;Saisie de la destination&lt;br /&gt;
Ce champ n'est disponible que si le champ '''Lieu d'arrivée''' est activé.&lt;br /&gt;
&lt;br /&gt;
Permet de demander à l'utilisateur d'indiquer sa destination et ce en fonction de la durée de sa réservation.&lt;br /&gt;
&lt;br /&gt;
Lorsque le champ '''Lieu d'arrivée''' est désactivé, la valeur enregistrée pour '''Saisie de la destination''' est vidée.&lt;br /&gt;
&lt;br /&gt;
=Alerte sur le potentiel=&lt;br /&gt;
&lt;br /&gt;
Cette section ne s'affiche que lorsque la [[Paramétrage-des-activités#Gestion-des-potentiels|gestion des potentiels]] est activée.&lt;br /&gt;
&lt;br /&gt;
;Alerter sur le potentiel estimé restant&lt;br /&gt;
Lorsqu'il est activé, permet de vérifier le potentiel restant et [[Utilisation-des-réservations-internes-sur-l'interface-web#Potentiel-estimé-restant-insuffisant|déclencher une alerte]] si celui-ci est inférieur au seuil défini lors d'une réservation.&lt;br /&gt;
&lt;br /&gt;
;Réservations débutant dans moins de&lt;br /&gt;
Indique le délai (en jours ou semaines) avant le début des réservations pour laquelle l'alerte sur le potentiel estimé restant doit être déclenchée. Par exemple, '''7 jours''' déclenche l'alerte pour les réservations commençant dans moins d'une semaine.&lt;br /&gt;
&lt;br /&gt;
;Seuil d'alerte&lt;br /&gt;
Définit le niveau minimal de potentiel estimé restant pour lequel l'alerte sera envoyée. Si le potentiel estimé tombe en dessous de ce seuil, une alerte est générée.&lt;br /&gt;
&lt;br /&gt;
==[[Paramétrage-des-validités#Paramétrer-le-contrôle-des-validités-pour-les-activités-ou-les-réservations|Paramétrage général du contrôle des validités pour les réservations]]==&lt;br /&gt;
&lt;br /&gt;
=Sélections par défaut=&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
Permet de définir le type d'activité à cocher par défaut :&lt;br /&gt;
* lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place sur le [[Utilisation-des-réservations-internes-sur-l%27interface-web#Formulaire-de-réservation|formulaire de réservation de l'ancienne interface]]&lt;br /&gt;
* lors d'une nouvelle réservation sur le [[Utilisation-des-réservations-internes-sur-l%27appli-mobile#Tutoriel-vidéo|planning de la nouvelle interface]]&lt;br /&gt;
&lt;br /&gt;
Pour définir le type :&lt;br /&gt;
* Aller dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Planning'''&lt;br /&gt;
* Champ '''Type d'activité par défaut''' : Sélectionner le type d'activité&lt;br /&gt;
* Cliquer sur '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut pour la seconde place (ancienne interface)==&lt;br /&gt;
Permet de définir le type d'activité à cocher par défaut lorsqu'on sélectionne une personne en seconde place sur le [[Utilisation-des-réservations-internes-sur-l%27interface-web#Formulaire-de-réservation|formulaire de réservation de l'ancienne interface]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour définir le type :&lt;br /&gt;
* Aller dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Planning'''&lt;br /&gt;
* Champ '''Type d'activité par défaut pour la seconde place (ancienne interface)''' : Sélectionner le type d'activité&lt;br /&gt;
* Cliquer sur '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
=Règles de saisies XML=&lt;br /&gt;
Les règles de saisie sont utilisées, pour le moment, uniquement par le moteur de réservation pour construire l'affichage des champs du formulaire de réservation et pour vérifier, après la saisie d'une réservation, que les données saisies respectent bien les règles de saisie.&lt;br /&gt;
&lt;br /&gt;
Elles sont écrites en [[Wikipedia-fr:Extensible_Markup_Language|XML]]. cf. l'exemple de règles de saisie ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Le moteur de vérification des règles s'enclenche dès qu'une réservation n'est plus &amp;quot;nue&amp;quot;, c'est à dire lorsqu'au moins un élément est renseigné (activité, ressource, etc.). Alors il vérifie quelles sont les règles compatibles et en déduit les contenus possibles dans les champs de saisie de l'interface utilisateur.&lt;br /&gt;
&lt;br /&gt;
La compatibilité d'une règle se détermine '''par restriction''' en vérifiant dans cet ordre les informations suivantes :&lt;br /&gt;
#Activités&lt;br /&gt;
#Ressources&lt;br /&gt;
#Profils&lt;br /&gt;
#Places&lt;br /&gt;
&lt;br /&gt;
Pour chaque information, le moteur regarde si elle est renseignée. Si ce n'est pas le cas alors il passe à l'information suivante. Par exemple s'il n'y a pas encore d'activité de saisie alors il ne vérifie pas ce point-là dans la règle.&lt;br /&gt;
&lt;br /&gt;
Pour les activités et les ressources, il regarde les règles qui acceptent celles renseignées. S'il y a des règles qui pose problème alors elles sont rejetées.&lt;br /&gt;
&lt;br /&gt;
Pour les profils ce sont les personnes qui sont étudiées et ce de deux manières différentes selon si sur la saisie il y a une ressource de renseignée ou non.&lt;br /&gt;
*Lorsqu'il y a une ressource de renseignée, le fonctionnement est similaire aux autres informations. le moteur regarde pour toutes les personnes renseignées si sur la place où elles sont, elles ont au moins un profil valide. Si une personne n'a aucun profil pour la place où il est alors la règle est rejetée.&lt;br /&gt;
*Lorsqu'il n'y a pas de ressource le fonctionnement est différent. Au lieu de faire par restriction, le moteur va faire '''par ajout'''. C'est-à-dire qu'au lieu de dire &amp;quot;il ne faut que des pilotes&amp;quot;, il va dire &amp;quot;je veux au moins un pilote&amp;quot;. Pour ce faire il va regarder les profils de chaque personne. S'il trouve une personne avec un profil valide, il accepte la règle. Si aucune des personnes ne correspond, il va faire une seconde vérification au niveau des places. Si pour cette règle l'une des places n'est pas définie, il considère que les personnes présentes vont potentiellement aller sur cette place et il ne rejette pas la règle. Par contre, si toutes les places sont définies et qu'aucune des personnes ne correspond alors la règle est rejetée.&lt;br /&gt;
&lt;br /&gt;
Pour les places, il vérifie qu'il n'y a pas trop de monde. Comme pour les profils il y a deux manières de les étudier en fonction de s'il y a une ressource ou non.&lt;br /&gt;
*Lorsqu'il y a une ressource, il va regarder pour chaque place si le nombre de personnes autorisées n'est pas dépassé. Si sur l'une des places le nombre est dépassé alors la règle est rejetée. Cependant, si le nombre est atteint mais pas dépassé alors la règle n'est pas rejetée.&lt;br /&gt;
*Lorsqu'il n'y a pas de ressource, il va parcourir chaque place pour compter le nombre total de personnes autorisées pour cette règle. Si le nombre est dépassé alors la règle est rejetée. Comme précédemment si le nombre est simplement atteint alors la règle n'est pas rejetée.&lt;br /&gt;
&lt;br /&gt;
Si pour chaque information saisie, la règle est compatible alors elle est conservée.&lt;br /&gt;
&lt;br /&gt;
Pour qu'une saisie soit valide, il faut qu'il existe au moins une règle de conservée, c'est à dire de compatible.&lt;br /&gt;
&lt;br /&gt;
;Exemple de règles de saisie&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;ruleList&amp;gt;&lt;br /&gt;
    &amp;lt;rule&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des activités autorisées et requises --&amp;gt;&lt;br /&gt;
        &amp;lt;activityTypeList needs=&amp;quot;bookAlone&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;1&amp;lt;/activityType&amp;gt; &amp;lt;!-- Local --&amp;gt;&lt;br /&gt;
        &amp;lt;/activityTypeList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des ressources autorisées --&amp;gt;&lt;br /&gt;
        &amp;lt;resourceList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;1&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-001 --&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;2&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-002 --&amp;gt;&lt;br /&gt;
        &amp;lt;/resourceList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Définition des places --&amp;gt;&lt;br /&gt;
        &amp;lt;placeList&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;0&amp;quot;  minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;1&amp;quot; needs=&amp;quot;bookAnyone&amp;quot;&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;2&amp;lt;/profile&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
        &amp;lt;/placeList&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des activités autorisées et requises --&amp;gt;&lt;br /&gt;
        &amp;lt;activityTypeList needs=&amp;quot;*(bookAlone)(bookWithInstr)&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;1&amp;lt;/activityType&amp;gt; &amp;lt;!-- Local --&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;2&amp;lt;/activityType&amp;gt; &amp;lt;!-- Instruction --&amp;gt;&lt;br /&gt;
        &amp;lt;/activityTypeList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des ressources autorisées --&amp;gt;&lt;br /&gt;
        &amp;lt;resourceList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;*&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-001, F-002, F-00X --&amp;gt;&lt;br /&gt;
        &amp;lt;/resourceList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Définition des places --&amp;gt;&lt;br /&gt;
        &amp;lt;placeList&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;0&amp;quot;  minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;1&amp;quot;&amp;gt; &amp;lt;!-- Pilote--&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;1&amp;lt;/profile&amp;gt; &amp;lt;!-- Elève --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;2&amp;lt;/profile&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;1&amp;quot; minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;2&amp;quot;&amp;gt; &amp;lt;!-- Instructeur --&amp;gt;&lt;br /&gt;
                &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;4&amp;lt;/profile&amp;gt; &amp;lt;!-- Instructeur --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
        &amp;lt;/placeList&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule&amp;gt;...&amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/ruleList&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==attribut needs==&lt;br /&gt;
L'attribut needs peut être utilisé pour les éléments :&lt;br /&gt;
*activityTypeList&lt;br /&gt;
*place&lt;br /&gt;
&lt;br /&gt;
Il contient un ou plusieurs droits qui sont requis par l'utilisateur effectuant la saisie pour que la règle puisse s'appliquer.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il n'y a qu'un droit de requis, il faut écrire ''needs=&amp;quot;nomDuDroit&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il y a plusieurs droits possibles, un seul étant requis, il faut commencer par le signe * puis lister chaque droit en l'entourant de parenthèses : ''needs=&amp;quot;*(bookAlone)(bookWithInstr)''.&lt;br /&gt;
&lt;br /&gt;
==Capacité maximale autorisée==&lt;br /&gt;
La taille maximale autorisée pour les règles de saisie XML est de '''16 Mo'''.  &lt;br /&gt;
Lors de la création d'un type d'activité ou lors de la modification manuelle depuis '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Réservations internes''',  si la taille des règles de saisie XML dépasse cette limite, un message d'alerte s'affiche indiquant que les règles de saisie XML sont saturées.&lt;br /&gt;
&lt;br /&gt;
Pour résoudre ce problème, il est conseillé de vérifier le contenu XML et d'identifier d'éventuelles données obsolètes afin de les supprimer et d'alléger le fichier.  &lt;br /&gt;
Si cela ne suffit pas, il est recommandé de contacter OpenFlyers pour discuter de la possibilité d'augmenter la taille du champ.&lt;br /&gt;
&lt;br /&gt;
==ruleList==&lt;br /&gt;
Élément racine de la structure XML ne peut contenir comme élément enfant que des éléments &amp;quot;rule&amp;quot; qui correspondent, chacun, à une règle.&lt;br /&gt;
&lt;br /&gt;
Il n'y pas d'attribut possible.&lt;br /&gt;
&lt;br /&gt;
===rule===&lt;br /&gt;
Définit une règle.&lt;br /&gt;
&lt;br /&gt;
Les éléments possibles sont :&lt;br /&gt;
*formulaList&lt;br /&gt;
*activityTypeList&lt;br /&gt;
*resourceList&lt;br /&gt;
*placeList&lt;br /&gt;
&lt;br /&gt;
Il n'y a pas d'attribut possible.&lt;br /&gt;
&lt;br /&gt;
Chaque règle définit les types d'activités, types de ressources et places qui la rendent compatible.&lt;br /&gt;
&lt;br /&gt;
L'exemple suivant définit une règle qui autorise une saisie pour le type d'activité ''Local'', les types de ressources ''F-001'' ou ''F-002'' et pour laquelle il faut exactement 1 utilisateur avec le profil ''Pilote'' à la place 0. Le statut attribué sera celui de numéro 1. De plus, La personne qui fait la réservation doit avoir le droit &amp;quot;bookAlone&amp;quot; et si elle dispose du droit &amp;quot;bookAnyone&amp;quot; alors elle verra en plus la liste des utilisateurs compatibles avec cette règle pour lui permettre d'en choisir une : &lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;rule&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des activités autorisées et requises --&amp;gt;&lt;br /&gt;
        &amp;lt;activityTypeList needs=&amp;quot;bookAlone&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;activityType&amp;gt;1&amp;lt;/activityType&amp;gt; &amp;lt;!-- Local --&amp;gt;&lt;br /&gt;
        &amp;lt;/activityTypeList&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Liste des ressources autorisées --&amp;gt;&lt;br /&gt;
        &amp;lt;resourceList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;1&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-001 --&amp;gt;&lt;br /&gt;
            &amp;lt;resourceType&amp;gt;2&amp;lt;/resourceType&amp;gt; &amp;lt;!-- F-002 --&amp;gt;&lt;br /&gt;
        &amp;lt;/resourceList&amp;gt;&lt;br /&gt;
         &amp;lt;!-- Définition des places --&amp;gt;&lt;br /&gt;
        &amp;lt;placeList&amp;gt;&lt;br /&gt;
            &amp;lt;place index=&amp;quot;0&amp;quot;  minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot; status=&amp;quot;1&amp;quot; needs=&amp;quot;bookAnyone&amp;quot;&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
                 &amp;lt;!-- Liste des profils autorisés --&amp;gt;&lt;br /&gt;
                &amp;lt;profile&amp;gt;2&amp;lt;/profile&amp;gt; &amp;lt;!-- Pilote --&amp;gt;&lt;br /&gt;
            &amp;lt;/place&amp;gt;&lt;br /&gt;
        &amp;lt;/placeList&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====formulaList====&lt;br /&gt;
Contient la liste des formules que la règle doit respecter au travers des éléments ''formula''.&lt;br /&gt;
&lt;br /&gt;
=====formula=====&lt;br /&gt;
Doit contenir les attributs :&lt;br /&gt;
*''action'' : indique l'action concernée pour la vérification de la formule. Si l'action effectuée par l'utilisateur n'est pas celle de la formule, alors la formule n'est pas vérifiée. Par contre, la règle peut quand être compatible. Il est possible de remplacer le nom d'une action par * pour indiquer que la formule doit être vérifiée quelque soit l'action.&lt;br /&gt;
*''title'' : pour indiquer le message d'alerte devant s'afficher lorsque la formule n'est pas respectée&lt;br /&gt;
&lt;br /&gt;
Le contenu de l'élément ''formula'' est une formule qui est testée lors de la saisie.&lt;br /&gt;
&lt;br /&gt;
'''Attention :''' dans la formule, pour les signes de comparaison supérieur ou inférieur, il faut saisir leur équivalent HTML :&lt;br /&gt;
* &amp;gt; doit être remplacé par &amp;lt;code&amp;gt;&amp;amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt; doit être remplacé par &amp;lt;code&amp;gt;&amp;amp;amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;gt;= doit être remplacé &amp;lt;code&amp;gt;&amp;amp;amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;= doit être remplacé &amp;lt;code&amp;gt;&amp;amp;amp;lt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple :&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;!-- Durée maximum : 30min --&amp;gt;&lt;br /&gt;
&amp;lt;formula action=&amp;quot;update&amp;quot; title=&amp;quot;Vous ne pouvez pas faire de réservation ayant une durée supérieure à 30 minutes.&amp;quot;&amp;gt;(%DURATION &amp;amp;lt;= 300)&amp;lt;/formula&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====activityTypeList====&lt;br /&gt;
Contient la liste des types d'activités qui sont compatibles avec la règle.&lt;br /&gt;
&lt;br /&gt;
Peut contenir l'attribut [[#attribut-needs|needs]].&lt;br /&gt;
=====activityType=====&lt;br /&gt;
Contient l'identifiant d'un type d'activité.&lt;br /&gt;
&lt;br /&gt;
====resourceList====&lt;br /&gt;
Contient la liste des types de ressources qui sont compatibles avec la règle.&lt;br /&gt;
&lt;br /&gt;
Peut contenir les attributs ''maxQty'' et ''minQty'' pour définir le nombre de ressources maximum et minimum.&lt;br /&gt;
&lt;br /&gt;
====placeList====&lt;br /&gt;
Contient la liste définissant les places.&lt;br /&gt;
&lt;br /&gt;
=====place=====&lt;br /&gt;
Contient la définition de chaque place.&lt;br /&gt;
&lt;br /&gt;
Peut contenir des éléments ''profile'' pour indiquer un profil requis parmi plusieurs pour qu'un utilisateur puisse occuper la place.&lt;br /&gt;
&lt;br /&gt;
Doit contenir l'attribut index pour numéroter la place définie.&lt;br /&gt;
&lt;br /&gt;
Peut contenir les attributs ''maxQty'', ''minQty'', ''needs'' et ''status''.&lt;br /&gt;
&lt;br /&gt;
L'attribut ''needs'' permet de définir le droit requis pour l'utilisateur effectuant la saisie afin qu'il puisse choisir l'utilisateur dans la liste des utilisateurs compatibles. typiquement, cet attribut est utilisé ainsi : ''needs=&amp;quot;bookAnyone&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
L'attribut ''status'' permet de définir le statut de la personne à laquelle on attribut la place. Cette définition se fait en utilisant l'identifiant du statut. Exemple : ''status=&amp;quot;1&amp;quot;''.&lt;br /&gt;
&lt;br /&gt;
======profile======&lt;br /&gt;
Contient l'identifiant du profile requis.&lt;br /&gt;
&lt;br /&gt;
==Wildcard==&lt;br /&gt;
Le caractère * peut être utilisé dans les éléments '''resourceType'''. Il indique que la règle s'applique à tous les types de ressources existants de la plateforme.&lt;br /&gt;
&lt;br /&gt;
Exemple avec wildcard :&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;resourceTypeList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;*&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
&amp;lt;/resourceTypeList&amp;gt;&amp;lt;/xml&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple sans wildcard :&lt;br /&gt;
&amp;lt;xml&amp;gt;&amp;lt;resourceTypeList minQty=&amp;quot;1&amp;quot; maxQty=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;1&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;2&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
    &amp;lt;resourceType&amp;gt;3&amp;lt;/resourceType&amp;gt;&lt;br /&gt;
&amp;lt;/resourceTypeList&amp;gt;&amp;lt;/xml&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Structure-de-la-base-de-donn%C3%A9es&amp;diff=14555</id>
		<title>Structure de la base de données</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Structure-de-la-base-de-donn%C3%A9es&amp;diff=14555"/>
		<updated>2026-07-07T12:11:11Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schéma de la structure de la base de données=&lt;br /&gt;
*[[Media:OpenFlyers_database_schema.png|Lien vers schéma fichier .png]]&lt;br /&gt;
&lt;br /&gt;
=Structure=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
create table account&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    creation_date    date                          null,&lt;br /&gt;
    name             text                          null,&lt;br /&gt;
    export_account   varchar(255)                  null,&lt;br /&gt;
    activated        tinyint unsigned    default 1 not null,&lt;br /&gt;
    category         tinyint unsigned    default 0 null,&lt;br /&gt;
    account_type     tinyint unsigned    default 0 null,&lt;br /&gt;
    owner_id         int unsigned        default 0 not null,&lt;br /&gt;
    payment_allowed  tinyint(1)          default 0 null,&lt;br /&gt;
    budget_id        int unsigned                  null,&lt;br /&gt;
    order_num        int                           null,&lt;br /&gt;
    accounting_id    int unsigned                  null,&lt;br /&gt;
    deactivated_date datetime                      null,&lt;br /&gt;
    group_sales      tinyint(1)          default 0 not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of account';&lt;br /&gt;
&lt;br /&gt;
create index idx_owner_id&lt;br /&gt;
    on account (owner_id);&lt;br /&gt;
&lt;br /&gt;
create table account_entry&lt;br /&gt;
(&lt;br /&gt;
    id                    int auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flow_id               int                          null,&lt;br /&gt;
    account_date          datetime                     null,&lt;br /&gt;
    account_id            int                          null,&lt;br /&gt;
    credit                decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    debit                 decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    payment_type          int unsigned                 null,&lt;br /&gt;
    payment_description   text                         null,&lt;br /&gt;
    person_delivery_id    int unsigned                 null,&lt;br /&gt;
    comments              text                         null,&lt;br /&gt;
    validated             int            default 0     null,&lt;br /&gt;
    exported              int            default 0     null,&lt;br /&gt;
    registration_date     datetime                     null,&lt;br /&gt;
    budget_id             int unsigned                 null,&lt;br /&gt;
    product_id            int unsigned                 null,&lt;br /&gt;
    signature             varchar(56)                  null,&lt;br /&gt;
    signature_date        bigint unsigned              null,&lt;br /&gt;
    lettering             int                          null,&lt;br /&gt;
    lettering_date        datetime                     null,&lt;br /&gt;
    flow_reversal_id      int unsigned                 null,&lt;br /&gt;
    transaction_id        text                         null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of account entries';&lt;br /&gt;
&lt;br /&gt;
create table account_link&lt;br /&gt;
(&lt;br /&gt;
    account_id        int unsigned default 0 not null,&lt;br /&gt;
    linked_account_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (account_id, linked_account_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table account_type&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                   varchar(255)                  null,&lt;br /&gt;
    category               tinyint unsigned    default 0 null,&lt;br /&gt;
    activated              tinyint(1)          default 1 null,&lt;br /&gt;
    order_num              int                           null,&lt;br /&gt;
    accounting_id          int unsigned                  null,&lt;br /&gt;
    export_account_pattern varchar(255)                  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table account_type_profile&lt;br /&gt;
(&lt;br /&gt;
    account_type_id int unsigned    not null,&lt;br /&gt;
    profile_id      bigint unsigned not null,&lt;br /&gt;
    primary key (account_type_id, profile_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'linked account type field and profile';&lt;br /&gt;
&lt;br /&gt;
create table accounting&lt;br /&gt;
(&lt;br /&gt;
    id                int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name              varchar(255)           null,&lt;br /&gt;
    unit_name         varchar(255)           null,&lt;br /&gt;
    symbol            varchar(255)           null,&lt;br /&gt;
    format            tinyint unsigned       null,&lt;br /&gt;
    decimal_precision int unsigned default 2 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table accounting_profile&lt;br /&gt;
(&lt;br /&gt;
    accounting_id int unsigned    not null,&lt;br /&gt;
    profile_id    bigint unsigned not null,&lt;br /&gt;
    primary key (accounting_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table activity_type&lt;br /&gt;
(&lt;br /&gt;
    id                                 bigint unsigned not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                               varchar(255)             null,&lt;br /&gt;
    order_num                          int                      null,&lt;br /&gt;
    activated                          tinyint(1)      default 1 not null,&lt;br /&gt;
    color                              int unsigned             null,&lt;br /&gt;
    training                           tinyint(1)      default 0 not null,&lt;br /&gt;
    previous_activity_type_id          bigint unsigned          null,&lt;br /&gt;
    previous_activity_default_duration int unsigned             null,&lt;br /&gt;
    next_activity_type_id              bigint unsigned          null,&lt;br /&gt;
    next_activity_default_duration     int unsigned             null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of flight type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft&lt;br /&gt;
(&lt;br /&gt;
    id                         int unsigned default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    ref_date                   datetime               null,&lt;br /&gt;
    ref_hours                  int                    null,&lt;br /&gt;
    ref_engine_hours           int                    null,&lt;br /&gt;
    inspection_date            datetime               null,&lt;br /&gt;
    inspection_time            int                    null,&lt;br /&gt;
    inspection_engine_time     int                    null,&lt;br /&gt;
    tolerance_time             int unsigned default 6000 null,&lt;br /&gt;
    last_counter               int                    null,&lt;br /&gt;
    interval_visit_calendar    varchar(255) default '50 h' null,&lt;br /&gt;
    interval_visit_time        varchar(255) default '50 h' null,&lt;br /&gt;
    interval_visit_engine_time varchar(255) default '50 h' null,&lt;br /&gt;
    time_alert1                int          default 6000 null,&lt;br /&gt;
    time_alert2                int          default 0 null,&lt;br /&gt;
    time_alert3                int          default -3000 null,&lt;br /&gt;
    engine_time_alert1         int          default 6000 null,&lt;br /&gt;
    engine_time_alert2         int          default 0 null,&lt;br /&gt;
    engine_time_alert3         int          default 0 null,&lt;br /&gt;
    day_alert1                 smallint     default 15 null,&lt;br /&gt;
    day_alert2                 smallint     default 0 null,&lt;br /&gt;
    day_alert3                 smallint     default -8 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'all aircrafts of all airclubs';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type&lt;br /&gt;
(&lt;br /&gt;
    id                      int unsigned                 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_time_formula     varchar(255) default '%duration' null,&lt;br /&gt;
    counter_state           tinyint      default -1      not null,&lt;br /&gt;
    tolerance               int          default 0       null,&lt;br /&gt;
    autonomy                int          default 5990    null,&lt;br /&gt;
    true_air_speed          int unsigned default 0       not null,&lt;br /&gt;
    digit_counter_number    tinyint unsigned default 4   not null,&lt;br /&gt;
    engine_duration_formula varchar(255)                 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'types of aircraft';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_allowed_status&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned not null,&lt;br /&gt;
    place_num        int unsigned null,&lt;br /&gt;
    status_id        int unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of allowed functions for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_mandatory_flight_type&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned    not null,&lt;br /&gt;
    activity_type_id bigint unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of compulsory flight type for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_uncomp_flight_type&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned    not null,&lt;br /&gt;
    activity_type_id bigint unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of uncompatible flight type for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_validity_type&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned          not null,&lt;br /&gt;
    validity_type_id int unsigned          not null,&lt;br /&gt;
    check_num        int unsigned default 0 not null,&lt;br /&gt;
    primary key (aircraft_type_id, validity_type_id, check_num)&lt;br /&gt;
)&lt;br /&gt;
    comment 'types of qualif required for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table allocation_rule&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    title      varchar(255)         not null,&lt;br /&gt;
    account_id int                  not null,&lt;br /&gt;
    keyword    varchar(255)         null,&lt;br /&gt;
    order_num  int                  not null,&lt;br /&gt;
    amount     tinyint(1)           not null,&lt;br /&gt;
    mandatory  tinyint(1) default 0 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table balance&lt;br /&gt;
(&lt;br /&gt;
    account_id      int unsigned                   not null,&lt;br /&gt;
    balance_date_id int unsigned                   not null,&lt;br /&gt;
    debit           decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    credit          decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    primary key (account_id, balance_date_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table balance_date&lt;br /&gt;
(&lt;br /&gt;
    id           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    balance_date datetime null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    booking_group_id int unsigned               null,&lt;br /&gt;
    start_date       datetime                   null,&lt;br /&gt;
    end_date         datetime                   null,&lt;br /&gt;
    is_pinned        tinyint unsigned default 0 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'records all the slots of all aircrafts of all airclubs';&lt;br /&gt;
&lt;br /&gt;
create table booking_account_entry&lt;br /&gt;
(&lt;br /&gt;
    booking_id            int unsigned default 0 not null,&lt;br /&gt;
    account_entry_flow_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (booking_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_activity_type&lt;br /&gt;
(&lt;br /&gt;
    booking_id       int unsigned    not null,&lt;br /&gt;
    activity_type_id bigint unsigned not null,&lt;br /&gt;
    primary key (booking_id, activity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_person&lt;br /&gt;
(&lt;br /&gt;
    booking_id int unsigned not null,&lt;br /&gt;
    person_id  int unsigned not null,&lt;br /&gt;
    place_num  int unsigned null,&lt;br /&gt;
    status_id  int unsigned null,&lt;br /&gt;
    primary key (booking_id, person_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_resource&lt;br /&gt;
(&lt;br /&gt;
    booking_id  int unsigned default 0 not null,&lt;br /&gt;
    resource_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (booking_id, resource_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_training_program&lt;br /&gt;
(&lt;br /&gt;
    booking_group_id    int unsigned not null,&lt;br /&gt;
    training_program_id int unsigned not null,&lt;br /&gt;
    primary key (booking_group_id, training_program_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table budget&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    group_id    int unsigned not null,&lt;br /&gt;
    name        varchar(255) null,&lt;br /&gt;
    order_num   int          null,&lt;br /&gt;
    export_code varchar(255) null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table budget_group&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name      varchar(255) null,&lt;br /&gt;
    order_num int          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table business_field&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    variable                 varchar(255)          null,&lt;br /&gt;
    label                    varchar(255)          not null,&lt;br /&gt;
    value_type               varchar(40)           not null,&lt;br /&gt;
    category                 varchar(255)          not null,&lt;br /&gt;
    order_num                int                   not null,&lt;br /&gt;
    dsn                      varchar(20) default 'customer' null,&lt;br /&gt;
    compulsory_fill          tinyint(1)  default 0 null,&lt;br /&gt;
    linked_category          varchar(255)          null,&lt;br /&gt;
    linked_business_field_id int unsigned          null,&lt;br /&gt;
    linked_field_name        varchar(255)          null,&lt;br /&gt;
    max_display              int         default -1 null,&lt;br /&gt;
    formula                  text                  null,&lt;br /&gt;
    default_value            text                  null,&lt;br /&gt;
    placeholder              text                  null,&lt;br /&gt;
    access_level_required    tinyint     default 0 not null,&lt;br /&gt;
    user_access_mode         tinyint(1)  default 0 not null,&lt;br /&gt;
    unique (variable)&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of extra form field';&lt;br /&gt;
&lt;br /&gt;
create table business_field_content&lt;br /&gt;
(&lt;br /&gt;
    category_id       int unsigned           not null,&lt;br /&gt;
    business_field_id int unsigned default 0 not null,&lt;br /&gt;
    person_id         int unsigned default 0 not null,&lt;br /&gt;
    content           text                   null,&lt;br /&gt;
    placeholder       text                   null,&lt;br /&gt;
    primary key (category_id, business_field_id, person_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'content of extra form field';&lt;br /&gt;
&lt;br /&gt;
create table business_field_group&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label     varchar(255) null,&lt;br /&gt;
    order_num int          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table criteria&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label     varchar(255)                   not null,&lt;br /&gt;
    predicate text                           not null,&lt;br /&gt;
    order_num int                            null,&lt;br /&gt;
    dsn       varchar(20) default 'customer' null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table criteria_profile&lt;br /&gt;
(&lt;br /&gt;
    criteria_id int unsigned    not null,&lt;br /&gt;
    profile_id  bigint unsigned not null,&lt;br /&gt;
    primary key (criteria_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table customer_bill_entry&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flow_id               int unsigned                   null,&lt;br /&gt;
    account_entry_id      int unsigned                   null,&lt;br /&gt;
    account_entry_flow_id int unsigned                   null,&lt;br /&gt;
    owner_category        int unsigned                   null,&lt;br /&gt;
    owner_id              int unsigned                   null,&lt;br /&gt;
    customer_bill_id      int unsigned                   null,&lt;br /&gt;
    product_id            int unsigned                   null,&lt;br /&gt;
    qty                   decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    unit_price            decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    debit                 decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    credit                decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    bill_date             datetime                       null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on customer_bill_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_id&lt;br /&gt;
    on customer_bill_entry (account_entry_id);&lt;br /&gt;
&lt;br /&gt;
create table customer_bill_file&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type varchar(255) null,&lt;br /&gt;
    content   longblob     null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table customer_receipt_entry&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flow_id               int unsigned                   null,&lt;br /&gt;
    account_entry_id      int unsigned                   null,&lt;br /&gt;
    account_entry_flow_id int unsigned                   null,&lt;br /&gt;
    owner_category        int unsigned                   null,&lt;br /&gt;
    owner_id              int unsigned                   null,&lt;br /&gt;
    payment_type_id       int unsigned                   null,&lt;br /&gt;
    customer_receipt_id   int unsigned                   null,&lt;br /&gt;
    debit                 decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    credit                decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    receipt_date          datetime                       null,&lt;br /&gt;
    owner_email           varchar(255)                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on customer_receipt_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_id&lt;br /&gt;
    on customer_receipt_entry (account_entry_id);&lt;br /&gt;
&lt;br /&gt;
create table customer_receipt_file&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type varchar(255) null,&lt;br /&gt;
    content   longblob     null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table data_retention&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    data_processing_title varchar(45)           not null,&lt;br /&gt;
    legal_basis_category  int unsigned default 0 not null,&lt;br /&gt;
    data_retention_period int unsigned          not null,&lt;br /&gt;
    controller_person_id  int unsigned          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table default_display&lt;br /&gt;
(&lt;br /&gt;
    person_id     int unsigned            not null,&lt;br /&gt;
    display_key   varchar(255) default '' not null,&lt;br /&gt;
    display_value text                    null,&lt;br /&gt;
    primary key (person_id, display_key)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table default_multi_display&lt;br /&gt;
(&lt;br /&gt;
    resource_type char(30)     not null,&lt;br /&gt;
    person_id     int unsigned not null,&lt;br /&gt;
    resource_id   varchar(100) not null,&lt;br /&gt;
    display_value text         null,&lt;br /&gt;
    primary key (resource_type, person_id, resource_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table email_sent&lt;br /&gt;
(&lt;br /&gt;
    id          bigint unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    message_id  varchar(150)     not null,&lt;br /&gt;
    sender      varchar(255)     not null,&lt;br /&gt;
    title       varchar(255)     not null,&lt;br /&gt;
    category    tinyint unsigned not null,&lt;br /&gt;
    category_id int unsigned     not null,&lt;br /&gt;
    unique (message_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table email_sent_recipient&lt;br /&gt;
(&lt;br /&gt;
    id                   bigint unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    email_sent_id        bigint unsigned  not null,&lt;br /&gt;
    person_id            int unsigned     not null,&lt;br /&gt;
    email                varchar(255)     null,&lt;br /&gt;
    recipient_type       tinyint unsigned null,&lt;br /&gt;
    smtp_status_category varchar(30)      null,&lt;br /&gt;
    email_status         tinyint unsigned null,&lt;br /&gt;
    update_date          datetime         not null,&lt;br /&gt;
    smtp_additional_detail text             null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index email_sent_id_idx&lt;br /&gt;
    on email_sent_recipient (email_sent_id);&lt;br /&gt;
&lt;br /&gt;
create table exceptionnal_inst_date&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    person_id  int unsigned        not null,&lt;br /&gt;
    start_date datetime            null,&lt;br /&gt;
    end_date   datetime            null,&lt;br /&gt;
    presence   tinyint unsigned    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table extra_field_profile&lt;br /&gt;
(&lt;br /&gt;
    business_field_id                  int unsigned    not null,&lt;br /&gt;
    booking_popup_display_4_profile_id bigint unsigned not null,&lt;br /&gt;
    primary key (business_field_id, booking_popup_display_4_profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table facebook&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    category    int unsigned not null,&lt;br /&gt;
    owner_id    int unsigned not null,&lt;br /&gt;
    small       blob         null,&lt;br /&gt;
    original    mediumblob   not null,&lt;br /&gt;
    label       text         null,&lt;br /&gt;
    description text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table favorite_icao&lt;br /&gt;
(&lt;br /&gt;
    icao varchar(6) default '' not null&lt;br /&gt;
        primary key&lt;br /&gt;
)&lt;br /&gt;
    comment 'favorite airfield list';&lt;br /&gt;
&lt;br /&gt;
create table favorite_report&lt;br /&gt;
(&lt;br /&gt;
    report_id int unsigned not null&lt;br /&gt;
        primary key&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table favorite_report_business_field&lt;br /&gt;
(&lt;br /&gt;
    report_id         int unsigned not null,&lt;br /&gt;
    business_field_id int unsigned not null,&lt;br /&gt;
    default_value     text         null,&lt;br /&gt;
    primary key (report_id, business_field_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table favorite_report_profile&lt;br /&gt;
(&lt;br /&gt;
    report_id  int unsigned              not null,&lt;br /&gt;
    profile_id bigint unsigned default 0 not null,&lt;br /&gt;
    primary key (report_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table fhp_aircraft_type&lt;br /&gt;
(&lt;br /&gt;
    fhp_id           int default 0 not null,&lt;br /&gt;
    aircraft_type_id int default 0 not null,&lt;br /&gt;
    primary key (fhp_id, aircraft_type_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'flight hour pricing aircraft type list';&lt;br /&gt;
&lt;br /&gt;
create table fhp_flight_type&lt;br /&gt;
(&lt;br /&gt;
    fhp_id           int                 default 0 not null,&lt;br /&gt;
    activity_type_id bigint unsigned     default 0 not null,&lt;br /&gt;
    excluded         tinyint unsigned    default 0 null,&lt;br /&gt;
    primary key (fhp_id, activity_type_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'flight hour pricing flight type list';&lt;br /&gt;
&lt;br /&gt;
create table fhp_profile&lt;br /&gt;
(&lt;br /&gt;
    fhp_id     int unsigned               not null,&lt;br /&gt;
    profile_id bigint unsigned default 0  not null,&lt;br /&gt;
    place_num  tinyint unsigned default 0 not null,&lt;br /&gt;
    primary key (fhp_id, profile_id, place_num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table file&lt;br /&gt;
(&lt;br /&gt;
id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name          varchar(255)               null,&lt;br /&gt;
    content       longblob                   null,&lt;br /&gt;
    file_type     varchar(255)               null,&lt;br /&gt;
    category      tinyint unsigned           null,&lt;br /&gt;
    owner_id      int                        null,&lt;br /&gt;
    file_group_id int                        null,&lt;br /&gt;
    is_current    tinyint unsigned default 1 not null,&lt;br /&gt;
    parent_id     int unsigned               null,&lt;br /&gt;
    person_id     int unsigned               null,&lt;br /&gt;
    creation_date datetime                   not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table file_group&lt;br /&gt;
(&lt;br /&gt;
    id    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255) null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table flight&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    aircraft_id           int unsigned               null,&lt;br /&gt;
    start_date            datetime                   null,&lt;br /&gt;
    duration              int                        null,&lt;br /&gt;
    activity_type_id      bigint unsigned            null,&lt;br /&gt;
    people_onboard        int unsigned               null,&lt;br /&gt;
    departure_location_id int unsigned               null,&lt;br /&gt;
    arrival_location_id   int unsigned               null,&lt;br /&gt;
    counter_departure     int unsigned               null,&lt;br /&gt;
    counter_arrival       int unsigned               null,&lt;br /&gt;
    landing_number        int                        null,&lt;br /&gt;
    airborne              tinyint unsigned           null,&lt;br /&gt;
    validated             tinyint unsigned default 0 null,&lt;br /&gt;
    departure_icao_id     varchar(6)                 null,&lt;br /&gt;
    arrival_icao_id       varchar(6)                 null,&lt;br /&gt;
    engine_duration       int                        null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of flight';&lt;br /&gt;
&lt;br /&gt;
create table flight_account_entry&lt;br /&gt;
(&lt;br /&gt;
    flight_id        int unsigned default 0 not null,&lt;br /&gt;
    account_entry_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (flight_id, account_entry_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'flight account entry join';&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_id&lt;br /&gt;
    on flight_account_entry (account_entry_id);&lt;br /&gt;
&lt;br /&gt;
create table flight_hours_pricing&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name               text                          null,&lt;br /&gt;
    price_formula      text                          null,&lt;br /&gt;
    left_account_id    int unsigned                  null,&lt;br /&gt;
    right_account_id   int unsigned                  null,&lt;br /&gt;
    left_account_type  tinyint unsigned    default 0 null,&lt;br /&gt;
    right_account_type tinyint unsigned    default 0 null,&lt;br /&gt;
    credit_budget_id   int unsigned                  null,&lt;br /&gt;
    debit_budget_id    int unsigned                  null,&lt;br /&gt;
    order_num          int                           null,&lt;br /&gt;
    product_id         int unsigned                  null,&lt;br /&gt;
    sale_trigger_id    int unsigned        default 0 null,&lt;br /&gt;
    query              text                          null,&lt;br /&gt;
    variable_formula   varchar(255)                  null,&lt;br /&gt;
    business_field_id  int unsigned                  null,&lt;br /&gt;
    debit_bill_num     int unsigned                  null,&lt;br /&gt;
    credit_bill_num    int unsigned                  null,&lt;br /&gt;
    qty_formula        text                          null,&lt;br /&gt;
    unit_price_formula text                          null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of flight hours pricing formula';&lt;br /&gt;
&lt;br /&gt;
create table flight_pilot&lt;br /&gt;
(&lt;br /&gt;
    flight_id int unsigned           not null,&lt;br /&gt;
    pilot_id  int unsigned           not null,&lt;br /&gt;
    status_id int unsigned           null,&lt;br /&gt;
    num       int unsigned default 0 not null,&lt;br /&gt;
    primary key (flight_id, pilot_id, num)&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of crew for each flight';&lt;br /&gt;
&lt;br /&gt;
create table flight_tank_qty&lt;br /&gt;
(&lt;br /&gt;
    id           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_id    int unsigned                not null,&lt;br /&gt;
    tank_id      int unsigned                not null,&lt;br /&gt;
    quantity     varchar(255) default '0.00' not null,&lt;br /&gt;
    after_flight tinyint(1)   default 0      not null,&lt;br /&gt;
    account_id   int unsigned                null,&lt;br /&gt;
    pay_type     tinyint unsigned            null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table flight_track&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_id int                     not null,&lt;br /&gt;
    track     mediumblob              not null,&lt;br /&gt;
    file_type varchar(255) default 'kml' null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table flight_type_mandatory_validity_type&lt;br /&gt;
(&lt;br /&gt;
    activity_type_id bigint unsigned           not null,&lt;br /&gt;
    validity_type_id int unsigned    default 0 not null,&lt;br /&gt;
    primary key (activity_type_id, validity_type_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of mandatory qualification for each flight type';&lt;br /&gt;
&lt;br /&gt;
create table import&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label               varchar(255)                          not null,&lt;br /&gt;
    order_num           int                                   null,&lt;br /&gt;
    import_file_type    varchar(255) default 'csv-comma-CRLF' not null,&lt;br /&gt;
    match_query         text                                  null,&lt;br /&gt;
    uptodate_test_query text                                  null,&lt;br /&gt;
    update_query        text                                  null,&lt;br /&gt;
    update_activated    tinyint(1)   default 0                not null,&lt;br /&gt;
    login               varchar(255)                          null,&lt;br /&gt;
    hash_password       varchar(255)                          null,&lt;br /&gt;
    sync_task_name      varchar(255)                          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table ip_stopped&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    ip          varchar(255)        not null,&lt;br /&gt;
    counter     tinyint unsigned    not null,&lt;br /&gt;
    expire_date datetime            not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'blacklisted ip';&lt;br /&gt;
&lt;br /&gt;
create table journal&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    login     varchar(255)           null,&lt;br /&gt;
    date_log  datetime               null,&lt;br /&gt;
    rights    text                   null,&lt;br /&gt;
    rights2   text                   null,&lt;br /&gt;
    action    varchar(255)           null,&lt;br /&gt;
    person_id int unsigned default 0 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of logs';&lt;br /&gt;
&lt;br /&gt;
create index idx_action&lt;br /&gt;
    on journal (action);&lt;br /&gt;
&lt;br /&gt;
create index idx_date_log&lt;br /&gt;
    on journal (date_log);&lt;br /&gt;
&lt;br /&gt;
create table key_alert&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    alert_date datetime               null,&lt;br /&gt;
    status     int unsigned default 0 not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key alerts';&lt;br /&gt;
&lt;br /&gt;
create table key_assignment&lt;br /&gt;
(&lt;br /&gt;
    key_id      tinyint unsigned    default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    key_name    tinytext                      null,&lt;br /&gt;
    aircraft_id int unsigned        default 0 null,&lt;br /&gt;
    key_state   tinyint unsigned    default 0 null,&lt;br /&gt;
    key_word    bigint unsigned     default 0 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key assignment description';&lt;br /&gt;
&lt;br /&gt;
create table key_host&lt;br /&gt;
(&lt;br /&gt;
    id       tinyint auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    timeout  tinyint             default 10          not null,&lt;br /&gt;
    num_key  tinyint unsigned    default 8           not null,&lt;br /&gt;
    ipkey    varchar(50)         default '127.0.0.1' not null,&lt;br /&gt;
    httpport int                 default 4080        not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key host configuration';&lt;br /&gt;
&lt;br /&gt;
create table key_log&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    log_date  datetime     null,&lt;br /&gt;
    action    varchar(255) null,&lt;br /&gt;
    message   varchar(255) null,&lt;br /&gt;
    key_id    int unsigned null,&lt;br /&gt;
    person_id int unsigned null,&lt;br /&gt;
    xmlrpc    int unsigned null,&lt;br /&gt;
    error     varchar(255) null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key logs';&lt;br /&gt;
&lt;br /&gt;
create table location&lt;br /&gt;
(&lt;br /&gt;
    icao_name       varchar(6)       not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name            varchar(64)      not null,&lt;br /&gt;
    latitude        double           null,&lt;br /&gt;
    longitude       double           null,&lt;br /&gt;
    altitude        int              null,&lt;br /&gt;
    weather_station int unsigned     null,&lt;br /&gt;
    asked_counter   bigint default 0 not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'airfields coord';&lt;br /&gt;
&lt;br /&gt;
create table log&lt;br /&gt;
(&lt;br /&gt;
    journal_id  int unsigned not null,&lt;br /&gt;
    action      varchar(255) null,&lt;br /&gt;
    table_name  varchar(255) null,&lt;br /&gt;
    field_name  varchar(255) null,&lt;br /&gt;
    field_value varchar(255) null&lt;br /&gt;
)&lt;br /&gt;
    comment 'part of logs';&lt;br /&gt;
&lt;br /&gt;
create index idx_field_value&lt;br /&gt;
    on log (field_value);&lt;br /&gt;
&lt;br /&gt;
create index idx_journal_id&lt;br /&gt;
    on log (journal_id);&lt;br /&gt;
&lt;br /&gt;
create index journal_id&lt;br /&gt;
    on log (journal_id);&lt;br /&gt;
&lt;br /&gt;
create table logger&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    serial_number int unsigned                      null,&lt;br /&gt;
    color         varchar(20)         default 'red' not null,&lt;br /&gt;
    activated     tinyint unsigned    default 1     not null,&lt;br /&gt;
    order_num     int unsigned                      not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'logger parameters';&lt;br /&gt;
&lt;br /&gt;
create table login_stopped&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    login       varchar(255)     not null,&lt;br /&gt;
    counter     tinyint unsigned not null,&lt;br /&gt;
    expire_date datetime         not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'blacklisted login';&lt;br /&gt;
&lt;br /&gt;
create table m_component&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    parent_id           int unsigned        default 0 not null,&lt;br /&gt;
    m_component_type_id int unsigned                  null,&lt;br /&gt;
    resource_id         int unsigned                  null,&lt;br /&gt;
    order_num           int                           not null,&lt;br /&gt;
    serial_number       varchar(255)                  null,&lt;br /&gt;
    brandnew_date       datetime                      null,&lt;br /&gt;
    activated           tinyint unsigned    default 1 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_component_type&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    parent_id              int unsigned        default 0 not null,&lt;br /&gt;
    resource_type_id       int                           null,&lt;br /&gt;
    m_classification_id    int                           null,&lt;br /&gt;
    is_maintenance_check   tinyint unsigned    default 1 not null,&lt;br /&gt;
    order_num              int                           not null,&lt;br /&gt;
    label                  varchar(255)                  null,&lt;br /&gt;
    description            varchar(255)                  null,&lt;br /&gt;
    manufacturer           varchar(255)                  null,&lt;br /&gt;
    manufacturer_reference varchar(255)                  null,&lt;br /&gt;
    part_number            varchar(255)                  null,&lt;br /&gt;
    periodicity            int unsigned                  null,&lt;br /&gt;
    tolerance              int unsigned        default 0 not null,&lt;br /&gt;
    calendar_periodicity   int unsigned                  null,&lt;br /&gt;
    calendar_tolerance     int unsigned        default 0 not null,&lt;br /&gt;
    activated              tinyint unsigned    default 1 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_component_type_parentality&lt;br /&gt;
(&lt;br /&gt;
    m_component_type_id        int unsigned not null,&lt;br /&gt;
    m_component_type_parent_id int unsigned not null,&lt;br /&gt;
    primary key (m_component_type_id, m_component_type_parent_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_history&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    m_component_id         int unsigned                  not null,&lt;br /&gt;
    install_date           datetime                      null,&lt;br /&gt;
    remove_date            datetime                      null,&lt;br /&gt;
    total_hours_on_install int unsigned        default 0 not null,&lt;br /&gt;
    threshold_hours        int unsigned        default 0 not null,&lt;br /&gt;
    threshold_date         datetime                      null,&lt;br /&gt;
    threshold_date_locked  tinyint unsigned    default 0 not null,&lt;br /&gt;
    threshold_hours_locked tinyint unsigned    default 0 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_operation&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    content             text         not null,&lt;br /&gt;
    m_component_type_id int          null,&lt;br /&gt;
    order_num           int          not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table maintenance_history&lt;br /&gt;
(&lt;br /&gt;
    id                                   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id                          int unsigned                  null,&lt;br /&gt;
    maintenance_program_id               int unsigned                  null,&lt;br /&gt;
    frame_hours_at_work_start            int                           null,&lt;br /&gt;
    date_work_end                        date                          null,&lt;br /&gt;
    min_overhaul_counter                 int                           null,&lt;br /&gt;
    max_overhaul_counter                 int                           null,&lt;br /&gt;
    min_overhaul_date                    date                          null,&lt;br /&gt;
    max_overhaul_date                    date                          null,&lt;br /&gt;
    min_next_overhaul_counter            int                           null,&lt;br /&gt;
    max_next_overhaul_counter            int                           null,&lt;br /&gt;
    min_next_overhaul_date               date                          null,&lt;br /&gt;
    max_next_overhaul_date               date                          null,&lt;br /&gt;
    first_reference_visit                tinyint unsigned default 0    not null,&lt;br /&gt;
    is_visit                             tinyint unsigned default 0    not null,&lt;br /&gt;
    action_type                          tinyint unsigned              null,&lt;br /&gt;
    previous_line_linked_time_action     int                           null,&lt;br /&gt;
    previous_line_linked_calendar_action int                           null,&lt;br /&gt;
    next_line_linked_time_action         int                           null,&lt;br /&gt;
    next_line_linked_calendar_action     int                           null,&lt;br /&gt;
    time_tolerance                       int                           null,&lt;br /&gt;
    calendar_tolerance                   int                           null,&lt;br /&gt;
    time_periodicity_component           int                           null,&lt;br /&gt;
    calendar_periodicity_component       int                           null,&lt;br /&gt;
    time_periodicity                     int                           null,&lt;br /&gt;
    calendar_periodicity                 int                           null,&lt;br /&gt;
    reference_overhaul_counter           int                           null,&lt;br /&gt;
    reference_overhaul_date              date                          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table maintenance_program&lt;br /&gt;
(&lt;br /&gt;
    id                                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id                           int unsigned                  null,&lt;br /&gt;
    component_type_id                     int unsigned                  null,&lt;br /&gt;
    description                           varchar(255)                  null,&lt;br /&gt;
    time_periodicity                      int                           null,&lt;br /&gt;
    calendar_periodicity                  int                           null,&lt;br /&gt;
    time_first_reference                  int                           null,&lt;br /&gt;
    calendar_first_reference              date                          null,&lt;br /&gt;
    time_tolerance                        int                           null,&lt;br /&gt;
    calendar_tolerance                    int                           null,&lt;br /&gt;
    frame_hours_at_work_start             int                           null,&lt;br /&gt;
    date_work_end                         date                          null,&lt;br /&gt;
    time_elapsed                          int                           null,&lt;br /&gt;
    calendar_elapsed                      int                           null,&lt;br /&gt;
    time_remaining                        int                           null,&lt;br /&gt;
    calendar_remaining                    int                           null,&lt;br /&gt;
    min_next_overhaul_counter             int                           null,&lt;br /&gt;
    max_next_overhaul_counter             int                           null,&lt;br /&gt;
    min_next_overhaul_date                date                          null,&lt;br /&gt;
    max_next_overhaul_date                date                          null,&lt;br /&gt;
    effective_hours_at_work_start         int                           null,&lt;br /&gt;
    theoretical_overhaul_counter          int                           null,&lt;br /&gt;
    intelligent_overhaul_counter          int                           null,&lt;br /&gt;
    intelligent_min_next_overhaul_counter int                           null,&lt;br /&gt;
    intelligent_max_next_overhaul_counter int                           null,&lt;br /&gt;
    effective_date_at_work_end            date                          null,&lt;br /&gt;
    theoretical_overhaul_date             date                          null,&lt;br /&gt;
    intelligent_overhaul_date             date                          null,&lt;br /&gt;
    intelligent_min_next_overhaul_date    date                          null,&lt;br /&gt;
    intelligent_max_next_overhaul_date    date                          null,&lt;br /&gt;
    overlapping_group_id                  int unsigned                  null,&lt;br /&gt;
    is_visit_rg                           tinyint unsigned default 0    not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table maintenance_view&lt;br /&gt;
(&lt;br /&gt;
    id                                                int unsigned default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    frame_total_time                                  int                    null,&lt;br /&gt;
    frame_time_since_rg                               int                    null,&lt;br /&gt;
    engine_time_since_rg                              int                    null,&lt;br /&gt;
    propeller_time_since_rg                           int                    null,&lt;br /&gt;
    potential_remaining_next_time_action              int                    null,&lt;br /&gt;
    potential_remaining_next_time_visit               int                    null,&lt;br /&gt;
    potential_remaining_next_priority_time_action     int                    null,&lt;br /&gt;
    potential_remaining_next_calendar_action          int                    null,&lt;br /&gt;
    potential_remaining_next_calendar_visit           int                    null,&lt;br /&gt;
    potential_remaining_next_priority_calendar_action int                    null,&lt;br /&gt;
    next_time_action_id                               int unsigned           null,&lt;br /&gt;
    next_time_visit_id                                int unsigned           null,&lt;br /&gt;
    next_priority_time_action_id                      int unsigned           null,&lt;br /&gt;
    next_calendar_action_id                           int unsigned           null,&lt;br /&gt;
    next_calendar_visit_id                            int unsigned           null,&lt;br /&gt;
    next_priority_calendar_action_id                  int unsigned           null,&lt;br /&gt;
    overhaul_counter_action                           int                    null,&lt;br /&gt;
    overhaul_counter_visit                            int                    null,&lt;br /&gt;
    overhaul_date_action                              date                   null,&lt;br /&gt;
    overhaul_date_visit                               date                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table map_logger_monitoring&lt;br /&gt;
(&lt;br /&gt;
    record_id  int unsigned not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    count_data int unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'link between flight and track';&lt;br /&gt;
&lt;br /&gt;
create table map_track&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    record_id     int unsigned                  null,&lt;br /&gt;
    start_data    int unsigned                  null,&lt;br /&gt;
    number        int unsigned                  null,&lt;br /&gt;
    start_time    datetime                      null,&lt;br /&gt;
    latitude_max  double                        null,&lt;br /&gt;
    longitude_max double                        null,&lt;br /&gt;
    latitude_min  double                        null,&lt;br /&gt;
    longitude_min double                        null,&lt;br /&gt;
    visible       tinyint unsigned default 1    not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'tracks split from gdr';&lt;br /&gt;
&lt;br /&gt;
create table nationality&lt;br /&gt;
(&lt;br /&gt;
    code  char(2) default '' not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255)       not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_access_token&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid              varchar(255)    not null,&lt;br /&gt;
    expiry_date_time datetime        not null,&lt;br /&gt;
    scopes           varchar(2048)   not null,&lt;br /&gt;
    oauth_client_id  int unsigned    not null,&lt;br /&gt;
    person_id        int unsigned    null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_auth_code&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid              varchar(255)    not null,&lt;br /&gt;
    expiry_date_time datetime        not null,&lt;br /&gt;
    redirect_uri     varchar(2048)   not null,&lt;br /&gt;
    scopes           varchar(2048)   not null,&lt;br /&gt;
    oauth_client_id  int unsigned    not null,&lt;br /&gt;
    person_id        int unsigned    not null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_client&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid                      varchar(255)    not null,&lt;br /&gt;
    hashed_passphrase        varchar(255)    null,&lt;br /&gt;
    name                     text            not null,&lt;br /&gt;
    authorization_grant_type varchar(255)    not null,&lt;br /&gt;
    redirect_uri             varchar(2048)   not null,&lt;br /&gt;
    owner_person_id          int unsigned    not null,&lt;br /&gt;
    auth_cert                text            null,&lt;br /&gt;
    sign_cert                text            null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_dpop_token&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    jti             varchar(255) not null,&lt;br /&gt;
    expiration_date datetime     not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_refresh_token&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid                    varchar(255)    not null,&lt;br /&gt;
    expiry_date_time       datetime        not null,&lt;br /&gt;
    oauth_access_token_uid varchar(255)    not null,&lt;br /&gt;
    scopes                 varchar(2048)   not null,&lt;br /&gt;
    oauth_client_id        int unsigned    not null,&lt;br /&gt;
    person_id              int unsigned    not null,&lt;br /&gt;
    dpop_jkt               varchar(128)    null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table parameter&lt;br /&gt;
(&lt;br /&gt;
    code       varchar(255)                  not null,&lt;br /&gt;
    key_id     int unsigned     default 0    not null,&lt;br /&gt;
    enabled    tinyint unsigned default 0    null,&lt;br /&gt;
    int_value  bigint unsigned  default 0    not null,&lt;br /&gt;
    char_value mediumtext                    null,&lt;br /&gt;
    primary key (code, key_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'application parameters';&lt;br /&gt;
&lt;br /&gt;
create table payment_summary_file&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type       varchar(255)            null,&lt;br /&gt;
    content         longblob                null,&lt;br /&gt;
    record_date     datetime                null,&lt;br /&gt;
    total_entry     int unsigned            null,&lt;br /&gt;
    total_amount    decimal(15, 5) unsigned null,&lt;br /&gt;
    payment_type_id int unsigned            null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table payment_type&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                text                          null,&lt;br /&gt;
    text_field_label    text                          null,&lt;br /&gt;
    only_admin          tinyint unsigned default 0    not null,&lt;br /&gt;
    pos_key_id          int unsigned                  null,&lt;br /&gt;
    treasury_account_id int unsigned                  null,&lt;br /&gt;
    person_delivery     tinyint unsigned default 0    null,&lt;br /&gt;
    person_budget_id    int unsigned                  null,&lt;br /&gt;
    treasury_budget_id  int unsigned                  null,&lt;br /&gt;
    minimum_amount      decimal(10, 0)                null,&lt;br /&gt;
    maximum_amount      decimal(10, 0)                null&lt;br /&gt;
)&lt;br /&gt;
    comment 'type of payment description';&lt;br /&gt;
&lt;br /&gt;
create table person&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                   varchar(255)                                      not null,&lt;br /&gt;
    hash_password          varchar(255)                                      not null,&lt;br /&gt;
    first_name             varchar(255)                                      null,&lt;br /&gt;
    last_name              varchar(255)                                      null,&lt;br /&gt;
    profile                bigint unsigned                                   null,&lt;br /&gt;
    view_type              int unsigned                                      null,&lt;br /&gt;
    view_width             tinyint unsigned    default 12                    not null,&lt;br /&gt;
    view_height            tinyint unsigned    default 30                    not null,&lt;br /&gt;
    email                  varchar(255)                                      null,&lt;br /&gt;
    timezone               varchar(255)                                      null,&lt;br /&gt;
    address                varchar(255)                                      null,&lt;br /&gt;
    zipcode                varchar(255)                                      null,&lt;br /&gt;
    city                   varchar(255)                                      null,&lt;br /&gt;
    state                  varchar(255)                                      null,&lt;br /&gt;
    country                varchar(255)                                      null,&lt;br /&gt;
    home_phone             varchar(255)                                      null,&lt;br /&gt;
    work_phone             varchar(255)                                      null,&lt;br /&gt;
    cell_phone             varchar(255)                                      null,&lt;br /&gt;
    lang                   varchar(255)                                      null,&lt;br /&gt;
    notification           bigint unsigned                                   null,&lt;br /&gt;
    activated              tinyint unsigned    default 1                     null,&lt;br /&gt;
    birthdate              datetime            default '0000-00-00 00:00:00' null,&lt;br /&gt;
    sex                    tinyint unsigned    default 0                     not null,&lt;br /&gt;
    nationality            char(2)                                           null,&lt;br /&gt;
    total_flight_time      int unsigned        default 0                     null,&lt;br /&gt;
    date_total_flight_time datetime                                          null,&lt;br /&gt;
    guid                   varchar(255)                                      null,&lt;br /&gt;
    activity_notification  bigint unsigned                                   null,&lt;br /&gt;
    unique (name)&lt;br /&gt;
)&lt;br /&gt;
    comment 'used for authentication';&lt;br /&gt;
&lt;br /&gt;
create table person_awaiting_activation&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    login           varchar(255)        not null,&lt;br /&gt;
    ip              varchar(255)        not null,&lt;br /&gt;
    code            varchar(255)        not null,&lt;br /&gt;
    category        varchar(255)        not null,&lt;br /&gt;
    expiration_date datetime            null,&lt;br /&gt;
    used            tinyint unsigned    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table product&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label               varchar(255)                  not null,&lt;br /&gt;
    unit                varchar(255)                  not null,&lt;br /&gt;
    free_sale           tinyint(1)          default 0 not null,&lt;br /&gt;
    locked              tinyint unsigned    default 0 null,&lt;br /&gt;
    variable_id         int                           null,&lt;br /&gt;
    sale_type           tinyint unsigned              null,&lt;br /&gt;
    is_external_product tinyint(1)                    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile&lt;br /&gt;
(&lt;br /&gt;
    id                bigint unsigned not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name              varchar(255)              null,&lt;br /&gt;
    permits           int unsigned              null,&lt;br /&gt;
    permits2          int unsigned    default 0 not null,&lt;br /&gt;
    permits3          int unsigned    default 0 not null,&lt;br /&gt;
    pictogram         int unsigned              null,&lt;br /&gt;
    default_status_id int unsigned              null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_accounting_notification&lt;br /&gt;
(&lt;br /&gt;
    profile_id    bigint unsigned not null,&lt;br /&gt;
    accounting_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, accounting_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_extra_field_join&lt;br /&gt;
(&lt;br /&gt;
    profile_id        bigint unsigned not null,&lt;br /&gt;
    business_field_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, business_field_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_profile_view&lt;br /&gt;
(&lt;br /&gt;
    profile_id          bigint unsigned not null,&lt;br /&gt;
    viewable_profile_id bigint unsigned not null,&lt;br /&gt;
    primary key (profile_id, viewable_profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_required_account_type&lt;br /&gt;
(&lt;br /&gt;
    profile_id      bigint unsigned not null,&lt;br /&gt;
    account_type_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, account_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_resource_type_place&lt;br /&gt;
(&lt;br /&gt;
    profile_id       bigint unsigned not null,&lt;br /&gt;
    resource_type_id int unsigned    not null,&lt;br /&gt;
    place_num        int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, resource_type_id, place_num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_resource_type_view&lt;br /&gt;
(&lt;br /&gt;
    profile_id                bigint unsigned not null,&lt;br /&gt;
    viewable_resource_type_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, viewable_resource_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_validity_type_join&lt;br /&gt;
(&lt;br /&gt;
    profile_id        bigint unsigned           not null,&lt;br /&gt;
    validity_type_id  int unsigned              not null,&lt;br /&gt;
    manage4oneself    int             default 0 not null,&lt;br /&gt;
    certify           int             default 0 not null,&lt;br /&gt;
    optional_contract tinyint(1)      default 0 not null,&lt;br /&gt;
    primary key (profile_id, validity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_validity_type_notification&lt;br /&gt;
(&lt;br /&gt;
    profile_id       bigint unsigned not null,&lt;br /&gt;
    validity_type_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, validity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table psp_return&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    psp_transaction_id int unsigned null,&lt;br /&gt;
    bank_answer        text         null,&lt;br /&gt;
    bank_misc          text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table psp_transaction&lt;br /&gt;
(&lt;br /&gt;
    id                int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    credit_account_id int unsigned           not null,&lt;br /&gt;
    debit_account_id  int unsigned           not null,&lt;br /&gt;
    transaction_date  datetime               not null,&lt;br /&gt;
    amount            float                  not null,&lt;br /&gt;
    description       varchar(255)           null,&lt;br /&gt;
    payment_type_id   int unsigned           not null,&lt;br /&gt;
    state             int unsigned default 0 not null,&lt;br /&gt;
    token             text                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table psp_transaction_account_entry&lt;br /&gt;
(&lt;br /&gt;
    psp_transaction_id    int unsigned default 0 not null,&lt;br /&gt;
    account_entry_flow_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (psp_transaction_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table record_changelog&lt;br /&gt;
(&lt;br /&gt;
    id             int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    record_id      int unsigned not null,&lt;br /&gt;
    record_type    varchar(255) null,&lt;br /&gt;
    person_id      int unsigned null,&lt;br /&gt;
    changelog_date datetime     not null,&lt;br /&gt;
    record_state   text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table regular_presence_inst_date&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    person_id  int unsigned     null,&lt;br /&gt;
    start_day  tinyint unsigned null,&lt;br /&gt;
    end_day    tinyint unsigned null,&lt;br /&gt;
    start_hour time             null,&lt;br /&gt;
    end_hour   time             null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name             varchar(255)                  null,&lt;br /&gt;
    resource_type_id int unsigned                  null,&lt;br /&gt;
    comments         varchar(255)                  null,&lt;br /&gt;
    order_num        int                           null,&lt;br /&gt;
    activated        tinyint unsigned    default 1 not null,&lt;br /&gt;
    bookable         int unsigned        default 1 null,&lt;br /&gt;
    physical         int unsigned        default 1 null,&lt;br /&gt;
    color            int unsigned                  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_event_report&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id              int unsigned not null,&lt;br /&gt;
    flight_id                int unsigned default null,&lt;br /&gt;
    resource_event_report_id int unsigned default null,&lt;br /&gt;
    content                  text         not null,&lt;br /&gt;
    is_open                  tinyint unsigned not null default 1,&lt;br /&gt;
    failure_level            tinyint unsigned default null,&lt;br /&gt;
    approval_signature       text         default null,&lt;br /&gt;
    certified                tinyint      not null default 0,&lt;br /&gt;
    writer_name              varchar(255) not null,&lt;br /&gt;
    writer_date              datetime     not null,&lt;br /&gt;
    writer_ip_address        varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
create index idx_resource_id_is_open_failure_level&lt;br /&gt;
    on resource_event_report (resource_id, is_open, failure_level);&lt;br /&gt;
create index idx_resource_event_report_id&lt;br /&gt;
    on resource_event_report (resource_event_report_id);&lt;br /&gt;
create index idx_flight_id&lt;br /&gt;
    on resource_event_report (flight_id);&lt;br /&gt;
&lt;br /&gt;
create table resource_exceptional_availability&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id int unsigned        null,&lt;br /&gt;
    start_date  datetime            null,&lt;br /&gt;
    end_date    datetime            null,&lt;br /&gt;
    presence    tinyint unsigned    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_maintenance_alert&lt;br /&gt;
(&lt;br /&gt;
    id             int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    aircraft_id    int unsigned          not null,&lt;br /&gt;
    alert_category tinyint unsigned      not null,&lt;br /&gt;
    alert_level    tinyint unsigned      not null,&lt;br /&gt;
    is_enabled     tinyint unsigned default 0 not null,&lt;br /&gt;
    is_sent        tinyint unsigned default 0 not null,&lt;br /&gt;
    unique (aircraft_id, alert_category, alert_level)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_regular_availability&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id int unsigned        null,&lt;br /&gt;
    start_day   tinyint unsigned    null,&lt;br /&gt;
    end_day     tinyint unsigned    null,&lt;br /&gt;
    start_hour  time                null,&lt;br /&gt;
    end_hour    time                null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_type&lt;br /&gt;
(&lt;br /&gt;
    id                   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                 varchar(255)                   null,&lt;br /&gt;
    category             int unsigned                   null,&lt;br /&gt;
    seats_available      int                 default -1 null,&lt;br /&gt;
    comments             varchar(255)                   null,&lt;br /&gt;
    activated            tinyint unsigned    default 1  not null,&lt;br /&gt;
    max_booking_duration int                 default -1 null,&lt;br /&gt;
    pictogram            int unsigned                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_type_place_tag&lt;br /&gt;
(&lt;br /&gt;
    resource_type_id int unsigned        not null,&lt;br /&gt;
    place_num        tinyint unsigned    not null,&lt;br /&gt;
    place_tag        varchar(255)        null,&lt;br /&gt;
    place_quantity   int      default -1 null,&lt;br /&gt;
    primary key (resource_type_id, place_num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_2_stock&lt;br /&gt;
(&lt;br /&gt;
    id                           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    product_id                   int unsigned    not null,&lt;br /&gt;
    stock_id                     int unsigned    not null,&lt;br /&gt;
    stock_variation_qty_per_sale float default 0 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_2_validity_type&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    validity_type_id int unsigned not null,&lt;br /&gt;
    new_formula      varchar(255) null,&lt;br /&gt;
    update_formula   varchar(255) null,&lt;br /&gt;
    product_id       int unsigned not null,&lt;br /&gt;
    unique (validity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_product&lt;br /&gt;
    on sale_2_validity_type (product_id);&lt;br /&gt;
&lt;br /&gt;
create table sale_pricing&lt;br /&gt;
(&lt;br /&gt;
    id                      int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label                   varchar(255)                  null,&lt;br /&gt;
    price_formula           text                          null,&lt;br /&gt;
    debit_account_id        int unsigned                  null,&lt;br /&gt;
    credit_account_id       int unsigned                  null,&lt;br /&gt;
    debit_account_type      tinyint unsigned    default 0 null,&lt;br /&gt;
    credit_account_type     tinyint unsigned    default 0 null,&lt;br /&gt;
    credit_budget_id        int unsigned                  null,&lt;br /&gt;
    debit_budget_id         int unsigned                  null,&lt;br /&gt;
    order_num               int                           null,&lt;br /&gt;
    variable_formula        varchar(255)                  null,&lt;br /&gt;
    debit_bill_num          int unsigned                  null,&lt;br /&gt;
    credit_bill_num         int unsigned                  null,&lt;br /&gt;
    qty_formula             text                          null,&lt;br /&gt;
    unit_price_formula      text                          null,&lt;br /&gt;
    added_product_id        int unsigned                  null,&lt;br /&gt;
    is_for_external_product tinyint(1)          default 1 null,&lt;br /&gt;
    is_for_internal_product tinyint(1)          default 1 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_pricing_product&lt;br /&gt;
(&lt;br /&gt;
    sale_pricing_id int unsigned default 0 not null,&lt;br /&gt;
    product_id      int unsigned default 0 not null,&lt;br /&gt;
    primary key (sale_pricing_id, product_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_pricing_profile&lt;br /&gt;
(&lt;br /&gt;
    sale_pricing_id int unsigned              not null,&lt;br /&gt;
    profile_id      bigint unsigned default 0 not null,&lt;br /&gt;
    primary key (sale_pricing_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_trigger&lt;br /&gt;
(&lt;br /&gt;
    id             int                 default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name           varchar(255)                  null,&lt;br /&gt;
    event          varchar(255)                  null,&lt;br /&gt;
    locked         tinyint unsigned    default 0 not null,&lt;br /&gt;
    query          text                          null,&lt;br /&gt;
    validate_entry tinyint(1)          default 0 null,&lt;br /&gt;
    group_sales    tinyint(1)          default 0 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table spreadsheet_parameter&lt;br /&gt;
(&lt;br /&gt;
    file_number       int          not null,&lt;br /&gt;
    spreadsheet_key   varchar(255) not null,&lt;br /&gt;
    spreadsheet_value varchar(255) not null,&lt;br /&gt;
    file_name         varchar(255) null,&lt;br /&gt;
    google_url        varchar(255) not null,&lt;br /&gt;
    file_type         int unsigned null,&lt;br /&gt;
    primary key (file_number, spreadsheet_key, spreadsheet_value)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table statistic&lt;br /&gt;
(&lt;br /&gt;
    name       varchar(255)                not null,&lt;br /&gt;
    of_version tinyint        default 0    not null,&lt;br /&gt;
    value      decimal(15, 2) default 0.00 null,&lt;br /&gt;
    primary key (name, of_version)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table status&lt;br /&gt;
(&lt;br /&gt;
    id                      int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    abbrev                  varchar(255) null,&lt;br /&gt;
    name                    varchar(255) null,&lt;br /&gt;
    pictogram               int unsigned null,&lt;br /&gt;
    carnet_aero_function_id int unsigned null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of functions for pilot';&lt;br /&gt;
&lt;br /&gt;
create table stock&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label         varchar(255) not null,&lt;br /&gt;
    stock_type_id int unsigned not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_level&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    stock_id   int unsigned    not null,&lt;br /&gt;
    qty        float default 0 not null,&lt;br /&gt;
    stock_date datetime        null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_type&lt;br /&gt;
(&lt;br /&gt;
    id    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255) not null,&lt;br /&gt;
    unit  varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_variation&lt;br /&gt;
(&lt;br /&gt;
    id             int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    stock_id       int unsigned               not null,&lt;br /&gt;
    qty            float             default 0 not null,&lt;br /&gt;
    variation_date datetime                   null,&lt;br /&gt;
    validated      tinyint unsigned  default 0 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_variation_account_entry&lt;br /&gt;
(&lt;br /&gt;
    product_id            int unsigned default 0 not null,&lt;br /&gt;
    stock_variation_id    int unsigned           not null,&lt;br /&gt;
    account_entry_flow_id int unsigned           not null,&lt;br /&gt;
    person_id             int unsigned           not null,&lt;br /&gt;
    primary key (product_id, stock_variation_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on stock_variation_account_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create table structure&lt;br /&gt;
(&lt;br /&gt;
    id                            int              default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                          varchar(255)               null,&lt;br /&gt;
    info_cell                     text                       null,&lt;br /&gt;
    logo                          longblob                   null,&lt;br /&gt;
    logo_name                     varchar(255)               null,&lt;br /&gt;
    logo_ext                      varchar(25)                null,&lt;br /&gt;
    logo_size                     int                        null,&lt;br /&gt;
    first_hour_displayed          time                       null,&lt;br /&gt;
    last_hour_displayed           time                       null,&lt;br /&gt;
    usual_profiles                bigint unsigned            null,&lt;br /&gt;
    icao                          varchar(6)                 null,&lt;br /&gt;
    default_slot_range            int unsigned               null,&lt;br /&gt;
    min_slot_range                tinyint unsigned           null,&lt;br /&gt;
    twilight_range                tinyint unsigned           null,&lt;br /&gt;
    mailing_list_name             varchar(255)               null,&lt;br /&gt;
    mailing_list_type             varchar(255)               null,&lt;br /&gt;
    structure_site_url            varchar(255)               null,&lt;br /&gt;
    default_timezone              varchar(255)               not null,&lt;br /&gt;
    lang                          varchar(255)               not null,&lt;br /&gt;
    admin_num                     int unsigned               not null,&lt;br /&gt;
    default_view_type             int unsigned               null,&lt;br /&gt;
    address                       varchar(255)               null,&lt;br /&gt;
    zipcode                       varchar(255)               null,&lt;br /&gt;
    city                          varchar(255)               null,&lt;br /&gt;
    state                         varchar(255)               null,&lt;br /&gt;
    country                       varchar(255)               null,&lt;br /&gt;
    phone                         varchar(255)               null,&lt;br /&gt;
    fax                           varchar(255)               null,&lt;br /&gt;
    email                         varchar(255)               null,&lt;br /&gt;
    default_notification          int unsigned               null,&lt;br /&gt;
    welcome_cell                  text                       null,&lt;br /&gt;
    business                      text                       null,&lt;br /&gt;
    default_activity_notification bigint unsigned            null,&lt;br /&gt;
    siren                         int                        null&lt;br /&gt;
)&lt;br /&gt;
    comment 'description of all airclubs';&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    supplier_bill_type_id int unsigned         not null,&lt;br /&gt;
    bill_date             datetime             null,&lt;br /&gt;
    description           varchar(255)         null,&lt;br /&gt;
    ordinal               int unsigned         not null,&lt;br /&gt;
    validated             tinyint(1) default 0 null,&lt;br /&gt;
    supplier_bill_file_id int                  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_account_entry&lt;br /&gt;
(&lt;br /&gt;
    supplier_bill_id      int unsigned not null,&lt;br /&gt;
    account_entry_flow_id int unsigned not null,&lt;br /&gt;
    primary key (supplier_bill_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on supplier_bill_account_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_email_parsed&lt;br /&gt;
(&lt;br /&gt;
    id                    int auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid                   int          null,&lt;br /&gt;
    email_address         varchar(255) null,&lt;br /&gt;
    supplier_bill_file_id int unsigned not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_file&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type varchar(255) null,&lt;br /&gt;
    content   longblob     null,&lt;br /&gt;
    name      varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_type&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    supplier_account_id int unsigned not null,&lt;br /&gt;
    name                varchar(255) null,&lt;br /&gt;
    account_id          int unsigned not null,&lt;br /&gt;
    vat_account_id      int unsigned null,&lt;br /&gt;
    supplier_budget_id  int unsigned null,&lt;br /&gt;
    account_budget_id   int unsigned null,&lt;br /&gt;
    vat_budget_id       int unsigned null,&lt;br /&gt;
    rule                text         null,&lt;br /&gt;
    sender_email        varchar(255) null,&lt;br /&gt;
    subject             varchar(255) null,&lt;br /&gt;
    supplier_name       varchar(255) default null,&lt;br /&gt;
    search_keyword      varchar(255) default null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table table_trigger&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    monitored_table varchar(255) not null,&lt;br /&gt;
    trigger_formula varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table tank&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    aircraft_type_id   int unsigned                 not null,&lt;br /&gt;
    tank_type_id       int unsigned                 not null,&lt;br /&gt;
    unit_id            int unsigned                 not null,&lt;br /&gt;
    label              varchar(255)                 not null,&lt;br /&gt;
    max_quantity       decimal(15, 2) default -1.00 not null,&lt;br /&gt;
    unlimited_quantity int unsigned   default 1     null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table track_record&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    in_progress            tinyint unsigned                       null,&lt;br /&gt;
    start_date             datetime default '0000-00-00 00:00:00' null,&lt;br /&gt;
    activated              tinyint unsigned                       null,&lt;br /&gt;
    datechsys_track_id     int unsigned                           null,&lt;br /&gt;
    resource_cat           int unsigned                           not null,&lt;br /&gt;
    resource_id            int unsigned                           not null,&lt;br /&gt;
    additional_information int unsigned                           null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table track_record_data&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    record_id     int unsigned        not null,&lt;br /&gt;
    record_date   datetime            null,&lt;br /&gt;
    longitude     double              null,&lt;br /&gt;
    latitude      double              null,&lt;br /&gt;
    altitude      int                 null,&lt;br /&gt;
    speed         double              null,&lt;br /&gt;
    track         int unsigned        null,&lt;br /&gt;
    acc_x         int                 null,&lt;br /&gt;
    acc_y         int                 null,&lt;br /&gt;
    acc_z         int                 null,&lt;br /&gt;
    pressure      int unsigned        null,&lt;br /&gt;
    battery_level int unsigned        null,&lt;br /&gt;
    gps_fix       tinyint unsigned    null,&lt;br /&gt;
    receive_date  datetime            null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_record_id&lt;br /&gt;
    on track_record_data (record_id);&lt;br /&gt;
&lt;br /&gt;
create table track_resource&lt;br /&gt;
(&lt;br /&gt;
    id   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training&lt;br /&gt;
(&lt;br /&gt;
    id   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_activity&lt;br /&gt;
(&lt;br /&gt;
    activity_id            int unsigned             not null,&lt;br /&gt;
    training_item_label_id int unsigned   default 0 not null,&lt;br /&gt;
    training_id            int unsigned   default 1 not null,&lt;br /&gt;
    level_reached          int unsigned             null,&lt;br /&gt;
    comment                varchar(255)             null,&lt;br /&gt;
    validated              tinyint(1)     default 0 not null,&lt;br /&gt;
    primary key (activity_id, training_item_label_id, training_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_activity_next_item&lt;br /&gt;
(&lt;br /&gt;
    student_id             int unsigned              not null,&lt;br /&gt;
    training_id            int unsigned              not null,&lt;br /&gt;
    training_item_label_id int unsigned              not null,&lt;br /&gt;
    reporting_offset       tinyint unsigned default 0 not null,&lt;br /&gt;
    item_preselected       tinyint unsigned default 0 not null,&lt;br /&gt;
    primary key (student_id, training_id, training_item_label_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_activity_person&lt;br /&gt;
(&lt;br /&gt;
    activity_id                int unsigned           not null,&lt;br /&gt;
    person_id                  int unsigned           not null,&lt;br /&gt;
    num                        int unsigned default 0 not null,&lt;br /&gt;
    training_checking_date     datetime               null,&lt;br /&gt;
    training_checking_sentence varchar(255)           null,&lt;br /&gt;
    primary key (activity_id, person_id, num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_item&lt;br /&gt;
(&lt;br /&gt;
    training_id            int unsigned not null,&lt;br /&gt;
    training_item_label_id int unsigned not null,&lt;br /&gt;
    number_of_sessions     int          not null,&lt;br /&gt;
    order_num              int          not null,&lt;br /&gt;
    custom_label           varchar(255) null,&lt;br /&gt;
    primary key (training_id, training_item_label_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_phase&lt;br /&gt;
(&lt;br /&gt;
    training_item_order_num int unsigned not null,&lt;br /&gt;
    training_id             int unsigned not null,&lt;br /&gt;
    name                    varchar(255) null,&lt;br /&gt;
    primary key (training_item_order_num, training_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_program&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    training_id int unsigned null,&lt;br /&gt;
    name        varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_program_activity&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    training_program_id int unsigned    not null,&lt;br /&gt;
    activity_type_id    bigint unsigned not null,&lt;br /&gt;
    duration            int unsigned    null,&lt;br /&gt;
    breaktime           int unsigned    null,&lt;br /&gt;
    order_num           int unsigned    not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table uncomp_flight_type&lt;br /&gt;
(&lt;br /&gt;
    id1 bigint unsigned not null,&lt;br /&gt;
    id2 bigint unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of sales';&lt;br /&gt;
&lt;br /&gt;
create table user_reauth_token&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    user_id            int unsigned         not null,&lt;br /&gt;
    verification_token varchar(255)         not null,&lt;br /&gt;
    ip_address         varchar(45)          not null,&lt;br /&gt;
    expiration_date    datetime             not null,&lt;br /&gt;
    activated          tinyint(1) default 1 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    person_id           int unsigned         not null,&lt;br /&gt;
    validity_type_id    int unsigned         not null,&lt;br /&gt;
    registration_date   datetime(3)          null,&lt;br /&gt;
    expire_date         date                 null,&lt;br /&gt;
    no_alert            tinyint(1) default 0 not null,&lt;br /&gt;
    ident_value         varchar(255)         null,&lt;br /&gt;
    grant_date          date                 null,&lt;br /&gt;
    checker_person_id   int                  null,&lt;br /&gt;
    checking_date       date                 not null,&lt;br /&gt;
    checking_sentence   varchar(255)         not null,&lt;br /&gt;
    is_current_validity tinyint(1) default 0 not null,&lt;br /&gt;
    action_ip_address   varchar(255)         null,&lt;br /&gt;
    action_login        varchar(255)         null,&lt;br /&gt;
    unique (person_id, validity_type_id, registration_date)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity_type&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                     varchar(255)                   not null,&lt;br /&gt;
    time_limitation          tinyint(1)          default 0  not null,&lt;br /&gt;
    ident_value_enable       tinyint(1)          default 0  not null,&lt;br /&gt;
    grant_date_enable        tinyint(1)          default 0  not null,&lt;br /&gt;
    mandatory                tinyint(1)          default 0  not null,&lt;br /&gt;
    experience_formula       text                           null,&lt;br /&gt;
    alert_on_login           int                 default -2 null,&lt;br /&gt;
    mandatory_access_control tinyint unsigned    default 0  null,&lt;br /&gt;
    first_reminder_alert     int unsigned        default 0  null,&lt;br /&gt;
    reminder_frequency_alert int unsigned        default 0  null,&lt;br /&gt;
    associate_attachment     tinyint unsigned    default 0  not null,&lt;br /&gt;
    certification_process    tinyint(1)          default 0  not null,&lt;br /&gt;
    is_contract              tinyint(1)          default 0  not null,&lt;br /&gt;
    contract_filename        varchar(255)                   not null,&lt;br /&gt;
    contract_file            mediumblob                     not null,&lt;br /&gt;
    contract_file_extension  varchar(4)                     not null,&lt;br /&gt;
    is_OF_contract           tinyint(1)          default 0  not null,&lt;br /&gt;
    activated                tinyint unsigned    default 1  not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'qualifications list';&lt;br /&gt;
&lt;br /&gt;
create table validity_type_page&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    validity_type_id int unsigned        not null,&lt;br /&gt;
    page_index       int unsigned        not null,&lt;br /&gt;
    label            varchar(40)         not null,&lt;br /&gt;
    is_mandatory     tinyint unsigned    not null,&lt;br /&gt;
    unique (validity_type_id, page_index)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity_page&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    validity_type_page_id int unsigned not null,&lt;br /&gt;
    filename              varchar(255) not null,&lt;br /&gt;
    file                  mediumblob   not null,&lt;br /&gt;
    file_extension        varchar(4)   not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity_2_validity_page&lt;br /&gt;
(&lt;br /&gt;
    validity_id      int unsigned not null,&lt;br /&gt;
    validity_page_id int unsigned not null,&lt;br /&gt;
    primary key (validity_id, validity_page_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table variable&lt;br /&gt;
(&lt;br /&gt;
    id         int auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    variable   varchar(255) not null,&lt;br /&gt;
    label      varchar(255) not null,&lt;br /&gt;
    category   tinyint(1)   null,&lt;br /&gt;
    value_type varchar(255) null,&lt;br /&gt;
    order_num  int          not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table variable_value&lt;br /&gt;
(&lt;br /&gt;
    id           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    variable_id  int            not null,&lt;br /&gt;
    assign_value decimal(15, 2) not null,&lt;br /&gt;
    start_date   datetime       not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table web_feed&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    channel_id       int unsigned not null,&lt;br /&gt;
    publication_date datetime     not null,&lt;br /&gt;
    title            varchar(255) null,&lt;br /&gt;
    content          text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table web_feed_channel&lt;br /&gt;
(&lt;br /&gt;
    id    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create definer = overallCustomer@localhost view eligible_pilot_for_first_flight as&lt;br /&gt;
select `of40_aeroclublys`.`person`.`id` AS `person_id`&lt;br /&gt;
from `of40_aeroclublys`.`person`&lt;br /&gt;
where ((`of40_aeroclublys`.`person`.`activated` = 1) and&lt;br /&gt;
       ((`of40_aeroclublys`.`person`.`profile` &amp;amp; (select `of40_aeroclublys`.`parameter`.`int_value`&lt;br /&gt;
                                                  from `of40_aeroclublys`.`parameter`&lt;br /&gt;
                                                  where (`of40_aeroclublys`.`parameter`.`code` =&lt;br /&gt;
                                                         'EXTERNAL_BOOKING_PILOT_PROFILE'))) &amp;gt; 0) and&lt;br /&gt;
       `of40_aeroclublys`.`person`.`id` in (select `of40_aeroclublys`.`regular_presence_inst_date`.`person_id`&lt;br /&gt;
                                            from `of40_aeroclublys`.`regular_presence_inst_date`&lt;br /&gt;
                                            union&lt;br /&gt;
                                            select `of40_aeroclublys`.`exceptionnal_inst_date`.`person_id`&lt;br /&gt;
                                            from `of40_aeroclublys`.`exceptionnal_inst_date`&lt;br /&gt;
                                            where ((`of40_aeroclublys`.`exceptionnal_inst_date`.`end_date` &amp;gt; now()) and&lt;br /&gt;
                                                   (`of40_aeroclublys`.`exceptionnal_inst_date`.`presence` = 1))));&lt;br /&gt;
&lt;br /&gt;
create definer = overallCustomer@localhost view eligible_resource_for_first_flight as&lt;br /&gt;
select `of40_aeroclublys`.`resource`.`id` AS `resource_id`&lt;br /&gt;
from ((`of40_aeroclublys`.`resource` join `of40_aeroclublys`.`business_field_content` on ((&lt;br /&gt;
        `of40_aeroclublys`.`business_field_content`.`category_id` = `of40_aeroclublys`.`resource`.`id`)))&lt;br /&gt;
         join `of40_aeroclublys`.`business_field` on ((`of40_aeroclublys`.`business_field`.`id` =&lt;br /&gt;
                                                       `of40_aeroclublys`.`business_field_content`.`business_field_id`)))&lt;br /&gt;
where ((`of40_aeroclublys`.`resource`.`activated` = 1) and&lt;br /&gt;
       (`of40_aeroclublys`.`business_field`.`variable` = 'canResourcePerformFirstFlights') and&lt;br /&gt;
       (`of40_aeroclublys`.`business_field_content`.`content` = '1') and&lt;br /&gt;
       (`of40_aeroclublys`.`resource`.`bookable` = 1) and ((select count(0)&lt;br /&gt;
                                                            from `of40_aeroclublys`.`resource_type_place_tag` `seat`&lt;br /&gt;
                                                            where (`seat`.`resource_type_id` =&lt;br /&gt;
                                                                   `of40_aeroclublys`.`resource`.`resource_type_id`)) &amp;gt;=&lt;br /&gt;
                                                           2) and&lt;br /&gt;
       `of40_aeroclublys`.`resource`.`id` in (select `of40_aeroclublys`.`resource_regular_availability`.`resource_id`&lt;br /&gt;
                                              from `of40_aeroclublys`.`resource_regular_availability`&lt;br /&gt;
                                              union&lt;br /&gt;
                                              select `of40_aeroclublys`.`resource_exceptional_availability`.`resource_id`&lt;br /&gt;
                                              from `of40_aeroclublys`.`resource_exceptional_availability`&lt;br /&gt;
                                              where ((`of40_aeroclublys`.`resource_exceptional_availability`.`end_date` &amp;gt;&lt;br /&gt;
                                                      now()) and&lt;br /&gt;
                                                     (`of40_aeroclublys`.`resource_exceptional_availability`.`presence` = 1))));&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function distanceBetween2Point(latitude1 double, longitude1 double, latitude2 double,&lt;br /&gt;
                                                            longitude2 double) returns double&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE rlongitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlongitude2 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude2 DOUBLE;&lt;br /&gt;
    DECLARE dlongitude DOUBLE;&lt;br /&gt;
    DECLARE dlatitude DOUBLE;&lt;br /&gt;
    DECLARE a DOUBLE;&lt;br /&gt;
&lt;br /&gt;
    SET rlongitude1 = RADIANS(longitude1);&lt;br /&gt;
    SET rlatitude1 = RADIANS(latitude1);&lt;br /&gt;
    SET rlongitude2 = RADIANS(longitude2);&lt;br /&gt;
    SET rlatitude2 = RADIANS(latitude2);&lt;br /&gt;
    SET dlongitude = (rlongitude2 - rlongitude1) / 2;&lt;br /&gt;
    SET dlatitude = (rlatitude2 - rlatitude1) / 2;&lt;br /&gt;
    SET a = SIN(dlatitude) * SIN(dlatitude) + COS(rlatitude1) * COS(rlatitude2) * SIN(dlongitude) * SIN(dlongitude);&lt;br /&gt;
    RETURN (6378137 * 2 * ATAN2(SQRT(a), SQRT(1 - a)));&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function formatDecimal(string varchar(255)) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE replacedString VARCHAR(255);&lt;br /&gt;
    SET replacedString = string;&lt;br /&gt;
    SET @decimalSeparator = (SELECT char_value FROM parameter WHERE code = 'DECIMAL_SEPARATOR' AND key_id = 0 LIMIT 1);&lt;br /&gt;
&lt;br /&gt;
    SELECT IF(replacedString &amp;lt;&amp;gt; '0.00' AND replacedString &amp;lt;&amp;gt; '0', TRIM(TRAILING '0' FROM replacedString),&lt;br /&gt;
              replacedString)&lt;br /&gt;
    INTO replacedString;&lt;br /&gt;
    SELECT TRIM(TRAILING '.' FROM replacedString) INTO replacedString;&lt;br /&gt;
    SELECT REPLACE(replacedString, '.', IFNULL(@decimalSeparator, '.')) INTO replacedString;&lt;br /&gt;
    RETURN replacedString;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function isBalancedAccountEntryFlow(flowId int) returns int&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE isBalanced INT;&lt;br /&gt;
&lt;br /&gt;
    SELECT IF(SUM(debit) &amp;lt;&amp;gt; SUM(credit), 0, 1)&lt;br /&gt;
    into isBalanced&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE flow_id = flowId&lt;br /&gt;
    GROUP BY flow_id;&lt;br /&gt;
&lt;br /&gt;
    RETURN isBalanced;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function nearestPoint(latRef double, longRef double, distanceMax int) returns varchar(6)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE rlongitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlongitude2 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude2 DOUBLE;&lt;br /&gt;
    DECLARE a DOUBLE;&lt;br /&gt;
    DECLARE icao_name VARCHAR(6);&lt;br /&gt;
    DECLARE lenght DOUBLE;&lt;br /&gt;
&lt;br /&gt;
    SET a = 2 * 6378137 * pi() * distanceMax / (1852 * 60 * 360);&lt;br /&gt;
    SET rlongitude1 = longRef + a / cos(latRef);&lt;br /&gt;
    SET rlongitude2 = longRef - a / cos(latRef);&lt;br /&gt;
    SET rlatitude1 = latRef + a;&lt;br /&gt;
    SET rlatitude2 = latRef - a;&lt;br /&gt;
&lt;br /&gt;
    SELECT loc1.icao_name,&lt;br /&gt;
           distanceBetween2Point(&lt;br /&gt;
                   (SELECT loc2.latitude FROM location AS loc2 WHERE loc2.icao_name = loc1.icao_name),&lt;br /&gt;
                   (SELECT loc3.longitude FROM location AS loc3 WHERE loc3.icao_name = loc1.icao_name),&lt;br /&gt;
                   latRef,&lt;br /&gt;
                   longRef) AS distance&lt;br /&gt;
    FROM location AS loc1&lt;br /&gt;
    WHERE IF(rlongitude2 &amp;lt; rlongitude1,&lt;br /&gt;
             loc1.longitude BETWEEN rlongitude2 AND rlongitude1,&lt;br /&gt;
             loc1.longitude BETWEEN rlongitude1 AND rlongitude2)&lt;br /&gt;
      AND IF(rlatitude2 &amp;lt; rlatitude1,&lt;br /&gt;
             loc1.latitude BETWEEN rlatitude2 AND rlatitude1,&lt;br /&gt;
             loc1.latitude BETWEEN rlatitude1 AND rlatitude2)&lt;br /&gt;
    HAVING distance &amp;lt; distanceMax&lt;br /&gt;
    ORDER BY distance&lt;br /&gt;
    LIMIT 1&lt;br /&gt;
    INTO icao_name, lenght;&lt;br /&gt;
&lt;br /&gt;
    RETURN icao_name;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sexa2HoursHundredths(sexacentimal int) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE convertedValue VARCHAR(255);&lt;br /&gt;
    DECLARE hours VARCHAR(255);&lt;br /&gt;
    DECLARE roundedHours VARCHAR(255);&lt;br /&gt;
    DECLARE remainingTime VARCHAR(255);&lt;br /&gt;
    DECLARE decimalSeparator VARCHAR(1);&lt;br /&gt;
    SET hours = sexacentimal / 600;&lt;br /&gt;
    SET roundedHours = IF(sexacentimal &amp;gt; 0, FLOOR(hours), CEIL(hours));&lt;br /&gt;
    SET remainingTime = ABS(sexacentimal - roundedHours * 600);&lt;br /&gt;
    SET decimalSeparator =&lt;br /&gt;
            (SELECT IFNULL(char_value, '.') FROM parameter WHERE code = 'DECIMAL_SEPARATOR' AND key_id = 0 LIMIT 1);&lt;br /&gt;
&lt;br /&gt;
    SELECT CONCAT(&lt;br /&gt;
                   roundedHours, decimalSeparator, LPAD(FLOOR(remainingTime / 6), 2, '0')&lt;br /&gt;
               )&lt;br /&gt;
    INTO convertedValue;&lt;br /&gt;
&lt;br /&gt;
    RETURN convertedValue;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sexa2HoursMinute(sexacentimal int) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE convertedValue VARCHAR(255);&lt;br /&gt;
    DECLARE hours VARCHAR(255); # We separate hours computation from roundHours in order to keep the minus sign if hours is 0 but sexacentimal negative&lt;br /&gt;
    DECLARE roundedHours VARCHAR(255);&lt;br /&gt;
    DECLARE remainingTime VARCHAR(255);&lt;br /&gt;
    SET hours = sexacentimal / 600;&lt;br /&gt;
    SET roundedHours = IF(sexacentimal &amp;gt; 0, FLOOR(hours), CEIL(hours));&lt;br /&gt;
    SET remainingTime = ABS(sexacentimal - roundedHours * 600);&lt;br /&gt;
&lt;br /&gt;
    SELECT CONCAT(&lt;br /&gt;
                   roundedHours, ':', LPAD(FLOOR(remainingTime / 10), 2, '0')&lt;br /&gt;
               )&lt;br /&gt;
    INTO convertedValue;&lt;br /&gt;
&lt;br /&gt;
    RETURN convertedValue;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function stripChars(word varchar(255)) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE stripWord VARCHAR(255);&lt;br /&gt;
    SET stripWord = word;&lt;br /&gt;
    SELECT IF(stripWord REGEXP '[-]', REPLACE(stripWord, '-', ''), stripWord) INTO stripWord;&lt;br /&gt;
    SELECT IF(stripWord REGEXP '[ ]', REPLACE(stripWord, ' ', ''), stripWord) INTO stripWord;&lt;br /&gt;
    RETURN stripWord;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sumAccountEntry(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE balanceCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalBalance DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(debit, 0.00), IFNULL(credit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceDebit, balanceCredit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceDebit, balanceCredit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(debit), 0.00) + balanceDebit, IFNULL(SUM(credit), 0.00) + balanceCredit&lt;br /&gt;
    INTO totalDebit, totalCredit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME);&lt;br /&gt;
&lt;br /&gt;
    SELECT (totalCredit - totalDebit) INTO totalBalance;&lt;br /&gt;
&lt;br /&gt;
    RETURN totalBalance;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sumAccountEntryCredit(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalCredit DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(credit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceCredit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceCredit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(credit), 0.00) + balanceCredit&lt;br /&gt;
    INTO totalCredit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME);&lt;br /&gt;
&lt;br /&gt;
    RETURN totalCredit;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sumAccountEntryDebit(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalDebit DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(debit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceDebit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceDebit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(debit), 0.00) + balanceDebit&lt;br /&gt;
    INTO totalDebit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME);&lt;br /&gt;
&lt;br /&gt;
    RETURN totalDebit;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function sumValidatedAccountEntry(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE balanceCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalBalance DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(debit, 0.00), IFNULL(credit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceDebit, balanceCredit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceDebit, balanceCredit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(debit), 0.00) + balanceDebit, IFNULL(SUM(credit), 0.00) + balanceCredit&lt;br /&gt;
    INTO totalDebit, totalCredit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME)&lt;br /&gt;
      AND validated = 1;&lt;br /&gt;
&lt;br /&gt;
    SELECT (totalCredit - totalDebit) INTO totalBalance;&lt;br /&gt;
&lt;br /&gt;
    RETURN totalBalance;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost procedure addGapToDate(in gap int)&lt;br /&gt;
    modifies sql data&lt;br /&gt;
BEGIN&lt;br /&gt;
    &lt;br /&gt;
    DECLARE done TINYINT DEFAULT 0;&lt;br /&gt;
    DECLARE tmpTableName VARCHAR(255);&lt;br /&gt;
    DECLARE tmpColumnName VARCHAR(255);&lt;br /&gt;
    &lt;br /&gt;
    DECLARE cursor1 CURSOR FOR&lt;br /&gt;
        SELECT TABLE_NAME, COLUMN_NAME&lt;br /&gt;
        FROM information_schema.COLUMNS&lt;br /&gt;
        WHERE TABLE_SCHEMA = ( SELECT DATABASE() )&lt;br /&gt;
          AND DATA_TYPE IN ('date', 'datetime');&lt;br /&gt;
    &lt;br /&gt;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;&lt;br /&gt;
&lt;br /&gt;
    OPEN cursor1;&lt;br /&gt;
    REPEAT&lt;br /&gt;
        FETCH cursor1 INTO tmpTableName, tmpColumnName;&lt;br /&gt;
        IF NOT done THEN&lt;br /&gt;
            BEGIN&lt;br /&gt;
                SET @dynamicQuery = CONCAT('UPDATE ', tmpTableName, ' SET ', tmpColumnName, '= DATE_ADD(', tmpColumnName, ', INTERVAL ', gap, ' DAY)');&lt;br /&gt;
                PREPARE pQuery FROM @dynamicQuery;&lt;br /&gt;
                EXECUTE pQuery;&lt;br /&gt;
                DEALLOCATE PREPARE pQuery;&lt;br /&gt;
            END;&lt;br /&gt;
        END IF;&lt;br /&gt;
    UNTIL done END REPEAT;&lt;br /&gt;
    CLOSE cursor1;&lt;br /&gt;
&lt;br /&gt;
    TRUNCATE TABLE customer_bill_file;&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&lt;br /&gt;
==Table booking==&lt;br /&gt;
&lt;br /&gt;
Le contenu du champ ''aircraft_id'' de la table ''booking'' peut être nul. Dans ce cas, c'est une ancienne réservation effectuée sur une ressource non-existante ou qui n'existe plus; aussi nommé réservation orpheline.&lt;br /&gt;
&lt;br /&gt;
==Table flight==&lt;br /&gt;
&lt;br /&gt;
*airborne :&lt;br /&gt;
**0: Pas en l'air ou fermeture de vol : Le pilote a terminé le vol.&lt;br /&gt;
**1: En l'air ou ouverture de vol : Le pilote remplit le vol avant de voler.&lt;br /&gt;
&lt;br /&gt;
==Champs cachés==&lt;br /&gt;
Les champs suivants ne peuvent être exportés et ne doivent pas être inclus dans une requête SELECT. De plus, un &amp;quot;SELECT *&amp;quot; est interdit quand une des tables contient un champ caché :&lt;br /&gt;
*Table journal : Tous les champs&lt;br /&gt;
*Table log : Tous les champs&lt;br /&gt;
*Table parameter : Tous les champs&lt;br /&gt;
*Table person :&lt;br /&gt;
**hash_password&lt;br /&gt;
*Table structure :&lt;br /&gt;
**address&lt;br /&gt;
**admin_num&lt;br /&gt;
**city&lt;br /&gt;
**country&lt;br /&gt;
**default_notification&lt;br /&gt;
**default_slot_range&lt;br /&gt;
**default_timezone&lt;br /&gt;
**default_view_type&lt;br /&gt;
**email&lt;br /&gt;
**fax&lt;br /&gt;
**first_hour_displayed&lt;br /&gt;
**info_cell&lt;br /&gt;
**lang&lt;br /&gt;
**last_hour_displayed&lt;br /&gt;
**logo&lt;br /&gt;
**logo_name&lt;br /&gt;
**logo_ext&lt;br /&gt;
**logo_size&lt;br /&gt;
**mail_from_address&lt;br /&gt;
**mailing_list_name&lt;br /&gt;
**mailing_list_type&lt;br /&gt;
**min_slot_range&lt;br /&gt;
**name&lt;br /&gt;
**phone&lt;br /&gt;
**state&lt;br /&gt;
**twilight_range&lt;br /&gt;
**usual_profiles&lt;br /&gt;
**welcome_cell&lt;br /&gt;
**zipcode&lt;br /&gt;
*Table oauth_client : Tous les champs&lt;br /&gt;
*Table oauth_access_token : Tous les champs&lt;br /&gt;
*Table oauth_auth_code : Tous les champs&lt;br /&gt;
*Table oauth_refresh_token : Tous les champs&lt;br /&gt;
&lt;br /&gt;
Exemple de requêtes non autorisées :&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT * FROM structure;&lt;br /&gt;
&lt;br /&gt;
SELECT hash_password FROM person;&lt;br /&gt;
&lt;br /&gt;
SELECT person.id, validity.*&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (person.id=validity.person_id);&amp;lt;/sql&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Maintenance-a%C3%A9ronautique&amp;diff=14554</id>
		<title>Maintenance aéronautique</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Maintenance-a%C3%A9ronautique&amp;diff=14554"/>
		<updated>2026-07-03T12:19:22Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* La maintenance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Cette page présente les '''notions sur la maintenance aéronautique''' nécessaires à la prise en main du module de suivi de navigabilité d'[[Accueil|OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
==Réglementation Européenne EASA==&lt;br /&gt;
Dans la définition des modules de l'application OpenFlyers, nous suivons la réglementation Européenne n° 2042/2003 du 20 novembre 2003 rédigé par l'EASA. Nous distinguons l'organisme de gestion du maintien de la navigabilité tel que spécifié dans la sous-partie G de la Partie-M de l'organisme de maintenance tel que spécifié dans la sous-partie F de la Partie-M.&lt;br /&gt;
&lt;br /&gt;
===Organisme Part G===&lt;br /&gt;
L'organisme Part G est chargé de faire appliquer le programme d'entretien, de suivre les évolutions de la réglementation et de vérifier son application à l'aéronef. Il a la responsabilité de lancer les travaux auprès des organismes de maintenance Part F et d'assurer la traçabilité documentaire des opérations réalisées sur l'aéronef.&lt;br /&gt;
&lt;br /&gt;
===Organisme Part F===&lt;br /&gt;
L'organisme Part F est chargé de faire la maintenance conformément aux ordres de travail qui lui sont délivrés par le responsable de la navigabilité Part G. Il doit veiller à la conformité de ses ateliers pour ces travaux et de la compétence de son personnel affecté aux tâches. Il doit s'assurer de la conformité des éléments mis en place sur l'aéronef ainsi que des outils utilisés.&lt;br /&gt;
&lt;br /&gt;
=Définitions=&lt;br /&gt;
==Acronymes==&lt;br /&gt;
:'''ALI''' (en)&lt;br /&gt;
::Airworthiness Limitations Item&lt;br /&gt;
:'''BS'''&lt;br /&gt;
::Bulletin de Service&lt;br /&gt;
::'''SB''' (en) : Service bulletin &lt;br /&gt;
:'''CN'''&lt;br /&gt;
::Consigne de navigabilité&lt;br /&gt;
::'''AD''' (en) : Airworthiness Directive&lt;br /&gt;
:'''EAD''' (en)&lt;br /&gt;
::Emergency Airworthiness Directive&lt;br /&gt;
:'''ECI''' (en)&lt;br /&gt;
::Emergency Conformity Information&lt;br /&gt;
:'''ED''' (fr)&lt;br /&gt;
::Examen Détaillé&lt;br /&gt;
:'''ES''' (fr)&lt;br /&gt;
::Échange Standard&lt;br /&gt;
:'''HT''' (fr)&lt;br /&gt;
::Heure Totale&lt;br /&gt;
:'''HVM''' (fr)&lt;br /&gt;
::Heure depuis Visite Majeur&lt;br /&gt;
:'''PAD''' (en)&lt;br /&gt;
::Proposal to issue Airworthiness Directive&lt;br /&gt;
:'''PB''' (fr)&lt;br /&gt;
::Passage au banc&lt;br /&gt;
:'''RG''' (fr)&lt;br /&gt;
::Révision Générale - Grande visite&lt;br /&gt;
:'''SI''' (en)&lt;br /&gt;
::Service Information&lt;br /&gt;
:'''SIB''' (en)&lt;br /&gt;
::Safety Information Bulletin&lt;br /&gt;
:'''SIL''' (en)&lt;br /&gt;
::Service Information Letter&lt;br /&gt;
:'''SIN''' (en)&lt;br /&gt;
::Safety Information Notice&lt;br /&gt;
:'''SL''' (en)&lt;br /&gt;
::Service Letter&lt;br /&gt;
&lt;br /&gt;
==Butée calendaire==&lt;br /&gt;
C'est la date limite à laquelle une visite devra être effectuée ou un composant inspecté ou remplacé.&lt;br /&gt;
&lt;br /&gt;
==Butée horaire==&lt;br /&gt;
C'est le nombre d'heures de vol total limite auquel une visite devra être effectuée ou un composant inspecté ou remplacé.&lt;br /&gt;
&lt;br /&gt;
==[[Wikipedia-fr:Chapitre_ATA|Chapitres ATA]]==&lt;br /&gt;
&lt;br /&gt;
==Tolérance==&lt;br /&gt;
C'est le temps additionnel toléré d'une visite de maintenance&lt;br /&gt;
&lt;br /&gt;
=La navigabilité d'un aéronef=&lt;br /&gt;
La réglementation aéronautique doit être soigneusement respectée afin de minimiser les risques d'accidents. La notion de navigabilité est un terme issu de l’aéronautique civile. Elle permet de s’assurer de l’aptitude au vol des appareils dans des conditions acceptables de sécurité vis-à-vis des passagers, des équipages transportés, des autres aéronefs et des territoires survolés. ([http://fr.wikipedia.org/wiki/Navigabilit%C3%A9 sources])&lt;br /&gt;
&lt;br /&gt;
La navigabilité d'un aéronef dépend d'au moins trois éléments de base :&lt;br /&gt;
*la certification de la conception de l'aéronef, qui couvre des activités d'ingénierie d'évaluation, des simulations, des tests de laboratoire et de prototype, et des vols expérimentales ;&lt;br /&gt;
*la certification de la production, qui vise à assurer que l'aéronef quitte la chaîne de montage en conformité avec le certificat de conception ;&lt;br /&gt;
*la maintenance de l'aéronef, après sa production, avant et pendant chaque vol.&lt;br /&gt;
&lt;br /&gt;
Le module proposé par OpenFlyers traite ce troisième point afin de simplifier le suivi de la navigabilité d'un aéronef.&lt;br /&gt;
Il est destiné aux mécaniciens qui effectuent les opérations de maintenance. Parfois, un seul mécanicien est responsable de l'entretien de plusieurs aéronefs, ce qui est le cas dans certains aéro-clubs.&lt;br /&gt;
&lt;br /&gt;
=La maintenance=&lt;br /&gt;
==La maintenance courante==&lt;br /&gt;
Chaque structure aéronautique est dans l'obligation d'établir un programme d'entretien visant à prévenir ou prédire les dangers potentiels.&lt;br /&gt;
Il doit être validé par l'OSAC (Organisme pour la Sécurité de l'Aviation Civile), une organisation chargée du contrôle de la production et de l'entretien des aéronefs civils. Un avion est entretenu selon ce programme qui défini les opérations à effectuer lors de visites programmées. Ces visites sont réalisées selon la durée de fonctionnement et donc de l'usure de ses composants (50 h, 100h, 1000h, 2000 h, ....) mais aussi selon le vieillissement de l'appareil (1 an, 2ans, 6 ans, 10 ans,....) que l'on s'en serve ou pas. L'organisation des travaux peut être assouplie par des tolérances définies dans le programme.&lt;br /&gt;
&lt;br /&gt;
==La maintenance réglementaire==&lt;br /&gt;
L'OSAC peut aussi dicter des consignes de navigabilité (CN ou AD pour Airworthiness Directives en anglais) que toute structure doit respecter. Généralement, elles sont émises lorsque des anomalies sont constatées en cours de vie de l'aéronef, par les constructeurs, les ateliers de maintenance, les organismes de surveillance, ...&lt;br /&gt;
&lt;br /&gt;
==La maintenance événementielle==&lt;br /&gt;
La maintenance événementielle est déclenchée par des défaillances, accidents ou notations effectuées par les pilotes dans le carnet de route de l'avion.&lt;br /&gt;
&lt;br /&gt;
Ces anomalies peuvent être suivies au moyen des [[Signalements]]. Un signalement peut être créé depuis une activité ou directement sans activité associée.&lt;br /&gt;
&lt;br /&gt;
==APRS (Approbation Pour Remise en Service)==&lt;br /&gt;
Après toute opération de maintenance, le mécanicien doit déposer sur le carnet de route une APRS certifiant à nouveau la navigabilité de l'appareil. &lt;br /&gt;
&lt;br /&gt;
Le pilote doit vérifier la présence de cette APRS et ne peut entreprendre un vol avec l'appareil si elle est absente.&lt;br /&gt;
&lt;br /&gt;
La clôture d'un signalement permet d'enregistrer un commentaire certifié et, lorsque c'est nécessaire, une signature d'approbation de navigabilité. Le modèle de cette signature est défini dans [[Paramétrage des activités#Signature d'approbation de navigabilité|Signature d'approbation de navigabilité]].&lt;br /&gt;
&lt;br /&gt;
=Calcul de l'échéance d'une visite=&lt;br /&gt;
Le programme d'entretien d'un aéronef contient les informations qui permettent de suivre sa navigabilité de façon permanente. A chaque visite de maintenance, il faut estimer quand aura lieu la prochaine. Comme lors d'une navigation, un pilote dispose d'une carte sur laquelle la route à suivre est tracée (programme d'entretien). A chaque point tournant (visite), il estime l'heure à laquelle il atteindra le prochain en fonction des informations du moment (heure). Le calcul des échéances d'une visite tient compte de règles strictes décrites dans le paragraphe suivant.&lt;br /&gt;
&lt;br /&gt;
==Schémas : calcul d'échéances==&lt;br /&gt;
Les schémas suivants représentent l'évolution des échéances en fonction de l'hdv (heure de vol) à laquelle les visites sont réalisées.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous, une visite de 50h est prévue avec 5h de tolérance. Dans les quatre cas illustrés la visite réalisée a lieu :&lt;br /&gt;
&lt;br /&gt;
#en avance (à 43 hdv) : Un décalage de 7h est décompté sur les prochaines visites programmées&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_1.png|700px|timeline maintenance achieved at 43 flight hours]]&lt;br /&gt;
#en avance (à 46 hdv) : Cette fois ci avec un décalage de 4h&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_2.png|700px|timeline maintenance achieved at 46 flight hours]]&lt;br /&gt;
#dans la période tolérée (entre 50h et 50h+tolérance) : La prochaine visite programmée reste la même&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_3.png|700px|timeline maintenance achieved at 54 flight hours]]&lt;br /&gt;
#en retard (après 50hdv) : La prochaine visite programmée reste la même&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_4.png|700px|timeline maintenance achieved at 57 flight hours]]&lt;br /&gt;
&lt;br /&gt;
'''Légendes''' :&lt;br /&gt;
*La ligne du temps est le nombre d'heures de vol du composant concerné par la visite&lt;br /&gt;
*Les lignes verticales fines et noires sont les visites programmées&lt;br /&gt;
*Les parenthèses représentent la période tolérée&lt;br /&gt;
*La flèche rouge est le moment où la visite a été réalisée&lt;br /&gt;
*La flèche verte est la prochaine visite à faire&lt;br /&gt;
*Les flèches rouges et courbées représentent le décalage de la prochaine visite si la visite réelle est réalisée trop tôt&lt;br /&gt;
&lt;br /&gt;
==Remarques==&lt;br /&gt;
Une &amp;quot;50h&amp;quot; est toujours suivi d'une &amp;quot;100h&amp;quot; car on ne peut pas faire deux &amp;quot;50h&amp;quot; à la suite.&lt;br /&gt;
On dit qu'une &amp;quot;100h&amp;quot; inclut une &amp;quot;50h&amp;quot;. De même qu'une &amp;quot;200h&amp;quot; inclut une &amp;quot;100h&amp;quot; et une &amp;quot;50h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Cela fonctionne également avec visites annuelles :&lt;br /&gt;
*La visite &amp;quot;2 ans&amp;quot; inclut la &amp;quot;1 an&amp;quot;&lt;br /&gt;
*La visite &amp;quot;6 ans&amp;quot; inclut la &amp;quot;1 an&amp;quot; et la &amp;quot;2 ans&amp;quot;&lt;br /&gt;
*etc...&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Maintenance-a%C3%A9ronautique&amp;diff=14553</id>
		<title>Maintenance aéronautique</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Maintenance-a%C3%A9ronautique&amp;diff=14553"/>
		<updated>2026-07-03T12:15:33Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* La maintenance événementielle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
Cette page présente les '''notions sur la maintenance aéronautique''' nécessaires à la prise en main du module de suivi de navigabilité d'[[Accueil|OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
==Réglementation Européenne EASA==&lt;br /&gt;
Dans la définition des modules de l'application OpenFlyers, nous suivons la réglementation Européenne n° 2042/2003 du 20 novembre 2003 rédigé par l'EASA. Nous distinguons l'organisme de gestion du maintien de la navigabilité tel que spécifié dans la sous-partie G de la Partie-M de l'organisme de maintenance tel que spécifié dans la sous-partie F de la Partie-M.&lt;br /&gt;
&lt;br /&gt;
===Organisme Part G===&lt;br /&gt;
L'organisme Part G est chargé de faire appliquer le programme d'entretien, de suivre les évolutions de la réglementation et de vérifier son application à l'aéronef. Il a la responsabilité de lancer les travaux auprès des organismes de maintenance Part F et d'assurer la traçabilité documentaire des opérations réalisées sur l'aéronef.&lt;br /&gt;
&lt;br /&gt;
===Organisme Part F===&lt;br /&gt;
L'organisme Part F est chargé de faire la maintenance conformément aux ordres de travail qui lui sont délivrés par le responsable de la navigabilité Part G. Il doit veiller à la conformité de ses ateliers pour ces travaux et de la compétence de son personnel affecté aux tâches. Il doit s'assurer de la conformité des éléments mis en place sur l'aéronef ainsi que des outils utilisés.&lt;br /&gt;
&lt;br /&gt;
=Définitions=&lt;br /&gt;
==Acronymes==&lt;br /&gt;
:'''ALI''' (en)&lt;br /&gt;
::Airworthiness Limitations Item&lt;br /&gt;
:'''BS'''&lt;br /&gt;
::Bulletin de Service&lt;br /&gt;
::'''SB''' (en) : Service bulletin &lt;br /&gt;
:'''CN'''&lt;br /&gt;
::Consigne de navigabilité&lt;br /&gt;
::'''AD''' (en) : Airworthiness Directive&lt;br /&gt;
:'''EAD''' (en)&lt;br /&gt;
::Emergency Airworthiness Directive&lt;br /&gt;
:'''ECI''' (en)&lt;br /&gt;
::Emergency Conformity Information&lt;br /&gt;
:'''ED''' (fr)&lt;br /&gt;
::Examen Détaillé&lt;br /&gt;
:'''ES''' (fr)&lt;br /&gt;
::Échange Standard&lt;br /&gt;
:'''HT''' (fr)&lt;br /&gt;
::Heure Totale&lt;br /&gt;
:'''HVM''' (fr)&lt;br /&gt;
::Heure depuis Visite Majeur&lt;br /&gt;
:'''PAD''' (en)&lt;br /&gt;
::Proposal to issue Airworthiness Directive&lt;br /&gt;
:'''PB''' (fr)&lt;br /&gt;
::Passage au banc&lt;br /&gt;
:'''RG''' (fr)&lt;br /&gt;
::Révision Générale - Grande visite&lt;br /&gt;
:'''SI''' (en)&lt;br /&gt;
::Service Information&lt;br /&gt;
:'''SIB''' (en)&lt;br /&gt;
::Safety Information Bulletin&lt;br /&gt;
:'''SIL''' (en)&lt;br /&gt;
::Service Information Letter&lt;br /&gt;
:'''SIN''' (en)&lt;br /&gt;
::Safety Information Notice&lt;br /&gt;
:'''SL''' (en)&lt;br /&gt;
::Service Letter&lt;br /&gt;
&lt;br /&gt;
==Butée calendaire==&lt;br /&gt;
C'est la date limite à laquelle une visite devra être effectuée ou un composant inspecté ou remplacé.&lt;br /&gt;
&lt;br /&gt;
==Butée horaire==&lt;br /&gt;
C'est le nombre d'heures de vol total limite auquel une visite devra être effectuée ou un composant inspecté ou remplacé.&lt;br /&gt;
&lt;br /&gt;
==[[Wikipedia-fr:Chapitre_ATA|Chapitres ATA]]==&lt;br /&gt;
&lt;br /&gt;
==Tolérance==&lt;br /&gt;
C'est le temps additionnel toléré d'une visite de maintenance&lt;br /&gt;
&lt;br /&gt;
=La navigabilité d'un aéronef=&lt;br /&gt;
La réglementation aéronautique doit être soigneusement respectée afin de minimiser les risques d'accidents. La notion de navigabilité est un terme issu de l’aéronautique civile. Elle permet de s’assurer de l’aptitude au vol des appareils dans des conditions acceptables de sécurité vis-à-vis des passagers, des équipages transportés, des autres aéronefs et des territoires survolés. ([http://fr.wikipedia.org/wiki/Navigabilit%C3%A9 sources])&lt;br /&gt;
&lt;br /&gt;
La navigabilité d'un aéronef dépend d'au moins trois éléments de base :&lt;br /&gt;
*la certification de la conception de l'aéronef, qui couvre des activités d'ingénierie d'évaluation, des simulations, des tests de laboratoire et de prototype, et des vols expérimentales ;&lt;br /&gt;
*la certification de la production, qui vise à assurer que l'aéronef quitte la chaîne de montage en conformité avec le certificat de conception ;&lt;br /&gt;
*la maintenance de l'aéronef, après sa production, avant et pendant chaque vol.&lt;br /&gt;
&lt;br /&gt;
Le module proposé par OpenFlyers traite ce troisième point afin de simplifier le suivi de la navigabilité d'un aéronef.&lt;br /&gt;
Il est destiné aux mécaniciens qui effectuent les opérations de maintenance. Parfois, un seul mécanicien est responsable de l'entretien de plusieurs aéronefs, ce qui est le cas dans certains aéro-clubs.&lt;br /&gt;
&lt;br /&gt;
=La maintenance=&lt;br /&gt;
==La maintenance courante==&lt;br /&gt;
Chaque structure aéronautique est dans l'obligation d'établir un programme d'entretien visant à prévenir ou prédire les dangers potentiels.&lt;br /&gt;
Il doit être validé par l'OSAC (Organisme pour la Sécurité de l'Aviation Civile), une organisation chargée du contrôle de la production et de l'entretien des aéronefs civils. Un avion est entretenu selon ce programme qui défini les opérations à effectuer lors de visites programmées. Ces visites sont réalisées selon la durée de fonctionnement et donc de l'usure de ses composants (50 h, 100h, 1000h, 2000 h, ....) mais aussi selon le vieillissement de l'appareil (1 an, 2ans, 6 ans, 10 ans,....) que l'on s'en serve ou pas. L'organisation des travaux peut être assouplie par des tolérances définies dans le programme.&lt;br /&gt;
&lt;br /&gt;
==La maintenance réglementaire==&lt;br /&gt;
L'OSAC peut aussi dicter des consignes de navigabilité (CN ou AD pour Airworthiness Directives en anglais) que toute structure doit respecter. Généralement, elles sont émises lorsque des anomalies sont constatées en cours de vie de l'aéronef, par les constructeurs, les ateliers de maintenance, les organismes de surveillance, ...&lt;br /&gt;
&lt;br /&gt;
==La maintenance événementielle==&lt;br /&gt;
La maintenance événementielle est déclenchée par des défaillances, accidents ou notations effectuées par les pilotes dans le carnet de route de l'avion.&lt;br /&gt;
Ces anomalies peuvent être suivies au moyen des [[Signalements]]. Un signalement peut être créé depuis une activité ou directement sans activité associée.&lt;br /&gt;
&lt;br /&gt;
==APRS (Approbation Pour Remise en Service)==&lt;br /&gt;
Après toute opération de maintenance, le mécanicien doit déposer sur le carnet de route une APRS certifiant à nouveau la navigabilité de l'appareil. &lt;br /&gt;
&lt;br /&gt;
Le pilote doit vérifier la présence de cette APRS et ne peut entreprendre un vol avec l'appareil si elle est absente.&lt;br /&gt;
&lt;br /&gt;
=Calcul de l'échéance d'une visite=&lt;br /&gt;
Le programme d'entretien d'un aéronef contient les informations qui permettent de suivre sa navigabilité de façon permanente. A chaque visite de maintenance, il faut estimer quand aura lieu la prochaine. Comme lors d'une navigation, un pilote dispose d'une carte sur laquelle la route à suivre est tracée (programme d'entretien). A chaque point tournant (visite), il estime l'heure à laquelle il atteindra le prochain en fonction des informations du moment (heure). Le calcul des échéances d'une visite tient compte de règles strictes décrites dans le paragraphe suivant.&lt;br /&gt;
&lt;br /&gt;
==Schémas : calcul d'échéances==&lt;br /&gt;
Les schémas suivants représentent l'évolution des échéances en fonction de l'hdv (heure de vol) à laquelle les visites sont réalisées.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous, une visite de 50h est prévue avec 5h de tolérance. Dans les quatre cas illustrés la visite réalisée a lieu :&lt;br /&gt;
&lt;br /&gt;
#en avance (à 43 hdv) : Un décalage de 7h est décompté sur les prochaines visites programmées&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_1.png|700px|timeline maintenance achieved at 43 flight hours]]&lt;br /&gt;
#en avance (à 46 hdv) : Cette fois ci avec un décalage de 4h&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_2.png|700px|timeline maintenance achieved at 46 flight hours]]&lt;br /&gt;
#dans la période tolérée (entre 50h et 50h+tolérance) : La prochaine visite programmée reste la même&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_3.png|700px|timeline maintenance achieved at 54 flight hours]]&lt;br /&gt;
#en retard (après 50hdv) : La prochaine visite programmée reste la même&lt;br /&gt;
#:[[File:MRO302_maintenance_timeline_4.png|700px|timeline maintenance achieved at 57 flight hours]]&lt;br /&gt;
&lt;br /&gt;
'''Légendes''' :&lt;br /&gt;
*La ligne du temps est le nombre d'heures de vol du composant concerné par la visite&lt;br /&gt;
*Les lignes verticales fines et noires sont les visites programmées&lt;br /&gt;
*Les parenthèses représentent la période tolérée&lt;br /&gt;
*La flèche rouge est le moment où la visite a été réalisée&lt;br /&gt;
*La flèche verte est la prochaine visite à faire&lt;br /&gt;
*Les flèches rouges et courbées représentent le décalage de la prochaine visite si la visite réelle est réalisée trop tôt&lt;br /&gt;
&lt;br /&gt;
==Remarques==&lt;br /&gt;
Une &amp;quot;50h&amp;quot; est toujours suivi d'une &amp;quot;100h&amp;quot; car on ne peut pas faire deux &amp;quot;50h&amp;quot; à la suite.&lt;br /&gt;
On dit qu'une &amp;quot;100h&amp;quot; inclut une &amp;quot;50h&amp;quot;. De même qu'une &amp;quot;200h&amp;quot; inclut une &amp;quot;100h&amp;quot; et une &amp;quot;50h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Cela fonctionne également avec visites annuelles :&lt;br /&gt;
*La visite &amp;quot;2 ans&amp;quot; inclut la &amp;quot;1 an&amp;quot;&lt;br /&gt;
*La visite &amp;quot;6 ans&amp;quot; inclut la &amp;quot;1 an&amp;quot; et la &amp;quot;2 ans&amp;quot;&lt;br /&gt;
*etc...&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Gestion-des-profils&amp;diff=14552</id>
		<title>Gestion des profils</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Gestion-des-profils&amp;diff=14552"/>
		<updated>2026-07-03T12:09:51Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Gestion des ressources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter la '''gestion des profils''' sur la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
Les profils attribués par défaut à un utilisateur créé automatiquement sont définis dans '''Admin &amp;gt; Utilisateurs &amp;gt; Paramètres par défaut'''.&lt;br /&gt;
&lt;br /&gt;
=Définition=&lt;br /&gt;
*Un '''profil''' correspond à un ensemble de '''droits''' qui définissent les actions que peut effectuer un [[Glossaire|utilisateur]] dans l'application OpenFlyers.&lt;br /&gt;
*Un utilisateur peut disposer de '''plusieurs profils'''. L'attribution des profils aux utilisateurs se fait par l'intermédiaire du  [[Gestion des utilisateurs|tableau de gestion des utilisateurs]].&lt;br /&gt;
&lt;br /&gt;
''Exemple de profils : administrateur, pilote, formateur, technicien, mécanicien, trésorier, secrétaire.''&lt;br /&gt;
&lt;br /&gt;
=Icônes symbolisant les droits des profils=&lt;br /&gt;
Dans la page '''Admin &amp;gt; Utilisateurs &amp;gt; Profils''', il faut distinguer deux éléments pour comprendre le principe des icônes. Il y a les droits d'un côté et les profils de l'autre.&lt;br /&gt;
&lt;br /&gt;
Les droits constituent les entêtes du tableau. Chaque entête de colonne correspond à un droit.&lt;br /&gt;
L’icône [[File:Profile-management3.0.x_Userinfo_connected.gif]] a été attribuée à l'ensemble de ces droits sauf deux :&lt;br /&gt;
*[[#Profil-non-sélectionnable-par-l'utilisateur|Profil non sélectionnable par l'utilisateur]] de l'onglet '''Généralités''' à laquelle l'icône [[File:Profile-management3.0.x_ConnectedNoFilling.png]] à été attribuée&lt;br /&gt;
*[[#Voir-les-noms-sur-les-réservations%2C-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations]] de l'onglet '''Réservations''' à laquelle l'icône [[File:Profile-management3.0.x_Userinfo_kiosk.gif]] à été attribuée&lt;br /&gt;
&lt;br /&gt;
Les profils correspondent à chaque ligne du tableau. L'icône d'un profil est variable et dépend des droits qui lui sont attribués.&lt;br /&gt;
#L'icône d'un profil sera [[File:Profile-management3.0.x_ConnectedNoFilling.png]] si le droit [[#Profil-non-sélectionnable-par-l'utilisateur|Profil non sélectionnable par l'utilisateur]] ci-dessus est coché&lt;br /&gt;
#L'icône d'un profil sera [[File:Profile-management3.0.x_Userinfo_kiosk.gif]] si aucun droit n'est attribué au profil à l'exception du droit [[#Voir-les-noms-sur-les-réservations%2C-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations]] ci-dessus qui peut être coché ou non&lt;br /&gt;
#Dans tous les autres cas, l'icône d'un profil sera [[File:Profile-management3.0.x_Userinfo_connected.gif]]&lt;br /&gt;
&lt;br /&gt;
==Définition des icônes représentant des droits==&lt;br /&gt;
:[[File:Profile-management3.0.x_Userinfo_connected.gif]] : Droit qui définit un profil de base.&lt;br /&gt;
:[[File:Profile-management3.0.x_ConnectedNoFilling.png]] : Droit qui rend un profil non sélectionnable par un utilisateur lors de sa connexion.&lt;br /&gt;
:[[File:Profile-management3.0.x_Userinfo_kiosk.gif]] : Droit qui rend un profil de type &amp;quot;kiosque&amp;quot; (voir [[Kiosque PC]]) permettant de consulter le planning uniquement. Si au moins un droit de base est activé, le profil devient un profil de base.&lt;br /&gt;
&lt;br /&gt;
==Définition des icônes attribuées aux profils==&lt;br /&gt;
:[[File:Profile-management3.0.x_Userinfo_connected.gif]] : Profil de base&lt;br /&gt;
:[[File:Profile-management3.0.x_ConnectedNoFilling.png]] : Profil non sélectionnable par un utilisateur lors de sa connexion.&lt;br /&gt;
:[[File:Profile-management3.0.x_Userinfo_kiosk.gif]] : Profil de type &amp;quot;kiosque&amp;quot; (voir [[Kiosque PC]]) permettant de consulter le planning uniquement. Toute modification ou saisie par un utilisateur nécessitera une identification par le biais d'une fenêtre &amp;quot;pop-up&amp;quot; demandant à l'utilisateur son propre identifiant et mot de passe.&lt;br /&gt;
&lt;br /&gt;
=Niveau d'accréditation des droits et des profils=&lt;br /&gt;
Les niveaux d'accréditation vont de 0 à 6 :&lt;br /&gt;
*0 représente le niveau le plus bas&lt;br /&gt;
*6 représente le niveau le plus élevé&lt;br /&gt;
&lt;br /&gt;
Chaque droit dispose d'un niveau d'accréditation qui lui est propre : plus le droit permet de faire des actions pouvant avoir des conséquences sur les données, plus le niveau d'accréditation est élevé.&lt;br /&gt;
&lt;br /&gt;
Chaque profil dispose également d'un niveau d'accréditation. Le niveau d'accréditation d'un profil correspond au niveau d'accréditation le plus élevé des droits détenus par le profil.&lt;br /&gt;
&lt;br /&gt;
La page '''Admin &amp;gt; Utilisateurs &amp;gt; Profils''' indique les niveaux d'accréditation à la fois des droits et des profils :&lt;br /&gt;
*Les droits sont indiqués dans les entêtes de chaque colonne. Le niveau d'accréditation du droit est indiqué en dessous du nom du droit dans un cercle.&lt;br /&gt;
*Les profils sont indiqués à chaque ligne du tableau. le niveau d'accréditation du profil est indiqué en dessous du nom du profil dans un cercle.&lt;br /&gt;
Le niveau d'accréditation 6 est affiché en inverse vidéo par rapport aux autres niveaux pour le distinguer.&lt;br /&gt;
&lt;br /&gt;
Un gestionnaire disposant le droit de gérer des utilisateurs ne peut attribuer un profil à un utilisateur qui soit plus élevé que le profil le plus élevé qu'il détient lui-même.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une plateforme dispose de plus de 3 utilisateurs avec le niveau 6, [[Alertes-de-configuration#La-plateforme-a-plus-de-3-utilisateurs-actifs-avec-un-profil-de-niveau-6.-Les-utilisateurs-concernés-sont-:-XXX|une alerte de configuration est affichée]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un droit de niveau 6 est accordé à un profil, une alerte est générée si cela entraîne plus de 3 utilisateurs de niveau 6.&lt;br /&gt;
&lt;br /&gt;
=Profils=&lt;br /&gt;
La gestion des profils s'effectue depuis le menu '''Admin &amp;gt; Utilisateurs &amp;gt; Profils'''.&lt;br /&gt;
&lt;br /&gt;
Le nombre d'onglets disponible dépend du paramétrage de la plateforme OpenFlyers. Par exemple, si la gestion des activités est activée, alors l'onglet ''Activités'' est disponible.&lt;br /&gt;
&lt;br /&gt;
==Généralités==&lt;br /&gt;
&lt;br /&gt;
===Profil non sélectionnable par l'utilisateur===&lt;br /&gt;
&lt;br /&gt;
Lors de la connexion et lorsqu'un utilisateur doit faire le choix entre un profil pour se connecter, les [[Bien-débuter-avec-OpenFlyers#Attribuer-les-profils-aux-utilisateurs|profils non sélectionnables]] ne seront pas proposés parmi la liste. Ce droit ne peut pas être attribué à un profil ayant des droits de gestion.&lt;br /&gt;
&lt;br /&gt;
===Pas de déconnexion automatique===&lt;br /&gt;
Ce droit permet d'éviter la [[Connexion#Automatique|déconnexion automatique de la session]] au bout de 10 minutes et étend la connexion à 2 heures.&lt;br /&gt;
&lt;br /&gt;
===Accès visiteur===&lt;br /&gt;
L'accès visiteur permet de [[Kiosque-PC#Créer-un-compte-utilisateur-Visiteur|créer un compte visiteur]] donnant un accès limité destiné à pouvoir être utilisé par n'importe quelle personne.&lt;br /&gt;
&lt;br /&gt;
Cet accès permet également de créer un lien vers OpenFlyers avec une connexion automatique en passant les identifiants via l'URL.&lt;br /&gt;
&lt;br /&gt;
Si un visiteur [[#Réservation|peut réserver]] - dépend du paramétrage - alors, lors de la création d'une réservation, [[Utilisation-des-réservations-internes-sur-l%27appli-mobile#Créer-automatiquement-un-utilisateur-en-créant-une-réservation|le système va générer automatiquement un compte utilisateur]] à partir des informations que le visiteur aura saisi. Le visiteur sera connecté automatiquement sur ce nouveau compte.&lt;br /&gt;
&lt;br /&gt;
===Mise à jour de sa date de naissance, de son sexe et de sa nationalité===&lt;br /&gt;
&lt;br /&gt;
Permet à un utilisateur de modifier [[Fiche-personnelle#Mettre-à-jour-sa-date-de-naissance,-sa-nationalité-ou-son-sexe|sa date de naissance, sa nationalité et/ou son sexe dans sa fiche personnelle]].&lt;br /&gt;
&lt;br /&gt;
===Voir ses validités===&lt;br /&gt;
&lt;br /&gt;
Permet d'[[Validités#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|accéder à ses validités depuis le planning]].&lt;br /&gt;
&lt;br /&gt;
===Ajout et gestion de ses validités===&lt;br /&gt;
&lt;br /&gt;
Permet à un [[Validités#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|utilisateur de rajouter/supprimer/mettre à jour ses validités]] qui sont dans la liste [[#Type-de-validité-que-l'utilisateur-peut-gérer-pour-lui-même|Type de validité que l'utilisateur peut gérer]] et pour la mise à jour, sous réserve que le type de validité dispose d'informations qui peuvent être mises à jour.&lt;br /&gt;
&lt;br /&gt;
===Gestion de ses validités détenues===&lt;br /&gt;
&lt;br /&gt;
Permet à un [[Validités#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|utilisateur de mettre à jour/supprimer uniquement les validités]] qui lui sont déjà attribuées et qui sont dans la liste [[#Type-de-validité-que-l'utilisateur-peut-gérer-pour-lui-même|Type de validité que l'utilisateur peut gérer]] et pour la mise à jour, sous réserve que le type de validité dispose d'informations qui peuvent être mises à jour.&lt;br /&gt;
&lt;br /&gt;
===Surpasser les restrictions sur les validités===&lt;br /&gt;
Permet à un utilisateur de surpasser les [[Connexion#Restriction-d'accès|restrictions d'accès]] dues à des validités expirées, incomplétes ou non certifiées qui sont [[Validités#Contrôle-des-validités-à-la-connexion|appliquées à la connexion]].&lt;br /&gt;
&lt;br /&gt;
Voir le chapitre [[Paramétrage-des-validités#Alerte-à-la-connexion|Alerte à la connexion]] pour le paramétrage des restrictions sur les validités.&lt;br /&gt;
&lt;br /&gt;
[[Connexion#Restriction-d'accès-pour-un-administrateur-référent|Ce droit peut être attribué de façon dynamique à la connexion]] par un [[Configuration#Administrateur-référent|administrateur référent]].&lt;br /&gt;
&lt;br /&gt;
===Editer sa photo===&lt;br /&gt;
&lt;br /&gt;
Permet à un utilisateur [[Fiche-personnelle#Editer-sa-photo|d'importer ou de supprimer sa photo dans sa fiche personnelle]].&lt;br /&gt;
&lt;br /&gt;
==Réservation==&lt;br /&gt;
&lt;br /&gt;
===Alertable par e-mail pour toute réservation===&lt;br /&gt;
Permet la [[Fiche-personnelle#Recevoir-un-e-mail-pour-les-réservations-ayant-pour-activité|notification par e-mail pour toute réservation]].&lt;br /&gt;
&lt;br /&gt;
===Champs additionnels visualisables dans les pop-ups de réservation===&lt;br /&gt;
Permet de visualiser le contenu des champs additionnels dans la pop-up de réservation.&lt;br /&gt;
&lt;br /&gt;
===Créer ou modifier une réservation avec une date de début dépassée===&lt;br /&gt;
Autorise à créer ou modifier une réservation dont la date de début est dépassée.&lt;br /&gt;
&lt;br /&gt;
===Etre sur une nouvelle réservation===&lt;br /&gt;
Permet lors d'une nouvelle réservation, que l'utilisateur disposant du profil concerné soit autorisé à être sur une des places. &lt;br /&gt;
&lt;br /&gt;
Permet entre autre à un utilisateur tiers, de pouvoir effectuer de nouvelles réservations pour un utilisateur disposant du profil concerné et n'ayant pas de droit [[#Réservation-en-solo|Réservation solo]], [[#Réservation-pour-des-tiers|Réservation pour des tiers]] ou [[#Réservation-avec-un-instructeur|Réservation avec un instructeur]].&lt;br /&gt;
&lt;br /&gt;
===Gestion des disponibilités des ressources===&lt;br /&gt;
Sur l'ancienne interface, permet de gérer la disponibilité des ressources et de les immobiliser (pour entretien, maintenance, réparation, arrêt d'activité, ...). &lt;br /&gt;
&lt;br /&gt;
Cela se fait comme pour une réservation, une case &amp;quot;immobiliser la ressource&amp;quot; est alors disponible. Sur la frise de réservation, il sera indiqué &amp;quot;Mise en maintenance&amp;quot; pour la période demandée.&lt;br /&gt;
&lt;br /&gt;
===Gestion des disponibilités des tiers===&lt;br /&gt;
Permet de gérer la [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-intervenants|disponibilité des utilisateurs]].&lt;br /&gt;
&lt;br /&gt;
===Personnaliser ses ressources visibles===&lt;br /&gt;
Permet de personnaliser la [[Fiche-personnelle#Paramétrer-les-ressources-et-les-utilisateurs-visibles-sur-le-planning|liste des ressources et utilisateurs visibles dans le planning depuis sa fiche utilisateur]].&lt;br /&gt;
&lt;br /&gt;
===Planning individuel visible pour les autres===&lt;br /&gt;
Permet de rendre disponible son planning aux autres utilisateurs.&lt;br /&gt;
&lt;br /&gt;
===Planning personnel===&lt;br /&gt;
Permet de visualiser son propre planning.&lt;br /&gt;
&lt;br /&gt;
===Réservation de programmes===&lt;br /&gt;
Autorise [[Utilisation-des-réservations-internes-sur-l%27interface-web#Positionner-automatiquement-les-activités-d’un-programme-de-formation|le positionnement automatique des activités d’un programme de formation dans le planning]].&lt;br /&gt;
&lt;br /&gt;
===Réservation en solo===&lt;br /&gt;
Autorise un utilisateur de réserver une ressource avec lui-même en première place.&lt;br /&gt;
&lt;br /&gt;
===Réservation pour des tiers===&lt;br /&gt;
Autorise la réservation d'une ressource pour un autre utilisateur (en solo et/ou double selon les droits du profil de cet utilisateur tiers).&lt;br /&gt;
&lt;br /&gt;
===Réservation avec un instructeur===&lt;br /&gt;
Autorise la réservation d'une ressource avec une personne en seconde place.&lt;br /&gt;
&lt;br /&gt;
===Supprimer une réservation avec une date de début dépassée===&lt;br /&gt;
Autorise à supprimer une réservation dont la date de début est dépassée.&lt;br /&gt;
&lt;br /&gt;
===Surpasser l'indisponibilité des instructeurs=== &lt;br /&gt;
Autorise la réservation d'une ressource avec un instructeur même si celui-ci n'est pas enregistré comme disponible durant la plage horaire de la réservation (Un message d'alerte prévient quand même. Fonction utile pour les instructeurs et le secrétariat).&lt;br /&gt;
&lt;br /&gt;
===Surpasser l'indisponibilité des ressources===&lt;br /&gt;
Autorise la réservation d'une ressource même si celle-ci n'est pas enregistrée comme disponible durant la plage horaire de la réservation (Un message d'alerte prévient quand même).&lt;br /&gt;
&lt;br /&gt;
===Surpasser l'interdiction d'effectuer une réservation dans moins de X temps===&lt;br /&gt;
Autorise la réservation en annulant l'interdiction &amp;quot;d'effectuer une réservation débutant dans moins de&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Surpasser l'interdiction de modifier ou supprimer une réservation débutant dans moins de X temps ===&lt;br /&gt;
Permet de surpasser l'[[Utilisation-des-réservations-internes-sur-l'interface-web#Alerte-de-délai-minimum-pour-modifier%2Fsupprimer-une-réservation|alerte de délai minimum pour modifier/supprimer une réservation]] qui s'affiche lorsque est paramétrée l'[[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|interdiction de modifier ou supprimer une réservation débutant dans moins de X temps]].&lt;br /&gt;
&lt;br /&gt;
===Surpasser la limite de durée minimum===&lt;br /&gt;
Autorise la réservation en annulant la restriction sur la durée minimum d'une réservation.&lt;br /&gt;
&lt;br /&gt;
===Surpasser la limite de durée maximum===&lt;br /&gt;
Autorise la réservation en annulant la restriction sur la durée maximum d'une réservation.&lt;br /&gt;
&lt;br /&gt;
===Surpasser la limite de temps===&lt;br /&gt;
Autorise la réservation en annulant la restriction sur la limitation dans le temps des réservations.&lt;br /&gt;
&lt;br /&gt;
===Surpasser la limite de nombre===&lt;br /&gt;
Autorise la réservation en annulant la restriction sur le nombre maximum de réservation.&lt;br /&gt;
&lt;br /&gt;
===Surpasser la réservation par type===&lt;br /&gt;
En cas de chevauchement, cela permet de déplacer la réservation sur une autre ressource de type différent.&lt;br /&gt;
&lt;br /&gt;
===Surpasser les formules de saisie===&lt;br /&gt;
Permet de surpasser les règles de saisie sur les réservations.&lt;br /&gt;
&lt;br /&gt;
===Voir les images des pilotes sur le menu contextuel===&lt;br /&gt;
Permet de [[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-images-des-pilotes-sur-le-menu-contextuel|visualiser images des pilotes associés à chaque réservation sur le menu contextuel]] lorsqu'on survole ou effectue un clic droit sur la réservation.&lt;br /&gt;
&lt;br /&gt;
===Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs===&lt;br /&gt;
Permet de visualiser les noms des utilisateurs sur la page du planning à la fois pour les réservations et les [[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-activités-réalisées|activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
===Voir les noms d'activités sur les réservations et les activités réalisées===&lt;br /&gt;
Permet d'[[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|afficher les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Activités==&lt;br /&gt;
&lt;br /&gt;
===Alertable par email pour toute saisie d'activité ou alerte de maintenance===&lt;br /&gt;
;Description&lt;br /&gt;
Ce droit permet aux gestionnaires :&lt;br /&gt;
*de [[Fiche-personnelle#Recevoir-un-e-mail-pour-les-activités-ayant-les-champs-sélectionnés-non-vide|s'abonner aux notifications par emails dès lorsqu'une activité est saisie par un utilisateur en renseignant un champ suivi par le gestionnaire]].&lt;br /&gt;
*de recevoir un email lorsqu'un aéronef dépasse l'un des seuils d'alerte de potentiel restant&lt;br /&gt;
&lt;br /&gt;
;Cas d'usage&lt;br /&gt;
* [[Suivi-de-maintenance#Butées-de-maintenance|Suivi de maintenance]]&lt;br /&gt;
* [[Suivi des remarques de maintenance]].&lt;br /&gt;
&lt;br /&gt;
===Alerté par e-mail pour le renouvellement des validités de tous les utilisateurs===&lt;br /&gt;
Ce droit permet de suivre le renouvellement des validités par les utilisateurs en étant alerté par un [[Envoi-des-emails#E-mail-d'information-des-actions-des-utilisateurs-sur-des-validités|e-mail d'information des actions des utilisateurs sur des validités]] à chaque fois qu'un utilisateur renouvelle une validité sélectionnée dans la liste de la cellule '''Alerté par e-mail pour le renouvellement des types de validités'''. Attention : la mise en place de ce droit peut provoquer la réception de nombreux e-mails.&lt;br /&gt;
&lt;br /&gt;
===Attribution de place===&lt;br /&gt;
Permet d'attribuer les places auxquelles sont autorisées les utilisateurs de ce profil. Cela impacte sur les listes des utilisateurs qui se nttrouve à la saisie d'une réservation ou d'une activité.&lt;br /&gt;
&lt;br /&gt;
Ces listes sont accessibles depuis '''Planning &amp;gt; Planning &amp;gt; Réserver''' et '''Planning &amp;gt; Activités &amp;gt; Saisir'''.&lt;br /&gt;
&lt;br /&gt;
La page '''Admin &amp;gt; Type de ressource &amp;gt; Places''' permet de gérer les places d'un type de ressource. Elle permet également de définir qui a le droit d'être sur telle place en cas de restriction de profil.&lt;br /&gt;
&lt;br /&gt;
===Etre sur une nouvelle fermeture d'activité===&lt;br /&gt;
Permet lors d'une nouvelle fermeture d'activité, que la personne disposant du profil concerné soit autorisée à être sur une des places.&lt;br /&gt;
&lt;br /&gt;
Permet entre autre à une personne tierce, de pouvoir effectuer de nouvelles fermetures d'activité pour une personne disposant du profil concerné et n'ayant pas le droit [[#Saisie-d'activité-pour-soi-même|Saisie d'activité pour soi-même]] ou [[#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]].&lt;br /&gt;
&lt;br /&gt;
===Etre sur une nouvelle ouverture d'activité===&lt;br /&gt;
Permet lors d'une nouvelle ouverture d'activité, que la personne disposant du profil concerné soit autorisée à être sur une des places.&lt;br /&gt;
&lt;br /&gt;
Permet entre autre à une personne tierce, de pouvoir effectuer de nouvelles ouvertures d'activité pour une personne disposant du profil concerné et n'ayant pas le droit [[#Saisie-d'activité-pour-soi-même|Saisie d'activité pour soi-même]] ou [[#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]].&lt;br /&gt;
&lt;br /&gt;
===Saisie d'activité pour soi-même===&lt;br /&gt;
Autorise la saisie des vols et permet aussi à l'utilisateur de voir son carnet de vols.&lt;br /&gt;
&lt;br /&gt;
Permet également de supprimer ses propres vols depuis son carnet de vol et depuis le [[Carnet-de-route#Modifier-et-supprimer|carnet de route]].&lt;br /&gt;
&lt;br /&gt;
===Saisie d'activité pour un tiers===&lt;br /&gt;
Autorise la saisie des vols pour des tiers et permet de voir les carnets de vols des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Permet également de supprimer les vols des tiers depuis le carnet de vol d'un utilisateur et depuis le [[Carnet-de-route#Modifier-et-supprimer|carnet de route]].&lt;br /&gt;
&lt;br /&gt;
===Vérifier la saisie des activités et les modifier===&lt;br /&gt;
Permet de voir les carnets de vols des utilisateurs et de pointer les vols (vérification qui entérine un vol et qui rend ainsi sa modification ou suppression impossible), permet ainsi de voir les &amp;quot;vols oubliés&amp;quot; aussi (trous dans les horamètres).&lt;br /&gt;
&lt;br /&gt;
===Voir les activités de tous===&lt;br /&gt;
Permet :&lt;br /&gt;
*d'accéder au [[Carnet-de-route|carnet de route]] de chaque ressource aéronef&lt;br /&gt;
*de [[Utilisation-des-réservations-internes-sur-l%27interface-web#Affichage-des-activités-réalisées|voir les activités réalisées sur le planning]] si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé&lt;br /&gt;
&lt;br /&gt;
===Voir ses activités===&lt;br /&gt;
Autorise l'utilisateur à voir son carnet de vol.&lt;br /&gt;
&lt;br /&gt;
===Visualiser les traces de vol===&lt;br /&gt;
Permet de [[Interfaçage-OpenFlyers-et-Charterware#Récupération-des-traces-de-vols|visualiser les traces d'un vol]].&lt;br /&gt;
&lt;br /&gt;
==Formations==&lt;br /&gt;
===Voir les suivis de formations===&lt;br /&gt;
Autorise l'utilisateur à [[Gestion-des-activités#Consulter-le-suivi-de-formation|voir les suivis de formations]] de tous les utilisateurs.&lt;br /&gt;
&lt;br /&gt;
===Gestion des formations===&lt;br /&gt;
Ce droit permet la [[Gestion-des-formations|gestion des formations]].&lt;br /&gt;
&lt;br /&gt;
==Comptes==&lt;br /&gt;
&lt;br /&gt;
===Gestion des comptes===&lt;br /&gt;
Couplé à d'autres droits, permet de créer et modifier les intitulés des comptes (boutiques, espèces, etc.) ainsi que d'accéder à la comptabilité.&lt;br /&gt;
&lt;br /&gt;
Permet lors de la [[Gestion-de-la-comptabilité-côté-utilisateur#Extrait-de-compte|visualisation des écritures]] d'un compte :&lt;br /&gt;
*de pouvoir consulter les écritures des comptes affectés&lt;br /&gt;
*[[Gestion-de-la-comptabilité-côté-utilisateur#Consulter-une-facture-client-ou-un-reçu-d'encaissement|de pouvoir consulter une facture client ou un reçu]]&lt;br /&gt;
*de pouvoir [[Utilisation-de-la-comptabilité#Contrepasser-une-écriture|contrepasser les écritures]]&lt;br /&gt;
*de pouvoir [[Utilisation-de-la-comptabilité#Lettrer-des-écritures-comptables|lettrer les écritures]]&lt;br /&gt;
&lt;br /&gt;
Permet [[Utilisation-de-la-comptabilité#Importer-un-relevé-bancaire|d'importer des relevés bancaires]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce droit inclut les droits '''Paramétrage des types d'encaissements''' et '''Voir les comptes'''.&lt;br /&gt;
&lt;br /&gt;
===Voir les comptes===&lt;br /&gt;
[[Gestion-de-la-comptabilité-côté-utilisateur#Consulter-son-compte-ou-celui-d'un-tiers|Permet de voir tous les comptes]], de [[Gestion-de-la-comptabilité-côté-utilisateur#Extrait-de-compte|visualiser la liste des mouvements]] et de [[Gestion-de-la-comptabilité-côté-utilisateur#Consulter-une-facture-client-ou-un-reçu-d'encaissement|consulter les factures clients et les reçus]].&lt;br /&gt;
&lt;br /&gt;
Couplé au droit [[#Saisir-les-encaissements-pour-les-tiers|Saisir les encaissements pour les tiers]], il permet de saisir un encaissement sur tous comptes. Ce droit inclut les privilèges du droit [[#Voir-les-comptes-utilisateurs|Voir les comptes utilisateurs]].&lt;br /&gt;
&lt;br /&gt;
===Voir les comptes utilisateurs===&lt;br /&gt;
[[Gestion-de-la-comptabilité-côté-utilisateur#Consulter-son-compte-ou-celui-d'un-tiers|Permet de voir tous les comptes utilisateurs]] et de [[Gestion-de-la-comptabilité-côté-utilisateur#Consulter-une-facture-client-ou-un-reçu-d'encaissement|consulter les factures clients et les reçus]].&lt;br /&gt;
&lt;br /&gt;
Couplé au droit [[#Saisir-les-encaissements-pour-les-tiers|Saisir les encaissements pour les tiers]], il permet de saisir un encaissement sur les comptes utilisateurs.&lt;br /&gt;
&lt;br /&gt;
===Gestion des comptabilités===&lt;br /&gt;
&lt;br /&gt;
permet la gestion des comptabilités&lt;br /&gt;
&lt;br /&gt;
===Paramétrage des types d'encaissements===&lt;br /&gt;
Permet le [[Configuration-de-la-comptabilité#Types-d'encaissements|paramétrage des types d'encaissements]].&lt;br /&gt;
&lt;br /&gt;
===Encaisser ses paiements===&lt;br /&gt;
&lt;br /&gt;
Permet à l'utilisateur de [[FAQ-comptabilité#Comment-autoriser-un-profil-utilisateur-à-saisir-des-encaissements-pour-lui-même-?|saisir ses propres paiements]], de les modifier ou de les supprimer tant qu'ils n'ont pas été validés. L'utilisateur ne peut pas saisir les types d'encaissements qui sont ''Accessible uniquement aux personnes autorisées à saisir pour les tiers''.&lt;br /&gt;
&lt;br /&gt;
===Saisir les encaissements pour les tiers===&lt;br /&gt;
&lt;br /&gt;
Permet à l'utilisateur de saisir, modifier ou supprimer, tant qu'ils n'ont pas été validés, les encaissements d'autres utilisateurs ainsi que les encaissements devant être affectés sur des [[Configuration de la comptabilité#Créer_un_compte_comptable|comptes comptables clients autorisés à recevoir de l'argent]].&lt;br /&gt;
&lt;br /&gt;
===Modifier la date d'un encaissement, d'un flux ou d'un transfert===&lt;br /&gt;
&lt;br /&gt;
autorise la modification de la date d'un encaissement, d'un flux ou d'un transfert s'il peut être modifié&lt;br /&gt;
&lt;br /&gt;
===Valider les encaissements===&lt;br /&gt;
&lt;br /&gt;
pointage des paiements saisis par les pilotes par exemple (Modification ultérieure de cette saisie impossible, en cas de problème il faudra alors faire l'opération inverse). Permet également la suppression d'encaissement.&lt;br /&gt;
&lt;br /&gt;
===Recevoir de l'argent===&lt;br /&gt;
&lt;br /&gt;
Permet à un utilisateur d'être sur la liste des paiements remis. Voir la [[Configuration-de-la-comptabilité#Types-d'encaissements|configuration de la ventilation des types d'encaissements]].&lt;br /&gt;
&lt;br /&gt;
===Transfert de son compte===&lt;br /&gt;
Permet le transfert de compte à compte depuis la page '''Planning &amp;gt; Comptes &amp;gt; Actions &amp;gt; Transférer'''.&lt;br /&gt;
&lt;br /&gt;
Les transferts effectués avec ce seul droit (sans le droit [[#Transfert-de-son-compte-sans-validation|Transfert de son compte sans validation]]) depuis cette page sont validés automatiquement.&lt;br /&gt;
&lt;br /&gt;
===Transfert de son compte sans validation===&lt;br /&gt;
Permet lors d'un transfert de compte à compte, que les flux générés ne soient pas automatiquement validés. Ce droit n'a d'effet que si le droit [[#Transfert-de-son-compte|Transfert de son compte]] est affecté au profil.&lt;br /&gt;
&lt;br /&gt;
'''Conseil OpenFlyers :''' Ce droit a été créé à la demande de clients OpenFlyers. Néanmoins, nous en déconseillons son usage. En effet, avec ce droit, un utilisateur qui &amp;quot;donne&amp;quot; de l'argent à un autre utilisateur peut ensuite reprendre sa donation. Or comme le dit l'expression : &amp;quot;[https://fr.wiktionary.org/wiki/donner_c%E2%80%99est_donner,_reprendre_c%E2%80%99est_voler Donner c'est donner, reprendre c'est voler]&amp;quot;. L'attribution du seul droit [[#Transfert-de-son-compte|Transfert de son compte]] permet un comportement conforme aux fonctionnalités présentes sur les applications bancaires, à savoir que lorsqu'on effectue un virement ce virement est définitif. Si un utilisateur se trompe dans son virement, alors il faut qu'il demande soit à la personne à qui il a donné de lui rendre le trop-perçu, soit à un gestionnaire de la structure pour qu'elle saisisse une écriture corrective. L'intérêt de procéder ainsi est qu'on conserve visuellement et directement sur les comptes la trace des opérations effectuées.&lt;br /&gt;
&lt;br /&gt;
===Saisir tout flux===&lt;br /&gt;
Permet de :&lt;br /&gt;
*[[Utilisation-de-la-comptabilité#Saisir-un-flux|saisir des flux]] depuis '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Saisir'''&lt;br /&gt;
*de modifier/supprimer des flux non validés&lt;br /&gt;
*de consulter la liste des flux depuis '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Valider'''&lt;br /&gt;
*de [[Gestion-de-la-comptabilité-côté-utilisateur#Extrait-de-compte|visualiser la liste des mouvements]]&lt;br /&gt;
*d'[[Utilisation-de-la-comptabilité#Importer-un-relevé-bancaire|importer des relevés bancaires]]&lt;br /&gt;
&lt;br /&gt;
===Valider tout flux===&lt;br /&gt;
Permet de valider les flux de la page '''Gestion &amp;gt; Comptes &amp;gt; Flux &amp;gt; Valider'''.&lt;br /&gt;
&lt;br /&gt;
Ce droit n'a effet que si le droit [[#Saisir-tout-flux|Saisir tout flux]] est affecté au profil.&lt;br /&gt;
&lt;br /&gt;
===Paramétrage de la facturation===&lt;br /&gt;
Permet de gérer les règles de [[Facturation-des-clients#Facturation-des-activités|facturation des activités]] et de [[Facturation-des-clients#Facturation-périodique|facturation périodique]].&lt;br /&gt;
&lt;br /&gt;
===Saisie des valeurs de facturation===&lt;br /&gt;
&lt;br /&gt;
Permet de gérer les variables et leurs valeurs destinés aux règles de facturation&lt;br /&gt;
&lt;br /&gt;
===Compte sur lequel un utilisateur peut agir===&lt;br /&gt;
&lt;br /&gt;
Permet de définir sur quel compte utilisateur un encaissement ou un transfert peut être réalisé par la personne connectée. Attention : ce droit est pour l'utilisateur connecté et non pas pour l'utilisateur concerné par l'encaissement ou le transfert.&lt;br /&gt;
&lt;br /&gt;
===Surpasser la limitation du solde du compte===&lt;br /&gt;
Permet à un utilisateur disposant de ce droit dans l'un de ses profils de ne pas avoir de [[Connexion#Restriction-d'accès|restriction d'accès]], de saisie de réservation ou de saisie de vol lorsque [[Configuration de la comptabilité#Restriction_d'accès_en_cas_de_solde_insuffisant|une restriction sur les soldes]] est en place. Il aura juste une alerte à la connexion. Ce droit ne permet pas à l'utilisateur concerné X de pouvoir surpasser les restrictions d'un autre utilisateur Y en effectuant par exemple une réservation en son nom alors que Y n'a ni le droit de surpasser ni le solde suffisant.&lt;br /&gt;
&lt;br /&gt;
[[Connexion#Restriction-d'accès-pour-un-administrateur-référent|Ce droit peut être attribué de façon dynamique à la connexion]] par un [[Configuration#Administrateur-référent|administrateur référent]].&lt;br /&gt;
&lt;br /&gt;
===Surpasser le seuil de [[Gestion-de-la-comptabilité-côté-utilisateur#Transférer-de-l'argent|transfert de compte]]===&lt;br /&gt;
&lt;br /&gt;
Permet à un utilisateur disposant de ce droit dans l'un de ses profils de ne pas être bloqué lorsque une [[Configuration-de-la-comptabilité#Paramétrage-général-des-comptabilités|restriction sur les soldes]] est en place et qu'il ne dispose pas d'un solde suffisant.&lt;br /&gt;
&lt;br /&gt;
==Ventes==&lt;br /&gt;
&lt;br /&gt;
===Gestion globale des ventes===&lt;br /&gt;
&lt;br /&gt;
Permet de gérer les produits, la facturation des produits, les stocks et [[Paramétrage-des-validités#Validité-à-vendre|validités à vendre]]. Permet également de modifier/supprimer des achats de produit.&lt;br /&gt;
&lt;br /&gt;
===Achat ventes libres===&lt;br /&gt;
&lt;br /&gt;
Autorise à acheter tous les produits qui sont en vente libre. Permet également de modifier/supprimer des achats de produit.&lt;br /&gt;
&lt;br /&gt;
===Acheter pour les tiers===&lt;br /&gt;
Autorise à effectuer/modifier/supprimer des achats de produit pour un tiers.&lt;br /&gt;
*Couplé au droit [[#Gestion-des-utilisateurs|Gestion des utilisateurs]], il permet de gérer les [[Paramétrage-des-validités#Validité-à-vendre|validités à vendre]] d'un tiers.&lt;br /&gt;
*Couplé au droit [[Gestion-des-profils#Vente-de-produit-sans-tarif|Vente de produit sans tarif]], il permet de vendre des [[Gestion-des-produits-et-des-ventes#Configuration-d'un-produit-non-stocké-sans-tarif-défini|produits sans tarif]].&lt;br /&gt;
&lt;br /&gt;
===Vente de produit sans tarif===&lt;br /&gt;
Autorise à rendre disponible et à acheter des produits sans tarif. Nécessite le droit [[#Acheter-pour-les-tiers|Acheter pour les tiers]].&lt;br /&gt;
&lt;br /&gt;
===Débrayage des ventes de validités===&lt;br /&gt;
&lt;br /&gt;
Autorise à ajouter et modifier la date d'expiration d'une [[Validités#Validité-à-vendre|validité à vendre]] sans débiter le compte.&lt;br /&gt;
&lt;br /&gt;
==Achats==&lt;br /&gt;
&lt;br /&gt;
===Gestion des achats===&lt;br /&gt;
Permet la gestion des factures fournisseurs, à en créer, modifier et supprimer.&lt;br /&gt;
&lt;br /&gt;
==Admin==&lt;br /&gt;
===Gestion du paramétrage===&lt;br /&gt;
Ce droit est nécessaire pour accéder aux pages permettant de [[Paramétrage|paramétrer la plateforme]] et fait apparaitre le menu '''Structure''' avec les items :&lt;br /&gt;
*[[Données#Accéder-au-tableau-de-conservation-des-données|'''Admin &amp;gt; Structure &amp;gt; Données &amp;gt; Conservation des données''']]&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Structure &amp;gt; Canaux de communications'''&lt;br /&gt;
*[[Configuration#Admin &amp;gt; Structure &amp;gt; Structure &amp;gt; Paramétrage|'''Admin &amp;gt; Structure &amp;gt; Structure &amp;gt; Paramétrage''']]&lt;br /&gt;
*[[Configuration#Admin-&amp;gt;-Structure-&amp;gt;-Structure-&amp;gt;-Coordonnées|'''Admin &amp;gt; Structure &amp;gt; Structure &amp;gt; Coordonnées''']]&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Variables &amp;gt; Définition'''&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Variables &amp;gt; Actualisation'''&lt;br /&gt;
*[[Configuration#Structure-&amp;gt;-Champs-métiers|'''Admin &amp;gt; Structure &amp;gt; Variables &amp;gt; Champs métiers''']]&lt;br /&gt;
*[[Configuration#Structure-&amp;gt;-Export-SQL|'''Admin &amp;gt; Structure &amp;gt; Export SQL &amp;gt; Complet''']]&lt;br /&gt;
*[[Utilisation-de-la-comptabilité#Importer-son-modèle-de-facture|'''Admin &amp;gt; Structure &amp;gt; Imports &amp;gt; Templates ODT''']]&lt;br /&gt;
&lt;br /&gt;
Ce droit fait également apparaitre des items utiles au paramétrage mais présents dans d'autres menus :&lt;br /&gt;
*Couplé au droit [[#Gestion-des-utilisateurs|Gestion des utilisateurs]], dans le menu '''Admin &amp;gt; Utilisateurs''' :&lt;br /&gt;
**[[Champs-métiers|'''Admin &amp;gt; Utilisateurs &amp;gt; Champs métiers''']]&lt;br /&gt;
**'''[[Gestion des statuts|Admin &amp;gt; Utilisateurs &amp;gt; Statuts]]'''&lt;br /&gt;
*[[Gestion-des-types-d'activités|'''Admin &amp;gt; Types d'activités &amp;gt; Actifs''']]&lt;br /&gt;
*[[Champs-métiers|'''Admin &amp;gt; Types d'activités &amp;gt; Champs métiers''']]&lt;br /&gt;
*[[Champs-métiers|'''Ventes &amp;gt; Champs métiers &amp;gt; Champs métiers''']]&lt;br /&gt;
&lt;br /&gt;
===Gestion des valeurs===&lt;br /&gt;
&lt;br /&gt;
===Gestion des profils===&lt;br /&gt;
permet de créer et modifier les profils. Attention, laisser cette autorisation à au moins un profil !&lt;br /&gt;
&lt;br /&gt;
===Gestion des utilisateurs===&lt;br /&gt;
&lt;br /&gt;
Permet de modifier les caractéristiques, infos et photos des utilisateurs, les désactiver et gérer leurs validités qui ne correspondent pas à des [[Paramétrage-des-validités#Validité-à-vendre|validités à vendre]]. Couplé au droit [[#Acheter-pour-les-tiers|Acheter pour les tiers]], il permet de gérer les [[Paramétrage-des-validités#Validité-à-vendre|validités qui sont à vendre]].&lt;br /&gt;
&lt;br /&gt;
===Gestion des ressources===&lt;br /&gt;
Permet la gestion complète des types de ressources et des ressources (créer/supprimer/modifier/associer des validités). Autorise également la gestion de navigabilité des ressources aéronefs, la gestion des statuts et le suivi des signalements, notamment l'ajout de commentaires et la clôture d'un signalement.&lt;br /&gt;
&lt;br /&gt;
Permet d'accéder à [[Gestion-des-documents|la liste des documents]] qui sont associés aux ressources et leur gestion (Ajouter, modifier, supprimer). Permet aussi de gérer la liste des catégories de ces documents.&lt;br /&gt;
&lt;br /&gt;
===Gestion des rapports===&lt;br /&gt;
Fait apparaître le menu '''[[Gestion-des-rapports|Gestion &amp;gt; Rapports]]''' avec les items :&lt;br /&gt;
* '''Gestion &amp;gt; Rapports &amp;gt; Rapports personnalisés &amp;gt; Champs métiers'''&lt;br /&gt;
* '''[[Gestion-des-rapports#Configurer-les-rapports-visibles-pour-les-utilisateurs|Gestion &amp;gt; Rapports &amp;gt; Rapports personnalisés &amp;gt; Créer/Modifier]]'''&lt;br /&gt;
* '''[[Gestion-des-rapports#Configurer-les-rapports-visibles-pour-les-utilisateurs|Gestion &amp;gt; Rapports &amp;gt; Rapports personnalisés &amp;gt; Visualiser]]'''&lt;br /&gt;
* '''Gestion &amp;gt; Rapports &amp;gt; Rapports spécifiques &amp;gt; Activités et coûts'''&lt;br /&gt;
* '''[[Gestion-des-rapports#Configurer-les-rapports-visibles-pour-les-utilisateurs|Gestion &amp;gt; Rapports &amp;gt; Bibliothèque]]'''&lt;br /&gt;
&lt;br /&gt;
Fait apparaître la [[Gestion-des-rapports#Case-à-cocher-Mémoriser-ce-choix|case à cocher '''Mémoriser ce choix''']].&lt;br /&gt;
&lt;br /&gt;
Donne également accès à '''Gestion &amp;gt; Comptes &amp;gt; Gestion &amp;gt; Compte de résultat'''.&lt;br /&gt;
&lt;br /&gt;
===Voir tous les rapports===&lt;br /&gt;
Fait apparaître le menu '''Rapports''' avec les items :&lt;br /&gt;
* '''[[Gestion-des-rapports#Configurer-les-rapports-visibles-pour-les-utilisateurs|Rapports personnalisés &amp;gt; Visualiser]]'''&lt;br /&gt;
* '''Rapports spécifiques &amp;gt; Vols et coûts'''&lt;br /&gt;
Cela permet de consulter l'intégralité des rapports, y compris les favoris.&lt;br /&gt;
&lt;br /&gt;
Fait apparaître la [[Gestion-des-rapports#Case-à-cocher-Mémoriser-ce-choix|case à cocher '''Mémoriser ce choix''']].&lt;br /&gt;
&lt;br /&gt;
Donne également accès à '''Gestion &amp;gt; Comptes &amp;gt; Gestion &amp;gt; Compte de résultat'''.&lt;br /&gt;
&lt;br /&gt;
===Gestion des logs===&lt;br /&gt;
Fait apparaître le menu '''Admin &amp;gt; Logs''' avec les items :&lt;br /&gt;
*'''Admin &amp;gt; Logs &amp;gt; Actions effectuées'''&lt;br /&gt;
*'''Admin &amp;gt; Logs &amp;gt; Adresses IP bloquées'''&lt;br /&gt;
*'''Admin &amp;gt; Logs &amp;gt; Historique d'une réservation'''&lt;br /&gt;
*'''Admin &amp;gt; Logs &amp;gt; Identifiants bloqués'''&lt;br /&gt;
*'''Admin &amp;gt; Logs &amp;gt; Requête utilisateur en attente'''&lt;br /&gt;
&lt;br /&gt;
===Envoyer et suivre les e-mails===&lt;br /&gt;
Permet d'accéder à la page [[Mailing|Mailing]] et de [[Suivi-des-emails|suivre les emails]].&lt;br /&gt;
&lt;br /&gt;
===Accès aux tableurs===&lt;br /&gt;
Permet d'accéder aux fichiers [[Tableurs|tableurs]] depuis le menu.&lt;br /&gt;
&lt;br /&gt;
===Gestion des communications===&lt;br /&gt;
Permet de gérer les flux d'informations et leurs canaux.&lt;br /&gt;
&lt;br /&gt;
==Modules désactivés==&lt;br /&gt;
*Un onglet lié à un module désactivé est affiché uniquement si au moins un droit de son groupe reste actif sur au moins un profil utilisateur.&lt;br /&gt;
*Dans ce cas:&lt;br /&gt;
**L'onglet apparaît avec l'indication '''désactivé'''.&lt;br /&gt;
**Les droits non cochés apparaissent en mode inactif (non modifiables), empêchant toute nouvelle attribution.&lt;br /&gt;
**Les droits déjà attribués (cases cochées) restent visibles.&lt;br /&gt;
*Si aucun droit du groupe n'est actif, l'onglet correspondant n'est plus affiché.&lt;br /&gt;
&lt;br /&gt;
=Profils Plus=&lt;br /&gt;
*'''Admin &amp;gt; Utilisateurs &amp;gt; Profils plus'''&lt;br /&gt;
&lt;br /&gt;
==Ajouter un profil depuis Profils plus==&lt;br /&gt;
*Cliquer sur une cellule contenant le caractère '''+'''&lt;br /&gt;
*remplissez la cellule puis appuyer sur la touche &amp;quot;Entrée&amp;quot;&lt;br /&gt;
*pour valider cliquer sur la disquette à gauche dans la colonne &amp;quot;Actions&amp;quot;&lt;br /&gt;
*le nouveau profil est placé à la fin du tableau&lt;br /&gt;
&lt;br /&gt;
==Modifier un profil depuis Profils plus==&lt;br /&gt;
*Cliquer sur une cellule du profil à modifier&lt;br /&gt;
*remplissez la cellule puis appuyer sur la touche &amp;quot;Entrée&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Colonnes du tableau Profils Plus==&lt;br /&gt;
===Nom (du profil)===&lt;br /&gt;
Nom du profil&lt;br /&gt;
&lt;br /&gt;
===Type de compte requis===&lt;br /&gt;
Permet de définir les comptes utilisateurs appartenant aux types sélectionnés qui seront créés pour les nouveaux utilisateurs ou ajoutés aux utilisateurs existants à qui on attribuera ce profil&lt;br /&gt;
&lt;br /&gt;
===Champ métier visible par le profil sur le formulaire utilisateur ou sur le planning===&lt;br /&gt;
Permet d'afficher ou de cacher les [[Champs-métiers|champs métiers]] des formulaires présents dans :&lt;br /&gt;
*'''Planning &amp;gt; Données &amp;gt; Personnelles &amp;gt; Affichage et fiche personnelle'''&lt;br /&gt;
*'''Gestion &amp;gt; Utilisateurs &amp;gt; Utilisateurs &amp;gt; Actifs'''&lt;br /&gt;
*'''Planning &amp;gt; Planning &amp;gt; Réserver'''&lt;br /&gt;
&lt;br /&gt;
===Type de validité que l'utilisateur peut gérer pour lui-même===&lt;br /&gt;
Permet de sélectionner les types de validités qu'un utilisateur de ce profil peut [[Validités#Consulter-et-gérer-ses-validités-ou-celles-d'un-tiers|ajouter/acheter/mettre/supprimer]] (ex: Licence fédérale, Visite Médicale, Autres licences) pour lui-même. Les validités d'un utilisateur sont accessibles depuis '''Planning &amp;gt; Données &amp;gt; Personnelles &amp;gt; Validités'''.&lt;br /&gt;
&lt;br /&gt;
[[Paramétrage-des-validités#Profils-autorisés-à-gérer-pour-eux-mêmes|Lors de l'ajout d'un type de validité, celui-ci est automatiquement affecté aux profils]].&lt;br /&gt;
&lt;br /&gt;
===Types de validités que l'utilisateur peut gérer et certifier===&lt;br /&gt;
Permet de sélectionner les types de validités qu'un utilisateur de ce profil peut gérer et certifier.&lt;br /&gt;
&lt;br /&gt;
[[Paramétrage-des-validités#Profils-autorisés-à-gérer/certifier-pour-les-autres|Lors de l'ajout d'un type de validité, celui-ci est automatiquement affecté aux profils]].&lt;br /&gt;
&lt;br /&gt;
Tous les utilisateurs détenant un profil pouvant certifier un type de validité coché recevront un [[Envoi-des-emails#E-mail-de-demande-de-certification-de-validité|e-mail]] lorsqu'une validité d'un des types choisis sera ajoutée par un utilisateur et [[Validités#Validités-en-attente-de-certification|en attente de certification]].&lt;br /&gt;
&lt;br /&gt;
'''NB''': Pour que la notification soit effective, il faut également que l'utilisateur ait coché l'option '''[[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-validité-en-attente-de-certification|Recevoir un e-mail pour chaque validité en attente de certification]]''' dans [[Fiche-personnelle#Notifications|sa fiche personnelle (onglet ''Notifications'')]].&lt;br /&gt;
&lt;br /&gt;
===Contrats non requis===&lt;br /&gt;
Voir la définition de [[Paramétrage-des-validités#Validité-contrat|validité-contrat]].&lt;br /&gt;
&lt;br /&gt;
Permet de [[Gestion-des-profils#Modifier-un-profil-depuis-Profils-plus|définir]] les [[Paramétrage-des-validités#Validité-contrat|validités-contrats]] qui ne sont pas requises pour certains profils.&lt;br /&gt;
&lt;br /&gt;
Les utilisateurs ne disposant que de profils exemptés, ne se verront pas demandés la signature des validités-contrats à la connexion. Tous les autres utilisateurs doivent signer chacun des contrats s'ils disposent d'au moins un profil non-exempté ou si la validité-contrat est requise pour tous les profils.&lt;br /&gt;
&lt;br /&gt;
La signature des validités-contrats, se fait juste après l'identification à la connexion. Le formulaire apparait tant qu'il reste au moins un contrat non-signé. L'utilisateur ne peut passer outre ce processus.&lt;br /&gt;
&lt;br /&gt;
===Attribution de place===&lt;br /&gt;
Permet d'attribuer les places auxquelles sont autorisées les utilisateurs de ce profil. Cela impacte sur les listes des utilisateurs que l'on trouve à la saisie d'une réservation ou d'un vol.&lt;br /&gt;
&lt;br /&gt;
Ces listes sont accessibles depuis '''Planning &amp;gt; Planning &amp;gt; Réserver''' et '''Planning &amp;gt; Activités &amp;gt; Saisir une activités'''.&lt;br /&gt;
&lt;br /&gt;
La page '''Admin &amp;gt; Type de ressource &amp;gt; Places''' permet de gérer les places d'un type de ressource. Elle permet également de définir qui a le droit d'être sur telle place en cas de restriction de profil.&lt;br /&gt;
&lt;br /&gt;
===Profils visibles===&lt;br /&gt;
Dans les pages '''Planning &amp;gt; Données &amp;gt; Personnelles &amp;gt; Affichage et fiche personnelle''', '''Gestion &amp;gt; Utilisateurs &amp;gt; Actifs''' et '''Admin &amp;gt; Utilisateurs &amp;gt; Paramètres par défaut''', on peut sélectionner les utilisateurs auxquels on souhaite voir leur planning.&lt;br /&gt;
&lt;br /&gt;
La liste des utilisateurs affichés sont ceux possédant un profil ayant les droits [[#Planning-personnel|Planning personnel]] et [[#Planning-individuel-visible-pour-les-autres|Planning individuel visible pour les autres]]. La colonne '''Profils visibles''' permet de restreindre la liste de ces utilisateurs pour ne la limiter qu'aux utilisateurs possédant les profils sélectionnés.&lt;br /&gt;
&lt;br /&gt;
'''Attention :''' Il faut attribuer à un profil au moins une place de 1ère rang (numéro de place 0).&lt;br /&gt;
&lt;br /&gt;
===Types de ressources visibles===&lt;br /&gt;
Dans les pages '''Planning &amp;gt; Données &amp;gt; Personnelles &amp;gt; Affichage et fiche personnelle''', '''Gestion &amp;gt; Utilisateurs &amp;gt; Actifs''' et '''Admin &amp;gt; Utilisateurs &amp;gt; Paramètres par défaut''', on peut sélectionner les ressources dont on souhaite voir le [[Utilisation-des-réservations-internes-sur-l%27appli-mobile|planning]] ou les rendre disponibles dans les formulaires de saisie de réservation et d'activité.&lt;br /&gt;
&lt;br /&gt;
La colonne '''Types de ressources visibles''' permet de restreindre la liste de ces ressources pour ne la limiter qu'aux ressources appartenant aux types de ressources sélectionnés.&lt;br /&gt;
&lt;br /&gt;
===Comptabilités visibles===&lt;br /&gt;
Permet de sélectionner les comptabilités qui sont visibles pour un profil. De plus, les types de compte et les comptes n'étant pas d'une comptabilité sélectionnée ne seront pas visibles.&lt;br /&gt;
&lt;br /&gt;
===Alerté par e-mail pour le renouvellement des validités de tous les utilisateurs===&lt;br /&gt;
Ce droit permet de suivre le renouvellement des validités par les utilisateurs en étant alerté par e-mail à chaque fois qu'un utilisateur renouvelle une validité sélectionnée dans la liste de la cellule '''Alerté par e-mail pour le renouvellement des validités de tous les utilisateurs'''. Attention : la mise en place de ce droit peut provoquer la réception de nombreux e-mails.&lt;br /&gt;
&lt;br /&gt;
=Utilisation=&lt;br /&gt;
==[[Connexion#Choix_du_profil|Choix du profil à la connexion]]==&lt;br /&gt;
&lt;br /&gt;
==Ajouter un profil==&lt;br /&gt;
&lt;br /&gt;
Depuis l'interface dynamique :&lt;br /&gt;
*Cliquer sur l'icône de menu correspondant à la gestion des profils&lt;br /&gt;
*Ajouter une ligne&lt;br /&gt;
*Compléter les cellules&lt;br /&gt;
*L'ajout est enregistré si les cellules suivantes sont correctement remplies :&lt;br /&gt;
**'''Nom du profil''' : la cellule doit être remplie et le nom ne pas avoir déjà été utilisé comme nom de profil.&lt;br /&gt;
&lt;br /&gt;
Depuis l'interface légère :&lt;br /&gt;
*Aller sur '''Admin &amp;gt; Utilisateurs &amp;gt; Profils'''&lt;br /&gt;
*En-dessous du tableau listant les profils, cliquer sur le bouton '''AJOUTER UN PROFIL'''&lt;br /&gt;
*Renseigner les droits pour chaque onglet&lt;br /&gt;
*Aller sur '''Admin &amp;gt; Utilisateurs &amp;gt; Profils plus'''&lt;br /&gt;
*Renseigner les colonnes pour la ligne du profil nouvellement créé&lt;br /&gt;
&lt;br /&gt;
===Ajouter un profil qui surpasse la restriction en cas de solde insuffisant===&lt;br /&gt;
*Procéder à l'ajout de ligne dans un tableau.&lt;br /&gt;
*Saisir par exemple comme nom '''Non restreignable'''.&lt;br /&gt;
*Toujours dans '''Admin &amp;gt; Utilisateurs &amp;gt; Profils''', onglet '''Généralités''', cocher pour ce profil le droit [[Gestion des profils#Généralités|Profil non sélectionnable par l'utilisateur]].&lt;br /&gt;
*Dans l'onglet '''Gestion des comptes''', sélectionner le droit [[#Surpasser-la-limitation-du-solde-du-compte|Surpasser la limitation du solde du compte]] pour le profil concerné&lt;br /&gt;
Il suffit ensuite de rajouter ce profil aux utilisateurs concernés.&lt;br /&gt;
&lt;br /&gt;
=Créer un profil empêchant tout surpassement=&lt;br /&gt;
Il peut être nécessaire d'empêcher un utilisateur de pouvoir réserver ou saisir une activité même en recourant à l'aide d'un tiers qui disposerait de droits permettant de surpasser des restrictions, que cela soit sur des comptes ou sur des validités.&lt;br /&gt;
&lt;br /&gt;
Cela peut être le cas, par exemple, pour la détention d'une validité ''Cotisation'' périmée ou lorsque le solde du compte utilisateur est insuffisant (cf. [[Configuration-de-la-comptabilité#Restriction-d'accès-en-cas-de-solde-insuffisant|Restriction d'accès en cas de solde insuffisant]]).&lt;br /&gt;
&lt;br /&gt;
Pour mettre en place une telle restriction, il faut :&lt;br /&gt;
*[[Gestion-des-profils#Ajouter-un-profil|Ajouter un profil]] en lui attribuant l'ensemble des droits (ne pas oublier la page '''Admin &amp;gt; Utilisateurs &amp;gt; Profils plus'''&lt;br /&gt;
*[[Gestion-des-profils#Modifier-un-profil|Modifier le profil]] nouvellement créé&lt;br /&gt;
**Si l'utilisateur ne doit pas pouvoir ouvrir un vol : dans l'onglet [[Gestion-des-profils#Activités|Activités]], décocher le droit [[Gestion-des-profils#Etre-sur-une-nouvelle-ouverture-d'activité|Etre sur une nouvelle ouverture d'activité]]&lt;br /&gt;
**Si l'utilisateur ne doit pas pouvoir être sur une réservation : dans l'onglet [[Gestion-des-profils#Réservation|Réservation]], décocher les droits [[Gestion-des-profils#Etre-sur-une-nouvelle-réservation|Etre sur une nouvelle réservation]], [[Gestion-des-profils#Réservation-solo|Réservation solo]] et [[Gestion-des-profils#Réservation-avec-un-instructeur|Réservation avec un instructeur]]&lt;br /&gt;
&lt;br /&gt;
==Droits particuliers==&lt;br /&gt;
*'''GÉNÉRALITÉS / Profil non sélectionnable par l'utilisateur :''' ce droit n'est applicable que si les [[Gestion des utilisateurs|utilisateurs disposant du profil concerné]] possèdent au moins un autre [[Connexion#Sélection_du_profil|profil sélectionnable à la connexion]].&lt;br /&gt;
*'''GÉNÉRALITÉS ADMIN / Gestion des profils :''' au moins un profil doit posséder ce droit.&lt;br /&gt;
&lt;br /&gt;
==Modifier un profil==&lt;br /&gt;
La modification des profils s'effectue selon les règles d'[[Utilisation des tableaux#Édition_des_données#|édition des données d'un tableau]].&lt;br /&gt;
&lt;br /&gt;
==Supprimer un profil==&lt;br /&gt;
*La suppression d'un profil est possible uniquement si les [[Gestion des utilisateurs|utilisateurs disposant de ce profil]] possèdent aussi au moins un autre profil.&lt;br /&gt;
*Procéder à la suppression de ligne dans un tableau.&lt;br /&gt;
&lt;br /&gt;
==Valeurs par défaut lors de la création d'un profil==&lt;br /&gt;
Lors de la création d'un profil, on affecte automatiquement par défaut :&lt;br /&gt;
* Tous les '''Profils visibles'''&lt;br /&gt;
* Tous les '''Types de ressources visibles'''&lt;br /&gt;
* Toutes les '''Comptabilités visibles'''&lt;br /&gt;
* Les '''Attribution de place''' correspondants à la première place de chaque type de ressource&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14551</id>
		<title>Utilisation des réservations internes sur l'interface web</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Utilisation-des-r%C3%A9servations-internes-sur-l%27interface-web&amp;diff=14551"/>
		<updated>2026-07-03T12:04:22Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Activité ouverte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter l'interface web du planning de réservation d'OpenFlyers et le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
Le cartouche des éphémérides est décrit sur la page [[Éphémérides]].&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alerte liées aux validités lors d'une réservation]]==&lt;br /&gt;
&lt;br /&gt;
==Alerte de délai minimum pour modifier/supprimer une réservation==&lt;br /&gt;
&lt;br /&gt;
;Prérequis&lt;br /&gt;
&lt;br /&gt;
Le paramètre [[Configuration-des-réservations-internes#Interdire-la-modification-ou-la-suppression-d'une-réservation-débutant-dans-moins-de|Interdire la modification ou la suppression d'une réservation débutant dans moins de]] doit être configuré.&lt;br /&gt;
&lt;br /&gt;
Le comportement dépend du droit [[Gestion-des-profils#Surpasser_l'interdiction_de_modifier_ou_supprimer_une_réservation_débutant_dans_moins_de_X_temps|surpassement de la limitation temporelle de modification/suppression]]&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lorsqu'un utilisateur tente de modifier ou supprimer une réservation dont l'heure de début est trop proche (inférieure au délai minimum configuré) :&lt;br /&gt;
*Sans droit de surpassement, le message bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous ne pouvez pas modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Avec droit de surpassement, le message non bloquant suivant s'affiche :&lt;br /&gt;
&amp;lt;pre&amp;gt;Vous êtes sur le point de modifier ou supprimer une réservation débutant dans moins de X temps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==L'instructeur n'est pas disponible pendant le créneau souhaité==&lt;br /&gt;
&lt;br /&gt;
Lorsqu'un utilisateur tente d'effectuer une réservation avec une personne en seconde place, une alerte s'affiche si cette dernière a :&lt;br /&gt;
*ses disponibilités qui sont indéfinies&lt;br /&gt;
*ses disponibilités qui ne concordent pas avec le créneau souhaité&lt;br /&gt;
&lt;br /&gt;
==Potentiel estimé restant insuffisant==&lt;br /&gt;
;Prérequis&lt;br /&gt;
*L'[[Configuration-des-réservations-internes#Alerte-sur-le-potentiel|alerte sur le potentiel]] doit être activée&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Lors de l'ajout ou de la modification d'une réservation, si le potentiel estimé restant d'une ressource devient inférieur à un seuil critique défini, un avertissement orange apparaît :&lt;br /&gt;
&amp;lt;pre&amp;gt;Le potentiel estimé restant à l'issue de cette réservation (XX:xx) est inférieur au seuil minimum requis (YY:yy)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aspect du planning de réservation=&lt;br /&gt;
==Activité ouverte==&lt;br /&gt;
Lorsqu'une activité et en cours :&lt;br /&gt;
*Le créneau horaire correspondant est coloré en bleu vif.&lt;br /&gt;
*L'en-tête contenant le nom de la ressource sera coloré du même bleu.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-int-leg-activite-1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Statut de l'activité d'une ressource ===&lt;br /&gt;
&lt;br /&gt;
Pour les ressources physiques, un badge coloré peut être affiché devant le nom de la ressource. Il indique le statut le plus restrictif parmi les signalements ouverts :&lt;br /&gt;
&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;br /&gt;
&lt;br /&gt;
Ce badge permet d'identifier rapidement les ressources ayant un signalement ouvert.&lt;br /&gt;
&lt;br /&gt;
[[File:resource_status.png]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des activités réalisées==&lt;br /&gt;
Si le paramètre [[Configuration-des-réservations-internes#Affichage-possible-des-activités-réalisées-dans-le-planning|Affichage possible des activités réalisées dans le planning]] est activé et que l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]], un interrupteur apparaît pour afficher/masquer les lignes et les créneaux des activités réalisées :&lt;br /&gt;
&lt;br /&gt;
[[File:Toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Chaque ligne de ressource et d'instructeur comporte alors deux sous-lignes :  &lt;br /&gt;
*La sous-ligne supérieure affiche les réservations.  &lt;br /&gt;
*La sous-ligne inférieure affiche les activités réalisées.&lt;br /&gt;
&lt;br /&gt;
[[File:Enabled toggle switch to display activities.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Les informations des activités visibles pour les utilisateurs sont les mêmes que pour les réservations.&lt;br /&gt;
&lt;br /&gt;
La visibilité des informations dépend des droits [[Gestion-des-profils#Voir-les-noms-sur-les-réservations,-les-activités-réalisées-et-la-liste-des-utilisateurs|Voir les noms sur les réservations, les activités réalisées et la liste des utilisateurs]] et [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Affichage des images des pilotes sur le menu contextuel==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les images des personnes associées à une réservation sur le menu contextuel lorsqu'on survole ou effectue un clic droit sur une réservation dans le planning.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-images-des-pilotes-sur-le-menu-contextuel|Voir les images des pilotes sur le menu contextuel]].&lt;br /&gt;
&lt;br /&gt;
[[File:images-des-pilots-sur-la-réservation.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Affichage des noms d'activités sur les réservations et les activités réalisées==&lt;br /&gt;
Cette fonctionnalité permet d'afficher les types d'activités associés à une réservation directement sur l'affichage de la réservation ou de l'activité réalisée dans le planning sans avoir besoin de la survoler.&lt;br /&gt;
&lt;br /&gt;
Cet affichage est en place lorsque l'utilisateur connecté dispose du droit [[Gestion-des-profils#Voir-les-noms-d'activités-sur-les-réservations-et-les-activités-réalisées|Voir les noms d'activités sur les réservations et les activités réalisées]].&lt;br /&gt;
&lt;br /&gt;
==Couleur d'un créneau de réservation==&lt;br /&gt;
===[[Gestion-des-utilisateurs#Changer-la-couleur-d'affichage-des-réservations-d'un-utilisateur|Couleur Par utilisateur]]===&lt;br /&gt;
===[[Gestion-des-types-d%27activités#Affecter-une-couleur-à-un-type-d'activité|Couleur par type d'activité]]===&lt;br /&gt;
La couleur reflète le niveau de spécificité des activités : les activités plus spécifiques sont priorisées dans le choix de la couleur.&lt;br /&gt;
&lt;br /&gt;
;Principe&lt;br /&gt;
*Les activités les plus courantes sont positionnées dans les premiers rangs&lt;br /&gt;
*Les activités les plus spécifiques sont positionnées dans les derniers rangs&lt;br /&gt;
*Lorsqu'une couleur spécifique doit être appliquée, elle doit provenir des activités les plus spécifiques&lt;br /&gt;
&lt;br /&gt;
;Règles&lt;br /&gt;
*Ordonnancement : du commun vers le spécifique&lt;br /&gt;
*Couleur : la couleur finale d'un créneau reflète la spécificité des activités qui le composent&lt;br /&gt;
&lt;br /&gt;
==Créneaux horaires==&lt;br /&gt;
Lorsqu'une réservation ne comporte pas de nom, les intitulés des activités apparaissent sur le créneau de la réservation.&lt;br /&gt;
&lt;br /&gt;
==Places disponibles==&lt;br /&gt;
Lorsqu'une ou plusieurs places sont indiquées comme disponibles pour une réservation, alors un pictogramme représentant un siège apparaît dans le créneau correspond à cette réservation. &lt;br /&gt;
&lt;br /&gt;
Le nombre de places disponibles y est précisé : +1, +2, ou +3.&lt;br /&gt;
&lt;br /&gt;
[[File:places-disponibles.png|400px]]&lt;br /&gt;
&lt;br /&gt;
==Planning par type d'activité==&lt;br /&gt;
Lorsqu'un type d'activité est sélectionné, seuls les créneaux horaires réservés avec le type d'activité sélectionné sont affichés. En revanche, les autres plages horaires réservées sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
[[File:planning_By_Activity_Type.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Positionner automatiquement les activités d’un programme de formation==&lt;br /&gt;
Si la plateforme dispose du droit [[Gestion-des-profils#Réservation-de-programmes|réservation de programmes]] et des programmes de formation définis, lorsqu'on survole un créneau horaire dans le planning, un menu contextuel s'affiche, proposant les actions suivantes :&lt;br /&gt;
*'''Ajouter une réservation...''': Cette option permet de réaliser une réservation simple en affichant le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
*'''Ajouter un programme...''': En choisissant cette option, un pop-up s'affiche, permettant de sélectionner un programme de formation à ajouter au planning pour un utilisateur/client spécifique. En cliquant sur &amp;quot;Ajouter&amp;quot;, des créneaux de réservation sont automatiquement générés si des ressources compatibles avec le type d'activité sont disponibles. Dans le cas contraire, ces créneaux sont placés dans une nouvelle ligne appelée &amp;quot;Activité non placée&amp;quot;. Cette ligne est positionnée au début du planning, juste après la barre des heures, et reste fixe en haut de la page lorsque l'on fait défiler la page.&lt;br /&gt;
&lt;br /&gt;
En survolant l'un des créneaux créés, tous les créneaux des réservations et des activités non placées du même programme s'affichent avec un effet de mise en surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer tous les créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer un créneau parmi ceux déjà créés, il est nécessaire d'activer l'interrupteur [[Configuration-des-réservations-internes#Autoriser-la-suppression-partielle-d'éléments-de-réservations|Autoriser la suppression partielle d'éléments de réservations]].&lt;br /&gt;
&lt;br /&gt;
Une fois ce paramètre activé, l'action '''Annuler cet élément du groupe de réservations''' devient disponible. En cliquant sur cette action, le créneau sélectionné sera supprimé du groupe de réservations.&lt;br /&gt;
&lt;br /&gt;
Pour positionner une activité non placée, il est possible de soit la [[#Glisser-déposer-des-réservations|glisser-déposer]]  à l'emplacement souhaité dans le planning, soit de cliquer sur le créneau pour afficher le [[#Formulaire-de-réservation|formulaire de réservation]].&lt;br /&gt;
&lt;br /&gt;
==Ressource n'est pas disponible==&lt;br /&gt;
Si la resource n'est pas disponible sur des plages horaires, ils sont affichées sur fond gris hachuré.&lt;br /&gt;
&lt;br /&gt;
Si la ressource n'est pas disponible à certains créneaux horaires qui ne sont pas affichés sur le planning, et qu'une réservation est saisie sur plusieurs jours, alors un message d'alerte s'affiche pour indiquer à partir de quelle date et heure la ressource devient indisponible.&lt;br /&gt;
&lt;br /&gt;
Le message d’erreur affiché n’est pas bloquant si l’utilisateur possède le droit [[Gestion-des-profils#Surpasser-l'indisponibilité-des-ressources|Surpasser l'indisponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
Pour modifier la disponibilité de la ressource, il convient de suivre la procédure [[Gestion-des-disponibilités#Gérer-la-disponibilité-des-ressources|Gérer la disponibilité des ressources]].&lt;br /&gt;
&lt;br /&gt;
=Créer une réservation avec une activité antérieure/postérieure sans ressource matérielle=&lt;br /&gt;
;prérequis&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-antérieure-sans-ressource-matérielle|Affecter une activité antérieure sans ressource matérielle]]&lt;br /&gt;
*[[Gestion-des-types-d'activités#Affecter-une-activité-postérieure-sans-ressource-matérielle|Affecter une activité postérieure sans ressource matérielle]]&lt;br /&gt;
&lt;br /&gt;
;Fonctionnement&lt;br /&gt;
Dans le formulaire de réservation, lorsque le type d'activité sélectionné possède une activité antérieure/postérieure configurée, des champs supplémentaires apparaissent.&lt;br /&gt;
Ces champs reprennent le nom des types d'activité configurés et permettent de définir une durée spécifique pour chacune d'elles.&lt;br /&gt;
&lt;br /&gt;
[[File:Booking-Form-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Lors de la création de la réservation, le système génère automatiquement trois blocs distincts :&lt;br /&gt;
*Bloc central : la réservation principale (activité normale), affichée seule sur la ligne de la ressource et au centre sur la ligne de l'utilisateur.&lt;br /&gt;
*Bloc antérieur : une réservation pour l'instructeur et l'élève uniquement, sans ressource, positionnée avant l'activité principale (exp: briefing).&lt;br /&gt;
*Bloc postérieur : une réservation pour l’instructeur et l'élève uniquement, sans ressource, positionnée après l'activité principale (exp: débriefing).&lt;br /&gt;
&lt;br /&gt;
Le moteur d'affichage met en évidence les liens entre les trois blocs de réservation (activité antérieure, activité principale, activité postérieure) à l'aide d'un effet de surbrillance jaune.&lt;br /&gt;
&lt;br /&gt;
Pour supprimer l'ensemble des créneaux créés, il suffit de survoler l'un des créneaux de réservation et de cliquer sur l'action '''Annuler le groupe de réservations'''.&lt;br /&gt;
&lt;br /&gt;
[[File:planning-By-Previous-Next-Activity.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
Il est impossible de réserver l'instructeur ou l'élève pendant qu'ils participent à une activité antérieure ou postérieure. En revanche, la ressource matérielle peut être réservée pendant ces périodes.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran tactile=&lt;br /&gt;
==Appui court==&lt;br /&gt;
L'appui court au-dessus d'une réservation affiche le menu contextuel.&lt;br /&gt;
&lt;br /&gt;
==Appui suivi d'un déplacement==&lt;br /&gt;
L'appui sui d'un déplacement peu de temps après l'appui fait déplacer tout le planning.&lt;br /&gt;
&lt;br /&gt;
==Appui long==&lt;br /&gt;
L'appui long au-dessus d'une réservation sans bouger le doigt permet de [[#Glisser-déposer-des-réservations|glisser-déposer]] un créneau de réservation.&lt;br /&gt;
&lt;br /&gt;
==Double-clic==&lt;br /&gt;
Double-clic au-dessus d'une réservation permet d'afficher le formulaire de réservation.&lt;br /&gt;
&lt;br /&gt;
=Ergonomie sur écran non tactile=&lt;br /&gt;
==Clic==&lt;br /&gt;
Un clic sur un créneau vide du planning pour effectuer '''une nouvelle réservation''', ou un clic sur un créneau réservé pour '''modifier une réservation'''.&lt;br /&gt;
&lt;br /&gt;
==Survol et Clic droit==&lt;br /&gt;
Un '''Survol'''/'''Clic droit''' sur une réservation affiche le menu contextuel avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
[[File:Contextual menu.png|400px]]&lt;br /&gt;
&lt;br /&gt;
;- Annuler/Modifier la réservation&lt;br /&gt;
&lt;br /&gt;
;- Saisir le vol&lt;br /&gt;
&lt;br /&gt;
;- Préparer un vol&lt;br /&gt;
*OpenFlyers est couplé avec [[Airmate]] pour aider les pilotes à préparer leur vol. Ainsi, depuis OpenFlyers il est possible de :&lt;br /&gt;
**coupler une réservation avec une préparation de vol Airmate en survolant la réservation concernée pour faire apparaitre le menu contextuel, puis de sélectionner l'item de menu '''Préparer le vol...'''&lt;br /&gt;
**créer un nouveau vol dans Airmate en cliquant sur l'item de menu '''Préparation vol &amp;gt; Préparer un vol'''&lt;br /&gt;
*Voir la page [[Airmate]] pour les détails concernant l'inscription à Airmate et la synchronisation réservation/vol.&lt;br /&gt;
&lt;br /&gt;
=Glisser-déposer des réservations=&lt;br /&gt;
La fonction de glisser-déposer est active pour tout utilisateur qui dispose du droit de réservation pour lui-même. Dans ce cas, il ne peut effectuer cette opération que pour les réservations qui le concerne.&lt;br /&gt;
&lt;br /&gt;
;Écran non tactile&lt;br /&gt;
*Survoler la réservation qui a besoin d'être déplacée&lt;br /&gt;
Le pointeur de la souris se transforme en &amp;quot;4 flèches&amp;quot;.&lt;br /&gt;
*Appuyer sur le bouton gauche de la souris pour sélectionner la réservation&lt;br /&gt;
*Déplacer la souris tout en maintenant le bouton gauche appuyé afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le bouton gauche afin que la réservation soit mise à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
;Écran tactile&lt;br /&gt;
*Maintenir un appui prolongé avec le doigt sur une réservation qui a besoin d'être déplacée&lt;br /&gt;
Un pictogramme &amp;quot;4 flèches&amp;quot; s'affiche en haut à gauche du rectangle symbolisant la réservation&lt;br /&gt;
*Déplacer son doigt afin de déplacer le créneau de réservation sur le nouvel horaire et/ou la nouvelle ressource souhaités&lt;br /&gt;
*Relâcher le doigt afin que la réservation se mette à jour&lt;br /&gt;
Un pictogramme (roue qui tourne) apparaît en haut à gauche du rectangle de la réservation pour symboliser la mise à jour en base de données.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette mise à jour est effective, le pictogramme est remplacé pendant quelques secondes par une « check » verte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Un utilisateur disposant du droit d'effectuer des réservations pour des tiers peut procéder de la même façon pour toutes les réservations.&lt;br /&gt;
&lt;br /&gt;
;Le déplacement est soumis aux règles suivantes :  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;utlisateur&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;utlisateur&amp;quot;.  &lt;br /&gt;
* Les réservations sur une ligne de type &amp;quot;ressource&amp;quot; ne peuvent être déplacées que vers une autre ligne de type &amp;quot;ressource&amp;quot;.  &lt;br /&gt;
&lt;br /&gt;
;Lors du déplacement d'une réservation :&lt;br /&gt;
* si une alerte bloquante est générée elle est affichée et empêche le déplacement de la réservation&lt;br /&gt;
* si une alerte non bloquante est générée, elle n'est affichée que si le paramètre [[Configuration#Afficher-les-alertes-non-bloquantes-lors-des-glisser-déposer|Afficher les alertes non bloquantes lors des glisser-déposer]] est activé.&lt;br /&gt;
&lt;br /&gt;
=Formulaire de réservation=&lt;br /&gt;
Ce formulaire est accessible via plusieurs actions :  &lt;br /&gt;
* Un clic sur un créneau vide du planning pour effectuer une nouvelle réservation, ou un clic sur un créneau réservé pour modifier une réservation.  &lt;br /&gt;
* Via l'action '''&amp;quot;Planning &amp;gt; Planning &amp;gt; Réserver&amp;quot;'''.  &lt;br /&gt;
* En survolant un créneau réservé et en cliquant sur '''&amp;quot;Modifier la réservation&amp;quot;'''.&lt;br /&gt;
* En cas de surpassement autorisé, la modification/suppression proche de l'heure de début passe par une confirmation explicite après affichage d'un avertissement orange.&lt;br /&gt;
&lt;br /&gt;
[[File:Formulaire_reservation_ancienne_interface.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
==Type d'activité par défaut==&lt;br /&gt;
&lt;br /&gt;
Il est possible de cocher automatiquement un type d'activité sur le formulaire de réservation :&lt;br /&gt;
* Pour définir le type par défaut lors d'une nouvelle réservation ou lorsqu'on sélectionne une personne en première place, [[Configuration#Type-d'activité-par-défaut|suivre cette procédure de paramétrage]]&lt;br /&gt;
* Pour définir le type par défaut lorsqu'on sélectionne une personne en seconde place, [[Configuration#Type-d'activité-par-défaut-pour-la-seconde-place-(ancienne-interface)|suivre cette procédure de paramétrage]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=File:Resource_status.png&amp;diff=14550</id>
		<title>File:Resource_status.png</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=File:Resource_status.png&amp;diff=14550"/>
		<updated>2026-07-03T12:03:14Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Resource status&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Param%C3%A9trage-des-activit%C3%A9s&amp;diff=14549</id>
		<title>Paramétrage des activités</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Param%C3%A9trage-des-activit%C3%A9s&amp;diff=14549"/>
		<updated>2026-07-03T11:52:03Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Gestion des potentiels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le paramétrage du module de gestion des activités.&lt;br /&gt;
&lt;br /&gt;
Il existe également des pages qui traitent de :&lt;br /&gt;
*La [[gestion des types d'activités]]&lt;br /&gt;
*La [[gestion des activités]]&lt;br /&gt;
&lt;br /&gt;
Le paramétrage des activités s'effectue dans '''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''.&lt;br /&gt;
&lt;br /&gt;
Pour activer la gestion des activités, il faut activer l'interrupteur '''Activité'''.&lt;br /&gt;
&lt;br /&gt;
Lorsque la gestion des activités est activée, un formulaire s'affiche permettant de configurer le module de gestion des activités.&lt;br /&gt;
&lt;br /&gt;
=Général=&lt;br /&gt;
==Mode==&lt;br /&gt;
Permet de choisir entre les [[Introduction#Modes_de_saisie_ouverture+fermeture_ou_fermeture_seule|modes ouverture+fermeture et fermeture seulement]].&lt;br /&gt;
&lt;br /&gt;
Le mode &amp;quot;fermeture seulement&amp;quot; est sélectionné par défaut.&lt;br /&gt;
&lt;br /&gt;
==Gestion des potentiels==&lt;br /&gt;
Permet d'activer le [[Suivi-de-maintenance#Module-de-suivi-du-potentiel-restant|Module de suivi du potentiel restant]] et ainsi de suivre le potentiel restant avant la prochaine échéance calendaire ou horaire d'une ressource.&lt;br /&gt;
&lt;br /&gt;
=== Signature d'approbation de navigabilité ===&lt;br /&gt;
&lt;br /&gt;
Le champ '''Signature d'approbation de navigabilité''' permet de définir le texte de signature ajouté aux commentaires de signalement lorsqu'une approbation est requise.&lt;br /&gt;
&lt;br /&gt;
La signature est utilisée lorsqu'un signalement de navigabilité est fermé ou lorsque le statut de l'aéronef est modifié.&lt;br /&gt;
&lt;br /&gt;
Le modèle peut utiliser les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté ;&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Texte par défaut :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Redirection à la fermeture d'une activité==&lt;br /&gt;
Cette fonctionnalité permet de poser une question à l'utilisateur après la saisie avec succès d'une [[Gestion-des-activités#Saisir-une-activité|fermeture d'activité]]. Si la réponse est oui à la question, OpenFlyers ouvre un nouvel onglet avec comme URL le lien renseigné dans le paramétrage.&lt;br /&gt;
&lt;br /&gt;
Pour activer cette fonctionnalité il faut :&lt;br /&gt;
*Cliquer sur '''OUI'''&lt;br /&gt;
*Champ '''Question''' : renseigner la question à poser à l'utilisateur après qu'il ait saisie une activité&lt;br /&gt;
*Champ '''URL''' : indiquer l'URL complète&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
Exemple de paramétrage pour demander à un utilisateur s'il veut déclarer un évènement REX FFA :&lt;br /&gt;
*Champ '''Question''' : ''Voulez-vous déclarer un Rex ?''&lt;br /&gt;
*Champ '''URL''' : ''https://rex.ffa-aero.fr''&lt;br /&gt;
&lt;br /&gt;
=Facturation=&lt;br /&gt;
===Regrouper les activités en une facture lors de la validation===&lt;br /&gt;
Cette option est visible à condition que la [[#Gestion-des-comptes|gestion des comptes]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette option est activée, lors de la [[Gestion-des-activités#Valider-une-activité|validation de plusieurs activités]] celles-ci sont [[Facturation-des-clients#Regrouper-les-ventes-par-client|regroupées en une seule facture par client]].&lt;br /&gt;
&lt;br /&gt;
==Envoyer un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email pour chaque facture]]==&lt;br /&gt;
Cette option est visible à condition que la [[#Gestion-des-comptes|gestion des comptes]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Lorsque cette option est activée, à la suite de la [[Gestion-des-activités#Valider-une-activité|validation d'une activité]] ou d'une vente, la facture PDF sera générée dans la minute qui suit et un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email sera automatiquement envoyé à l'utilisateur]] avec en pièce-jointe la facture PDF.&lt;br /&gt;
&lt;br /&gt;
Si l'option est désactivée, l'utilisateur peut toutefois activer pour lui [[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-facture|l'envoi automatique de chaque facture]].&lt;br /&gt;
&lt;br /&gt;
==Autoriser les utilisateurs à choisir de recevoir ou non un email pour chaque facture==&lt;br /&gt;
Cette option est visible à condition que l'option [[#Envoyer-un-email-pour-chaque-facture|Envoyer un email pour chaque facture]] soit activée.&lt;br /&gt;
&lt;br /&gt;
Par défaut un utilisateur va recevoir un [[Facturation-des-clients#Envoi-automatique-de-chaque-facture-client|email pour chaque facture]]. Cette option permet à un utilisateur depuis sa fiche personnelle de désactiver ou activer l'envoi d'un email pour chaque facture grâce au paramètre [[Fiche-personnelle#Recevoir-un-e-mail-pour-chaque-facture|Recevoir un e-mail pour chaque facture]] présent dans la partie '''Notifications'''.&lt;br /&gt;
&lt;br /&gt;
=[[Paramétrage-des-validités#Paramétrer-le-contrôle-des-validités-pour-les-activités-ou-les-réservations|Paramétrage général du contrôle des validités pour la saisie des vols]]=&lt;br /&gt;
&lt;br /&gt;
=Seconde personne à bord=&lt;br /&gt;
==Type d'activité requis==&lt;br /&gt;
Permet de définir quel type d'activité doit être obligatoirement sélectionné lors de la présence d'un second pilote à bord. Usuellement utilisé pour éviter les erreurs ou oublis en cas de vol d'instruction.&lt;br /&gt;
&lt;br /&gt;
==Demander au moins 2 types d'activités==&lt;br /&gt;
&lt;br /&gt;
=Auto-compléter=&lt;br /&gt;
==Terrain d'arrivée égal au terrain de départ, lorsque l'une des activités suivantes est sélectionnée==&lt;br /&gt;
Cette option définit les types d'activités qui associent automatiquement le terrain de départ d'un vol et son terrain d'arrivée.&lt;br /&gt;
&lt;br /&gt;
Les types d'activités choisis lors du paramétrage se retrouvent dans la page de [[Gestion-des-activités#Saisir-une-activité|saisie d'activité]]. Si l'un des types d'activités est alors sélectionné lors de la [[Gestion-des-activités#Saisir-une-activité|saisie d'une activité]], le terrain d'arrivée et le terrain de départ sont de la même valeur.&lt;br /&gt;
&lt;br /&gt;
=Champs visibles=&lt;br /&gt;
==Heures totales après activité==&lt;br /&gt;
Ce champ existe uniquement en fermeture d'activité&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il est coché, il apparait, en lecture seulement, dans le formulaire de saisie d'activité. Il calcule automatiquement et affiche le total des heures de la ressource avec la durée saisie dans ce formulaire.&lt;br /&gt;
&lt;br /&gt;
=Export=&lt;br /&gt;
==Gesasso==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Gesasso|interfaçage de Gesasso avec OpenFlyers]], les informations suivantes doivent être précisées :&lt;br /&gt;
*Gesasso login : permet de définir le login utilisé pour l'authentification auprès de Gesasso&lt;br /&gt;
*Gesasso password : permet de définir le mot de passe utilisé pour l'authentification auprès de Gesasso&lt;br /&gt;
&lt;br /&gt;
=Import=&lt;br /&gt;
==Charterware==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Charterware|interfaçage de Charterware avec OpenFlyers]]:&lt;br /&gt;
*Activer l'interrupteur '''Charterware''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom de la plateforme dans Charterware : permet de définir le nom utilisé dans Charterware&lt;br /&gt;
*Formule date de début du vol Charterware : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Charterware&lt;br /&gt;
*Formule durée du vol Charterware : permet de définir la formule de calcul de la durée par rapport aux données transmises par Charterware&lt;br /&gt;
*Formule temps en l'air Charterware : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par Charterware&lt;br /&gt;
*Règle d'arrondi horaire Charterware : concernant les horaires de vols Charterware a une précision à la seconde contrairement à OpenFlyers qui a une précision à la minute. Il est donc nécessaire de définir comment les secondes seront arrondies.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans Charterware : permet de définir l'activité qui sera choisie si le vol Charterware ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans Charterware : permet de définir l'activité qui sera choisie si le vol Charterware ne peut être associé à une réservation.&lt;br /&gt;
*Récupération des traces de vols Charterware sur messagerie électronique : permet d'activer ou non la récupération des traces de vols créées par Charterware.&lt;br /&gt;
*E-mail : adresse e-mail recevant les vols Charterware.&lt;br /&gt;
*Mot de passe : mot de passe correspondant à l'adresse e-mail.&lt;br /&gt;
*Adresse du serveur : nom de domaine Internet ou une adresse IP de serveur.&lt;br /&gt;
*Port : numéro de port TCP.&lt;br /&gt;
*Options serveur : options liées au serveur.&lt;br /&gt;
&lt;br /&gt;
Il existe trois règles d'arrondi possibles :&lt;br /&gt;
*Arrondi classique&lt;br /&gt;
*Arrondi au supérieur&lt;br /&gt;
*Arrondi à l'inférieur&lt;br /&gt;
&lt;br /&gt;
==Foxtrot Aviation==&lt;br /&gt;
Pour réaliser [[Interfaçage OpenFlyers et Foxtrot Aviation|l'interfaçage de Foxtrot Aviation avec OpenFlyers]] :&lt;br /&gt;
*Activer l'interrupteur '''Foxtrot Aviation''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Formule de date de début Foxtrot : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Formule de durée de vol Foxtrot : permet de définir la formule de calcul de la durée par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Formule de temps en vol Foxtrot : permet de définir la formule de calcul du temps en vol par rapport aux données transmises par Foxtrot.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans Foxtrot : permet de définir l'activité qui sera choisie si le vol Foxtrot ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans Foxtrot : permet de définir l'activité qui sera choisie si le vol Foxtrot ne peut être associé à une réservation.&lt;br /&gt;
&lt;br /&gt;
==ClickAndTakeoff==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-ClickAndTakeoff|interfaçage de ClickAndTakeoff avec OpenFlyers]] :&lt;br /&gt;
*Activer l'interrupteur '''ClickAndTakeoff''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom de la plateforme pour ClickAndTakeoff : permet de définir le nom utilisé dans ClickAndTakeoff.&lt;br /&gt;
*Formule date de début du vol : permet de définir la formule de calcul de la date de début par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Formule durée du vol : permet de définir la formule de calcul de la durée par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Formule temps en l'air : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par ClickAndTakeoff.&lt;br /&gt;
*Type d'activité par défaut avec zéro ou un pilote dans ClickAndTakeoff : permet de définir l'activité qui sera choisie si le vol ClickAndTakeoff ne peut être associé à une réservation.&lt;br /&gt;
*Type d'activité par défaut avec deux pilotes dans ClickAndTakeoff : permet de définir l'activité qui sera choisie si le vol ClickAndTakeoff ne peut être associé à une réservation.&lt;br /&gt;
*Jeton d'accès pour ClickAndTakeoff : permet de définir le jeton utilisé pour l'authentification auprès de ClickAndTakeoff.&lt;br /&gt;
&lt;br /&gt;
==Teltonika==&lt;br /&gt;
Pour réaliser l'[[Interfaçage-OpenFlyers-et-Teltonika|interfaçage de Teltonika avec OpenFlyers]]:&lt;br /&gt;
*Activer l'interrupteur '''Teltonika''' dans la colonne '''Import'''. [[#Vérification-de-l'abonnement-d'interconnexion-avec-boitier-GPS/GSM|Une vérification de l'abonnement]] est effectuée.&lt;br /&gt;
Si l'interrupteur est activé, les informations suivantes doivent être précisées :&lt;br /&gt;
*Nom d'utilisateur : permet de définir le nom utilisé dans Teltonika.&lt;br /&gt;
*Mot de passe : permet l'authentification auprès de Teltonika.&lt;br /&gt;
*Formule date de début du vol : permet de définir la formule de calcul de la date de début par rapport aux données transmises par Teltonika.&lt;br /&gt;
*Formule durée du vol : permet de définir la formule de calcul de la durée par rapport aux données transmises par Teltonika.&lt;br /&gt;
*Formule temps en l'air : permet de définir la formule de calcul du temps passé en l'air par rapport aux données transmises par Teltonika.&lt;br /&gt;
&lt;br /&gt;
==Fermer les activités ouvertes après import==&lt;br /&gt;
Si cette option est activée, OpenFlyers ferme automatiquement les activités ouvertes après un import (Charterware, Foxtrot Aviation, ClickAndTakeoff, Teltonika).&lt;br /&gt;
&lt;br /&gt;
=Vérification de l'abonnement d'interconnexion avec boitier GPS/GSM=&lt;br /&gt;
Pour synchroniser OpenFlyers avec l'un des boîtiers GPS/GSM ([[#Gestion-de-Charterware|Charterware]], [[#Gestion-de-ClickAndTakeoff|ClickAndTakeOff]], [[#Gestion-de-Teltonika|Teltonika]]), la plateforme doit disposer d'un abonnement d'interconnexion valide. Si cet abonnement n'est pas payé, un message d'erreur apparaître lors de l'activation de l'interrupteur, indiquant que la synchronisation avec le boîtier n'est pas possible. Pour activer l'interfaçage, il est nécessaire de souscrire à l'abonnement d'interconnexion.&lt;br /&gt;
&lt;br /&gt;
=Gestion [[Contrôle-des-accès|armoire à clés]]=&lt;br /&gt;
&lt;br /&gt;
Active le [[Interfaçage-OpenFlyers-et-armoire-à-clés#Activation-et-configuration-de-la-gestion-des-armoires-à-clé|contrôle d'une armoire à clés]].&lt;br /&gt;
&lt;br /&gt;
====Gestion des clés====&lt;br /&gt;
&lt;br /&gt;
Active l'[[Interfaçage-OpenFlyers-et-armoire-à-clés#Attribution-des-clés-aux-ressources/aéronefs|attribution de clés aux ressources]].&lt;br /&gt;
&lt;br /&gt;
====Nombre de clés====&lt;br /&gt;
&lt;br /&gt;
Permet de définir le nombre de clés que l'armoire peut accueillir.&lt;br /&gt;
&lt;br /&gt;
====Logiciel de contrôle de l'armoire à clés====&lt;br /&gt;
&lt;br /&gt;
Permet de définir le logiciel à utiliser pour le contrôle de l'armoire à clés :&lt;br /&gt;
*'''OF_GetFlogBoxFile.exe''' permet de contrôler les [[Contrôle-des-accès#Armoires-à-clés-FlogBox-anciennement-commercialisées-par-Francelog|armoires à clés FlogBox anciennement commercialisées par Francelog]]&lt;br /&gt;
*'''OF_GetKeyGuardFile.exe''' permet de contrôler les [[Contrôle-des-accès#Armoires-à-clés-KeyGuard-anciennement-commercialisées-par-BKS-électronique|armoires à clés KeyGuard anciennement commercialisées par BKS électronique]]&lt;br /&gt;
*'''OpenKey''', '''PyOpenKey''' et '''PyOpenKey2''' permettent de contrôler les [[Contrôle-des-accès#Armoires-à-clés-Deister-commercialisées-par-OpenFlyers|armoires à clés Deister commercialisées par OpenFlyers]]. Si l'une de ces options est sélectionnée alors des champs supplémentaires pour [[Installation-armoire-à-clés#Paramétrage-OpenFlyers|configurer le logiciel de contrôle]] apparaissent.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Carnet-de-vol&amp;diff=14548</id>
		<title>Carnet de vol</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Carnet-de-vol&amp;diff=14548"/>
		<updated>2026-07-03T09:12:00Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Format de la durée d'activité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le '''carnet de vol''' qui sert à lister toutes les activités réalisées par une personne.&lt;br /&gt;
&lt;br /&gt;
L'accès au carnet de vol se fait en allant sur '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Carnet de vols'''.&lt;br /&gt;
&lt;br /&gt;
Pour accéder à son propre carnet de vol, il faut disposer de l'un des droits suivants :&lt;br /&gt;
*[[Gestion-des-profils#Saisie-d'activité-pour-soi-même|Saisie d'activité pour soi même]]&lt;br /&gt;
*[[Gestion-des-profils#Voir-ses-activités|Voir ses activités]]&lt;br /&gt;
&lt;br /&gt;
Pour accéder aux carnets de vol des autres utilisateurs, il faut disposer de l'un des droits suivants :&lt;br /&gt;
*[[Gestion-des-profils#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]]&lt;br /&gt;
*[[Gestion-des-profils#Vérifier-la-saisie-des-activités-et-les-modifier|Vérifier la saisie des activités et les modifier]]&lt;br /&gt;
&lt;br /&gt;
=Activité annulée=&lt;br /&gt;
&lt;br /&gt;
Les [[Gestion-des-activités#Annuler-une-activité-validée|activités annulées]] sont affichées avec une durée négative et une heure de départ en rouge.&lt;br /&gt;
&lt;br /&gt;
=Afficher les heures en UTC=&lt;br /&gt;
Chaque utilisateur peut activer ou désactiver l'interrupteur '''UTC''' situé en haut à gauche du carnet. Ce paramètre est conservé et appliqué pour l'ensemble des carnets.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'affichage UTC est activé, l'heure UTC apparaît en orange en dessous de l'heure locale de début d'activité, pour chaque ligne d'activité.&lt;br /&gt;
&lt;br /&gt;
Si l'heure UTC correspond à la même date que l'heure locale, seule l'heure UTC est affichée. En cas de décalage d'une journée, la date UTC est également affichée.&lt;br /&gt;
&lt;br /&gt;
=Format de la durée d'activité=&lt;br /&gt;
&lt;br /&gt;
La durée des activités est affichée en fonction des [[Configuration#Patron-de-format-d'heure|patrons de format d'heure]].&lt;br /&gt;
&lt;br /&gt;
= Colonne Actions =&lt;br /&gt;
&lt;br /&gt;
== Signalement ==&lt;br /&gt;
&lt;br /&gt;
Pour une activité validée, l'action de modification permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
Le signalement créé est rattaché au vol concerné et peut ensuite être suivi depuis la page [[Signalements]].&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Carnet-de-route&amp;diff=14547</id>
		<title>Carnet de route</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Carnet-de-route&amp;diff=14547"/>
		<updated>2026-07-02T15:24:52Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Colonne Actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le carnet de route qui liste toutes les activités réalisées sur une ressource.&lt;br /&gt;
&lt;br /&gt;
==Activité annulée==&lt;br /&gt;
Les [[Gestion-des-activités#Annuler-une-activité-validée|activités annulées]] sont affichées avec une durée négative et une heure de départ en rouge.&lt;br /&gt;
&lt;br /&gt;
=Accéder au carnet de route=&lt;br /&gt;
;Prérequis&lt;br /&gt;
*Disposer du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Carnet de route'''&lt;br /&gt;
*Dans la colonne '''Actions''', cliquer sur le bouton symbolisant une liste pour la ressource concernée&lt;br /&gt;
&lt;br /&gt;
=Afficher les heures en UTC=&lt;br /&gt;
Chaque utilisateur peut activer ou désactiver l'interrupteur '''UTC''' situé en haut à gauche du carnet. Ce paramètre est conservé et appliqué pour l'ensemble des carnets.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'affichage UTC est activé, l'heure UTC apparaît en orange en dessous de l'heure locale de début d'activité, pour chaque ligne d'activité.&lt;br /&gt;
&lt;br /&gt;
Si l'heure UTC correspond à la même date que l'heure locale, seule l'heure UTC est affichée. En cas de décalage d'une journée, la date UTC est également affichée.&lt;br /&gt;
&lt;br /&gt;
=Colonne Actions=&lt;br /&gt;
&lt;br /&gt;
==Modifier et supprimer==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les boutons '''Modifier''' et '''Supprimer''' sont affichés si :&lt;br /&gt;
*l'utilisateur connecté est en place gauche sur le vol et qu'il a le droit [[Gestion-des-profils#Saisie-d'activité-pour-soi-même|Saisie d'activité pour soi-même]]&lt;br /&gt;
*l'utilisateur connecté a le droit [[Gestion-des-profils#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]]&lt;br /&gt;
&lt;br /&gt;
=== Signalement de navigabilité ===&lt;br /&gt;
&lt;br /&gt;
Pour une activité validée, l'action de modification permet d'ajouter un signalement de navigabilité sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
Le formulaire affiche alors uniquement les champs du signalement :&lt;br /&gt;
* problème signalé ;&lt;br /&gt;
* statut de l'aéronef ;&lt;br /&gt;
* certification.&lt;br /&gt;
&lt;br /&gt;
Le signalement créé est rattaché au vol concerné.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Traces de vols==&lt;br /&gt;
Le bouton [[Interfaçage-OpenFlyers-et-Charterware#Récupération-des-traces-de-vols|trace de vol]] est affiché si une trace de vol est associée au vol et :&lt;br /&gt;
*si l'utilisateur connecté est en place gauche ou en place droite&lt;br /&gt;
ou&lt;br /&gt;
*si l'utilisateur connecté a le droit [[Gestion-des-profils#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Carnet-de-route&amp;diff=14546</id>
		<title>Carnet de route</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Carnet-de-route&amp;diff=14546"/>
		<updated>2026-07-02T15:23:51Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Modifier et supprimer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le carnet de route qui liste toutes les activités réalisées sur une ressource.&lt;br /&gt;
&lt;br /&gt;
==Activité annulée==&lt;br /&gt;
Les [[Gestion-des-activités#Annuler-une-activité-validée|activités annulées]] sont affichées avec une durée négative et une heure de départ en rouge.&lt;br /&gt;
&lt;br /&gt;
=Accéder au carnet de route=&lt;br /&gt;
;Prérequis&lt;br /&gt;
*Disposer du droit [[Gestion-des-profils#Voir-les-activités-de-tous|Voir les activités de tous]]&lt;br /&gt;
&lt;br /&gt;
;Procédure&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Carnet de route'''&lt;br /&gt;
*Dans la colonne '''Actions''', cliquer sur le bouton symbolisant une liste pour la ressource concernée&lt;br /&gt;
&lt;br /&gt;
=Afficher les heures en UTC=&lt;br /&gt;
Chaque utilisateur peut activer ou désactiver l'interrupteur '''UTC''' situé en haut à gauche du carnet. Ce paramètre est conservé et appliqué pour l'ensemble des carnets.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'affichage UTC est activé, l'heure UTC apparaît en orange en dessous de l'heure locale de début d'activité, pour chaque ligne d'activité.&lt;br /&gt;
&lt;br /&gt;
Si l'heure UTC correspond à la même date que l'heure locale, seule l'heure UTC est affichée. En cas de décalage d'une journée, la date UTC est également affichée.&lt;br /&gt;
&lt;br /&gt;
=Colonne Actions=&lt;br /&gt;
&lt;br /&gt;
== Signalement de navigabilité ==&lt;br /&gt;
&lt;br /&gt;
Pour une activité validée, l'action de modification permet d'ajouter un signalement de navigabilité sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
Le formulaire affiche alors uniquement les champs du signalement :&lt;br /&gt;
* problème signalé ;&lt;br /&gt;
* statut de l'aéronef ;&lt;br /&gt;
* certification.&lt;br /&gt;
&lt;br /&gt;
Le signalement créé est rattaché au vol concerné.&lt;br /&gt;
&lt;br /&gt;
==Modifier et supprimer==&lt;br /&gt;
Les boutons '''Modifier''' et '''Supprimer''' sont affichés si :&lt;br /&gt;
*l'utilisateur connecté est en place gauche sur le vol et qu'il a le droit [[Gestion-des-profils#Saisie-d'activité-pour-soi-même|Saisie d'activité pour soi-même]]&lt;br /&gt;
*l'utilisateur connecté a le droit [[Gestion-des-profils#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]]&lt;br /&gt;
&lt;br /&gt;
==Traces de vols==&lt;br /&gt;
Le bouton [[Interfaçage-OpenFlyers-et-Charterware#Récupération-des-traces-de-vols|trace de vol]] est affiché si une trace de vol est associée au vol et :&lt;br /&gt;
*si l'utilisateur connecté est en place gauche ou en place droite&lt;br /&gt;
ou&lt;br /&gt;
*si l'utilisateur connecté a le droit [[Gestion-des-profils#Saisie-d'activité-pour-un-tiers|Saisie d'activité pour un tiers]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Gestion-des-activit%C3%A9s&amp;diff=14545</id>
		<title>Gestion des activités</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Gestion-des-activit%C3%A9s&amp;diff=14545"/>
		<updated>2026-07-02T15:19:49Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Modifier une activité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter la '''gestion des activités''' sur la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
==Paramétrage des vols solos supervisés==&lt;br /&gt;
La réglementation aéronautique EASA, différencie les instructeurs en 2 catégories : les instructeurs restreints et non restreints. Les instructeurs sont restreints tant qu'ils ont effectués moins de 100 heures d'instruction. Pour le décompte de leurs heures d'instruction, il est possible de prendre en compte les heures solo, effectuées par leurs élèves, heures solos qu'ils ont supervisées. De plus, le rapport annuel de statistiques [[AERAL]] nécessite de faire remonter les heures solos supervisées par instructeur ainsi que par activité.&lt;br /&gt;
&lt;br /&gt;
OpenFlyers déconseille de saisir les heures de solo supervisées en renseignant le nom de l'instructeur dans le champ '''Place droite''' ou '''Instructeur''' afin de ne pas créer d'effets de bords sur l'ensemble du logiciel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenFlyers recommande de paramétrer le suivi des heures solos supervisées de la façon suivante :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Créer un type d'activité ''Solo supervisé''&lt;br /&gt;
*'''Admin &amp;gt; Types d'activités &amp;gt; Types d'activités &amp;gt; Actifs'''&lt;br /&gt;
En bas du tableau '''Liste des types d'activités''', sur la dernière ligne qui doit être vide :&lt;br /&gt;
*Champ '''Nom''', indiquer ''Solo supervisé''&lt;br /&gt;
*Champ '''Couleur''', sélectionner une couleur, de préférence proche de la couleur pour l'instruction&lt;br /&gt;
*Cliquer sur le bouton avec un pictogramme symbolisant le signe plus&lt;br /&gt;
*Aller à nouveau dans '''Admin &amp;gt; Types d'activités &amp;gt; Types d'activités &amp;gt; Actifs''' pour mettre à jour les autres tableaux&lt;br /&gt;
Dans le tableau '''Types d'activités incompatibles''', rendre incompatible le type d'activité ''Solo supervisé'' avec les autres types d'activités qui doivent être incompatible, notamment ''Instruction'', ''Baptême'', ''Maintenance'', ''Vol découverte'', etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Créer un champ métier &amp;quot;Instructeur superviseur&amp;quot; pour le formulaire de saisie d'activité afin de pouvoir noter le nom de l'instructeur pour les vols solos des élèves&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Variables &amp;gt; Champs métiers'''&lt;br /&gt;
Tout en bas sur la dernière ligne qui doit être vide :&lt;br /&gt;
*Champ '''Nom de variable''', indiquer ''supervisor''&lt;br /&gt;
*Champ '''Intitulé''', indiquer ''Instructeur superviseur''&lt;br /&gt;
*Champ '''Catégorie''', indiquer ''Activité''&lt;br /&gt;
*Champ '''Type de valeur''', indiquer ''dbObject::Person(Instructeur)''&lt;br /&gt;
*Cliquer sur le bouton '''Ajouter'''&lt;br /&gt;
*Mettre à jour le paramétrage [[AERAL#Activité-correspondant-à-Solo-supervisé|Activité correspondant à Solo supervisé]] pour AERAL :&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Export Aeral'''&lt;br /&gt;
Formulaire '''Activité correspondant à Solo supervisé''' :&lt;br /&gt;
*Champ '''Solo supervisé''', indiquer '''Solo supervisé'''&lt;br /&gt;
*Désactiver l'interrupteur '''instructeur en place droite'''&lt;br /&gt;
*Champ '''Champ métier correspondant au superviseur''', indiquer ''Instructeur superviseur''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer''' en haut ou en bas à droite de la page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Ensuite, pour chaque vol solo supervisé, il faut dans le formulaire de saisie d'activité&lt;br /&gt;
*Cocher le type d'activité ''Solo supervisé''&lt;br /&gt;
*Renseigner le nom de l'instructeur dans le champ ''Instructeur superviseur''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Mettre en place une validité &amp;quot;Élève autorisé solo&amp;quot;&lt;br /&gt;
Dans le cas où la structure met en place des restrictions sur les réservations ou la saisie des vols, un élève en solo supervisé, n'ayant donc pas les validités d'un pilote breveté, peut se retrouver bloqué. Pour contourner ces restrictions, il est recommandé de créer un type de validité &amp;quot;Élève autorisé solo&amp;quot; et de lui permettre de contourner les exigences des autres validités non détenues par un élève.&lt;br /&gt;
*'''Admin &amp;gt; Utilisateurs &amp;gt; Types de validités'''&lt;br /&gt;
*Cliquer sur le bouton '''Ajouter un type de validités'''&lt;br /&gt;
*Champ '''Nom''', indiquer ''Élève autorisé solo''&lt;br /&gt;
*Cliquer sur la case à cocher '''Soumise à échéance'''&lt;br /&gt;
*Champs '''Profils autorisés à gérer pour eux-mêmes''' et '''Profils autorisés à gérer/certifier pour les autres''', cocher les profils ''admin'', ''gestionnaire'' (ou équivalents) et ''instructeur''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer&amp;quot;&lt;br /&gt;
*'''Admin &amp;gt; Types de ressource'''&lt;br /&gt;
Pour chaque type de ressource :&lt;br /&gt;
*Cliquer sur le bouton '''Validité'''&lt;br /&gt;
*Pour chaque ligne de validité qui exige une validité qu'un élève n'a pas l'obligation de détenir, cocher le type de validité ''Élève autorisé solo''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Facturation du solo supervisé au tarif de l'instruction&lt;br /&gt;
Dans le cas où la structure facture le solo supervisé à l'identique de l'instruction, il faut :&lt;br /&gt;
*Aller dans '''Admin &amp;gt; Ventes &amp;gt; Facturation &amp;gt; Activités'''&lt;br /&gt;
*Editer la ligne &amp;quot;Instruction&amp;quot; en cliquant sur le bouton symbolisant un crayon et situé à droite de la ligne concernée&lt;br /&gt;
*Cocher ''Solo supervisé'' dans le champ '''Types d'activités concernés'''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
=Afficher la vue d'ensemble des activités selon les ressources=&lt;br /&gt;
*Naviguer vers la section '''Gestion &amp;gt; Activités &amp;gt; Activités &amp;gt; Liste'''.&lt;br /&gt;
&lt;br /&gt;
Une synthèse sous forme de tableau des activités '''actives''' et '''physiques''', s'affiche automatiquement :&lt;br /&gt;
*les ressources actives y figurent toujours.&lt;br /&gt;
*les ressources désactivées ou celles pour lesquelles l'interrupteur '''Saisie d'activité''' (accessible via '''Gestion &amp;gt; Ressources &amp;gt; Actives''') est décoché réapparaissent dès qu'elles possèdent au moins une activité non validée.&lt;br /&gt;
&lt;br /&gt;
Ainsi, aucune action supplémentaire n'est nécessaire pour retrouver les ressources portant encore des validations à effectuer.&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Gestion-armoire-à-clés#Alertes-lors-de-la-saisie-d'une-activité|Alertes générées par le contrôle d'accès]]==&lt;br /&gt;
&lt;br /&gt;
==[[Facturation-des-clients#Alertes-générées-par-le-moteur-de-facturation|Alertes générées par le moteur de facturation]]==&lt;br /&gt;
&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alertes générées sur les validités]]==&lt;br /&gt;
&lt;br /&gt;
==L'aéronef est déjà en l'air==&lt;br /&gt;
Si en tentant d'ouvrir le vol d'un aéronef, apparait une alerte orange '''L'aéronef est déjà en l'air''', cela veut dire qu'un vol a déjà été ouvert avec cet aéronef.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il y'a 2 choix :&lt;br /&gt;
*'''Fermer le vol déjà ouvert''' si le vol en cours doit être clôturé.&lt;br /&gt;
*'''Saisir un nouveau vol''' pour continuer malgré tout la saisie d'un nouveau vol.&lt;br /&gt;
&lt;br /&gt;
S'il s'agit d'un vol qui n'a pas été fermé et qui doit être supprimé, il faut [[#Annuler-un-vol-ouvert|annuler le vol ouvert]].&lt;br /&gt;
&lt;br /&gt;
==La différence entre le temps de vol calculé et le temps de vol saisi est de : X:XX heure(s)==&lt;br /&gt;
Cette alerte est suivie du message :&lt;br /&gt;
&amp;lt;pre&amp;gt;Veuillez contacter votre administrateur à propos de l'incompatibilité entre votre saisie et la formule du temps de vol choisie pour le type d'aéronef : X&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette alerte apparait lorsque la valeur saisie du temps d'activité est incompatible avec la valeur calculée par la [[Formules-de-calcul#Temps-d'activité|formule de calcul du temps d'activité]] définie pour la ressource X.&lt;br /&gt;
&lt;br /&gt;
En général elle provient du fait que le temps de vol qui avait été calculé automatiquement dans le formulaire lors de la saisie des champs de compteurs départ/arrivée et/ou des heures de départ/arrivée ont été modifiés manuellement.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une telle erreur apparait, vous devez :&lt;br /&gt;
*Essayer de reprendre la saisie et essayer de comprendre pourquoi vous saisissez mal les valeurs dans les champs concernés&lt;br /&gt;
*Si vous n'arrivez pas à comprendre la raison, contacter sans délai un gestionnaire de votre structure afin qu'il vous explique les erreurs que vous commettez lorsque le problème vient d'une saisie erronée ou qu'il analyser lui-même le problème.&lt;br /&gt;
*Si vous êtes vous-même un gestionnaire de la plateforme, vous devez également pousser l'analyse pour comprendre en quoi votre saisie est incompatible avec la formule de calcul et le cas échéant faire effectuer une modification du paramétrage.&lt;br /&gt;
&lt;br /&gt;
Voir également, comment [[#Forcer-la-saisie-d'une-durée-d'activité-incompatible-avec-sa-formule-de-calcul|Forcer la saisie d'une durée d'activité incompatible avec sa formule de calcul]].&lt;br /&gt;
&lt;br /&gt;
==Le compteur d'arrivée du vol précédent est incompatible avec le compteur de départ saisi==&lt;br /&gt;
Cette alerte peut apparaître lorsque le compteur de départ saisi est incohérent par rapport au compteur d'arrivée du dernier vol fermé de l'aéronef sélectionné, par exemple avec un message du type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Le compteur arrivée du vol précédent (X) est supérieur au compteur départ de ce vol&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Le compteur arrivé précédent (X) est bien inférieur au compteur départ de cette saisie&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une alerte non bloquante. En dessous du message, un bouton permet de corriger automatiquement la saisie en reprenant la valeur de référence du dernier vol fermé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Utiliser le compteur précédent (X)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En cliquant sur ce bouton, le compteur de départ est remplacé par le compteur d'arrivée du dernier vol fermé de l'aéronef sélectionné.&lt;br /&gt;
&lt;br /&gt;
Le bouton de confirmation reste disponible pour conserver la saisie initiale.&lt;br /&gt;
&lt;br /&gt;
==Le pilote X est déjà en l'air==&lt;br /&gt;
Ce message apparait lorsque vous tentez de saisir un vol en ouverture de vol et que le pilote occupant la position X est déjà enregistré sur un vol ouvert, c'est à dire en l'air.&lt;br /&gt;
&lt;br /&gt;
Cette protection permet de ne pas avoir un utilisateur occupé simultanément sur 2 ressources.&lt;br /&gt;
&lt;br /&gt;
S'il s'agit d'un vol qui n'a pas été fermé et qui doit être supprimé, il faut [[#Annuler-un-vol-ouvert|annuler le vol ouvert]].&lt;br /&gt;
&lt;br /&gt;
==Seul le type de vol requis dans le cas de la présence d'un second pilote a été sélectionné, vous devez en sélectionner au moins un autre en plus==&lt;br /&gt;
Lors de la saisie d'un vol, cette alerte s'affiche si la configuration de la plateforme nécessite la saisie d'au moins un type de vol supplémentaire en plus du type de vol obligatoire dans le cas de la présence d'un second pilote.&lt;br /&gt;
&lt;br /&gt;
C'est typiquement le cas pour les vols d'instruction où le paramétrage nécessite généralement de préciser un 2ème type de vol comme &amp;quot;local&amp;quot;, &amp;quot;navigation&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
==Vous êtes actuellement en l'air==&lt;br /&gt;
Si en tentant de saisir un vol, l'alerte '''Vous êtes actuellement en l'air''' apparait cela veut dire qu'il y a déjà un vol d'ouvert à votre nom. S'il s'agit d'un vol qui n'a pas été fermé et qui doit être supprimé, il faut [[#Annuler-un-vol-ouvert|annuler le vol ouvert]].&lt;br /&gt;
&lt;br /&gt;
==Vous ne pouvez ouvrir un vol avec une date de début dépassée==&lt;br /&gt;
Cette protection empêche d'ouvrir une activité avec un horodatage de début antérieur à l'heure actuelle moins 15 minutes.&lt;br /&gt;
&lt;br /&gt;
En général, pour un tel cas, le souhait n'est pas d'ouvrir une activité mais de fermer une activité. Il faut donc penser à passer le champ '''Etat du vol''' en &amp;quot;Retour de vol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Annuler une activité validée=&lt;br /&gt;
Contrairement à la [[#Supprimer-une-activité|suppression des activités non validées]] et du fait de l'[[Comptabilité#Inaltérabilité-des-données|inaltérabilité des données]], il n'est pas possible de supprimer physiquement une activité après [[#Valider-une-activité|sa validation]]. Par contre, la fonction d'annulation de la saisie d'une activité permet d'en annuler son effet.&lt;br /&gt;
&lt;br /&gt;
'''C'est cette fonction qu'il faut utiliser dans le cas où une activité validée doit être corrigée. L'utilisateur assurant la gestion :'''&lt;br /&gt;
#'''Annule l'activité validée qui n'a pas été saisie correctement'''&lt;br /&gt;
#'''Saisie une nouvelle activité avec les bonnes données''' (Cette opération n'entraîne pas de contrôle restrictif (chevauchement), car le vol concerné a déjà été contre-passé).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La fonction d'annulation d'activité génère les enregistrements suivants en base de données :&lt;br /&gt;
#Création d'une même activité que l'activité à annuler mais avec une durée opposée. Cela permet de garantir que les totaux d'heures d'activités sont correctement corrigés. De plus, le champ commentaire contient une référence à l'activité ciblée par l'annulation.&lt;br /&gt;
#Création des écritures comptables associées correspondant à l'identique à celles de l'activité à annuler mais de sens opposé (débit au lieu de crédit et vice versa).&lt;br /&gt;
Ces enregistrements sont générées à la date du jour et sont automatiquement validés. Cela permet de garantir la traçabilité des opérations.&lt;br /&gt;
&lt;br /&gt;
'''Attention''' : il est possible d'annuler plusieurs fois une même activité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser cette fonction :&lt;br /&gt;
* [[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
* Dans la colonne '''Annuler une activité validée''', cliquer sur l’icône rouge symbolisant une flèche qui fait demi-tour&lt;br /&gt;
* Une page listant les activités validées apparait :&lt;br /&gt;
** Dans la colonne '''Annuler''', sélectionner l'activité à annuler&lt;br /&gt;
** Cliquer sur le bouton '''Annuler l'activité sélectionnée (cette action est irréversible)'''&lt;br /&gt;
&lt;br /&gt;
=Annuler un vol ouvert=&lt;br /&gt;
*Aller sur le planning&lt;br /&gt;
*Cliquer sur le rectangle sur fond bleu correspondant à l'immatriculation de l'aéronef considéré&lt;br /&gt;
*Cliquer sur le bouton '''Annuler le vol''' tout en bas du formulaire.&lt;br /&gt;
&lt;br /&gt;
=Lister les activités=&lt;br /&gt;
La liste des activités est accessible depuis:&lt;br /&gt;
* [[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
* Cliquer sur l'icône correspondant à la colonne '''Valider les activités sélectionnées'''.&lt;br /&gt;
* Ou bien Cliquer sur l'icône correspondant à la colonne '''Vérifier la succession des activités'''.&lt;br /&gt;
** la page de Contrôle des compteurs de la resource a apparu.&lt;br /&gt;
** Entrer Le compteur de départ, puis Sélectionner la date de début et de fin de l'intervale que vous voulez visualiser.&lt;br /&gt;
** Cliquer sur le bouton '''Visualiser'''.&lt;br /&gt;
&lt;br /&gt;
La liste des activités synthétise les informations les plus importantes pour l'ensemble des activités dans un intervalle de temps:&lt;br /&gt;
&lt;br /&gt;
* '''Pointer''': contient les deux icônes '''tout cocher''' et '''tout décocher''', aussi les cases à cocher de chaque ligne,  en cochant la case puis en Cliquant sur le bouton '''Pointer les activités sélectionnées (attention cette action est irréversible)''' vous pouvez valider l'activité.&lt;br /&gt;
* '''Date''': date et heure de départ de vol, elle est affichée en fonction des [[Configuration#Patron-de-format-de-date|patrons de format de date]], affichée en rouge lorsque la date est dans le futur ( demain ou plus tard) ou bien lorsque la date de début de l'activité précédente chevauche une activité existante, c'est-à-dire  la date de début de l'activité précédente + sa durée dépasse la date de début de l'activité actuelle. Un interrupteur Date en '''UTC''' permet d'afficher sous la date locale une ligne orange indiquant l'heure '''UTC''' si la conversion reste le même jour, ou la date complète en '''UTC''' lorsque la conversion recule sur la veille.&lt;br /&gt;
* le champ place_tag qui permet d'étiqueter le numéro de place '''0''' (par exemple: place droite, pilote, Elève, Ouvert): la personne attribué au position 0,  affichée en rouge lorsque l'activité n'avait pas de pilote.&lt;br /&gt;
* le champ place_tag qui permet d'étiqueter le numéro de place '''1''' s'il existe (par exemple: place gauche, instructeur, Adhérent): la personne attribué au position 1.&lt;br /&gt;
* '''Activités''' : les types d'activités sélectionnés pour l'activité (par exemple: Voltige, Instruction, Vol technique, ...).&lt;br /&gt;
* '''Temps d'activité''' : la durée de l'activité, elle est affichée en fonction des [[Configuration#Patron-de-format-d'heure|patrons de format d'heure]], en vert pour les activités non validées et en noir gras pour les  activités validées.&lt;br /&gt;
* '''Temps moteur''' : le temps moteur s'affiche  si la ressource appartient à un type de ressource configuré pour utiliser un calcul de temps moteur différent du temps de vol, il est affichée en fonction des [[Configuration#Patron-de-format-d'heure|patrons de format d'heure]], en vert pour les activités non validées et en noir gras pour les  activités validées.&lt;br /&gt;
* '''Départ''' : Terrain de départ affiché en rouge lorsque l'activité n'avait pas de terrain de départ.&lt;br /&gt;
* '''Arrivée''': Terrain d'arrivée affiché en rouge lorsque l'activité n'avait pas de terrain d'arrivée.&lt;br /&gt;
* '''Att.''' : Nombre d'atterrissages.&lt;br /&gt;
* '''Ajouts réservoirs''': Réapprovisionnement de réservoir avant/après vol, ils sont affichées sous format suivante &amp;quot; quantité + Unité (Type de éservoir)&amp;quot;.&lt;br /&gt;
* les éventuelles colonnes correspondant aux champs métiers de type &amp;quot;Activité&amp;quot;.&lt;br /&gt;
* '''Compteurs''': affichés en deux manières ( compteur hexadécimal : HH:MM , compteur décimal: HH,CC ).&lt;br /&gt;
** '''Départ''' : Le compteur de départ, affiché en rouge si le compteur de départ de l'activité actuelle inférieur au compteur d'arrivée de l'activité précédente ou bien si '''(''' le compteur de départ de l'activité actuelle '''-''' le compteur d'arrivée de l'activité précédente '''-''' la tolérance ''') &amp;gt; 1'''.&lt;br /&gt;
** '''Arrivée''' : Le compteur d'arrivée. &lt;br /&gt;
** '''Diff.''' : la difference entre les compteurs. affiché en rouge si le compteur de départ de l'activité actuelle dépasse le compteur d'arrivée de l'activité actuelle ou bien si '''(''' le compteur d'arrivée de l'activité actuelle '''-''' le compteur de départ de l'activité actuelle '''-''' la tolérance ''') &amp;gt; 1'''.&lt;br /&gt;
* '''Actions''': L'utilisateur peut effectuer sur une activité les actions suivantes:&lt;br /&gt;
** Modifier : L'utilisateur peut modifier une activité s'il a des autoristations pour gérer ses activités et qu'il est l'instructeur de l'activité ou bien s'il peut gérer les activités des autres utilisteurs. ET si l'activité n'est pas validée.&lt;br /&gt;
** Supprimer : L'utilisateur peut supprimer une activité s'il a des autoristations pour gérer ses activités et qu'il est l'instructeur de l'activité ou bien s'il peut gérer les activités des autres utilisteurs. ET si l'activité n'est pas validée.&lt;br /&gt;
** Ajouter : L'utilisateur peut ajouter une activité s'il a des autoristations pour gérer ses activités et qu'il est l'instructeur de l'activité ou bien s'il peut gérer les activités des autres utilisteurs. ET si '''(''' le compteur de départ de l'activité actuelle '''-''' le compteur d'arrivée de l'activité précédente '''-''' la tolérance ''') &amp;gt; 1'''.&lt;br /&gt;
** Afficher la trace de vol: L'utilisateur peut afficher la trace de vol s'il est sur le vol ou s'il a le droit de voir les traces de vol.&lt;br /&gt;
&lt;br /&gt;
=Mettre à jour les entrées comptables associées à des activités non validées=&lt;br /&gt;
Dans le cas où, suite à une saisie d'activité, des changements de facturations ont été fait, il est nécessaire de mettre à jour les entrées comptables associées à celle-ci. &lt;br /&gt;
La mise à jour ne peut se faire que sur les activités non validées ayant au moins un utilisateur et étant associées à une ressource active.&lt;br /&gt;
&lt;br /&gt;
Procédure pour mettre à jour les écritures comptables d'une ou plusieurs activités :&lt;br /&gt;
*[[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
*Cliquer sur l'icône correspondant à la ligne de la ressource et de la colonne '''Mettre à jour les entrées comptables des activités non validées'''. Si l'icône est grisée alors il n'y a aucune activité non validée.&lt;br /&gt;
*Sélectionner les lignes d'activités dont il est nécessaire de mettre à jour les entrées comptables en cochant la case à cocher de la ligne correspondante dans la colonne '''Pointer'''.&lt;br /&gt;
*Cliquer sur le bouton '''Mettre à jour les activités sélectionnées'''&lt;br /&gt;
&lt;br /&gt;
=Modifier une activité=&lt;br /&gt;
Une activité peut être saisie :&lt;br /&gt;
*Soit à l'état ouvert&lt;br /&gt;
*Soit à l'état fermé&lt;br /&gt;
&lt;br /&gt;
Si l'activité est saisie à l'état ouvert, aucune écriture comptable n'est encore générée. Pour fermer une telle activité, il faut sur le planning de réservation :&lt;br /&gt;
*Soit, cliquer sur le rectangle de la ressource considérée qui doit être sur fond bleu pour indiquer que la ressource est en l'air&lt;br /&gt;
*Soit, cliquer la zone en bleue correspondante à la période du vol ouvert.&lt;br /&gt;
&lt;br /&gt;
Si l'activité est saisie à l'état fermée, pour la modifier, il faut :&lt;br /&gt;
*Soit aller sur le compte de l'un des utilisateurs concerné par l'activité et pour lequel une écriture a été générée&lt;br /&gt;
*Soit aller sur le carnet de vol ou le carnet de route impacté&lt;br /&gt;
Dans tous les cas, il faut ensuite cliquer sur l'icône crayon qui apparait sur la ligne correspondante à l'activité.&lt;br /&gt;
&lt;br /&gt;
Tout activité saisie reste modifiable tant qu'elle n'est pas validée.&lt;br /&gt;
&lt;br /&gt;
Si l'objectif est de mettre à jour des calculs de facturation sur plusieurs activités, alors il est recommandé de suivre la procédure [[#Mettre-à-jour-les-entrées-comptables-associées-à-des-activités-non-validées|Mettre à jour les entrées comptables associées à des activités non validées]] pour gagner du temps.&lt;br /&gt;
&lt;br /&gt;
Si l'activité à modifier est validée, il faut utiliser la fonction d'[[#Annuler-une-activité-validée|annulation d'une activité validée]] puis saisir une nouvelle activité.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une activité est déjà validée, elle n'est pas modifiable directement. En revanche, il est possible d'ajouter un signalement de navigabilité lié à cette activité. Dans ce cas, le formulaire affiche uniquement les champs du signalement et n'autorise pas la modification des données de l'activité validée.&lt;br /&gt;
&lt;br /&gt;
=Saisir une activité=&lt;br /&gt;
*Aller dans '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Saisir'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Mécanismes de traitement&lt;br /&gt;
*[[Formulaires#Valeur-par-défaut|Champs avec des valeurs par défaut]]&lt;br /&gt;
*La [[Formulaires#Valeur-par-défaut|valeur par défaut]] du champ '''terrain de départ''' correspond au '''terrain d'arrivée''' du vol précédent renseigné par l'aéronef sélectionné. Changer la date de début d'activité ou l'aéronef entraîne un rafraîchissement de la page et la valeur par défaut du champ '''terrain de départ''' se met à jour. S'il n'y a pas de vol précédent, la valeur par défaut est le terrain associé à la plateforme.&lt;br /&gt;
*Le compteur de départ par défaut équivaut au compteur d'arrivée du dernier vol fermé renseigné par l'aéronef sélectionné. S'il n'existe pas de vol fermé précédent, la valeur utilisée est le compteur courant de la ressource. Changer la date de départ rafraîchit la page si la date de départ est antérieure à la date de départ du dernier vol fermé. Le compteur est mis à jour en fonction. Si le compteur est changé manuellement, le compteur n'est pas mis à jour lors du rafraîchissement. Changer d'aéronef réinitialise ce comportement.&lt;br /&gt;
*Suivant l'activité choisie et le [[Configuration#Terrain-d'arrivée-égal-au-terrain-de-départ,-lorsque-l'une-des-activités-suivantes-est-sélectionnée|paramétrage de la plateforme]], le terrain d'arrivée peut être automatiquement rempli avec la même valeur que celle du terrain de départ.&lt;br /&gt;
*La saisie d'une activité d'une durée inférieure à 15 minutes déclenche l'affichage d'un message d'avertissement (en orange). Cliquer sur '''Confirmer la validation''' au dessous de ce message pour saisir définitivement l'activité.&lt;br /&gt;
*Lorsqu'un utilisateur est saisi, un champ pour définir son statut apparaît. Ce champ disparaît si l'utilisateur n'est pas défini.&lt;br /&gt;
*Lors de la saisie des utilisateurs, le nombre de personnes à bord se mets automatiquement à jour. Le nombre de personnes à bord est égal au nombre d'utilisateurs saisis. Si le nombre de personnes à bord est défini manuellement, la valeur n'est pas changée automatiquement par la suite.&amp;quot;&lt;br /&gt;
*Lors de la saisie d'un lieu, si aucun lieu correspondant n'est trouvé, [[#Demander-l'ajout-d'un-lieu|une option]] apparait afin de demander à OpenFlyers l'ajout du lieu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Champs de saisie date/heure départ/arrivée&lt;br /&gt;
A gauche du champ de saisie est indiqué le fuseau horaire défini par la structure et dans lequel le couple date/heure (horodatage) doit être saisi.&lt;br /&gt;
&lt;br /&gt;
Les champs de saisie pour l'horodatage de départ et d'arrivée sont conçus pour :&lt;br /&gt;
*La saisie optimisée avec un clavier (via les flèches ou par saisie directe) en ne nécessitant de saisir que les informations utiles : la barre oblique entre le jour et le mois ou le mois et l'année ne doit pas être saisie. En cas de la saisie manuelle, un message d'aide s'affiche pendant la saisie afin de guider l'utilisateur : ''Terminez la saisie, puis cliquez en dehors du champ pour appliquer les modifications''.&lt;br /&gt;
*La saisie avec un écran tactile en affichant, à droite du champ, un pictogramme qu'il faut toucher pour faire apparaitre des zones de saisies dédiées.&lt;br /&gt;
&lt;br /&gt;
En-dessous du champ de saisie de l'horodatage départ/arrivée apparait une ligne qui affiche l'horodatage en UTC.&lt;br /&gt;
&lt;br /&gt;
Tant que l'aéronef n'est pas encore sélectionné, si l'utilisateur ouvre le formulaire de saisie d'activité puis modifie le premier champ (en passant de '''départ en vol''' à '''retour de vol''' ou l'inverse), OpenFlyers recalcule et propose de nouvelles heures par défaut conformément aux deux règles ci-dessous :&lt;br /&gt;
&lt;br /&gt;
*Lorsque la structure est configurée en mode '''Fermeture seulement''' :&lt;br /&gt;
**L'heure de retour proposée correspond à ''l'heure actuelle''.&lt;br /&gt;
**L'heure de départ est automatiquement calculée en soustrayant la durée d'activité par défaut à cette heure de fin.&lt;br /&gt;
&lt;br /&gt;
*Lorsque la structure est configurée en mode '''Ouverture et fermeture''' :&lt;br /&gt;
*L'heure de départ proposée est ''l'heure actuelle + 10 minutes''&lt;br /&gt;
*L'heure de retour est automatiquement calculée en ajoutant la durée d'activité par défaut à cette heure de début.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'aéronef est sélectionné et que l'utilisateur modifie le premier champ du formulaire (en passant de '''départ en vol''' à '''retour de vol''' ou l'inverse), OpenFlyers conserve les heures déjà renseignées dans les champs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Champs de saisie [[Formules-de-calcul#Temps-d'activité-et-temps-moteur|temps d'activité]]&lt;br /&gt;
Lorsque le temps d'activité est affiché en unité de temps '''heures minutes''':&lt;br /&gt;
*La saisie optimisée avec un clavier en ne nécessitant de saisir que les informations utiles : les deux points entre l'heure et les minutes ne doit pas être saisie.&lt;br /&gt;
*La saisie avec un écran tactile en affichant, à droite du champ, un pictogramme qu'il faut toucher pour faire apparaitre des zones de saisies dédiées.&lt;br /&gt;
&lt;br /&gt;
Si la durée inclut des jours, un champ numérique (avec les boutons '''+''' et '''–''') apparaît à gauche du champ de type time pour renseigner le nombre de jours. Lorsque la valeur atteint 0, ce champ disparaît.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Champs de saisie [[Formules-de-calcul#Temps-d'activité-et-temps-moteur|temps moteur]]&lt;br /&gt;
Ce champ apparaît si le type de ressource de l'aéronef sélectionné est configuré pour utiliser un calcul de temps moteur différent du temps de vol.&lt;br /&gt;
&lt;br /&gt;
Lorsque le temps moteur est affiché en unité de temps '''heures minutes''':&lt;br /&gt;
*La saisie optimisée avec un clavier en ne nécessitant de saisir que les informations utiles : les deux points entre l'heure et les minutes ne doit pas être saisie.&lt;br /&gt;
*La saisie avec un écran tactile en affichant, à droite du champ, un pictogramme qu'il faut toucher pour faire apparaitre des zones de saisies dédiées.&lt;br /&gt;
&lt;br /&gt;
Si la durée inclut des jours, un champ numérique (avec les boutons '''+''' et '''–''') apparaît à gauche du champ de type time pour renseigner le nombre de jours. Lorsque la valeur atteint 0, ce champ disparaît.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Synchronisation d'une saisie avec Gesasso / [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]&lt;br /&gt;
Lors de la saisie d'une activité et lorsque la plateforme est configurée pour la synchronisation externe avec [[Interfaçage-OpenFlyers-et-Gesasso|Gesasso]] (ou [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]), le bouton de validation a deux affichages possibles :&lt;br /&gt;
&lt;br /&gt;
*'''Enregistrer''' : Si la ressource sélectionnée n'a pas de numéro d'immatriculation Gesasso valide, ou si l'un des pilotes ne dispose pas d'une licence FFVP valide, alors la synchronisation avec Gesasso (ou [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]) est ignorée dans ce cas.&lt;br /&gt;
&lt;br /&gt;
*'''Enregistrer et Synchroniser avec Gesasso''' : indique que les ressources et les pilotes sélectionnés remplissent les critères requis, et que la synchronisation avec Gesasso (ou [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]) est effectuée après l'enregistrement de l'activité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Mécanismes d'alertes&lt;br /&gt;
*[[Formulaires#Surbrillance-jaune|Effet de surbrillance jaune]]&lt;br /&gt;
*[[Formulaires#Surbrillance-rouge|Effet de surbrillance rouge]]&lt;br /&gt;
*Des [[Présentation-générale-des-alertes|alertes]] bloquantes ou non bloquantes peuvent être affichées après l'envoi du formulaire nécessitant une action complémentaire de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Page affichée par défaut après la saisie d'une activité&lt;br /&gt;
*Le planning lors d'une ouverture d'activité.&lt;br /&gt;
*La page du [[Gestion-des-activit%C3%A9s#Saisir-un-suivi-de-formation|saisie de progression]] lors d'une fermeture d'activité.&lt;br /&gt;
*A nouveau le formulaire de saisie d'activité lorsque l'activité précédemment saisie l'était en fermeture et que le terrain d'arrivée saisi était différent du terrain par défaut de la structure.&lt;br /&gt;
*Dans les autres cas, l'[[Gestion-de-la-comptabilité-côté-utilisateur#Extrait-de-compte|extrait de compte]] de la personne en première place. Si plusieurs comptes sont impactés, c'est le premier compte impacté de la personne qui est choisi.&lt;br /&gt;
*Si l'utilisateur connecté n'a pas le droit de visualiser le compte concerné, alors c'est le carnet de route qui est affiché.&lt;br /&gt;
&lt;br /&gt;
==Demander l'ajout d'un aérodrome==&lt;br /&gt;
Lors de la saisie du terrain de départ, ou d'arrivée, il se peut que le lieu que l'utilisateur souhaite saisir ne soit pas dans nos bases de données. Une proposition apparait alors :&lt;br /&gt;
&amp;lt;pre&amp;gt;XXXX ( Demander l'ajout du lieu à OpenFlyers )&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il suffit à l'utilisateur de sélectionner cette option afin d'effectuer la demande d'ajout à OpenFlyers.&lt;br /&gt;
Cette option ne prend en compte que les lieux recensés par l'OACI ou la FFPLUM.&lt;br /&gt;
&lt;br /&gt;
Attention, pour demander l'ajout d'un lieu, il faut saisir uniquement le code OACI (code à 4 lettres) ou FFPLUM (code au format LF + 4 chiffres) du lieu.&lt;br /&gt;
&lt;br /&gt;
Une fois l'option sélectionnée, la demande est enregistrée par OpenFlyers, mais le lieu n'est pas ajouté immédiatement, il faut donc saisir temporairement un autre lieu.&lt;br /&gt;
&lt;br /&gt;
==Forcer la saisie d'une durée d'activité incompatible avec sa formule de calcul==&lt;br /&gt;
Un gestionnaire peut forcer la saisie d'un [[#La-différence-entre-le-temps-de-vol-calculé-et-le-temps-de-vol-saisi-est-de-:-X:XX-heure(s)|temps d'activité incompatible avec la formule de calcul]] associée au type ressource pour lequel on souhaite saisir l'activité.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il doit :&lt;br /&gt;
*Saisir l'activité en modifiant le compteur d'arrivé de sorte à obtenir le temps d'activité souhaité.&lt;br /&gt;
*[[Gestion-des-ressources#Changer-la-valeur-du-compteur-en-cours|Changer la valeur du compteur en cours]] de la ressource.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où plusieurs activités successives doivent être saisies, il est alors judicieux de ne mettre à jour le compteur de la ressource qu'une que toutes les activités ont été saisies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Signalement de navigabilité lors de la saisie d'activité ==&lt;br /&gt;
&lt;br /&gt;
Le formulaire de saisie d'activité permet de créer un signalement de navigabilité lié au vol saisi.&lt;br /&gt;
&lt;br /&gt;
Le bloc '''Signalement''' contient :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''Une case de certification'''.&lt;br /&gt;
&lt;br /&gt;
Si un des champs du bloc est renseigné, le signalement doit être complet : description, statut et certification. À la validation de l'activité, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
=Supprimer une activité=&lt;br /&gt;
Si l'activité à supprimer est validée, il faut utiliser la fonction d'[[#Annuler-une-activité-validée|annulation d'une activité validée]].&lt;br /&gt;
&lt;br /&gt;
Si l'activité à supprimer n'est pas validée, pour effectuer sa suppression il faut :&lt;br /&gt;
*[[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
*Cliquer sur l'icône correspondant à la ligne de la ressource et de la colonne '''Valider les activités sélectionnés'''. Si l'icône est grisée alors il n'y a aucune activité non validée.&lt;br /&gt;
*Dans le tableau qui va lister les activités, cliquer sur l'icône poubelle correspondant à l'activité à supprimer et confirmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Valider les activités d'une ressource désactivée ou n'ayant plus la saisie des activités=&lt;br /&gt;
Pour valider les activités d'une ressource désactivée ou n'ayant plus la saisie des activités de cochée, il existe 2 solutions :&lt;br /&gt;
*Si l'objectif c'est de clôturer la comptabilité et donc de valider toutes les écritures antérieure à une certaine date, alors la solution la plus simple est de valider toutes les écritures antérieures à cette date en suivant la procédure [[Utilisation-de-la-comptabilité#Valider-toutes-les-écritures|Valider toutes les écritures]].&lt;br /&gt;
*Si l'objectif est de contrôler, voir de modifier les activités liées à la ressource avant de réellement les valider, alors il faut réactiver temporairement la ressource pour qu'elle apparaisse dans '''Gestion &amp;gt; Activités &amp;gt; Activités &amp;gt; Liste''' et ainsi pouvoir contrôler et valider ses activités associées. Pour cela il faut :&lt;br /&gt;
**Aller dans '''Gestion &amp;gt; Ressources &amp;gt; Actives'''&lt;br /&gt;
**Décocher '''Réservable''' et '''Saisie d'activité''' d'une ressource existante&lt;br /&gt;
**Cocher '''Saisie d'activité''' pour la ressource dont on souhaite contrôler les activités puis les valider&lt;br /&gt;
**valider les activités en allant dans '''Gestion &amp;gt; Activités &amp;gt; Activités &amp;gt; Liste'''&lt;br /&gt;
**Revenir sur '''Gestion &amp;gt; Ressources &amp;gt; Actives'''&lt;br /&gt;
**Décocher '''Saisie d'activité''' pour cette ressource&lt;br /&gt;
**Re-cocher '''Réservable''' et '''Saisie d'activité''' pour la ressource qui devait être temporairement décochée&lt;br /&gt;
&lt;br /&gt;
=Valider une activité=&lt;br /&gt;
;Introduction&lt;br /&gt;
La validation des activités doit être effectuée à intervalle régulier comme préconisé dans le [[Bien-débuter-avec-OpenFlyers#Validation-des-écritures|workflow de validation des activités]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il existe des écritures non validées qui datent de plus de 30 jours, un message d'alerte de configuration s'affiche indiquant ''[[Alertes-de-configuration#Il-y-a-des-activités-non-validées-qui-datent-de-plus-de-30-jours|Il y a des activités non validées qui datent de plus de 30 jours]]''.&lt;br /&gt;
&lt;br /&gt;
Option disponible pour la validation : [[Configuration#Regrouper-les-activités-en-une-facture-lors-de-la-validation|Regrouper les activités en une facture lors de la validation]]&lt;br /&gt;
&lt;br /&gt;
;Procédure pour valider une ou plusieurs activités&lt;br /&gt;
*[[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
*Cliquer sur l'icône correspondant à la ligne de la ressource et de la colonne '''Valider les activités sélectionnés'''. Si l'icône est grisée alors il n'y a aucune activité non validée.&lt;br /&gt;
*Sélectionner les lignes d'activités à valider en cochant la case à cocher de la ligne correspondante dans la colonne '''Pointer'''.&lt;br /&gt;
*Cliquer sur le bouton '''Pointer les activités sélectionnées (attention cette action est irréversible)'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas où une activité a été validée alors qu'elle ne devait pas l'être, il est toujours possible d'en [[#Annuler-une-activité-validée|annuler l'effet]].&lt;br /&gt;
&lt;br /&gt;
Dans le cas d'une activité incomplète (Pas de pilote ou pas de localisation d'arrivée ou de départ) l'activité ne peut pas être validée il est donc impossible de la pointer. Ce cas ne devrait arriver que pour les activités générées via [[Interfaçage-OpenFlyers-et-Charterware|l'interfaçage avec Charterware]], [[Interfaçage-OpenFlyers-et-ClickAndTakeoff|l'interfaçage avec ClickAndTakeoff]] ou [[Interfaçage-OpenFlyers-et-Foxtrot-Aviation|l'interfaçage avec Foxtrot Aviation]].&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Gestion-des-activit%C3%A9s&amp;diff=14544</id>
		<title>Gestion des activités</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Gestion-des-activit%C3%A9s&amp;diff=14544"/>
		<updated>2026-07-02T15:16:22Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Saisir une activité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter la '''gestion des activités''' sur la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
==Paramétrage des vols solos supervisés==&lt;br /&gt;
La réglementation aéronautique EASA, différencie les instructeurs en 2 catégories : les instructeurs restreints et non restreints. Les instructeurs sont restreints tant qu'ils ont effectués moins de 100 heures d'instruction. Pour le décompte de leurs heures d'instruction, il est possible de prendre en compte les heures solo, effectuées par leurs élèves, heures solos qu'ils ont supervisées. De plus, le rapport annuel de statistiques [[AERAL]] nécessite de faire remonter les heures solos supervisées par instructeur ainsi que par activité.&lt;br /&gt;
&lt;br /&gt;
OpenFlyers déconseille de saisir les heures de solo supervisées en renseignant le nom de l'instructeur dans le champ '''Place droite''' ou '''Instructeur''' afin de ne pas créer d'effets de bords sur l'ensemble du logiciel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OpenFlyers recommande de paramétrer le suivi des heures solos supervisées de la façon suivante :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Créer un type d'activité ''Solo supervisé''&lt;br /&gt;
*'''Admin &amp;gt; Types d'activités &amp;gt; Types d'activités &amp;gt; Actifs'''&lt;br /&gt;
En bas du tableau '''Liste des types d'activités''', sur la dernière ligne qui doit être vide :&lt;br /&gt;
*Champ '''Nom''', indiquer ''Solo supervisé''&lt;br /&gt;
*Champ '''Couleur''', sélectionner une couleur, de préférence proche de la couleur pour l'instruction&lt;br /&gt;
*Cliquer sur le bouton avec un pictogramme symbolisant le signe plus&lt;br /&gt;
*Aller à nouveau dans '''Admin &amp;gt; Types d'activités &amp;gt; Types d'activités &amp;gt; Actifs''' pour mettre à jour les autres tableaux&lt;br /&gt;
Dans le tableau '''Types d'activités incompatibles''', rendre incompatible le type d'activité ''Solo supervisé'' avec les autres types d'activités qui doivent être incompatible, notamment ''Instruction'', ''Baptême'', ''Maintenance'', ''Vol découverte'', etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Créer un champ métier &amp;quot;Instructeur superviseur&amp;quot; pour le formulaire de saisie d'activité afin de pouvoir noter le nom de l'instructeur pour les vols solos des élèves&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Variables &amp;gt; Champs métiers'''&lt;br /&gt;
Tout en bas sur la dernière ligne qui doit être vide :&lt;br /&gt;
*Champ '''Nom de variable''', indiquer ''supervisor''&lt;br /&gt;
*Champ '''Intitulé''', indiquer ''Instructeur superviseur''&lt;br /&gt;
*Champ '''Catégorie''', indiquer ''Activité''&lt;br /&gt;
*Champ '''Type de valeur''', indiquer ''dbObject::Person(Instructeur)''&lt;br /&gt;
*Cliquer sur le bouton '''Ajouter'''&lt;br /&gt;
*Mettre à jour le paramétrage [[AERAL#Activité-correspondant-à-Solo-supervisé|Activité correspondant à Solo supervisé]] pour AERAL :&lt;br /&gt;
*'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Export Aeral'''&lt;br /&gt;
Formulaire '''Activité correspondant à Solo supervisé''' :&lt;br /&gt;
*Champ '''Solo supervisé''', indiquer '''Solo supervisé'''&lt;br /&gt;
*Désactiver l'interrupteur '''instructeur en place droite'''&lt;br /&gt;
*Champ '''Champ métier correspondant au superviseur''', indiquer ''Instructeur superviseur''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer''' en haut ou en bas à droite de la page&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Ensuite, pour chaque vol solo supervisé, il faut dans le formulaire de saisie d'activité&lt;br /&gt;
*Cocher le type d'activité ''Solo supervisé''&lt;br /&gt;
*Renseigner le nom de l'instructeur dans le champ ''Instructeur superviseur''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Mettre en place une validité &amp;quot;Élève autorisé solo&amp;quot;&lt;br /&gt;
Dans le cas où la structure met en place des restrictions sur les réservations ou la saisie des vols, un élève en solo supervisé, n'ayant donc pas les validités d'un pilote breveté, peut se retrouver bloqué. Pour contourner ces restrictions, il est recommandé de créer un type de validité &amp;quot;Élève autorisé solo&amp;quot; et de lui permettre de contourner les exigences des autres validités non détenues par un élève.&lt;br /&gt;
*'''Admin &amp;gt; Utilisateurs &amp;gt; Types de validités'''&lt;br /&gt;
*Cliquer sur le bouton '''Ajouter un type de validités'''&lt;br /&gt;
*Champ '''Nom''', indiquer ''Élève autorisé solo''&lt;br /&gt;
*Cliquer sur la case à cocher '''Soumise à échéance'''&lt;br /&gt;
*Champs '''Profils autorisés à gérer pour eux-mêmes''' et '''Profils autorisés à gérer/certifier pour les autres''', cocher les profils ''admin'', ''gestionnaire'' (ou équivalents) et ''instructeur''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer&amp;quot;&lt;br /&gt;
*'''Admin &amp;gt; Types de ressource'''&lt;br /&gt;
Pour chaque type de ressource :&lt;br /&gt;
*Cliquer sur le bouton '''Validité'''&lt;br /&gt;
*Pour chaque ligne de validité qui exige une validité qu'un élève n'a pas l'obligation de détenir, cocher le type de validité ''Élève autorisé solo''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Facturation du solo supervisé au tarif de l'instruction&lt;br /&gt;
Dans le cas où la structure facture le solo supervisé à l'identique de l'instruction, il faut :&lt;br /&gt;
*Aller dans '''Admin &amp;gt; Ventes &amp;gt; Facturation &amp;gt; Activités'''&lt;br /&gt;
*Editer la ligne &amp;quot;Instruction&amp;quot; en cliquant sur le bouton symbolisant un crayon et situé à droite de la ligne concernée&lt;br /&gt;
*Cocher ''Solo supervisé'' dans le champ '''Types d'activités concernés'''&lt;br /&gt;
*Cliquer sur le bouton '''Enregistrer'''&lt;br /&gt;
&lt;br /&gt;
=Afficher la vue d'ensemble des activités selon les ressources=&lt;br /&gt;
*Naviguer vers la section '''Gestion &amp;gt; Activités &amp;gt; Activités &amp;gt; Liste'''.&lt;br /&gt;
&lt;br /&gt;
Une synthèse sous forme de tableau des activités '''actives''' et '''physiques''', s'affiche automatiquement :&lt;br /&gt;
*les ressources actives y figurent toujours.&lt;br /&gt;
*les ressources désactivées ou celles pour lesquelles l'interrupteur '''Saisie d'activité''' (accessible via '''Gestion &amp;gt; Ressources &amp;gt; Actives''') est décoché réapparaissent dès qu'elles possèdent au moins une activité non validée.&lt;br /&gt;
&lt;br /&gt;
Ainsi, aucune action supplémentaire n'est nécessaire pour retrouver les ressources portant encore des validations à effectuer.&lt;br /&gt;
&lt;br /&gt;
=Alertes=&lt;br /&gt;
==[[Gestion-armoire-à-clés#Alertes-lors-de-la-saisie-d'une-activité|Alertes générées par le contrôle d'accès]]==&lt;br /&gt;
&lt;br /&gt;
==[[Facturation-des-clients#Alertes-générées-par-le-moteur-de-facturation|Alertes générées par le moteur de facturation]]==&lt;br /&gt;
&lt;br /&gt;
==[[Validités#Alertes-lors-d'une-réservation-ou-une-saisie-d'activité|Alertes générées sur les validités]]==&lt;br /&gt;
&lt;br /&gt;
==L'aéronef est déjà en l'air==&lt;br /&gt;
Si en tentant d'ouvrir le vol d'un aéronef, apparait une alerte orange '''L'aéronef est déjà en l'air''', cela veut dire qu'un vol a déjà été ouvert avec cet aéronef.&lt;br /&gt;
&lt;br /&gt;
Dans ce cas, il y'a 2 choix :&lt;br /&gt;
*'''Fermer le vol déjà ouvert''' si le vol en cours doit être clôturé.&lt;br /&gt;
*'''Saisir un nouveau vol''' pour continuer malgré tout la saisie d'un nouveau vol.&lt;br /&gt;
&lt;br /&gt;
S'il s'agit d'un vol qui n'a pas été fermé et qui doit être supprimé, il faut [[#Annuler-un-vol-ouvert|annuler le vol ouvert]].&lt;br /&gt;
&lt;br /&gt;
==La différence entre le temps de vol calculé et le temps de vol saisi est de : X:XX heure(s)==&lt;br /&gt;
Cette alerte est suivie du message :&lt;br /&gt;
&amp;lt;pre&amp;gt;Veuillez contacter votre administrateur à propos de l'incompatibilité entre votre saisie et la formule du temps de vol choisie pour le type d'aéronef : X&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette alerte apparait lorsque la valeur saisie du temps d'activité est incompatible avec la valeur calculée par la [[Formules-de-calcul#Temps-d'activité|formule de calcul du temps d'activité]] définie pour la ressource X.&lt;br /&gt;
&lt;br /&gt;
En général elle provient du fait que le temps de vol qui avait été calculé automatiquement dans le formulaire lors de la saisie des champs de compteurs départ/arrivée et/ou des heures de départ/arrivée ont été modifiés manuellement.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'une telle erreur apparait, vous devez :&lt;br /&gt;
*Essayer de reprendre la saisie et essayer de comprendre pourquoi vous saisissez mal les valeurs dans les champs concernés&lt;br /&gt;
*Si vous n'arrivez pas à comprendre la raison, contacter sans délai un gestionnaire de votre structure afin qu'il vous explique les erreurs que vous commettez lorsque le problème vient d'une saisie erronée ou qu'il analyser lui-même le problème.&lt;br /&gt;
*Si vous êtes vous-même un gestionnaire de la plateforme, vous devez également pousser l'analyse pour comprendre en quoi votre saisie est incompatible avec la formule de calcul et le cas échéant faire effectuer une modification du paramétrage.&lt;br /&gt;
&lt;br /&gt;
Voir également, comment [[#Forcer-la-saisie-d'une-durée-d'activité-incompatible-avec-sa-formule-de-calcul|Forcer la saisie d'une durée d'activité incompatible avec sa formule de calcul]].&lt;br /&gt;
&lt;br /&gt;
==Le compteur d'arrivée du vol précédent est incompatible avec le compteur de départ saisi==&lt;br /&gt;
Cette alerte peut apparaître lorsque le compteur de départ saisi est incohérent par rapport au compteur d'arrivée du dernier vol fermé de l'aéronef sélectionné, par exemple avec un message du type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Le compteur arrivée du vol précédent (X) est supérieur au compteur départ de ce vol&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ou :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Le compteur arrivé précédent (X) est bien inférieur au compteur départ de cette saisie&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Il s'agit d'une alerte non bloquante. En dessous du message, un bouton permet de corriger automatiquement la saisie en reprenant la valeur de référence du dernier vol fermé :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Utiliser le compteur précédent (X)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En cliquant sur ce bouton, le compteur de départ est remplacé par le compteur d'arrivée du dernier vol fermé de l'aéronef sélectionné.&lt;br /&gt;
&lt;br /&gt;
Le bouton de confirmation reste disponible pour conserver la saisie initiale.&lt;br /&gt;
&lt;br /&gt;
==Le pilote X est déjà en l'air==&lt;br /&gt;
Ce message apparait lorsque vous tentez de saisir un vol en ouverture de vol et que le pilote occupant la position X est déjà enregistré sur un vol ouvert, c'est à dire en l'air.&lt;br /&gt;
&lt;br /&gt;
Cette protection permet de ne pas avoir un utilisateur occupé simultanément sur 2 ressources.&lt;br /&gt;
&lt;br /&gt;
S'il s'agit d'un vol qui n'a pas été fermé et qui doit être supprimé, il faut [[#Annuler-un-vol-ouvert|annuler le vol ouvert]].&lt;br /&gt;
&lt;br /&gt;
==Seul le type de vol requis dans le cas de la présence d'un second pilote a été sélectionné, vous devez en sélectionner au moins un autre en plus==&lt;br /&gt;
Lors de la saisie d'un vol, cette alerte s'affiche si la configuration de la plateforme nécessite la saisie d'au moins un type de vol supplémentaire en plus du type de vol obligatoire dans le cas de la présence d'un second pilote.&lt;br /&gt;
&lt;br /&gt;
C'est typiquement le cas pour les vols d'instruction où le paramétrage nécessite généralement de préciser un 2ème type de vol comme &amp;quot;local&amp;quot;, &amp;quot;navigation&amp;quot;, etc.&lt;br /&gt;
&lt;br /&gt;
==Vous êtes actuellement en l'air==&lt;br /&gt;
Si en tentant de saisir un vol, l'alerte '''Vous êtes actuellement en l'air''' apparait cela veut dire qu'il y a déjà un vol d'ouvert à votre nom. S'il s'agit d'un vol qui n'a pas été fermé et qui doit être supprimé, il faut [[#Annuler-un-vol-ouvert|annuler le vol ouvert]].&lt;br /&gt;
&lt;br /&gt;
==Vous ne pouvez ouvrir un vol avec une date de début dépassée==&lt;br /&gt;
Cette protection empêche d'ouvrir une activité avec un horodatage de début antérieur à l'heure actuelle moins 15 minutes.&lt;br /&gt;
&lt;br /&gt;
En général, pour un tel cas, le souhait n'est pas d'ouvrir une activité mais de fermer une activité. Il faut donc penser à passer le champ '''Etat du vol''' en &amp;quot;Retour de vol&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=Annuler une activité validée=&lt;br /&gt;
Contrairement à la [[#Supprimer-une-activité|suppression des activités non validées]] et du fait de l'[[Comptabilité#Inaltérabilité-des-données|inaltérabilité des données]], il n'est pas possible de supprimer physiquement une activité après [[#Valider-une-activité|sa validation]]. Par contre, la fonction d'annulation de la saisie d'une activité permet d'en annuler son effet.&lt;br /&gt;
&lt;br /&gt;
'''C'est cette fonction qu'il faut utiliser dans le cas où une activité validée doit être corrigée. L'utilisateur assurant la gestion :'''&lt;br /&gt;
#'''Annule l'activité validée qui n'a pas été saisie correctement'''&lt;br /&gt;
#'''Saisie une nouvelle activité avec les bonnes données''' (Cette opération n'entraîne pas de contrôle restrictif (chevauchement), car le vol concerné a déjà été contre-passé).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La fonction d'annulation d'activité génère les enregistrements suivants en base de données :&lt;br /&gt;
#Création d'une même activité que l'activité à annuler mais avec une durée opposée. Cela permet de garantir que les totaux d'heures d'activités sont correctement corrigés. De plus, le champ commentaire contient une référence à l'activité ciblée par l'annulation.&lt;br /&gt;
#Création des écritures comptables associées correspondant à l'identique à celles de l'activité à annuler mais de sens opposé (débit au lieu de crédit et vice versa).&lt;br /&gt;
Ces enregistrements sont générées à la date du jour et sont automatiquement validés. Cela permet de garantir la traçabilité des opérations.&lt;br /&gt;
&lt;br /&gt;
'''Attention''' : il est possible d'annuler plusieurs fois une même activité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour utiliser cette fonction :&lt;br /&gt;
* [[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
* Dans la colonne '''Annuler une activité validée''', cliquer sur l’icône rouge symbolisant une flèche qui fait demi-tour&lt;br /&gt;
* Une page listant les activités validées apparait :&lt;br /&gt;
** Dans la colonne '''Annuler''', sélectionner l'activité à annuler&lt;br /&gt;
** Cliquer sur le bouton '''Annuler l'activité sélectionnée (cette action est irréversible)'''&lt;br /&gt;
&lt;br /&gt;
=Annuler un vol ouvert=&lt;br /&gt;
*Aller sur le planning&lt;br /&gt;
*Cliquer sur le rectangle sur fond bleu correspondant à l'immatriculation de l'aéronef considéré&lt;br /&gt;
*Cliquer sur le bouton '''Annuler le vol''' tout en bas du formulaire.&lt;br /&gt;
&lt;br /&gt;
=Lister les activités=&lt;br /&gt;
La liste des activités est accessible depuis:&lt;br /&gt;
* [[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
* Cliquer sur l'icône correspondant à la colonne '''Valider les activités sélectionnées'''.&lt;br /&gt;
* Ou bien Cliquer sur l'icône correspondant à la colonne '''Vérifier la succession des activités'''.&lt;br /&gt;
** la page de Contrôle des compteurs de la resource a apparu.&lt;br /&gt;
** Entrer Le compteur de départ, puis Sélectionner la date de début et de fin de l'intervale que vous voulez visualiser.&lt;br /&gt;
** Cliquer sur le bouton '''Visualiser'''.&lt;br /&gt;
&lt;br /&gt;
La liste des activités synthétise les informations les plus importantes pour l'ensemble des activités dans un intervalle de temps:&lt;br /&gt;
&lt;br /&gt;
* '''Pointer''': contient les deux icônes '''tout cocher''' et '''tout décocher''', aussi les cases à cocher de chaque ligne,  en cochant la case puis en Cliquant sur le bouton '''Pointer les activités sélectionnées (attention cette action est irréversible)''' vous pouvez valider l'activité.&lt;br /&gt;
* '''Date''': date et heure de départ de vol, elle est affichée en fonction des [[Configuration#Patron-de-format-de-date|patrons de format de date]], affichée en rouge lorsque la date est dans le futur ( demain ou plus tard) ou bien lorsque la date de début de l'activité précédente chevauche une activité existante, c'est-à-dire  la date de début de l'activité précédente + sa durée dépasse la date de début de l'activité actuelle. Un interrupteur Date en '''UTC''' permet d'afficher sous la date locale une ligne orange indiquant l'heure '''UTC''' si la conversion reste le même jour, ou la date complète en '''UTC''' lorsque la conversion recule sur la veille.&lt;br /&gt;
* le champ place_tag qui permet d'étiqueter le numéro de place '''0''' (par exemple: place droite, pilote, Elève, Ouvert): la personne attribué au position 0,  affichée en rouge lorsque l'activité n'avait pas de pilote.&lt;br /&gt;
* le champ place_tag qui permet d'étiqueter le numéro de place '''1''' s'il existe (par exemple: place gauche, instructeur, Adhérent): la personne attribué au position 1.&lt;br /&gt;
* '''Activités''' : les types d'activités sélectionnés pour l'activité (par exemple: Voltige, Instruction, Vol technique, ...).&lt;br /&gt;
* '''Temps d'activité''' : la durée de l'activité, elle est affichée en fonction des [[Configuration#Patron-de-format-d'heure|patrons de format d'heure]], en vert pour les activités non validées et en noir gras pour les  activités validées.&lt;br /&gt;
* '''Temps moteur''' : le temps moteur s'affiche  si la ressource appartient à un type de ressource configuré pour utiliser un calcul de temps moteur différent du temps de vol, il est affichée en fonction des [[Configuration#Patron-de-format-d'heure|patrons de format d'heure]], en vert pour les activités non validées et en noir gras pour les  activités validées.&lt;br /&gt;
* '''Départ''' : Terrain de départ affiché en rouge lorsque l'activité n'avait pas de terrain de départ.&lt;br /&gt;
* '''Arrivée''': Terrain d'arrivée affiché en rouge lorsque l'activité n'avait pas de terrain d'arrivée.&lt;br /&gt;
* '''Att.''' : Nombre d'atterrissages.&lt;br /&gt;
* '''Ajouts réservoirs''': Réapprovisionnement de réservoir avant/après vol, ils sont affichées sous format suivante &amp;quot; quantité + Unité (Type de éservoir)&amp;quot;.&lt;br /&gt;
* les éventuelles colonnes correspondant aux champs métiers de type &amp;quot;Activité&amp;quot;.&lt;br /&gt;
* '''Compteurs''': affichés en deux manières ( compteur hexadécimal : HH:MM , compteur décimal: HH,CC ).&lt;br /&gt;
** '''Départ''' : Le compteur de départ, affiché en rouge si le compteur de départ de l'activité actuelle inférieur au compteur d'arrivée de l'activité précédente ou bien si '''(''' le compteur de départ de l'activité actuelle '''-''' le compteur d'arrivée de l'activité précédente '''-''' la tolérance ''') &amp;gt; 1'''.&lt;br /&gt;
** '''Arrivée''' : Le compteur d'arrivée. &lt;br /&gt;
** '''Diff.''' : la difference entre les compteurs. affiché en rouge si le compteur de départ de l'activité actuelle dépasse le compteur d'arrivée de l'activité actuelle ou bien si '''(''' le compteur d'arrivée de l'activité actuelle '''-''' le compteur de départ de l'activité actuelle '''-''' la tolérance ''') &amp;gt; 1'''.&lt;br /&gt;
* '''Actions''': L'utilisateur peut effectuer sur une activité les actions suivantes:&lt;br /&gt;
** Modifier : L'utilisateur peut modifier une activité s'il a des autoristations pour gérer ses activités et qu'il est l'instructeur de l'activité ou bien s'il peut gérer les activités des autres utilisteurs. ET si l'activité n'est pas validée.&lt;br /&gt;
** Supprimer : L'utilisateur peut supprimer une activité s'il a des autoristations pour gérer ses activités et qu'il est l'instructeur de l'activité ou bien s'il peut gérer les activités des autres utilisteurs. ET si l'activité n'est pas validée.&lt;br /&gt;
** Ajouter : L'utilisateur peut ajouter une activité s'il a des autoristations pour gérer ses activités et qu'il est l'instructeur de l'activité ou bien s'il peut gérer les activités des autres utilisteurs. ET si '''(''' le compteur de départ de l'activité actuelle '''-''' le compteur d'arrivée de l'activité précédente '''-''' la tolérance ''') &amp;gt; 1'''.&lt;br /&gt;
** Afficher la trace de vol: L'utilisateur peut afficher la trace de vol s'il est sur le vol ou s'il a le droit de voir les traces de vol.&lt;br /&gt;
&lt;br /&gt;
=Mettre à jour les entrées comptables associées à des activités non validées=&lt;br /&gt;
Dans le cas où, suite à une saisie d'activité, des changements de facturations ont été fait, il est nécessaire de mettre à jour les entrées comptables associées à celle-ci. &lt;br /&gt;
La mise à jour ne peut se faire que sur les activités non validées ayant au moins un utilisateur et étant associées à une ressource active.&lt;br /&gt;
&lt;br /&gt;
Procédure pour mettre à jour les écritures comptables d'une ou plusieurs activités :&lt;br /&gt;
*[[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
*Cliquer sur l'icône correspondant à la ligne de la ressource et de la colonne '''Mettre à jour les entrées comptables des activités non validées'''. Si l'icône est grisée alors il n'y a aucune activité non validée.&lt;br /&gt;
*Sélectionner les lignes d'activités dont il est nécessaire de mettre à jour les entrées comptables en cochant la case à cocher de la ligne correspondante dans la colonne '''Pointer'''.&lt;br /&gt;
*Cliquer sur le bouton '''Mettre à jour les activités sélectionnées'''&lt;br /&gt;
&lt;br /&gt;
=Modifier une activité=&lt;br /&gt;
Une activité peut être saisie :&lt;br /&gt;
*Soit à l'état ouvert&lt;br /&gt;
*Soit à l'état fermé&lt;br /&gt;
&lt;br /&gt;
Si l'activité est saisie à l'état ouvert, aucune écriture comptable n'est encore générée. Pour fermer une telle activité, il faut sur le planning de réservation :&lt;br /&gt;
*Soit, cliquer sur le rectangle de la ressource considérée qui doit être sur fond bleu pour indiquer que la ressource est en l'air&lt;br /&gt;
*Soit, cliquer la zone en bleue correspondante à la période du vol ouvert.&lt;br /&gt;
&lt;br /&gt;
Si l'activité est saisie à l'état fermée, pour la modifier, il faut :&lt;br /&gt;
*Soit aller sur le compte de l'un des utilisateurs concerné par l'activité et pour lequel une écriture a été générée&lt;br /&gt;
*Soit aller sur le carnet de vol ou le carnet de route impacté&lt;br /&gt;
Dans tous les cas, il faut ensuite cliquer sur l'icône crayon qui apparait sur la ligne correspondante à l'activité.&lt;br /&gt;
&lt;br /&gt;
Tout activité saisie reste modifiable tant qu'elle n'est pas validée.&lt;br /&gt;
&lt;br /&gt;
Si l'objectif est de mettre à jour des calculs de facturation sur plusieurs activités, alors il est recommandé de suivre la procédure [[#Mettre-à-jour-les-entrées-comptables-associées-à-des-activités-non-validées|Mettre à jour les entrées comptables associées à des activités non validées]] pour gagner du temps.&lt;br /&gt;
&lt;br /&gt;
Si l'activité à modifier est validée, il faut utiliser la fonction d'[[#Annuler-une-activité-validée|annulation d'une activité validée]] puis saisir une nouvelle activité.&lt;br /&gt;
&lt;br /&gt;
=Saisir une activité=&lt;br /&gt;
*Aller dans '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Saisir'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Mécanismes de traitement&lt;br /&gt;
*[[Formulaires#Valeur-par-défaut|Champs avec des valeurs par défaut]]&lt;br /&gt;
*La [[Formulaires#Valeur-par-défaut|valeur par défaut]] du champ '''terrain de départ''' correspond au '''terrain d'arrivée''' du vol précédent renseigné par l'aéronef sélectionné. Changer la date de début d'activité ou l'aéronef entraîne un rafraîchissement de la page et la valeur par défaut du champ '''terrain de départ''' se met à jour. S'il n'y a pas de vol précédent, la valeur par défaut est le terrain associé à la plateforme.&lt;br /&gt;
*Le compteur de départ par défaut équivaut au compteur d'arrivée du dernier vol fermé renseigné par l'aéronef sélectionné. S'il n'existe pas de vol fermé précédent, la valeur utilisée est le compteur courant de la ressource. Changer la date de départ rafraîchit la page si la date de départ est antérieure à la date de départ du dernier vol fermé. Le compteur est mis à jour en fonction. Si le compteur est changé manuellement, le compteur n'est pas mis à jour lors du rafraîchissement. Changer d'aéronef réinitialise ce comportement.&lt;br /&gt;
*Suivant l'activité choisie et le [[Configuration#Terrain-d'arrivée-égal-au-terrain-de-départ,-lorsque-l'une-des-activités-suivantes-est-sélectionnée|paramétrage de la plateforme]], le terrain d'arrivée peut être automatiquement rempli avec la même valeur que celle du terrain de départ.&lt;br /&gt;
*La saisie d'une activité d'une durée inférieure à 15 minutes déclenche l'affichage d'un message d'avertissement (en orange). Cliquer sur '''Confirmer la validation''' au dessous de ce message pour saisir définitivement l'activité.&lt;br /&gt;
*Lorsqu'un utilisateur est saisi, un champ pour définir son statut apparaît. Ce champ disparaît si l'utilisateur n'est pas défini.&lt;br /&gt;
*Lors de la saisie des utilisateurs, le nombre de personnes à bord se mets automatiquement à jour. Le nombre de personnes à bord est égal au nombre d'utilisateurs saisis. Si le nombre de personnes à bord est défini manuellement, la valeur n'est pas changée automatiquement par la suite.&amp;quot;&lt;br /&gt;
*Lors de la saisie d'un lieu, si aucun lieu correspondant n'est trouvé, [[#Demander-l'ajout-d'un-lieu|une option]] apparait afin de demander à OpenFlyers l'ajout du lieu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Champs de saisie date/heure départ/arrivée&lt;br /&gt;
A gauche du champ de saisie est indiqué le fuseau horaire défini par la structure et dans lequel le couple date/heure (horodatage) doit être saisi.&lt;br /&gt;
&lt;br /&gt;
Les champs de saisie pour l'horodatage de départ et d'arrivée sont conçus pour :&lt;br /&gt;
*La saisie optimisée avec un clavier (via les flèches ou par saisie directe) en ne nécessitant de saisir que les informations utiles : la barre oblique entre le jour et le mois ou le mois et l'année ne doit pas être saisie. En cas de la saisie manuelle, un message d'aide s'affiche pendant la saisie afin de guider l'utilisateur : ''Terminez la saisie, puis cliquez en dehors du champ pour appliquer les modifications''.&lt;br /&gt;
*La saisie avec un écran tactile en affichant, à droite du champ, un pictogramme qu'il faut toucher pour faire apparaitre des zones de saisies dédiées.&lt;br /&gt;
&lt;br /&gt;
En-dessous du champ de saisie de l'horodatage départ/arrivée apparait une ligne qui affiche l'horodatage en UTC.&lt;br /&gt;
&lt;br /&gt;
Tant que l'aéronef n'est pas encore sélectionné, si l'utilisateur ouvre le formulaire de saisie d'activité puis modifie le premier champ (en passant de '''départ en vol''' à '''retour de vol''' ou l'inverse), OpenFlyers recalcule et propose de nouvelles heures par défaut conformément aux deux règles ci-dessous :&lt;br /&gt;
&lt;br /&gt;
*Lorsque la structure est configurée en mode '''Fermeture seulement''' :&lt;br /&gt;
**L'heure de retour proposée correspond à ''l'heure actuelle''.&lt;br /&gt;
**L'heure de départ est automatiquement calculée en soustrayant la durée d'activité par défaut à cette heure de fin.&lt;br /&gt;
&lt;br /&gt;
*Lorsque la structure est configurée en mode '''Ouverture et fermeture''' :&lt;br /&gt;
*L'heure de départ proposée est ''l'heure actuelle + 10 minutes''&lt;br /&gt;
*L'heure de retour est automatiquement calculée en ajoutant la durée d'activité par défaut à cette heure de début.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'aéronef est sélectionné et que l'utilisateur modifie le premier champ du formulaire (en passant de '''départ en vol''' à '''retour de vol''' ou l'inverse), OpenFlyers conserve les heures déjà renseignées dans les champs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Champs de saisie [[Formules-de-calcul#Temps-d'activité-et-temps-moteur|temps d'activité]]&lt;br /&gt;
Lorsque le temps d'activité est affiché en unité de temps '''heures minutes''':&lt;br /&gt;
*La saisie optimisée avec un clavier en ne nécessitant de saisir que les informations utiles : les deux points entre l'heure et les minutes ne doit pas être saisie.&lt;br /&gt;
*La saisie avec un écran tactile en affichant, à droite du champ, un pictogramme qu'il faut toucher pour faire apparaitre des zones de saisies dédiées.&lt;br /&gt;
&lt;br /&gt;
Si la durée inclut des jours, un champ numérique (avec les boutons '''+''' et '''–''') apparaît à gauche du champ de type time pour renseigner le nombre de jours. Lorsque la valeur atteint 0, ce champ disparaît.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Champs de saisie [[Formules-de-calcul#Temps-d'activité-et-temps-moteur|temps moteur]]&lt;br /&gt;
Ce champ apparaît si le type de ressource de l'aéronef sélectionné est configuré pour utiliser un calcul de temps moteur différent du temps de vol.&lt;br /&gt;
&lt;br /&gt;
Lorsque le temps moteur est affiché en unité de temps '''heures minutes''':&lt;br /&gt;
*La saisie optimisée avec un clavier en ne nécessitant de saisir que les informations utiles : les deux points entre l'heure et les minutes ne doit pas être saisie.&lt;br /&gt;
*La saisie avec un écran tactile en affichant, à droite du champ, un pictogramme qu'il faut toucher pour faire apparaitre des zones de saisies dédiées.&lt;br /&gt;
&lt;br /&gt;
Si la durée inclut des jours, un champ numérique (avec les boutons '''+''' et '''–''') apparaît à gauche du champ de type time pour renseigner le nombre de jours. Lorsque la valeur atteint 0, ce champ disparaît.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Synchronisation d'une saisie avec Gesasso / [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]&lt;br /&gt;
Lors de la saisie d'une activité et lorsque la plateforme est configurée pour la synchronisation externe avec [[Interfaçage-OpenFlyers-et-Gesasso|Gesasso]] (ou [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]), le bouton de validation a deux affichages possibles :&lt;br /&gt;
&lt;br /&gt;
*'''Enregistrer''' : Si la ressource sélectionnée n'a pas de numéro d'immatriculation Gesasso valide, ou si l'un des pilotes ne dispose pas d'une licence FFVP valide, alors la synchronisation avec Gesasso (ou [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]) est ignorée dans ce cas.&lt;br /&gt;
&lt;br /&gt;
*'''Enregistrer et Synchroniser avec Gesasso''' : indique que les ressources et les pilotes sélectionnés remplissent les critères requis, et que la synchronisation avec Gesasso (ou [[Interfaçage-OpenFlyers-et-Carnet.aero|Carnet.aero]]) est effectuée après l'enregistrement de l'activité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Mécanismes d'alertes&lt;br /&gt;
*[[Formulaires#Surbrillance-jaune|Effet de surbrillance jaune]]&lt;br /&gt;
*[[Formulaires#Surbrillance-rouge|Effet de surbrillance rouge]]&lt;br /&gt;
*Des [[Présentation-générale-des-alertes|alertes]] bloquantes ou non bloquantes peuvent être affichées après l'envoi du formulaire nécessitant une action complémentaire de l'utilisateur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Page affichée par défaut après la saisie d'une activité&lt;br /&gt;
*Le planning lors d'une ouverture d'activité.&lt;br /&gt;
*La page du [[Gestion-des-activit%C3%A9s#Saisir-un-suivi-de-formation|saisie de progression]] lors d'une fermeture d'activité.&lt;br /&gt;
*A nouveau le formulaire de saisie d'activité lorsque l'activité précédemment saisie l'était en fermeture et que le terrain d'arrivée saisi était différent du terrain par défaut de la structure.&lt;br /&gt;
*Dans les autres cas, l'[[Gestion-de-la-comptabilité-côté-utilisateur#Extrait-de-compte|extrait de compte]] de la personne en première place. Si plusieurs comptes sont impactés, c'est le premier compte impacté de la personne qui est choisi.&lt;br /&gt;
*Si l'utilisateur connecté n'a pas le droit de visualiser le compte concerné, alors c'est le carnet de route qui est affiché.&lt;br /&gt;
&lt;br /&gt;
==Demander l'ajout d'un aérodrome==&lt;br /&gt;
Lors de la saisie du terrain de départ, ou d'arrivée, il se peut que le lieu que l'utilisateur souhaite saisir ne soit pas dans nos bases de données. Une proposition apparait alors :&lt;br /&gt;
&amp;lt;pre&amp;gt;XXXX ( Demander l'ajout du lieu à OpenFlyers )&amp;lt;/pre&amp;gt;&lt;br /&gt;
Il suffit à l'utilisateur de sélectionner cette option afin d'effectuer la demande d'ajout à OpenFlyers.&lt;br /&gt;
Cette option ne prend en compte que les lieux recensés par l'OACI ou la FFPLUM.&lt;br /&gt;
&lt;br /&gt;
Attention, pour demander l'ajout d'un lieu, il faut saisir uniquement le code OACI (code à 4 lettres) ou FFPLUM (code au format LF + 4 chiffres) du lieu.&lt;br /&gt;
&lt;br /&gt;
Une fois l'option sélectionnée, la demande est enregistrée par OpenFlyers, mais le lieu n'est pas ajouté immédiatement, il faut donc saisir temporairement un autre lieu.&lt;br /&gt;
&lt;br /&gt;
==Forcer la saisie d'une durée d'activité incompatible avec sa formule de calcul==&lt;br /&gt;
Un gestionnaire peut forcer la saisie d'un [[#La-différence-entre-le-temps-de-vol-calculé-et-le-temps-de-vol-saisi-est-de-:-X:XX-heure(s)|temps d'activité incompatible avec la formule de calcul]] associée au type ressource pour lequel on souhaite saisir l'activité.&lt;br /&gt;
&lt;br /&gt;
Pour cela, il doit :&lt;br /&gt;
*Saisir l'activité en modifiant le compteur d'arrivé de sorte à obtenir le temps d'activité souhaité.&lt;br /&gt;
*[[Gestion-des-ressources#Changer-la-valeur-du-compteur-en-cours|Changer la valeur du compteur en cours]] de la ressource.&lt;br /&gt;
&lt;br /&gt;
Dans le cas où plusieurs activités successives doivent être saisies, il est alors judicieux de ne mettre à jour le compteur de la ressource qu'une que toutes les activités ont été saisies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Signalement de navigabilité lors de la saisie d'activité ==&lt;br /&gt;
&lt;br /&gt;
Le formulaire de saisie d'activité permet de créer un signalement de navigabilité lié au vol saisi.&lt;br /&gt;
&lt;br /&gt;
Le bloc '''Signalement''' contient :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''Une case de certification'''.&lt;br /&gt;
&lt;br /&gt;
Si un des champs du bloc est renseigné, le signalement doit être complet : description, statut et certification. À la validation de l'activité, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
=Supprimer une activité=&lt;br /&gt;
Si l'activité à supprimer est validée, il faut utiliser la fonction d'[[#Annuler-une-activité-validée|annulation d'une activité validée]].&lt;br /&gt;
&lt;br /&gt;
Si l'activité à supprimer n'est pas validée, pour effectuer sa suppression il faut :&lt;br /&gt;
*[[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
*Cliquer sur l'icône correspondant à la ligne de la ressource et de la colonne '''Valider les activités sélectionnés'''. Si l'icône est grisée alors il n'y a aucune activité non validée.&lt;br /&gt;
*Dans le tableau qui va lister les activités, cliquer sur l'icône poubelle correspondant à l'activité à supprimer et confirmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Valider les activités d'une ressource désactivée ou n'ayant plus la saisie des activités=&lt;br /&gt;
Pour valider les activités d'une ressource désactivée ou n'ayant plus la saisie des activités de cochée, il existe 2 solutions :&lt;br /&gt;
*Si l'objectif c'est de clôturer la comptabilité et donc de valider toutes les écritures antérieure à une certaine date, alors la solution la plus simple est de valider toutes les écritures antérieures à cette date en suivant la procédure [[Utilisation-de-la-comptabilité#Valider-toutes-les-écritures|Valider toutes les écritures]].&lt;br /&gt;
*Si l'objectif est de contrôler, voir de modifier les activités liées à la ressource avant de réellement les valider, alors il faut réactiver temporairement la ressource pour qu'elle apparaisse dans '''Gestion &amp;gt; Activités &amp;gt; Activités &amp;gt; Liste''' et ainsi pouvoir contrôler et valider ses activités associées. Pour cela il faut :&lt;br /&gt;
**Aller dans '''Gestion &amp;gt; Ressources &amp;gt; Actives'''&lt;br /&gt;
**Décocher '''Réservable''' et '''Saisie d'activité''' d'une ressource existante&lt;br /&gt;
**Cocher '''Saisie d'activité''' pour la ressource dont on souhaite contrôler les activités puis les valider&lt;br /&gt;
**valider les activités en allant dans '''Gestion &amp;gt; Activités &amp;gt; Activités &amp;gt; Liste'''&lt;br /&gt;
**Revenir sur '''Gestion &amp;gt; Ressources &amp;gt; Actives'''&lt;br /&gt;
**Décocher '''Saisie d'activité''' pour cette ressource&lt;br /&gt;
**Re-cocher '''Réservable''' et '''Saisie d'activité''' pour la ressource qui devait être temporairement décochée&lt;br /&gt;
&lt;br /&gt;
=Valider une activité=&lt;br /&gt;
;Introduction&lt;br /&gt;
La validation des activités doit être effectuée à intervalle régulier comme préconisé dans le [[Bien-débuter-avec-OpenFlyers#Validation-des-écritures|workflow de validation des activités]].&lt;br /&gt;
&lt;br /&gt;
Lorsqu'il existe des écritures non validées qui datent de plus de 30 jours, un message d'alerte de configuration s'affiche indiquant ''[[Alertes-de-configuration#Il-y-a-des-activités-non-validées-qui-datent-de-plus-de-30-jours|Il y a des activités non validées qui datent de plus de 30 jours]]''.&lt;br /&gt;
&lt;br /&gt;
Option disponible pour la validation : [[Configuration#Regrouper-les-activités-en-une-facture-lors-de-la-validation|Regrouper les activités en une facture lors de la validation]]&lt;br /&gt;
&lt;br /&gt;
;Procédure pour valider une ou plusieurs activités&lt;br /&gt;
*[[Gestion-des-activités#Afficher-la-vue-d'ensemble-des-activités-selon-les-ressources|Afficher la vue d'ensemble des activités selon les ressources]].&lt;br /&gt;
*Cliquer sur l'icône correspondant à la ligne de la ressource et de la colonne '''Valider les activités sélectionnés'''. Si l'icône est grisée alors il n'y a aucune activité non validée.&lt;br /&gt;
*Sélectionner les lignes d'activités à valider en cochant la case à cocher de la ligne correspondante dans la colonne '''Pointer'''.&lt;br /&gt;
*Cliquer sur le bouton '''Pointer les activités sélectionnées (attention cette action est irréversible)'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas où une activité a été validée alors qu'elle ne devait pas l'être, il est toujours possible d'en [[#Annuler-une-activité-validée|annuler l'effet]].&lt;br /&gt;
&lt;br /&gt;
Dans le cas d'une activité incomplète (Pas de pilote ou pas de localisation d'arrivée ou de départ) l'activité ne peut pas être validée il est donc impossible de la pointer. Ce cas ne devrait arriver que pour les activités générées via [[Interfaçage-OpenFlyers-et-Charterware|l'interfaçage avec Charterware]], [[Interfaçage-OpenFlyers-et-ClickAndTakeoff|l'interfaçage avec ClickAndTakeoff]] ou [[Interfaçage-OpenFlyers-et-Foxtrot-Aviation|l'interfaçage avec Foxtrot Aviation]].&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Menu-de-navigation&amp;diff=14543</id>
		<title>Menu de navigation</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Menu-de-navigation&amp;diff=14543"/>
		<updated>2026-07-02T15:11:37Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Onglet Planning */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter le menu de navigation de la [[Accueil|version 4 d'OpenFlyers]].&lt;br /&gt;
&lt;br /&gt;
=Design adaptatif=&lt;br /&gt;
Le menu dispose d’une ergonomie adaptative. Sur écran écran moyen et petit écran (tablette et smartphone), il est masqué par défaut. On l’affiche en cliquant sur un bouton placé à gauche sous la top-bar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:menu-minimize.png|Menu minimisé&lt;br /&gt;
File:menu-minimize-open.png|Menu ouvert&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Droits=&lt;br /&gt;
Le contenu des univers et menus est accessible en fonction des droits attribués à chaque utilisateur. Ceux-si sont définis en fonction de chaque [[Gestion-des-profils|profil]].&lt;br /&gt;
&lt;br /&gt;
=Hiérarchie=&lt;br /&gt;
La hiérarchie du menu se décompose en :&lt;br /&gt;
*[[#Onglets|Onglets]]&lt;br /&gt;
*'''Menus'''&lt;br /&gt;
*'''Colonnes'''&lt;br /&gt;
*'''Items'''&lt;br /&gt;
&lt;br /&gt;
Au sein de chaque onglet, l’ordonnancement des menus et items de menus se fait par '''ordre alphabétique'''. Cette méthode universelle permet de ne pas privilégier un classement qui paraîtrait évident à certains utilisateurs mais pas à d’autres.&lt;br /&gt;
&lt;br /&gt;
[[File:Menu-hierarchie.jpeg]]&lt;br /&gt;
&lt;br /&gt;
=Nouvelle fonctionnalité=&lt;br /&gt;
*Une nouvelle fonctionnalité est signalée par le pictogramme N sur le menu contenant l'item de la nouvelle fonctionnalité et sur l'item lui-même.&lt;br /&gt;
*Dès lors que l'utilisateur aura consulté la page de la nouvelle fonctionnalité, le pictogramme disparaît.&lt;br /&gt;
&lt;br /&gt;
[[File:menu-new.png]]&lt;br /&gt;
&lt;br /&gt;
=Onglets=&lt;br /&gt;
Le menu se décompose en trois onglets, distincts chacun par une couleur qui lui est propre.&lt;br /&gt;
&lt;br /&gt;
[[File:menu-univers.png]]&lt;br /&gt;
&lt;br /&gt;
==Onglet Planning==&lt;br /&gt;
Cet onglet est l'onglet actif par défaut après une connexion à OpenFlyers. C'est depuis cet onglet que les utilisateurs peuvent effectuer l'ensemble des actions qui les concernent :&lt;br /&gt;
*Saisie des activités&lt;br /&gt;
*Consultation de compte (et approvisionnement)&lt;br /&gt;
*Docs&lt;br /&gt;
*Personnalisation des données utilisateurs (dont les validités)&lt;br /&gt;
*Réservations&lt;br /&gt;
*Outils d'aide à la préparation des vols dont [[Airmate]]&lt;br /&gt;
*Plannings des ressources&lt;br /&gt;
*Plannings de l'équipe&lt;br /&gt;
&lt;br /&gt;
==Onglet Gestion==&lt;br /&gt;
Cet onglet permet d'accéder aux fonctionnalités de gestion de la structure :&lt;br /&gt;
*Activités&lt;br /&gt;
*Achats&lt;br /&gt;
*Communication&lt;br /&gt;
*Comptes&lt;br /&gt;
*Rapports&lt;br /&gt;
*Ressources (dont la maintenance)&lt;br /&gt;
*Utilisateurs&lt;br /&gt;
*Ventes&lt;br /&gt;
&lt;br /&gt;
'''Attention''' : il est fondamental de suivre les [[Bien-débuter-avec-OpenFlyers#Accès-à-l'onglet-Gestion|recommandations pour l'accès à l'onglet Gestion]].&lt;br /&gt;
&lt;br /&gt;
==Onglet Admin==&lt;br /&gt;
Cet onglet permet d'accéder aux fonctionnalités de paramétrage de la structure :&lt;br /&gt;
*Comptes&lt;br /&gt;
*Logs&lt;br /&gt;
*Structure&lt;br /&gt;
*Transferts&lt;br /&gt;
*Types d'activités&lt;br /&gt;
*Types de ressources&lt;br /&gt;
*Utilisateurs&lt;br /&gt;
*Ventes&lt;br /&gt;
&lt;br /&gt;
'''Attention''' : il est fondamental de suivre les [[Bien-débuter-avec-OpenFlyers#Accès-à-l'onglet-Admin|recommandations pour l'accès à l'onglet Admin]].&lt;br /&gt;
&lt;br /&gt;
=Rapports=&lt;br /&gt;
Chaque rapport est accessible depuis le menu correspondant au thème du rapport. Par exemple, les rapports relatifs aux activités sont accessibles via le menu '''Gestion › Activités › Rapports'''.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Accueil&amp;diff=14542</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Accueil&amp;diff=14542"/>
		<updated>2026-07-02T15:07:28Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Documentation Utilisateurs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bienvenue sur la [[Toutes les documentations|documentation]] d''''OpenFlyers version 4'''.&lt;br /&gt;
&lt;br /&gt;
You can also access to our [[OF-doc-en:Main-Page|english documentation]].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
=Présentation=&lt;br /&gt;
[https://www.youtube.com/watch?v=-lqPyrtf1i4 Présentation vidéo OpenFlyers]&lt;br /&gt;
&lt;br /&gt;
OpenFlyers :&lt;br /&gt;
*[[Introduction]]&lt;br /&gt;
*[[Présentation d'OpenFlyers 4]]&lt;br /&gt;
*[[Compte client OpenFlyers et modèle commercial]]&lt;br /&gt;
**[[Compte-client-OpenFlyers-et-modèle-commercial#Plateforme-supplémentaire-de-test-(bac-à-sable)|Plateforme supplémentaire de test (bac à sable)]]&lt;br /&gt;
*[[Plateforme de démonstration]]&lt;br /&gt;
*[[Bien communiquer avec OpenFlyers]]&lt;br /&gt;
*[[Formations OpenFlyers]]&lt;br /&gt;
*[[Historique des versions]]&lt;br /&gt;
*[[Normes et réglementations]]&lt;br /&gt;
*[[Technologies de géolocalisation aéronautique]]&lt;br /&gt;
&lt;br /&gt;
Installation :&lt;br /&gt;
*[[Créer une plateforme OpenFlyers pour sa structure]]&lt;br /&gt;
*[[Bien débuter avec OpenFlyers]]&lt;br /&gt;
*[[Compatibilité des navigateurs]]&lt;br /&gt;
*[[Paiement en ligne|Paiement en ligne (TPE virtuel)]]&lt;br /&gt;
&lt;br /&gt;
[[Rapporter un bug]]&lt;br /&gt;
&lt;br /&gt;
[[Trucs et astuces]] :&lt;br /&gt;
*[[Kiosque PC|Mettre en place un PC kiosque]]&lt;br /&gt;
*[[Réseau Internet hybride|Mettre en place un réseau internet hybride]]&lt;br /&gt;
&lt;br /&gt;
=Tutoriels vidéos=&lt;br /&gt;
Les vidéos tutorielles d'OpenFlyers sont disponibles sur la [https://www.youtube.com/user/OpenFlyersFr chaîne YouTube OpenFlyers].&lt;br /&gt;
&lt;br /&gt;
*[https://www.youtube.com/watch?v=X9bIEzxXIDw&amp;amp;ab_channel=OpenFlyers Créer une plateforme bac à sable]&lt;br /&gt;
;Ergonomie&lt;br /&gt;
*[https://www.youtube.com/watch?v=kUvWhUXyC5Q&amp;amp;ab_channel=OpenFlyers Ouvrir dans un nouvel onglet]&lt;br /&gt;
*[https://www.youtube.com/watch?v=qNACMM6vv7sI Utilisation du menu]&lt;br /&gt;
*[https://www.youtube.com/watch?v=YylSewaTm4c Utilisation des tableaux]&lt;br /&gt;
&lt;br /&gt;
;Module comptabilité&lt;br /&gt;
*Import des relevés bancaires :&lt;br /&gt;
**[https://www.youtube.com/watch?v=6te0uw8j9mw Agréger un compte bancaire]&lt;br /&gt;
**[https://www.youtube.com/watch?v=VVCdPWlwglM&amp;amp;ab_channel=OpenFlyers Paramétrer les règles d'imputation pour l'import des relevés bancaires]&lt;br /&gt;
*Factures fournisseurs :&lt;br /&gt;
**[https://www.youtube.com/watch?v=QVUgYEfqDk0 Saisir une facture fournisseur]&lt;br /&gt;
**[https://www.youtube.com/watch?v=Mx8xxsWdaC8 Analyse automatisée des factures fournisseurs]&lt;br /&gt;
&lt;br /&gt;
*[https://www.youtube.com/watch?v=_hjOHHXP_ig Clôturer la comptabilité]&lt;br /&gt;
*[https://www.youtube.com/watch?v=Bgb32Ay6TVU Lettrer des écritures comptables]&lt;br /&gt;
*[https://www.youtube.com/watch?v=8J-AEtHrPqg Paiement à la réservation]&lt;br /&gt;
*[https://www.youtube.com/watch?v=pjuE6h0yXJA&amp;amp;ab_channel=OpenFlyers Saisir un flux]&lt;br /&gt;
&lt;br /&gt;
;Module formation&lt;br /&gt;
*[https://www.youtube.com/watch?v=BpPGA6sSVi0 Paramétrer une formation]&lt;br /&gt;
*[https://www.youtube.com/watch?v=zHD3c7rUKPw Utiliser le livret de formation]&lt;br /&gt;
&lt;br /&gt;
;Module planning&lt;br /&gt;
*[https://www.youtube.com/watch?v=tzM6hyOIpnc Utilisation du planning de réservation]&lt;br /&gt;
&lt;br /&gt;
=Documentation Administrateurs=&lt;br /&gt;
[[Compte-client-OpenFlyers-et-modèle-commercial#Plateforme-supplémentaire-de-test|Créer une plateforme supplémentaire de test (bac à sable)]]&lt;br /&gt;
&lt;br /&gt;
[[Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Paramétrage]]&lt;br /&gt;
&lt;br /&gt;
[[Champs métiers]]&lt;br /&gt;
&lt;br /&gt;
[[Formules de calcul]]&lt;br /&gt;
&lt;br /&gt;
Alertes :&lt;br /&gt;
*[[Alertes administrateur|Alertes administrateur]]&lt;br /&gt;
*[[Alertes de configuration]]&lt;br /&gt;
*[[Alertes utilisateur]]&lt;br /&gt;
&lt;br /&gt;
Activité :&lt;br /&gt;
*[[Paramétrage des activités]]&lt;br /&gt;
*[[Gestion des activités]]&lt;br /&gt;
*[[Gestion des types d'activités]]&lt;br /&gt;
&lt;br /&gt;
[[Communications]]&lt;br /&gt;
&lt;br /&gt;
Comptabilité :&lt;br /&gt;
*Documentation générale :&lt;br /&gt;
**[[Comptabilité|Généralités sur la comptabilité]]&lt;br /&gt;
**[[Conseils spécifiques pour la comptabilité]]&lt;br /&gt;
**[[Écritures comptables]]&lt;br /&gt;
**[[Gestion des écritures comptables]]&lt;br /&gt;
*Configuration et utilisation :&lt;br /&gt;
**[[Configuration de la comptabilité]]&lt;br /&gt;
**[[Compte de résultat]]&lt;br /&gt;
**[[Exporter un relevé bancaire depuis un site internet de banque]]&lt;br /&gt;
**[[Gestion des budgets]]&lt;br /&gt;
**[[Import dans un logiciel comptable tiers]]&lt;br /&gt;
**[[Utilisation de la comptabilité]]&lt;br /&gt;
*Documentation de référence :&lt;br /&gt;
**[[OF-doc-en::Accounting-export-template-list|Modèle de format d'export comptable]]&lt;br /&gt;
**[[Modèles de format d'import de relevé bancaire]]&lt;br /&gt;
**[[Modèle de facture ODT|Template ODT pour les factures]]&lt;br /&gt;
&lt;br /&gt;
[[Contrôle des accès]] :&lt;br /&gt;
*[[Installation armoire à clés]]&lt;br /&gt;
*[[Gestion armoire à clés]]&lt;br /&gt;
*[[FAQ armoire à clés]]&lt;br /&gt;
&lt;br /&gt;
[[Données]] et [[Règlement Général sur la Protection des Données|Règlement Général sur la Protection des Données (RGPD)]]&lt;br /&gt;
&lt;br /&gt;
Documents :&lt;br /&gt;
*[[Gestion des documents]]&lt;br /&gt;
&lt;br /&gt;
[[Facturation des clients]] :&lt;br /&gt;
*[[Gestion de la facturation des activités]]&lt;br /&gt;
*[[Gestion de la facturation des validités]]&lt;br /&gt;
*[[Gestion des produits et des ventes]]&lt;br /&gt;
&lt;br /&gt;
Facturation fournisseur :&lt;br /&gt;
*[[Exporter les factures bancaires depuis un site internet de banque]]&lt;br /&gt;
*[[Gestion des achats]]&lt;br /&gt;
&lt;br /&gt;
Formation :&lt;br /&gt;
*[[Gestion des formations]]&lt;br /&gt;
*[[Utilisation des formations]]&lt;br /&gt;
&lt;br /&gt;
Interfaçages :&lt;br /&gt;
*[[Interfaçage OpenFlyers et Charterware]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et ClickAndTakeoff]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et Foxtrot Aviation]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et Gesasso]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et Skyzen]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et SMILE Formation]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et Super PDP]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et Teltonika]]&lt;br /&gt;
&lt;br /&gt;
[[Logs]]&lt;br /&gt;
&lt;br /&gt;
Maintenance :&lt;br /&gt;
*[[Maintenance aéronautique]]&lt;br /&gt;
*[[Suivi-de-maintenance|Suivi de maintenance]]&lt;br /&gt;
*[[Suivi des remarques de maintenance]]&lt;br /&gt;
&lt;br /&gt;
Rapports :&lt;br /&gt;
*[[AERAL]]&lt;br /&gt;
*[[Bibliothèque des rapports]]&lt;br /&gt;
*[[Fonctionnement du moteur des rapports]]&lt;br /&gt;
*[[Gestion des rapports]]&lt;br /&gt;
&lt;br /&gt;
Réservations externes :&lt;br /&gt;
*[[Configuration des réservations externes]]&lt;br /&gt;
*[[Utilisation des réservations externes]]&lt;br /&gt;
&lt;br /&gt;
Réservations internes :&lt;br /&gt;
*[[Configuration des réservations internes]]&lt;br /&gt;
*[[Utilisation des réservations internes sur l'interface web]]&lt;br /&gt;
&lt;br /&gt;
[[Gestion des ressources|Ressources]]&lt;br /&gt;
&lt;br /&gt;
[[Gestion des stocks|Stocks]]&lt;br /&gt;
&lt;br /&gt;
[[Tableurs]]&lt;br /&gt;
&lt;br /&gt;
Utilisateurs :&lt;br /&gt;
*[[Gestion des utilisateurs]]&lt;br /&gt;
*[[Gestion des profils]]&lt;br /&gt;
*[[Liste de diffusion]]&lt;br /&gt;
*[[Mailing]]&lt;br /&gt;
*[[Suivi des emails]]&lt;br /&gt;
&lt;br /&gt;
[[Validités]] :&lt;br /&gt;
*[[Paramétrage des validités]]&lt;br /&gt;
&lt;br /&gt;
Documentation Webmasters et Développeurs :&lt;br /&gt;
*[[API OpenFlyers]]&lt;br /&gt;
*[[Interfaçage OpenFlyers et armoire à clés]]&lt;br /&gt;
*[[OpenSSL]]&lt;br /&gt;
*[[Récupération des vols par un logiciel tiers]]&lt;br /&gt;
*[[Structure de la base de données]]&lt;br /&gt;
&lt;br /&gt;
=Documentation Utilisateurs=&lt;br /&gt;
[[Actions]]&lt;br /&gt;
&lt;br /&gt;
[[Gestion des activités|Activités]] :&lt;br /&gt;
*[[Carnet de route]]&lt;br /&gt;
*[[Carnet de vol]]&lt;br /&gt;
*[[Signalements]]&lt;br /&gt;
&lt;br /&gt;
Alertes et messages :&lt;br /&gt;
*[[Présentation générale des alertes|Aspect]]&lt;br /&gt;
*[[Alertes de configuration]]&lt;br /&gt;
*[[Alertes utilisateur]]&lt;br /&gt;
&lt;br /&gt;
[[Airmate]]&lt;br /&gt;
&lt;br /&gt;
[[Connexion]]&lt;br /&gt;
&lt;br /&gt;
[[Documents]]&lt;br /&gt;
&lt;br /&gt;
[[Ergonomie]] :&lt;br /&gt;
*[[Barre supérieure]]&lt;br /&gt;
*[[Boîtes de dialogue]]&lt;br /&gt;
*[[Calendrier]]&lt;br /&gt;
*[[Formulaires]]&lt;br /&gt;
*Menu de navigation :&lt;br /&gt;
**[[Menu de navigation|Menu de l'interface légère]]&lt;br /&gt;
&lt;br /&gt;
[[Envoi des emails]]&lt;br /&gt;
&lt;br /&gt;
[[Éphémérides]]&lt;br /&gt;
&lt;br /&gt;
[[Fiche personnelle]]&lt;br /&gt;
&lt;br /&gt;
[[Gestion de la comptabilité côté utilisateur]]&lt;br /&gt;
&lt;br /&gt;
Interfaçages :&lt;br /&gt;
*[[Interfaçage OpenFlyers et Carnet.aero]]&lt;br /&gt;
&lt;br /&gt;
[[Navigateurs]]&lt;br /&gt;
&lt;br /&gt;
Rapports :&lt;br /&gt;
*[[Bibliothèque des rapports]]&lt;br /&gt;
&lt;br /&gt;
Réservations :&lt;br /&gt;
*[[Gestion des disponibilités|Disponibilités]]&lt;br /&gt;
*[[Panier de réservation]]&lt;br /&gt;
*[[Utilisation des réservations internes sur l'interface web]]&lt;br /&gt;
*[[Utilisation des réservations internes sur l'appli mobile]]&lt;br /&gt;
&lt;br /&gt;
[[Utilisation des réservations externes|Réservations externes]]&lt;br /&gt;
&lt;br /&gt;
[[Validités]]&lt;br /&gt;
&lt;br /&gt;
[[Gestion des ventes côté utilisateur]]&lt;br /&gt;
&lt;br /&gt;
=[[Appli OpenFlyers]]=&lt;br /&gt;
&lt;br /&gt;
=[[Glossaire]]=&lt;br /&gt;
&lt;br /&gt;
=FAQ=&lt;br /&gt;
*[[FAQ administrateur]]&lt;br /&gt;
*[[FAQ AeroBox]]&lt;br /&gt;
*[[FAQ armoire à clés]]&lt;br /&gt;
*[[FAQ client]]&lt;br /&gt;
*[[FAQ comptabilité]]&lt;br /&gt;
*[[FAQ export]]&lt;br /&gt;
*[[Liste-de-diffusion#Questions-fréquentes|FAQ liste de diffusion]]&lt;br /&gt;
*[[FAQ utilisateur]]&lt;br /&gt;
*[[Interfaçage-OpenFlyers-et-Teltonika#FAQ|FAQ Teltonika]]&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14541</id>
		<title>Signalements</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Signalements&amp;diff=14541"/>
		<updated>2026-07-02T15:06:02Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: Created page with &amp;quot;__TOC__  = Présentation =  Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.  Un signalement contient : * la ressource concernée. * le problème signalé. * le statut de l'aéronef. * l'état du signalement. * le déclarant, la date de signalement et l'adresse IP. * le vol associé. * les commentaires de suivi.  Les statuts d'aéronef disponibles sont : * '''Opérationnel''' : l'aéronef reste exploitable. * '''Restre...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
Les signalements permettent de déclarer, suivre et clôturer un problème constaté sur un aéronef.&lt;br /&gt;
&lt;br /&gt;
Un signalement contient :&lt;br /&gt;
* la ressource concernée.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le déclarant, la date de signalement et l'adresse IP.&lt;br /&gt;
* le vol associé.&lt;br /&gt;
* les commentaires de suivi.&lt;br /&gt;
&lt;br /&gt;
Les statuts d'aéronef disponibles sont :&lt;br /&gt;
* '''Opérationnel''' : l'aéronef reste exploitable.&lt;br /&gt;
* '''Restreint''' : l'aéronef reste exploitable avec restriction.&lt;br /&gt;
* '''Bloquant''' : l'aéronef ne doit pas être exploité avant traitement.&lt;br /&gt;
&lt;br /&gt;
Les états de signalement disponibles sont :&lt;br /&gt;
* '''Ouvert'''.&lt;br /&gt;
* '''Fermé'''.&lt;br /&gt;
&lt;br /&gt;
= Accéder aux signalements =&lt;br /&gt;
&lt;br /&gt;
Les signalements sont accessibles depuis :&lt;br /&gt;
* '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements'''.&lt;br /&gt;
* le formulaire de saisie d'activité, lorsqu'un signalement est saisi en même temps que l'activité.&lt;br /&gt;
* le carnet de route ou le carnet de vol, via l'action de modification d'une activité validée, qui permet d'ajouter un signalement sans modifier l'activité validée.&lt;br /&gt;
&lt;br /&gt;
La page '''Signalements''' affiche la liste des signalements avec les colonnes suivantes :&lt;br /&gt;
* Ressource.&lt;br /&gt;
* Problème signalé.&lt;br /&gt;
* Statut de l'aéronef.&lt;br /&gt;
* État.&lt;br /&gt;
* Déclarant.&lt;br /&gt;
* Signalé le.&lt;br /&gt;
* Dernier commentaire.&lt;br /&gt;
* Actions, pour les utilisateurs ayant le profil « Gestion des ressources ».&lt;br /&gt;
&lt;br /&gt;
= Filtrer les signalements =&lt;br /&gt;
&lt;br /&gt;
La liste des signalements peut être filtrée par :&lt;br /&gt;
* ressource.&lt;br /&gt;
* état du signalement (Ouvert, Fermé).&lt;br /&gt;
* statut de l'aéronef (Opérationnel, Restreint, Bloquant).&lt;br /&gt;
&lt;br /&gt;
= Créer un signalement depuis une activité =&lt;br /&gt;
&lt;br /&gt;
Lors de la saisie ou de la modification d'une activité, Il y a un colonne permet de renseigner :&lt;br /&gt;
* '''Problème signalé'''.&lt;br /&gt;
* '''Statut de l'aéronef'''.&lt;br /&gt;
* '''la case de certification''' : '''Je, soussigné ... certifie l'exactitude des informations saisies.'''&lt;br /&gt;
&lt;br /&gt;
Si l'un de ces champs est renseigné, tous les champs du signalement deviennent obligatoires. Le signalement doit donc contenir une description, un statut et la certification.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'activité est enregistrée, le signalement est créé et associé au vol.&lt;br /&gt;
&lt;br /&gt;
= Créer un signalement sans vol =&lt;br /&gt;
&lt;br /&gt;
Depuis la page '''Planning &amp;gt; Activités &amp;gt; Activités &amp;gt; Signalements''', cliquer sur le bouton '''Nouveau signalement sans vol'''.&lt;br /&gt;
&lt;br /&gt;
Le formulaire demande :&lt;br /&gt;
* la ressource.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Un signalement créé de cette manière n'est pas rattaché à un vol.&lt;br /&gt;
&lt;br /&gt;
= Consulter un signalement =&lt;br /&gt;
&lt;br /&gt;
L'ouverture d'un signalement affiche :&lt;br /&gt;
* les informations du vol associé, s'il existe.&lt;br /&gt;
* le problème signalé.&lt;br /&gt;
* le statut de l'aéronef.&lt;br /&gt;
* la certification.&lt;br /&gt;
* l'historique des commentaires.&lt;br /&gt;
&lt;br /&gt;
Chaque commentaire indique :&lt;br /&gt;
* la date.&lt;br /&gt;
* l'utilisateur.&lt;br /&gt;
* l'adresse IP.&lt;br /&gt;
* le commentaire.&lt;br /&gt;
* l'état du signalement.&lt;br /&gt;
* le statut de l'aéronef, s'il a été modifié.&lt;br /&gt;
* la signature d'approbation de navigabilité, lorsqu'elle est requise.&lt;br /&gt;
&lt;br /&gt;
= Ajouter un commentaire et clôturer un signalement =&lt;br /&gt;
&lt;br /&gt;
Sur la fiche d'un signalement, le bloc '''Ajouter un commentaire''' permet de saisir :&lt;br /&gt;
* un commentaire.&lt;br /&gt;
* l'état du signalement : '''Ouvert''' ou '''Fermé'''.&lt;br /&gt;
* le statut de l'aéronef si le signalement reste ouvert.&lt;br /&gt;
* la certification.&lt;br /&gt;
&lt;br /&gt;
Les champs sont obligatoires.&lt;br /&gt;
&lt;br /&gt;
Lorsque l'état est '''Fermé''', ou lorsque le statut de l'aéronef est modifié, la signature d'approbation de navigabilité est affichée et enregistrée dans la base de données.&lt;br /&gt;
&lt;br /&gt;
= Signature d'approbation de navigabilité =&lt;br /&gt;
&lt;br /&gt;
La signature d'approbation de navigabilité est paramétrée dans :&lt;br /&gt;
&lt;br /&gt;
'''Admin &amp;gt; Structure &amp;gt; Paramétrage &amp;gt; Activités'''&lt;br /&gt;
&lt;br /&gt;
Elle peut contenir les variables suivantes :&lt;br /&gt;
* `%FIRSTNAME` : prénom de l'utilisateur connecté.&lt;br /&gt;
* `%LASTNAME` : nom de l'utilisateur connecté.&lt;br /&gt;
&lt;br /&gt;
Le texte par défaut est :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Certifies that the work specified, except as otherwise specified, was carried out in accordance with Part-ML, and in respect to that work, the aircraft is considered ready for release to service.&lt;br /&gt;
&lt;br /&gt;
%FIRSTNAME %LASTNAME - N° licence Part66&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Affichage sur le planning =&lt;br /&gt;
&lt;br /&gt;
Sur le planning, une pastille colorée peut apparaître devant le nom d'une ressource aéronef physique. Il représente le statut le plus restrictif parmi les signalements ouverts de l'aéronef :&lt;br /&gt;
* vert foncé : aucun signalement ouvert.&lt;br /&gt;
* vert clair : signalement ouvert avec statut '''Opérationnel'''.&lt;br /&gt;
* orange : signalement ouvert avec statut '''Restreint'''.&lt;br /&gt;
* rouge : signalement ouvert avec statut '''Bloquant'''.&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Structure-de-la-base-de-donn%C3%A9es&amp;diff=14540</id>
		<title>Structure de la base de données</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Structure-de-la-base-de-donn%C3%A9es&amp;diff=14540"/>
		<updated>2026-07-02T14:21:30Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Structure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Schéma de la structure de la base de données=&lt;br /&gt;
*[[Media:OpenFlyers_database_schema.png|Lien vers schéma fichier .png]]&lt;br /&gt;
&lt;br /&gt;
=Structure=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
create table account&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    creation_date    date                          null,&lt;br /&gt;
    name             text                          null,&lt;br /&gt;
    export_account   varchar(255)                  null,&lt;br /&gt;
    activated        tinyint unsigned    default 1 not null,&lt;br /&gt;
    category         tinyint unsigned    default 0 null,&lt;br /&gt;
    account_type     tinyint unsigned    default 0 null,&lt;br /&gt;
    owner_id         int unsigned        default 0 not null,&lt;br /&gt;
    payment_allowed  tinyint(1)          default 0 null,&lt;br /&gt;
    budget_id        int unsigned                  null,&lt;br /&gt;
    order_num        int                           null,&lt;br /&gt;
    accounting_id    int unsigned                  null,&lt;br /&gt;
    deactivated_date datetime                      null,&lt;br /&gt;
    group_sales      tinyint(1)          default 0 not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of account';&lt;br /&gt;
&lt;br /&gt;
create index idx_owner_id&lt;br /&gt;
    on account (owner_id);&lt;br /&gt;
&lt;br /&gt;
create table account_entry&lt;br /&gt;
(&lt;br /&gt;
    id                    int auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flow_id               int                          null,&lt;br /&gt;
    account_date          datetime                     null,&lt;br /&gt;
    account_id            int                          null,&lt;br /&gt;
    credit                decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    debit                 decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    payment_type          int unsigned                 null,&lt;br /&gt;
    payment_description   text                         null,&lt;br /&gt;
    person_delivery_id    int unsigned                 null,&lt;br /&gt;
    comments              text                         null,&lt;br /&gt;
    validated             int            default 0     null,&lt;br /&gt;
    exported              int            default 0     null,&lt;br /&gt;
    registration_date     datetime                     null,&lt;br /&gt;
    budget_id             int unsigned                 null,&lt;br /&gt;
    product_id            int unsigned                 null,&lt;br /&gt;
    signature             varchar(56)                  null,&lt;br /&gt;
    signature_date        bigint unsigned              null,&lt;br /&gt;
    lettering             int                          null,&lt;br /&gt;
    lettering_date        datetime                     null,&lt;br /&gt;
    flow_reversal_id      int unsigned                 null,&lt;br /&gt;
    transaction_id        text                         null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of account entries';&lt;br /&gt;
&lt;br /&gt;
create table account_link&lt;br /&gt;
(&lt;br /&gt;
    account_id        int unsigned default 0 not null,&lt;br /&gt;
    linked_account_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (account_id, linked_account_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table account_type&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                   varchar(255)                  null,&lt;br /&gt;
    category               tinyint unsigned    default 0 null,&lt;br /&gt;
    activated              tinyint(1)          default 1 null,&lt;br /&gt;
    order_num              int                           null,&lt;br /&gt;
    accounting_id          int unsigned                  null,&lt;br /&gt;
    export_account_pattern varchar(255)                  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table account_type_profile&lt;br /&gt;
(&lt;br /&gt;
    account_type_id int unsigned    not null,&lt;br /&gt;
    profile_id      bigint unsigned not null,&lt;br /&gt;
    primary key (account_type_id, profile_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'linked account type field and profile';&lt;br /&gt;
&lt;br /&gt;
create table accounting&lt;br /&gt;
(&lt;br /&gt;
    id                int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name              varchar(255)           null,&lt;br /&gt;
    unit_name         varchar(255)           null,&lt;br /&gt;
    symbol            varchar(255)           null,&lt;br /&gt;
    format            tinyint unsigned       null,&lt;br /&gt;
    decimal_precision int unsigned default 2 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table accounting_profile&lt;br /&gt;
(&lt;br /&gt;
    accounting_id int unsigned    not null,&lt;br /&gt;
    profile_id    bigint unsigned not null,&lt;br /&gt;
    primary key (accounting_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table activity_type&lt;br /&gt;
(&lt;br /&gt;
    id                                 bigint unsigned not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                               varchar(255)             null,&lt;br /&gt;
    order_num                          int                      null,&lt;br /&gt;
    activated                          tinyint(1)      default 1 not null,&lt;br /&gt;
    color                              int unsigned             null,&lt;br /&gt;
    training                           tinyint(1)      default 0 not null,&lt;br /&gt;
    previous_activity_type_id          bigint unsigned          null,&lt;br /&gt;
    previous_activity_default_duration int unsigned             null,&lt;br /&gt;
    next_activity_type_id              bigint unsigned          null,&lt;br /&gt;
    next_activity_default_duration     int unsigned             null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of flight type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft&lt;br /&gt;
(&lt;br /&gt;
    id                         int unsigned default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    ref_date                   datetime               null,&lt;br /&gt;
    ref_hours                  int                    null,&lt;br /&gt;
    ref_engine_hours           int                    null,&lt;br /&gt;
    inspection_date            datetime               null,&lt;br /&gt;
    inspection_time            int                    null,&lt;br /&gt;
    inspection_engine_time     int                    null,&lt;br /&gt;
    tolerance_time             int unsigned default 6000 null,&lt;br /&gt;
    last_counter               int                    null,&lt;br /&gt;
    interval_visit_calendar    varchar(255) default '50 h' null,&lt;br /&gt;
    interval_visit_time        varchar(255) default '50 h' null,&lt;br /&gt;
    interval_visit_engine_time varchar(255) default '50 h' null,&lt;br /&gt;
    time_alert1                int          default 6000 null,&lt;br /&gt;
    time_alert2                int          default 0 null,&lt;br /&gt;
    time_alert3                int          default -3000 null,&lt;br /&gt;
    engine_time_alert1         int          default 6000 null,&lt;br /&gt;
    engine_time_alert2         int          default 0 null,&lt;br /&gt;
    engine_time_alert3         int          default 0 null,&lt;br /&gt;
    day_alert1                 smallint     default 15 null,&lt;br /&gt;
    day_alert2                 smallint     default 0 null,&lt;br /&gt;
    day_alert3                 smallint     default -8 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'all aircrafts of all airclubs';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type&lt;br /&gt;
(&lt;br /&gt;
    id                      int unsigned                 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_time_formula     varchar(255) default '%duration' null,&lt;br /&gt;
    counter_state           tinyint      default -1      not null,&lt;br /&gt;
    tolerance               int          default 0       null,&lt;br /&gt;
    autonomy                int          default 5990    null,&lt;br /&gt;
    true_air_speed          int unsigned default 0       not null,&lt;br /&gt;
    digit_counter_number    tinyint unsigned default 4   not null,&lt;br /&gt;
    engine_duration_formula varchar(255)                 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'types of aircraft';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_allowed_status&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned not null,&lt;br /&gt;
    place_num        int unsigned null,&lt;br /&gt;
    status_id        int unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of allowed functions for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_mandatory_flight_type&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned    not null,&lt;br /&gt;
    activity_type_id bigint unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of compulsory flight type for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_uncomp_flight_type&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned    not null,&lt;br /&gt;
    activity_type_id bigint unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of uncompatible flight type for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table aircraft_type_validity_type&lt;br /&gt;
(&lt;br /&gt;
    aircraft_type_id int unsigned          not null,&lt;br /&gt;
    validity_type_id int unsigned          not null,&lt;br /&gt;
    check_num        int unsigned default 0 not null,&lt;br /&gt;
    primary key (aircraft_type_id, validity_type_id, check_num)&lt;br /&gt;
)&lt;br /&gt;
    comment 'types of qualif required for each aircraft type';&lt;br /&gt;
&lt;br /&gt;
create table allocation_rule&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    title      varchar(255)         not null,&lt;br /&gt;
    account_id int                  not null,&lt;br /&gt;
    keyword    varchar(255)         null,&lt;br /&gt;
    order_num  int                  not null,&lt;br /&gt;
    amount     tinyint(1)           not null,&lt;br /&gt;
    mandatory  tinyint(1) default 0 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table balance&lt;br /&gt;
(&lt;br /&gt;
    account_id      int unsigned                   not null,&lt;br /&gt;
    balance_date_id int unsigned                   not null,&lt;br /&gt;
    debit           decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    credit          decimal(15, 5) default 0.00000 not null,&lt;br /&gt;
    primary key (account_id, balance_date_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table balance_date&lt;br /&gt;
(&lt;br /&gt;
    id           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    balance_date datetime null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    booking_group_id int unsigned               null,&lt;br /&gt;
    start_date       datetime                   null,&lt;br /&gt;
    end_date         datetime                   null,&lt;br /&gt;
    is_pinned        tinyint unsigned default 0 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'records all the slots of all aircrafts of all airclubs';&lt;br /&gt;
&lt;br /&gt;
create table booking_account_entry&lt;br /&gt;
(&lt;br /&gt;
    booking_id            int unsigned default 0 not null,&lt;br /&gt;
    account_entry_flow_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (booking_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_activity_type&lt;br /&gt;
(&lt;br /&gt;
    booking_id       int unsigned    not null,&lt;br /&gt;
    activity_type_id bigint unsigned not null,&lt;br /&gt;
    primary key (booking_id, activity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_person&lt;br /&gt;
(&lt;br /&gt;
    booking_id int unsigned not null,&lt;br /&gt;
    person_id  int unsigned not null,&lt;br /&gt;
    place_num  int unsigned null,&lt;br /&gt;
    status_id  int unsigned null,&lt;br /&gt;
    primary key (booking_id, person_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_resource&lt;br /&gt;
(&lt;br /&gt;
    booking_id  int unsigned default 0 not null,&lt;br /&gt;
    resource_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (booking_id, resource_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table booking_training_program&lt;br /&gt;
(&lt;br /&gt;
    booking_group_id    int unsigned not null,&lt;br /&gt;
    training_program_id int unsigned not null,&lt;br /&gt;
    primary key (booking_group_id, training_program_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table budget&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    group_id    int unsigned not null,&lt;br /&gt;
    name        varchar(255) null,&lt;br /&gt;
    order_num   int          null,&lt;br /&gt;
    export_code varchar(255) null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table budget_group&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name      varchar(255) null,&lt;br /&gt;
    order_num int          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table business_field&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    variable                 varchar(255)          null,&lt;br /&gt;
    label                    varchar(255)          not null,&lt;br /&gt;
    value_type               varchar(40)           not null,&lt;br /&gt;
    category                 varchar(255)          not null,&lt;br /&gt;
    order_num                int                   not null,&lt;br /&gt;
    dsn                      varchar(20) default 'customer' null,&lt;br /&gt;
    compulsory_fill          tinyint(1)  default 0 null,&lt;br /&gt;
    linked_category          varchar(255)          null,&lt;br /&gt;
    linked_business_field_id int unsigned          null,&lt;br /&gt;
    linked_field_name        varchar(255)          null,&lt;br /&gt;
    max_display              int         default -1 null,&lt;br /&gt;
    formula                  text                  null,&lt;br /&gt;
    default_value            text                  null,&lt;br /&gt;
    placeholder              text                  null,&lt;br /&gt;
    access_level_required    tinyint     default 0 not null,&lt;br /&gt;
    user_access_mode         tinyint(1)  default 0 not null,&lt;br /&gt;
    unique (variable)&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of extra form field';&lt;br /&gt;
&lt;br /&gt;
create table business_field_content&lt;br /&gt;
(&lt;br /&gt;
    category_id       int unsigned           not null,&lt;br /&gt;
    business_field_id int unsigned default 0 not null,&lt;br /&gt;
    person_id         int unsigned default 0 not null,&lt;br /&gt;
    content           text                   null,&lt;br /&gt;
    placeholder       text                   null,&lt;br /&gt;
    primary key (category_id, business_field_id, person_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'content of extra form field';&lt;br /&gt;
&lt;br /&gt;
create table business_field_group&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label     varchar(255) null,&lt;br /&gt;
    order_num int          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table criteria&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label     varchar(255)                   not null,&lt;br /&gt;
    predicate text                           not null,&lt;br /&gt;
    order_num int                            null,&lt;br /&gt;
    dsn       varchar(20) default 'customer' null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table criteria_profile&lt;br /&gt;
(&lt;br /&gt;
    criteria_id int unsigned    not null,&lt;br /&gt;
    profile_id  bigint unsigned not null,&lt;br /&gt;
    primary key (criteria_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table customer_bill_entry&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flow_id               int unsigned                   null,&lt;br /&gt;
    account_entry_id      int unsigned                   null,&lt;br /&gt;
    account_entry_flow_id int unsigned                   null,&lt;br /&gt;
    owner_category        int unsigned                   null,&lt;br /&gt;
    owner_id              int unsigned                   null,&lt;br /&gt;
    customer_bill_id      int unsigned                   null,&lt;br /&gt;
    product_id            int unsigned                   null,&lt;br /&gt;
    qty                   decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    unit_price            decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    debit                 decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    credit                decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    bill_date             datetime                       null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on customer_bill_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_id&lt;br /&gt;
    on customer_bill_entry (account_entry_id);&lt;br /&gt;
&lt;br /&gt;
create table customer_bill_file&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type varchar(255) null,&lt;br /&gt;
    content   longblob     null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table customer_receipt_entry&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flow_id               int unsigned                   null,&lt;br /&gt;
    account_entry_id      int unsigned                   null,&lt;br /&gt;
    account_entry_flow_id int unsigned                   null,&lt;br /&gt;
    owner_category        int unsigned                   null,&lt;br /&gt;
    owner_id              int unsigned                   null,&lt;br /&gt;
    payment_type_id       int unsigned                   null,&lt;br /&gt;
    customer_receipt_id   int unsigned                   null,&lt;br /&gt;
    debit                 decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    credit                decimal(15, 5) default 0.00000 null,&lt;br /&gt;
    receipt_date          datetime                       null,&lt;br /&gt;
    owner_email           varchar(255)                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on customer_receipt_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_id&lt;br /&gt;
    on customer_receipt_entry (account_entry_id);&lt;br /&gt;
&lt;br /&gt;
create table customer_receipt_file&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type varchar(255) null,&lt;br /&gt;
    content   longblob     null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table data_retention&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    data_processing_title varchar(45)           not null,&lt;br /&gt;
    legal_basis_category  int unsigned default 0 not null,&lt;br /&gt;
    data_retention_period int unsigned          not null,&lt;br /&gt;
    controller_person_id  int unsigned          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table default_display&lt;br /&gt;
(&lt;br /&gt;
    person_id     int unsigned            not null,&lt;br /&gt;
    display_key   varchar(255) default '' not null,&lt;br /&gt;
    display_value text                    null,&lt;br /&gt;
    primary key (person_id, display_key)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table default_multi_display&lt;br /&gt;
(&lt;br /&gt;
    resource_type char(30)     not null,&lt;br /&gt;
    person_id     int unsigned not null,&lt;br /&gt;
    resource_id   varchar(100) not null,&lt;br /&gt;
    display_value text         null,&lt;br /&gt;
    primary key (resource_type, person_id, resource_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table email_sent&lt;br /&gt;
(&lt;br /&gt;
    id          bigint unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    message_id  varchar(150)     not null,&lt;br /&gt;
    sender      varchar(255)     not null,&lt;br /&gt;
    title       varchar(255)     not null,&lt;br /&gt;
    category    tinyint unsigned not null,&lt;br /&gt;
    category_id int unsigned     not null,&lt;br /&gt;
    unique (message_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table email_sent_recipient&lt;br /&gt;
(&lt;br /&gt;
    id                   bigint unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    email_sent_id        bigint unsigned  not null,&lt;br /&gt;
    person_id            int unsigned     not null,&lt;br /&gt;
    email                varchar(255)     null,&lt;br /&gt;
    recipient_type       tinyint unsigned null,&lt;br /&gt;
    smtp_status_category varchar(30)      null,&lt;br /&gt;
    email_status         tinyint unsigned null,&lt;br /&gt;
    update_date          datetime         not null,&lt;br /&gt;
    smtp_additional_detail text             null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index email_sent_id_idx&lt;br /&gt;
    on email_sent_recipient (email_sent_id);&lt;br /&gt;
&lt;br /&gt;
create table exceptionnal_inst_date&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    person_id  int unsigned        not null,&lt;br /&gt;
    start_date datetime            null,&lt;br /&gt;
    end_date   datetime            null,&lt;br /&gt;
    presence   tinyint unsigned    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table extra_field_profile&lt;br /&gt;
(&lt;br /&gt;
    business_field_id                  int unsigned    not null,&lt;br /&gt;
    booking_popup_display_4_profile_id bigint unsigned not null,&lt;br /&gt;
    primary key (business_field_id, booking_popup_display_4_profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table facebook&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    category    int unsigned not null,&lt;br /&gt;
    owner_id    int unsigned not null,&lt;br /&gt;
    small       blob         null,&lt;br /&gt;
    original    mediumblob   not null,&lt;br /&gt;
    label       text         null,&lt;br /&gt;
    description text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table favorite_icao&lt;br /&gt;
(&lt;br /&gt;
    icao varchar(6) default '' not null&lt;br /&gt;
        primary key&lt;br /&gt;
)&lt;br /&gt;
    comment 'favorite airfield list';&lt;br /&gt;
&lt;br /&gt;
create table favorite_report&lt;br /&gt;
(&lt;br /&gt;
    report_id int unsigned not null&lt;br /&gt;
        primary key&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table favorite_report_business_field&lt;br /&gt;
(&lt;br /&gt;
    report_id         int unsigned not null,&lt;br /&gt;
    business_field_id int unsigned not null,&lt;br /&gt;
    default_value     text         null,&lt;br /&gt;
    primary key (report_id, business_field_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table favorite_report_profile&lt;br /&gt;
(&lt;br /&gt;
    report_id  int unsigned              not null,&lt;br /&gt;
    profile_id bigint unsigned default 0 not null,&lt;br /&gt;
    primary key (report_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table fhp_aircraft_type&lt;br /&gt;
(&lt;br /&gt;
    fhp_id           int default 0 not null,&lt;br /&gt;
    aircraft_type_id int default 0 not null,&lt;br /&gt;
    primary key (fhp_id, aircraft_type_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'flight hour pricing aircraft type list';&lt;br /&gt;
&lt;br /&gt;
create table fhp_flight_type&lt;br /&gt;
(&lt;br /&gt;
    fhp_id           int                 default 0 not null,&lt;br /&gt;
    activity_type_id bigint unsigned     default 0 not null,&lt;br /&gt;
    excluded         tinyint unsigned    default 0 null,&lt;br /&gt;
    primary key (fhp_id, activity_type_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'flight hour pricing flight type list';&lt;br /&gt;
&lt;br /&gt;
create table fhp_profile&lt;br /&gt;
(&lt;br /&gt;
    fhp_id     int unsigned               not null,&lt;br /&gt;
    profile_id bigint unsigned default 0  not null,&lt;br /&gt;
    place_num  tinyint unsigned default 0 not null,&lt;br /&gt;
    primary key (fhp_id, profile_id, place_num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table file&lt;br /&gt;
(&lt;br /&gt;
id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name          varchar(255)               null,&lt;br /&gt;
    content       longblob                   null,&lt;br /&gt;
    file_type     varchar(255)               null,&lt;br /&gt;
    category      tinyint unsigned           null,&lt;br /&gt;
    owner_id      int                        null,&lt;br /&gt;
    file_group_id int                        null,&lt;br /&gt;
    is_current    tinyint unsigned default 1 not null,&lt;br /&gt;
    parent_id     int unsigned               null,&lt;br /&gt;
    person_id     int unsigned               null,&lt;br /&gt;
    creation_date datetime                   not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table file_group&lt;br /&gt;
(&lt;br /&gt;
    id    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255) null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table flight&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    aircraft_id           int unsigned               null,&lt;br /&gt;
    start_date            datetime                   null,&lt;br /&gt;
    duration              int                        null,&lt;br /&gt;
    activity_type_id      bigint unsigned            null,&lt;br /&gt;
    people_onboard        int unsigned               null,&lt;br /&gt;
    departure_location_id int unsigned               null,&lt;br /&gt;
    arrival_location_id   int unsigned               null,&lt;br /&gt;
    counter_departure     int unsigned               null,&lt;br /&gt;
    counter_arrival       int unsigned               null,&lt;br /&gt;
    landing_number        int                        null,&lt;br /&gt;
    airborne              tinyint unsigned           null,&lt;br /&gt;
    validated             tinyint unsigned default 0 null,&lt;br /&gt;
    departure_icao_id     varchar(6)                 null,&lt;br /&gt;
    arrival_icao_id       varchar(6)                 null,&lt;br /&gt;
    engine_duration       int                        null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of flight';&lt;br /&gt;
&lt;br /&gt;
create table flight_account_entry&lt;br /&gt;
(&lt;br /&gt;
    flight_id        int unsigned default 0 not null,&lt;br /&gt;
    account_entry_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (flight_id, account_entry_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'flight account entry join';&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_id&lt;br /&gt;
    on flight_account_entry (account_entry_id);&lt;br /&gt;
&lt;br /&gt;
create table flight_airworthiness_report&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_id          int unsigned        null,&lt;br /&gt;
    aircraft_id        int unsigned        not null,&lt;br /&gt;
    description        text                not null,&lt;br /&gt;
    status             tinyint unsigned    not null,&lt;br /&gt;
    certified          tinyint   default 0 not null,&lt;br /&gt;
    reporter_name      varchar(255)        not null,&lt;br /&gt;
    report_date        datetime            not null,&lt;br /&gt;
    report_ip_address  varchar(45)         not null,&lt;br /&gt;
    state              tinyint unsigned default 1 not null&lt;br /&gt;
);&lt;br /&gt;
create index flight_airworthiness_report_flight_id_idx&lt;br /&gt;
    on flight_airworthiness_report (flight_id);&lt;br /&gt;
create index flight_airworthiness_report_aircraft_state_status_idx&lt;br /&gt;
    on flight_airworthiness_report (aircraft_id, state, status);&lt;br /&gt;
&lt;br /&gt;
create table flight_airworthiness_report_comment&lt;br /&gt;
(&lt;br /&gt;
    id                               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_airworthiness_report_id   int unsigned        not null,&lt;br /&gt;
    content                          text                not null,&lt;br /&gt;
    state                            tinyint unsigned    not null,&lt;br /&gt;
    status                           tinyint unsigned    null,&lt;br /&gt;
    approval_signature               text                null,&lt;br /&gt;
    certified                        tinyint   default 0 not null,&lt;br /&gt;
    author_name                      varchar(255)        not null,&lt;br /&gt;
    comment_date                     datetime            not null,&lt;br /&gt;
    comment_ip_address               varchar(45)         not null&lt;br /&gt;
);&lt;br /&gt;
create index flight_airworthiness_report_comment_report_id_idx&lt;br /&gt;
    on flight_airworthiness_report_comment (flight_airworthiness_report_id);&lt;br /&gt;
&lt;br /&gt;
create table flight_hours_pricing&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name               text                          null,&lt;br /&gt;
    price_formula      text                          null,&lt;br /&gt;
    left_account_id    int unsigned                  null,&lt;br /&gt;
    right_account_id   int unsigned                  null,&lt;br /&gt;
    left_account_type  tinyint unsigned    default 0 null,&lt;br /&gt;
    right_account_type tinyint unsigned    default 0 null,&lt;br /&gt;
    credit_budget_id   int unsigned                  null,&lt;br /&gt;
    debit_budget_id    int unsigned                  null,&lt;br /&gt;
    order_num          int                           null,&lt;br /&gt;
    product_id         int unsigned                  null,&lt;br /&gt;
    sale_trigger_id    int unsigned        default 0 null,&lt;br /&gt;
    query              text                          null,&lt;br /&gt;
    variable_formula   varchar(255)                  null,&lt;br /&gt;
    business_field_id  int unsigned                  null,&lt;br /&gt;
    debit_bill_num     int unsigned                  null,&lt;br /&gt;
    credit_bill_num    int unsigned                  null,&lt;br /&gt;
    qty_formula        text                          null,&lt;br /&gt;
    unit_price_formula text                          null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of flight hours pricing formula';&lt;br /&gt;
&lt;br /&gt;
create table flight_pilot&lt;br /&gt;
(&lt;br /&gt;
    flight_id int unsigned           not null,&lt;br /&gt;
    pilot_id  int unsigned           not null,&lt;br /&gt;
    status_id int unsigned           null,&lt;br /&gt;
    num       int unsigned default 0 not null,&lt;br /&gt;
    primary key (flight_id, pilot_id, num)&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of crew for each flight';&lt;br /&gt;
&lt;br /&gt;
create table flight_tank_qty&lt;br /&gt;
(&lt;br /&gt;
    id           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_id    int unsigned                not null,&lt;br /&gt;
    tank_id      int unsigned                not null,&lt;br /&gt;
    quantity     varchar(255) default '0.00' not null,&lt;br /&gt;
    after_flight tinyint(1)   default 0      not null,&lt;br /&gt;
    account_id   int unsigned                null,&lt;br /&gt;
    pay_type     tinyint unsigned            null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table flight_track&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    flight_id int                     not null,&lt;br /&gt;
    track     mediumblob              not null,&lt;br /&gt;
    file_type varchar(255) default 'kml' null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table flight_type_mandatory_validity_type&lt;br /&gt;
(&lt;br /&gt;
    activity_type_id bigint unsigned           not null,&lt;br /&gt;
    validity_type_id int unsigned    default 0 not null,&lt;br /&gt;
    primary key (activity_type_id, validity_type_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of mandatory qualification for each flight type';&lt;br /&gt;
&lt;br /&gt;
create table import&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label               varchar(255)                          not null,&lt;br /&gt;
    order_num           int                                   null,&lt;br /&gt;
    import_file_type    varchar(255) default 'csv-comma-CRLF' not null,&lt;br /&gt;
    match_query         text                                  null,&lt;br /&gt;
    uptodate_test_query text                                  null,&lt;br /&gt;
    update_query        text                                  null,&lt;br /&gt;
    update_activated    tinyint(1)   default 0                not null,&lt;br /&gt;
    login               varchar(255)                          null,&lt;br /&gt;
    hash_password       varchar(255)                          null,&lt;br /&gt;
    sync_task_name      varchar(255)                          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table ip_stopped&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    ip          varchar(255)        not null,&lt;br /&gt;
    counter     tinyint unsigned    not null,&lt;br /&gt;
    expire_date datetime            not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'blacklisted ip';&lt;br /&gt;
&lt;br /&gt;
create table journal&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    login     varchar(255)           null,&lt;br /&gt;
    date_log  datetime               null,&lt;br /&gt;
    rights    text                   null,&lt;br /&gt;
    rights2   text                   null,&lt;br /&gt;
    action    varchar(255)           null,&lt;br /&gt;
    person_id int unsigned default 0 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of logs';&lt;br /&gt;
&lt;br /&gt;
create index idx_action&lt;br /&gt;
    on journal (action);&lt;br /&gt;
&lt;br /&gt;
create index idx_date_log&lt;br /&gt;
    on journal (date_log);&lt;br /&gt;
&lt;br /&gt;
create table key_alert&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    alert_date datetime               null,&lt;br /&gt;
    status     int unsigned default 0 not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key alerts';&lt;br /&gt;
&lt;br /&gt;
create table key_assignment&lt;br /&gt;
(&lt;br /&gt;
    key_id      tinyint unsigned    default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    key_name    tinytext                      null,&lt;br /&gt;
    aircraft_id int unsigned        default 0 null,&lt;br /&gt;
    key_state   tinyint unsigned    default 0 null,&lt;br /&gt;
    key_word    bigint unsigned     default 0 null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key assignment description';&lt;br /&gt;
&lt;br /&gt;
create table key_host&lt;br /&gt;
(&lt;br /&gt;
    id       tinyint auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    timeout  tinyint             default 10          not null,&lt;br /&gt;
    num_key  tinyint unsigned    default 8           not null,&lt;br /&gt;
    ipkey    varchar(50)         default '127.0.0.1' not null,&lt;br /&gt;
    httpport int                 default 4080        not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key host configuration';&lt;br /&gt;
&lt;br /&gt;
create table key_log&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    log_date  datetime     null,&lt;br /&gt;
    action    varchar(255) null,&lt;br /&gt;
    message   varchar(255) null,&lt;br /&gt;
    key_id    int unsigned null,&lt;br /&gt;
    person_id int unsigned null,&lt;br /&gt;
    xmlrpc    int unsigned null,&lt;br /&gt;
    error     varchar(255) null&lt;br /&gt;
)&lt;br /&gt;
    comment 'key logs';&lt;br /&gt;
&lt;br /&gt;
create table location&lt;br /&gt;
(&lt;br /&gt;
    icao_name       varchar(6)       not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name            varchar(64)      not null,&lt;br /&gt;
    latitude        double           null,&lt;br /&gt;
    longitude       double           null,&lt;br /&gt;
    altitude        int              null,&lt;br /&gt;
    weather_station int unsigned     null,&lt;br /&gt;
    asked_counter   bigint default 0 not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'airfields coord';&lt;br /&gt;
&lt;br /&gt;
create table log&lt;br /&gt;
(&lt;br /&gt;
    journal_id  int unsigned not null,&lt;br /&gt;
    action      varchar(255) null,&lt;br /&gt;
    table_name  varchar(255) null,&lt;br /&gt;
    field_name  varchar(255) null,&lt;br /&gt;
    field_value varchar(255) null&lt;br /&gt;
)&lt;br /&gt;
    comment 'part of logs';&lt;br /&gt;
&lt;br /&gt;
create index idx_field_value&lt;br /&gt;
    on log (field_value);&lt;br /&gt;
&lt;br /&gt;
create index idx_journal_id&lt;br /&gt;
    on log (journal_id);&lt;br /&gt;
&lt;br /&gt;
create index journal_id&lt;br /&gt;
    on log (journal_id);&lt;br /&gt;
&lt;br /&gt;
create table logger&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    serial_number int unsigned                      null,&lt;br /&gt;
    color         varchar(20)         default 'red' not null,&lt;br /&gt;
    activated     tinyint unsigned    default 1     not null,&lt;br /&gt;
    order_num     int unsigned                      not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'logger parameters';&lt;br /&gt;
&lt;br /&gt;
create table login_stopped&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    login       varchar(255)     not null,&lt;br /&gt;
    counter     tinyint unsigned not null,&lt;br /&gt;
    expire_date datetime         not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'blacklisted login';&lt;br /&gt;
&lt;br /&gt;
create table m_component&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    parent_id           int unsigned        default 0 not null,&lt;br /&gt;
    m_component_type_id int unsigned                  null,&lt;br /&gt;
    resource_id         int unsigned                  null,&lt;br /&gt;
    order_num           int                           not null,&lt;br /&gt;
    serial_number       varchar(255)                  null,&lt;br /&gt;
    brandnew_date       datetime                      null,&lt;br /&gt;
    activated           tinyint unsigned    default 1 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_component_type&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    parent_id              int unsigned        default 0 not null,&lt;br /&gt;
    resource_type_id       int                           null,&lt;br /&gt;
    m_classification_id    int                           null,&lt;br /&gt;
    is_maintenance_check   tinyint unsigned    default 1 not null,&lt;br /&gt;
    order_num              int                           not null,&lt;br /&gt;
    label                  varchar(255)                  null,&lt;br /&gt;
    description            varchar(255)                  null,&lt;br /&gt;
    manufacturer           varchar(255)                  null,&lt;br /&gt;
    manufacturer_reference varchar(255)                  null,&lt;br /&gt;
    part_number            varchar(255)                  null,&lt;br /&gt;
    periodicity            int unsigned                  null,&lt;br /&gt;
    tolerance              int unsigned        default 0 not null,&lt;br /&gt;
    calendar_periodicity   int unsigned                  null,&lt;br /&gt;
    calendar_tolerance     int unsigned        default 0 not null,&lt;br /&gt;
    activated              tinyint unsigned    default 1 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_component_type_parentality&lt;br /&gt;
(&lt;br /&gt;
    m_component_type_id        int unsigned not null,&lt;br /&gt;
    m_component_type_parent_id int unsigned not null,&lt;br /&gt;
    primary key (m_component_type_id, m_component_type_parent_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_history&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    m_component_id         int unsigned                  not null,&lt;br /&gt;
    install_date           datetime                      null,&lt;br /&gt;
    remove_date            datetime                      null,&lt;br /&gt;
    total_hours_on_install int unsigned        default 0 not null,&lt;br /&gt;
    threshold_hours        int unsigned        default 0 not null,&lt;br /&gt;
    threshold_date         datetime                      null,&lt;br /&gt;
    threshold_date_locked  tinyint unsigned    default 0 not null,&lt;br /&gt;
    threshold_hours_locked tinyint unsigned    default 0 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table m_operation&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    content             text         not null,&lt;br /&gt;
    m_component_type_id int          null,&lt;br /&gt;
    order_num           int          not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table maintenance_history&lt;br /&gt;
(&lt;br /&gt;
    id                                   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id                          int unsigned                  null,&lt;br /&gt;
    maintenance_program_id               int unsigned                  null,&lt;br /&gt;
    frame_hours_at_work_start            int                           null,&lt;br /&gt;
    date_work_end                        date                          null,&lt;br /&gt;
    min_overhaul_counter                 int                           null,&lt;br /&gt;
    max_overhaul_counter                 int                           null,&lt;br /&gt;
    min_overhaul_date                    date                          null,&lt;br /&gt;
    max_overhaul_date                    date                          null,&lt;br /&gt;
    min_next_overhaul_counter            int                           null,&lt;br /&gt;
    max_next_overhaul_counter            int                           null,&lt;br /&gt;
    min_next_overhaul_date               date                          null,&lt;br /&gt;
    max_next_overhaul_date               date                          null,&lt;br /&gt;
    first_reference_visit                tinyint unsigned default 0    not null,&lt;br /&gt;
    is_visit                             tinyint unsigned default 0    not null,&lt;br /&gt;
    action_type                          tinyint unsigned              null,&lt;br /&gt;
    previous_line_linked_time_action     int                           null,&lt;br /&gt;
    previous_line_linked_calendar_action int                           null,&lt;br /&gt;
    next_line_linked_time_action         int                           null,&lt;br /&gt;
    next_line_linked_calendar_action     int                           null,&lt;br /&gt;
    time_tolerance                       int                           null,&lt;br /&gt;
    calendar_tolerance                   int                           null,&lt;br /&gt;
    time_periodicity_component           int                           null,&lt;br /&gt;
    calendar_periodicity_component       int                           null,&lt;br /&gt;
    time_periodicity                     int                           null,&lt;br /&gt;
    calendar_periodicity                 int                           null,&lt;br /&gt;
    reference_overhaul_counter           int                           null,&lt;br /&gt;
    reference_overhaul_date              date                          null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table maintenance_program&lt;br /&gt;
(&lt;br /&gt;
    id                                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id                           int unsigned                  null,&lt;br /&gt;
    component_type_id                     int unsigned                  null,&lt;br /&gt;
    description                           varchar(255)                  null,&lt;br /&gt;
    time_periodicity                      int                           null,&lt;br /&gt;
    calendar_periodicity                  int                           null,&lt;br /&gt;
    time_first_reference                  int                           null,&lt;br /&gt;
    calendar_first_reference              date                          null,&lt;br /&gt;
    time_tolerance                        int                           null,&lt;br /&gt;
    calendar_tolerance                    int                           null,&lt;br /&gt;
    frame_hours_at_work_start             int                           null,&lt;br /&gt;
    date_work_end                         date                          null,&lt;br /&gt;
    time_elapsed                          int                           null,&lt;br /&gt;
    calendar_elapsed                      int                           null,&lt;br /&gt;
    time_remaining                        int                           null,&lt;br /&gt;
    calendar_remaining                    int                           null,&lt;br /&gt;
    min_next_overhaul_counter             int                           null,&lt;br /&gt;
    max_next_overhaul_counter             int                           null,&lt;br /&gt;
    min_next_overhaul_date                date                          null,&lt;br /&gt;
    max_next_overhaul_date                date                          null,&lt;br /&gt;
    effective_hours_at_work_start         int                           null,&lt;br /&gt;
    theoretical_overhaul_counter          int                           null,&lt;br /&gt;
    intelligent_overhaul_counter          int                           null,&lt;br /&gt;
    intelligent_min_next_overhaul_counter int                           null,&lt;br /&gt;
    intelligent_max_next_overhaul_counter int                           null,&lt;br /&gt;
    effective_date_at_work_end            date                          null,&lt;br /&gt;
    theoretical_overhaul_date             date                          null,&lt;br /&gt;
    intelligent_overhaul_date             date                          null,&lt;br /&gt;
    intelligent_min_next_overhaul_date    date                          null,&lt;br /&gt;
    intelligent_max_next_overhaul_date    date                          null,&lt;br /&gt;
    overlapping_group_id                  int unsigned                  null,&lt;br /&gt;
    is_visit_rg                           tinyint unsigned default 0    not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table maintenance_view&lt;br /&gt;
(&lt;br /&gt;
    id                                                int unsigned default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    frame_total_time                                  int                    null,&lt;br /&gt;
    frame_time_since_rg                               int                    null,&lt;br /&gt;
    engine_time_since_rg                              int                    null,&lt;br /&gt;
    propeller_time_since_rg                           int                    null,&lt;br /&gt;
    potential_remaining_next_time_action              int                    null,&lt;br /&gt;
    potential_remaining_next_time_visit               int                    null,&lt;br /&gt;
    potential_remaining_next_priority_time_action     int                    null,&lt;br /&gt;
    potential_remaining_next_calendar_action          int                    null,&lt;br /&gt;
    potential_remaining_next_calendar_visit           int                    null,&lt;br /&gt;
    potential_remaining_next_priority_calendar_action int                    null,&lt;br /&gt;
    next_time_action_id                               int unsigned           null,&lt;br /&gt;
    next_time_visit_id                                int unsigned           null,&lt;br /&gt;
    next_priority_time_action_id                      int unsigned           null,&lt;br /&gt;
    next_calendar_action_id                           int unsigned           null,&lt;br /&gt;
    next_calendar_visit_id                            int unsigned           null,&lt;br /&gt;
    next_priority_calendar_action_id                  int unsigned           null,&lt;br /&gt;
    overhaul_counter_action                           int                    null,&lt;br /&gt;
    overhaul_counter_visit                            int                    null,&lt;br /&gt;
    overhaul_date_action                              date                   null,&lt;br /&gt;
    overhaul_date_visit                               date                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table map_logger_monitoring&lt;br /&gt;
(&lt;br /&gt;
    record_id  int unsigned not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    count_data int unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'link between flight and track';&lt;br /&gt;
&lt;br /&gt;
create table map_track&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    record_id     int unsigned                  null,&lt;br /&gt;
    start_data    int unsigned                  null,&lt;br /&gt;
    number        int unsigned                  null,&lt;br /&gt;
    start_time    datetime                      null,&lt;br /&gt;
    latitude_max  double                        null,&lt;br /&gt;
    longitude_max double                        null,&lt;br /&gt;
    latitude_min  double                        null,&lt;br /&gt;
    longitude_min double                        null,&lt;br /&gt;
    visible       tinyint unsigned default 1    not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'tracks split from gdr';&lt;br /&gt;
&lt;br /&gt;
create table nationality&lt;br /&gt;
(&lt;br /&gt;
    code  char(2) default '' not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255)       not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_access_token&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid              varchar(255)    not null,&lt;br /&gt;
    expiry_date_time datetime        not null,&lt;br /&gt;
    scopes           varchar(2048)   not null,&lt;br /&gt;
    oauth_client_id  int unsigned    not null,&lt;br /&gt;
    person_id        int unsigned    null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_auth_code&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid              varchar(255)    not null,&lt;br /&gt;
    expiry_date_time datetime        not null,&lt;br /&gt;
    redirect_uri     varchar(2048)   not null,&lt;br /&gt;
    scopes           varchar(2048)   not null,&lt;br /&gt;
    oauth_client_id  int unsigned    not null,&lt;br /&gt;
    person_id        int unsigned    not null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_client&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid                      varchar(255)    not null,&lt;br /&gt;
    hashed_passphrase        varchar(255)    null,&lt;br /&gt;
    name                     text            not null,&lt;br /&gt;
    authorization_grant_type varchar(255)    not null,&lt;br /&gt;
    redirect_uri             varchar(2048)   not null,&lt;br /&gt;
    owner_person_id          int unsigned    not null,&lt;br /&gt;
    auth_cert                text            null,&lt;br /&gt;
    sign_cert                text            null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_dpop_token&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    jti             varchar(255) not null,&lt;br /&gt;
    expiration_date datetime     not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table oauth_refresh_token&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid                    varchar(255)    not null,&lt;br /&gt;
    expiry_date_time       datetime        not null,&lt;br /&gt;
    oauth_access_token_uid varchar(255)    not null,&lt;br /&gt;
    scopes                 varchar(2048)   not null,&lt;br /&gt;
    oauth_client_id        int unsigned    not null,&lt;br /&gt;
    person_id              int unsigned    not null,&lt;br /&gt;
    dpop_jkt               varchar(128)    null,&lt;br /&gt;
    unique (id),&lt;br /&gt;
    unique (uid)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table parameter&lt;br /&gt;
(&lt;br /&gt;
    code       varchar(255)                  not null,&lt;br /&gt;
    key_id     int unsigned     default 0    not null,&lt;br /&gt;
    enabled    tinyint unsigned default 0    null,&lt;br /&gt;
    int_value  bigint unsigned  default 0    not null,&lt;br /&gt;
    char_value mediumtext                    null,&lt;br /&gt;
    primary key (code, key_id)&lt;br /&gt;
)&lt;br /&gt;
    comment 'application parameters';&lt;br /&gt;
&lt;br /&gt;
create table payment_summary_file&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type       varchar(255)            null,&lt;br /&gt;
    content         longblob                null,&lt;br /&gt;
    record_date     datetime                null,&lt;br /&gt;
    total_entry     int unsigned            null,&lt;br /&gt;
    total_amount    decimal(15, 5) unsigned null,&lt;br /&gt;
    payment_type_id int unsigned            null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table payment_type&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                text                          null,&lt;br /&gt;
    text_field_label    text                          null,&lt;br /&gt;
    only_admin          tinyint unsigned default 0    not null,&lt;br /&gt;
    pos_key_id          int unsigned                  null,&lt;br /&gt;
    treasury_account_id int unsigned                  null,&lt;br /&gt;
    person_delivery     tinyint unsigned default 0    null,&lt;br /&gt;
    person_budget_id    int unsigned                  null,&lt;br /&gt;
    treasury_budget_id  int unsigned                  null,&lt;br /&gt;
    minimum_amount      decimal(10, 0)                null,&lt;br /&gt;
    maximum_amount      decimal(10, 0)                null&lt;br /&gt;
)&lt;br /&gt;
    comment 'type of payment description';&lt;br /&gt;
&lt;br /&gt;
create table person&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                   varchar(255)                                      not null,&lt;br /&gt;
    hash_password          varchar(255)                                      not null,&lt;br /&gt;
    first_name             varchar(255)                                      null,&lt;br /&gt;
    last_name              varchar(255)                                      null,&lt;br /&gt;
    profile                bigint unsigned                                   null,&lt;br /&gt;
    view_type              int unsigned                                      null,&lt;br /&gt;
    view_width             tinyint unsigned    default 12                    not null,&lt;br /&gt;
    view_height            tinyint unsigned    default 30                    not null,&lt;br /&gt;
    email                  varchar(255)                                      null,&lt;br /&gt;
    timezone               varchar(255)                                      null,&lt;br /&gt;
    address                varchar(255)                                      null,&lt;br /&gt;
    zipcode                varchar(255)                                      null,&lt;br /&gt;
    city                   varchar(255)                                      null,&lt;br /&gt;
    state                  varchar(255)                                      null,&lt;br /&gt;
    country                varchar(255)                                      null,&lt;br /&gt;
    home_phone             varchar(255)                                      null,&lt;br /&gt;
    work_phone             varchar(255)                                      null,&lt;br /&gt;
    cell_phone             varchar(255)                                      null,&lt;br /&gt;
    lang                   varchar(255)                                      null,&lt;br /&gt;
    notification           bigint unsigned                                   null,&lt;br /&gt;
    activated              tinyint unsigned    default 1                     null,&lt;br /&gt;
    birthdate              datetime            default '0000-00-00 00:00:00' null,&lt;br /&gt;
    sex                    tinyint unsigned    default 0                     not null,&lt;br /&gt;
    nationality            char(2)                                           null,&lt;br /&gt;
    total_flight_time      int unsigned        default 0                     null,&lt;br /&gt;
    date_total_flight_time datetime                                          null,&lt;br /&gt;
    guid                   varchar(255)                                      null,&lt;br /&gt;
    activity_notification  bigint unsigned                                   null,&lt;br /&gt;
    unique (name)&lt;br /&gt;
)&lt;br /&gt;
    comment 'used for authentication';&lt;br /&gt;
&lt;br /&gt;
create table person_awaiting_activation&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    login           varchar(255)        not null,&lt;br /&gt;
    ip              varchar(255)        not null,&lt;br /&gt;
    code            varchar(255)        not null,&lt;br /&gt;
    category        varchar(255)        not null,&lt;br /&gt;
    expiration_date datetime            null,&lt;br /&gt;
    used            tinyint unsigned    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table product&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label               varchar(255)                  not null,&lt;br /&gt;
    unit                varchar(255)                  not null,&lt;br /&gt;
    free_sale           tinyint(1)          default 0 not null,&lt;br /&gt;
    locked              tinyint unsigned    default 0 null,&lt;br /&gt;
    variable_id         int                           null,&lt;br /&gt;
    sale_type           tinyint unsigned              null,&lt;br /&gt;
    is_external_product tinyint(1)                    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile&lt;br /&gt;
(&lt;br /&gt;
    id                bigint unsigned not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name              varchar(255)              null,&lt;br /&gt;
    permits           int unsigned              null,&lt;br /&gt;
    permits2          int unsigned    default 0 not null,&lt;br /&gt;
    permits3          int unsigned    default 0 not null,&lt;br /&gt;
    pictogram         int unsigned              null,&lt;br /&gt;
    default_status_id int unsigned              null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_accounting_notification&lt;br /&gt;
(&lt;br /&gt;
    profile_id    bigint unsigned not null,&lt;br /&gt;
    accounting_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, accounting_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_extra_field_join&lt;br /&gt;
(&lt;br /&gt;
    profile_id        bigint unsigned not null,&lt;br /&gt;
    business_field_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, business_field_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_profile_view&lt;br /&gt;
(&lt;br /&gt;
    profile_id          bigint unsigned not null,&lt;br /&gt;
    viewable_profile_id bigint unsigned not null,&lt;br /&gt;
    primary key (profile_id, viewable_profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_required_account_type&lt;br /&gt;
(&lt;br /&gt;
    profile_id      bigint unsigned not null,&lt;br /&gt;
    account_type_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, account_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_resource_type_place&lt;br /&gt;
(&lt;br /&gt;
    profile_id       bigint unsigned not null,&lt;br /&gt;
    resource_type_id int unsigned    not null,&lt;br /&gt;
    place_num        int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, resource_type_id, place_num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_resource_type_view&lt;br /&gt;
(&lt;br /&gt;
    profile_id                bigint unsigned not null,&lt;br /&gt;
    viewable_resource_type_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, viewable_resource_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_validity_type_join&lt;br /&gt;
(&lt;br /&gt;
    profile_id        bigint unsigned           not null,&lt;br /&gt;
    validity_type_id  int unsigned              not null,&lt;br /&gt;
    manage4oneself    int             default 0 not null,&lt;br /&gt;
    certify           int             default 0 not null,&lt;br /&gt;
    optional_contract tinyint(1)      default 0 not null,&lt;br /&gt;
    primary key (profile_id, validity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table profile_validity_type_notification&lt;br /&gt;
(&lt;br /&gt;
    profile_id       bigint unsigned not null,&lt;br /&gt;
    validity_type_id int unsigned    not null,&lt;br /&gt;
    primary key (profile_id, validity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table psp_return&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    psp_transaction_id int unsigned null,&lt;br /&gt;
    bank_answer        text         null,&lt;br /&gt;
    bank_misc          text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table psp_transaction&lt;br /&gt;
(&lt;br /&gt;
    id                int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    credit_account_id int unsigned           not null,&lt;br /&gt;
    debit_account_id  int unsigned           not null,&lt;br /&gt;
    transaction_date  datetime               not null,&lt;br /&gt;
    amount            float                  not null,&lt;br /&gt;
    description       varchar(255)           null,&lt;br /&gt;
    payment_type_id   int unsigned           not null,&lt;br /&gt;
    state             int unsigned default 0 not null,&lt;br /&gt;
    token             text                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table psp_transaction_account_entry&lt;br /&gt;
(&lt;br /&gt;
    psp_transaction_id    int unsigned default 0 not null,&lt;br /&gt;
    account_entry_flow_id int unsigned default 0 not null,&lt;br /&gt;
    primary key (psp_transaction_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table record_changelog&lt;br /&gt;
(&lt;br /&gt;
    id             int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    record_id      int unsigned not null,&lt;br /&gt;
    record_type    varchar(255) null,&lt;br /&gt;
    person_id      int unsigned null,&lt;br /&gt;
    changelog_date datetime     not null,&lt;br /&gt;
    record_state   text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table regular_presence_inst_date&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    person_id  int unsigned     null,&lt;br /&gt;
    start_day  tinyint unsigned null,&lt;br /&gt;
    end_day    tinyint unsigned null,&lt;br /&gt;
    start_hour time             null,&lt;br /&gt;
    end_hour   time             null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name             varchar(255)                  null,&lt;br /&gt;
    resource_type_id int unsigned                  null,&lt;br /&gt;
    comments         varchar(255)                  null,&lt;br /&gt;
    order_num        int                           null,&lt;br /&gt;
    activated        tinyint unsigned    default 1 not null,&lt;br /&gt;
    bookable         int unsigned        default 1 null,&lt;br /&gt;
    physical         int unsigned        default 1 null,&lt;br /&gt;
    color            int unsigned                  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_exceptional_availability&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id int unsigned        null,&lt;br /&gt;
    start_date  datetime            null,&lt;br /&gt;
    end_date    datetime            null,&lt;br /&gt;
    presence    tinyint unsigned    null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_maintenance_alert&lt;br /&gt;
(&lt;br /&gt;
    id             int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    aircraft_id    int unsigned          not null,&lt;br /&gt;
    alert_category tinyint unsigned      not null,&lt;br /&gt;
    alert_level    tinyint unsigned      not null,&lt;br /&gt;
    is_enabled     tinyint unsigned default 0 not null,&lt;br /&gt;
    is_sent        tinyint unsigned default 0 not null,&lt;br /&gt;
    unique (aircraft_id, alert_category, alert_level)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_regular_availability&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    resource_id int unsigned        null,&lt;br /&gt;
    start_day   tinyint unsigned    null,&lt;br /&gt;
    end_day     tinyint unsigned    null,&lt;br /&gt;
    start_hour  time                null,&lt;br /&gt;
    end_hour    time                null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_type&lt;br /&gt;
(&lt;br /&gt;
    id                   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                 varchar(255)                   null,&lt;br /&gt;
    category             int unsigned                   null,&lt;br /&gt;
    seats_available      int                 default -1 null,&lt;br /&gt;
    comments             varchar(255)                   null,&lt;br /&gt;
    activated            tinyint unsigned    default 1  not null,&lt;br /&gt;
    max_booking_duration int                 default -1 null,&lt;br /&gt;
    pictogram            int unsigned                   null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table resource_type_place_tag&lt;br /&gt;
(&lt;br /&gt;
    resource_type_id int unsigned        not null,&lt;br /&gt;
    place_num        tinyint unsigned    not null,&lt;br /&gt;
    place_tag        varchar(255)        null,&lt;br /&gt;
    place_quantity   int      default -1 null,&lt;br /&gt;
    primary key (resource_type_id, place_num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_2_stock&lt;br /&gt;
(&lt;br /&gt;
    id                           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    product_id                   int unsigned    not null,&lt;br /&gt;
    stock_id                     int unsigned    not null,&lt;br /&gt;
    stock_variation_qty_per_sale float default 0 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_2_validity_type&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    validity_type_id int unsigned not null,&lt;br /&gt;
    new_formula      varchar(255) null,&lt;br /&gt;
    update_formula   varchar(255) null,&lt;br /&gt;
    product_id       int unsigned not null,&lt;br /&gt;
    unique (validity_type_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_product&lt;br /&gt;
    on sale_2_validity_type (product_id);&lt;br /&gt;
&lt;br /&gt;
create table sale_pricing&lt;br /&gt;
(&lt;br /&gt;
    id                      int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label                   varchar(255)                  null,&lt;br /&gt;
    price_formula           text                          null,&lt;br /&gt;
    debit_account_id        int unsigned                  null,&lt;br /&gt;
    credit_account_id       int unsigned                  null,&lt;br /&gt;
    debit_account_type      tinyint unsigned    default 0 null,&lt;br /&gt;
    credit_account_type     tinyint unsigned    default 0 null,&lt;br /&gt;
    credit_budget_id        int unsigned                  null,&lt;br /&gt;
    debit_budget_id         int unsigned                  null,&lt;br /&gt;
    order_num               int                           null,&lt;br /&gt;
    variable_formula        varchar(255)                  null,&lt;br /&gt;
    debit_bill_num          int unsigned                  null,&lt;br /&gt;
    credit_bill_num         int unsigned                  null,&lt;br /&gt;
    qty_formula             text                          null,&lt;br /&gt;
    unit_price_formula      text                          null,&lt;br /&gt;
    added_product_id        int unsigned                  null,&lt;br /&gt;
    is_for_external_product tinyint(1)          default 1 null,&lt;br /&gt;
    is_for_internal_product tinyint(1)          default 1 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_pricing_product&lt;br /&gt;
(&lt;br /&gt;
    sale_pricing_id int unsigned default 0 not null,&lt;br /&gt;
    product_id      int unsigned default 0 not null,&lt;br /&gt;
    primary key (sale_pricing_id, product_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_pricing_profile&lt;br /&gt;
(&lt;br /&gt;
    sale_pricing_id int unsigned              not null,&lt;br /&gt;
    profile_id      bigint unsigned default 0 not null,&lt;br /&gt;
    primary key (sale_pricing_id, profile_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table sale_trigger&lt;br /&gt;
(&lt;br /&gt;
    id             int                 default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name           varchar(255)                  null,&lt;br /&gt;
    event          varchar(255)                  null,&lt;br /&gt;
    locked         tinyint unsigned    default 0 not null,&lt;br /&gt;
    query          text                          null,&lt;br /&gt;
    validate_entry tinyint(1)          default 0 null,&lt;br /&gt;
    group_sales    tinyint(1)          default 0 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table spreadsheet_parameter&lt;br /&gt;
(&lt;br /&gt;
    file_number       int          not null,&lt;br /&gt;
    spreadsheet_key   varchar(255) not null,&lt;br /&gt;
    spreadsheet_value varchar(255) not null,&lt;br /&gt;
    file_name         varchar(255) null,&lt;br /&gt;
    google_url        varchar(255) not null,&lt;br /&gt;
    file_type         int unsigned null,&lt;br /&gt;
    primary key (file_number, spreadsheet_key, spreadsheet_value)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table statistic&lt;br /&gt;
(&lt;br /&gt;
    name       varchar(255)                not null,&lt;br /&gt;
    of_version tinyint        default 0    not null,&lt;br /&gt;
    value      decimal(15, 2) default 0.00 null,&lt;br /&gt;
    primary key (name, of_version)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table status&lt;br /&gt;
(&lt;br /&gt;
    id                      int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    abbrev                  varchar(255) null,&lt;br /&gt;
    name                    varchar(255) null,&lt;br /&gt;
    pictogram               int unsigned null,&lt;br /&gt;
    carnet_aero_function_id int unsigned null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of functions for pilot';&lt;br /&gt;
&lt;br /&gt;
create table stock&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label         varchar(255) not null,&lt;br /&gt;
    stock_type_id int unsigned not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_level&lt;br /&gt;
(&lt;br /&gt;
    id         int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    stock_id   int unsigned    not null,&lt;br /&gt;
    qty        float default 0 not null,&lt;br /&gt;
    stock_date datetime        null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_type&lt;br /&gt;
(&lt;br /&gt;
    id    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255) not null,&lt;br /&gt;
    unit  varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_variation&lt;br /&gt;
(&lt;br /&gt;
    id             int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    stock_id       int unsigned               not null,&lt;br /&gt;
    qty            float             default 0 not null,&lt;br /&gt;
    variation_date datetime                   null,&lt;br /&gt;
    validated      tinyint unsigned  default 0 null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table stock_variation_account_entry&lt;br /&gt;
(&lt;br /&gt;
    product_id            int unsigned default 0 not null,&lt;br /&gt;
    stock_variation_id    int unsigned           not null,&lt;br /&gt;
    account_entry_flow_id int unsigned           not null,&lt;br /&gt;
    person_id             int unsigned           not null,&lt;br /&gt;
    primary key (product_id, stock_variation_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on stock_variation_account_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create table structure&lt;br /&gt;
(&lt;br /&gt;
    id                            int              default 0 not null&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                          varchar(255)               null,&lt;br /&gt;
    info_cell                     text                       null,&lt;br /&gt;
    logo                          longblob                   null,&lt;br /&gt;
    logo_name                     varchar(255)               null,&lt;br /&gt;
    logo_ext                      varchar(25)                null,&lt;br /&gt;
    logo_size                     int                        null,&lt;br /&gt;
    first_hour_displayed          time                       null,&lt;br /&gt;
    last_hour_displayed           time                       null,&lt;br /&gt;
    usual_profiles                bigint unsigned            null,&lt;br /&gt;
    icao                          varchar(6)                 null,&lt;br /&gt;
    default_slot_range            int unsigned               null,&lt;br /&gt;
    min_slot_range                tinyint unsigned           null,&lt;br /&gt;
    twilight_range                tinyint unsigned           null,&lt;br /&gt;
    mailing_list_name             varchar(255)               null,&lt;br /&gt;
    mailing_list_type             varchar(255)               null,&lt;br /&gt;
    structure_site_url            varchar(255)               null,&lt;br /&gt;
    default_timezone              varchar(255)               not null,&lt;br /&gt;
    lang                          varchar(255)               not null,&lt;br /&gt;
    admin_num                     int unsigned               not null,&lt;br /&gt;
    default_view_type             int unsigned               null,&lt;br /&gt;
    address                       varchar(255)               null,&lt;br /&gt;
    zipcode                       varchar(255)               null,&lt;br /&gt;
    city                          varchar(255)               null,&lt;br /&gt;
    state                         varchar(255)               null,&lt;br /&gt;
    country                       varchar(255)               null,&lt;br /&gt;
    phone                         varchar(255)               null,&lt;br /&gt;
    fax                           varchar(255)               null,&lt;br /&gt;
    email                         varchar(255)               null,&lt;br /&gt;
    default_notification          int unsigned               null,&lt;br /&gt;
    welcome_cell                  text                       null,&lt;br /&gt;
    business                      text                       null,&lt;br /&gt;
    default_activity_notification bigint unsigned            null,&lt;br /&gt;
    siren                         int                        null&lt;br /&gt;
)&lt;br /&gt;
    comment 'description of all airclubs';&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    supplier_bill_type_id int unsigned         not null,&lt;br /&gt;
    bill_date             datetime             null,&lt;br /&gt;
    description           varchar(255)         null,&lt;br /&gt;
    ordinal               int unsigned         not null,&lt;br /&gt;
    validated             tinyint(1) default 0 null,&lt;br /&gt;
    supplier_bill_file_id int                  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_account_entry&lt;br /&gt;
(&lt;br /&gt;
    supplier_bill_id      int unsigned not null,&lt;br /&gt;
    account_entry_flow_id int unsigned not null,&lt;br /&gt;
    primary key (supplier_bill_id, account_entry_flow_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_account_entry_flow_id&lt;br /&gt;
    on supplier_bill_account_entry (account_entry_flow_id);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_email_parsed&lt;br /&gt;
(&lt;br /&gt;
    id                    int auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    uid                   int          null,&lt;br /&gt;
    email_address         varchar(255) null,&lt;br /&gt;
    supplier_bill_file_id int unsigned not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_file&lt;br /&gt;
(&lt;br /&gt;
    id        int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    file_type varchar(255) null,&lt;br /&gt;
    content   longblob     null,&lt;br /&gt;
    name      varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table supplier_bill_type&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    supplier_account_id int unsigned not null,&lt;br /&gt;
    name                varchar(255) null,&lt;br /&gt;
    account_id          int unsigned not null,&lt;br /&gt;
    vat_account_id      int unsigned null,&lt;br /&gt;
    supplier_budget_id  int unsigned null,&lt;br /&gt;
    account_budget_id   int unsigned null,&lt;br /&gt;
    vat_budget_id       int unsigned null,&lt;br /&gt;
    rule                text         null,&lt;br /&gt;
    sender_email        varchar(255) null,&lt;br /&gt;
    subject             varchar(255) null,&lt;br /&gt;
    supplier_name       varchar(255) default null,&lt;br /&gt;
    search_keyword      varchar(255) default null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table table_trigger&lt;br /&gt;
(&lt;br /&gt;
    id              int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    monitored_table varchar(255) not null,&lt;br /&gt;
    trigger_formula varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table tank&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    aircraft_type_id   int unsigned                 not null,&lt;br /&gt;
    tank_type_id       int unsigned                 not null,&lt;br /&gt;
    unit_id            int unsigned                 not null,&lt;br /&gt;
    label              varchar(255)                 not null,&lt;br /&gt;
    max_quantity       decimal(15, 2) default -1.00 not null,&lt;br /&gt;
    unlimited_quantity int unsigned   default 1     null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table track_record&lt;br /&gt;
(&lt;br /&gt;
    id                     int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    in_progress            tinyint unsigned                       null,&lt;br /&gt;
    start_date             datetime default '0000-00-00 00:00:00' null,&lt;br /&gt;
    activated              tinyint unsigned                       null,&lt;br /&gt;
    datechsys_track_id     int unsigned                           null,&lt;br /&gt;
    resource_cat           int unsigned                           not null,&lt;br /&gt;
    resource_id            int unsigned                           not null,&lt;br /&gt;
    additional_information int unsigned                           null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table track_record_data&lt;br /&gt;
(&lt;br /&gt;
    id            int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    record_id     int unsigned        not null,&lt;br /&gt;
    record_date   datetime            null,&lt;br /&gt;
    longitude     double              null,&lt;br /&gt;
    latitude      double              null,&lt;br /&gt;
    altitude      int                 null,&lt;br /&gt;
    speed         double              null,&lt;br /&gt;
    track         int unsigned        null,&lt;br /&gt;
    acc_x         int                 null,&lt;br /&gt;
    acc_y         int                 null,&lt;br /&gt;
    acc_z         int                 null,&lt;br /&gt;
    pressure      int unsigned        null,&lt;br /&gt;
    battery_level int unsigned        null,&lt;br /&gt;
    gps_fix       tinyint unsigned    null,&lt;br /&gt;
    receive_date  datetime            null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create index idx_record_id&lt;br /&gt;
    on track_record_data (record_id);&lt;br /&gt;
&lt;br /&gt;
create table track_resource&lt;br /&gt;
(&lt;br /&gt;
    id   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training&lt;br /&gt;
(&lt;br /&gt;
    id   int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_activity&lt;br /&gt;
(&lt;br /&gt;
    activity_id            int unsigned             not null,&lt;br /&gt;
    training_item_label_id int unsigned   default 0 not null,&lt;br /&gt;
    training_id            int unsigned   default 1 not null,&lt;br /&gt;
    level_reached          int unsigned             null,&lt;br /&gt;
    comment                varchar(255)             null,&lt;br /&gt;
    validated              tinyint(1)     default 0 not null,&lt;br /&gt;
    primary key (activity_id, training_item_label_id, training_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_activity_next_item&lt;br /&gt;
(&lt;br /&gt;
    student_id             int unsigned              not null,&lt;br /&gt;
    training_id            int unsigned              not null,&lt;br /&gt;
    training_item_label_id int unsigned              not null,&lt;br /&gt;
    reporting_offset       tinyint unsigned default 0 not null,&lt;br /&gt;
    item_preselected       tinyint unsigned default 0 not null,&lt;br /&gt;
    primary key (student_id, training_id, training_item_label_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_activity_person&lt;br /&gt;
(&lt;br /&gt;
    activity_id                int unsigned           not null,&lt;br /&gt;
    person_id                  int unsigned           not null,&lt;br /&gt;
    num                        int unsigned default 0 not null,&lt;br /&gt;
    training_checking_date     datetime               null,&lt;br /&gt;
    training_checking_sentence varchar(255)           null,&lt;br /&gt;
    primary key (activity_id, person_id, num)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_item&lt;br /&gt;
(&lt;br /&gt;
    training_id            int unsigned not null,&lt;br /&gt;
    training_item_label_id int unsigned not null,&lt;br /&gt;
    number_of_sessions     int          not null,&lt;br /&gt;
    order_num              int          not null,&lt;br /&gt;
    custom_label           varchar(255) null,&lt;br /&gt;
    primary key (training_id, training_item_label_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_phase&lt;br /&gt;
(&lt;br /&gt;
    training_item_order_num int unsigned not null,&lt;br /&gt;
    training_id             int unsigned not null,&lt;br /&gt;
    name                    varchar(255) null,&lt;br /&gt;
    primary key (training_item_order_num, training_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_program&lt;br /&gt;
(&lt;br /&gt;
    id          int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    training_id int unsigned null,&lt;br /&gt;
    name        varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table training_program_activity&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    training_program_id int unsigned    not null,&lt;br /&gt;
    activity_type_id    bigint unsigned not null,&lt;br /&gt;
    duration            int unsigned    null,&lt;br /&gt;
    breaktime           int unsigned    null,&lt;br /&gt;
    order_num           int unsigned    not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table uncomp_flight_type&lt;br /&gt;
(&lt;br /&gt;
    id1 bigint unsigned not null,&lt;br /&gt;
    id2 bigint unsigned not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'list of sales';&lt;br /&gt;
&lt;br /&gt;
create table user_reauth_token&lt;br /&gt;
(&lt;br /&gt;
    id                 int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    user_id            int unsigned         not null,&lt;br /&gt;
    verification_token varchar(255)         not null,&lt;br /&gt;
    ip_address         varchar(45)          not null,&lt;br /&gt;
    expiration_date    datetime             not null,&lt;br /&gt;
    activated          tinyint(1) default 1 not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity&lt;br /&gt;
(&lt;br /&gt;
    id                  int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    person_id           int unsigned         not null,&lt;br /&gt;
    validity_type_id    int unsigned         not null,&lt;br /&gt;
    registration_date   datetime(3)          null,&lt;br /&gt;
    expire_date         date                 null,&lt;br /&gt;
    no_alert            tinyint(1) default 0 not null,&lt;br /&gt;
    ident_value         varchar(255)         null,&lt;br /&gt;
    grant_date          date                 null,&lt;br /&gt;
    checker_person_id   int                  null,&lt;br /&gt;
    checking_date       date                 not null,&lt;br /&gt;
    checking_sentence   varchar(255)         not null,&lt;br /&gt;
    is_current_validity tinyint(1) default 0 not null,&lt;br /&gt;
    action_ip_address   varchar(255)         null,&lt;br /&gt;
    action_login        varchar(255)         null,&lt;br /&gt;
    unique (person_id, validity_type_id, registration_date)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity_type&lt;br /&gt;
(&lt;br /&gt;
    id                       int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    name                     varchar(255)                   not null,&lt;br /&gt;
    time_limitation          tinyint(1)          default 0  not null,&lt;br /&gt;
    ident_value_enable       tinyint(1)          default 0  not null,&lt;br /&gt;
    grant_date_enable        tinyint(1)          default 0  not null,&lt;br /&gt;
    mandatory                tinyint(1)          default 0  not null,&lt;br /&gt;
    experience_formula       text                           null,&lt;br /&gt;
    alert_on_login           int                 default -2 null,&lt;br /&gt;
    mandatory_access_control tinyint unsigned    default 0  null,&lt;br /&gt;
    first_reminder_alert     int unsigned        default 0  null,&lt;br /&gt;
    reminder_frequency_alert int unsigned        default 0  null,&lt;br /&gt;
    associate_attachment     tinyint unsigned    default 0  not null,&lt;br /&gt;
    certification_process    tinyint(1)          default 0  not null,&lt;br /&gt;
    is_contract              tinyint(1)          default 0  not null,&lt;br /&gt;
    contract_filename        varchar(255)                   not null,&lt;br /&gt;
    contract_file            mediumblob                     not null,&lt;br /&gt;
    contract_file_extension  varchar(4)                     not null,&lt;br /&gt;
    is_OF_contract           tinyint(1)          default 0  not null,&lt;br /&gt;
    activated                tinyint unsigned    default 1  not null&lt;br /&gt;
)&lt;br /&gt;
    comment 'qualifications list';&lt;br /&gt;
&lt;br /&gt;
create table validity_type_page&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    validity_type_id int unsigned        not null,&lt;br /&gt;
    page_index       int unsigned        not null,&lt;br /&gt;
    label            varchar(40)         not null,&lt;br /&gt;
    is_mandatory     tinyint unsigned    not null,&lt;br /&gt;
    unique (validity_type_id, page_index)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity_page&lt;br /&gt;
(&lt;br /&gt;
    id                    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    validity_type_page_id int unsigned not null,&lt;br /&gt;
    filename              varchar(255) not null,&lt;br /&gt;
    file                  mediumblob   not null,&lt;br /&gt;
    file_extension        varchar(4)   not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table validity_2_validity_page&lt;br /&gt;
(&lt;br /&gt;
    validity_id      int unsigned not null,&lt;br /&gt;
    validity_page_id int unsigned not null,&lt;br /&gt;
    primary key (validity_id, validity_page_id)&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table variable&lt;br /&gt;
(&lt;br /&gt;
    id         int auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    variable   varchar(255) not null,&lt;br /&gt;
    label      varchar(255) not null,&lt;br /&gt;
    category   tinyint(1)   null,&lt;br /&gt;
    value_type varchar(255) null,&lt;br /&gt;
    order_num  int          not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table variable_value&lt;br /&gt;
(&lt;br /&gt;
    id           int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    variable_id  int            not null,&lt;br /&gt;
    assign_value decimal(15, 2) not null,&lt;br /&gt;
    start_date   datetime       not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table web_feed&lt;br /&gt;
(&lt;br /&gt;
    id               int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    channel_id       int unsigned not null,&lt;br /&gt;
    publication_date datetime     not null,&lt;br /&gt;
    title            varchar(255) null,&lt;br /&gt;
    content          text         null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create table web_feed_channel&lt;br /&gt;
(&lt;br /&gt;
    id    int unsigned auto_increment&lt;br /&gt;
        primary key,&lt;br /&gt;
    label varchar(255) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
create definer = overallCustomer@localhost view eligible_pilot_for_first_flight as&lt;br /&gt;
select `of40_aeroclublys`.`person`.`id` AS `person_id`&lt;br /&gt;
from `of40_aeroclublys`.`person`&lt;br /&gt;
where ((`of40_aeroclublys`.`person`.`activated` = 1) and&lt;br /&gt;
       ((`of40_aeroclublys`.`person`.`profile` &amp;amp; (select `of40_aeroclublys`.`parameter`.`int_value`&lt;br /&gt;
                                                  from `of40_aeroclublys`.`parameter`&lt;br /&gt;
                                                  where (`of40_aeroclublys`.`parameter`.`code` =&lt;br /&gt;
                                                         'EXTERNAL_BOOKING_PILOT_PROFILE'))) &amp;gt; 0) and&lt;br /&gt;
       `of40_aeroclublys`.`person`.`id` in (select `of40_aeroclublys`.`regular_presence_inst_date`.`person_id`&lt;br /&gt;
                                            from `of40_aeroclublys`.`regular_presence_inst_date`&lt;br /&gt;
                                            union&lt;br /&gt;
                                            select `of40_aeroclublys`.`exceptionnal_inst_date`.`person_id`&lt;br /&gt;
                                            from `of40_aeroclublys`.`exceptionnal_inst_date`&lt;br /&gt;
                                            where ((`of40_aeroclublys`.`exceptionnal_inst_date`.`end_date` &amp;gt; now()) and&lt;br /&gt;
                                                   (`of40_aeroclublys`.`exceptionnal_inst_date`.`presence` = 1))));&lt;br /&gt;
&lt;br /&gt;
create definer = overallCustomer@localhost view eligible_resource_for_first_flight as&lt;br /&gt;
select `of40_aeroclublys`.`resource`.`id` AS `resource_id`&lt;br /&gt;
from ((`of40_aeroclublys`.`resource` join `of40_aeroclublys`.`business_field_content` on ((&lt;br /&gt;
        `of40_aeroclublys`.`business_field_content`.`category_id` = `of40_aeroclublys`.`resource`.`id`)))&lt;br /&gt;
         join `of40_aeroclublys`.`business_field` on ((`of40_aeroclublys`.`business_field`.`id` =&lt;br /&gt;
                                                       `of40_aeroclublys`.`business_field_content`.`business_field_id`)))&lt;br /&gt;
where ((`of40_aeroclublys`.`resource`.`activated` = 1) and&lt;br /&gt;
       (`of40_aeroclublys`.`business_field`.`variable` = 'canResourcePerformFirstFlights') and&lt;br /&gt;
       (`of40_aeroclublys`.`business_field_content`.`content` = '1') and&lt;br /&gt;
       (`of40_aeroclublys`.`resource`.`bookable` = 1) and ((select count(0)&lt;br /&gt;
                                                            from `of40_aeroclublys`.`resource_type_place_tag` `seat`&lt;br /&gt;
                                                            where (`seat`.`resource_type_id` =&lt;br /&gt;
                                                                   `of40_aeroclublys`.`resource`.`resource_type_id`)) &amp;gt;=&lt;br /&gt;
                                                           2) and&lt;br /&gt;
       `of40_aeroclublys`.`resource`.`id` in (select `of40_aeroclublys`.`resource_regular_availability`.`resource_id`&lt;br /&gt;
                                              from `of40_aeroclublys`.`resource_regular_availability`&lt;br /&gt;
                                              union&lt;br /&gt;
                                              select `of40_aeroclublys`.`resource_exceptional_availability`.`resource_id`&lt;br /&gt;
                                              from `of40_aeroclublys`.`resource_exceptional_availability`&lt;br /&gt;
                                              where ((`of40_aeroclublys`.`resource_exceptional_availability`.`end_date` &amp;gt;&lt;br /&gt;
                                                      now()) and&lt;br /&gt;
                                                     (`of40_aeroclublys`.`resource_exceptional_availability`.`presence` = 1))));&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function distanceBetween2Point(latitude1 double, longitude1 double, latitude2 double,&lt;br /&gt;
                                                            longitude2 double) returns double&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE rlongitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlongitude2 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude2 DOUBLE;&lt;br /&gt;
    DECLARE dlongitude DOUBLE;&lt;br /&gt;
    DECLARE dlatitude DOUBLE;&lt;br /&gt;
    DECLARE a DOUBLE;&lt;br /&gt;
&lt;br /&gt;
    SET rlongitude1 = RADIANS(longitude1);&lt;br /&gt;
    SET rlatitude1 = RADIANS(latitude1);&lt;br /&gt;
    SET rlongitude2 = RADIANS(longitude2);&lt;br /&gt;
    SET rlatitude2 = RADIANS(latitude2);&lt;br /&gt;
    SET dlongitude = (rlongitude2 - rlongitude1) / 2;&lt;br /&gt;
    SET dlatitude = (rlatitude2 - rlatitude1) / 2;&lt;br /&gt;
    SET a = SIN(dlatitude) * SIN(dlatitude) + COS(rlatitude1) * COS(rlatitude2) * SIN(dlongitude) * SIN(dlongitude);&lt;br /&gt;
    RETURN (6378137 * 2 * ATAN2(SQRT(a), SQRT(1 - a)));&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function formatDecimal(string varchar(255)) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE replacedString VARCHAR(255);&lt;br /&gt;
    SET replacedString = string;&lt;br /&gt;
    SET @decimalSeparator = (SELECT char_value FROM parameter WHERE code = 'DECIMAL_SEPARATOR' AND key_id = 0 LIMIT 1);&lt;br /&gt;
&lt;br /&gt;
    SELECT IF(replacedString &amp;lt;&amp;gt; '0.00' AND replacedString &amp;lt;&amp;gt; '0', TRIM(TRAILING '0' FROM replacedString),&lt;br /&gt;
              replacedString)&lt;br /&gt;
    INTO replacedString;&lt;br /&gt;
    SELECT TRIM(TRAILING '.' FROM replacedString) INTO replacedString;&lt;br /&gt;
    SELECT REPLACE(replacedString, '.', IFNULL(@decimalSeparator, '.')) INTO replacedString;&lt;br /&gt;
    RETURN replacedString;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function isBalancedAccountEntryFlow(flowId int) returns int&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE isBalanced INT;&lt;br /&gt;
&lt;br /&gt;
    SELECT IF(SUM(debit) &amp;lt;&amp;gt; SUM(credit), 0, 1)&lt;br /&gt;
    into isBalanced&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE flow_id = flowId&lt;br /&gt;
    GROUP BY flow_id;&lt;br /&gt;
&lt;br /&gt;
    RETURN isBalanced;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function nearestPoint(latRef double, longRef double, distanceMax int) returns varchar(6)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE rlongitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude1 DOUBLE;&lt;br /&gt;
    DECLARE rlongitude2 DOUBLE;&lt;br /&gt;
    DECLARE rlatitude2 DOUBLE;&lt;br /&gt;
    DECLARE a DOUBLE;&lt;br /&gt;
    DECLARE icao_name VARCHAR(6);&lt;br /&gt;
    DECLARE lenght DOUBLE;&lt;br /&gt;
&lt;br /&gt;
    SET a = 2 * 6378137 * pi() * distanceMax / (1852 * 60 * 360);&lt;br /&gt;
    SET rlongitude1 = longRef + a / cos(latRef);&lt;br /&gt;
    SET rlongitude2 = longRef - a / cos(latRef);&lt;br /&gt;
    SET rlatitude1 = latRef + a;&lt;br /&gt;
    SET rlatitude2 = latRef - a;&lt;br /&gt;
&lt;br /&gt;
    SELECT loc1.icao_name,&lt;br /&gt;
           distanceBetween2Point(&lt;br /&gt;
                   (SELECT loc2.latitude FROM location AS loc2 WHERE loc2.icao_name = loc1.icao_name),&lt;br /&gt;
                   (SELECT loc3.longitude FROM location AS loc3 WHERE loc3.icao_name = loc1.icao_name),&lt;br /&gt;
                   latRef,&lt;br /&gt;
                   longRef) AS distance&lt;br /&gt;
    FROM location AS loc1&lt;br /&gt;
    WHERE IF(rlongitude2 &amp;lt; rlongitude1,&lt;br /&gt;
             loc1.longitude BETWEEN rlongitude2 AND rlongitude1,&lt;br /&gt;
             loc1.longitude BETWEEN rlongitude1 AND rlongitude2)&lt;br /&gt;
      AND IF(rlatitude2 &amp;lt; rlatitude1,&lt;br /&gt;
             loc1.latitude BETWEEN rlatitude2 AND rlatitude1,&lt;br /&gt;
             loc1.latitude BETWEEN rlatitude1 AND rlatitude2)&lt;br /&gt;
    HAVING distance &amp;lt; distanceMax&lt;br /&gt;
    ORDER BY distance&lt;br /&gt;
    LIMIT 1&lt;br /&gt;
    INTO icao_name, lenght;&lt;br /&gt;
&lt;br /&gt;
    RETURN icao_name;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sexa2HoursHundredths(sexacentimal int) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE convertedValue VARCHAR(255);&lt;br /&gt;
    DECLARE hours VARCHAR(255);&lt;br /&gt;
    DECLARE roundedHours VARCHAR(255);&lt;br /&gt;
    DECLARE remainingTime VARCHAR(255);&lt;br /&gt;
    DECLARE decimalSeparator VARCHAR(1);&lt;br /&gt;
    SET hours = sexacentimal / 600;&lt;br /&gt;
    SET roundedHours = IF(sexacentimal &amp;gt; 0, FLOOR(hours), CEIL(hours));&lt;br /&gt;
    SET remainingTime = ABS(sexacentimal - roundedHours * 600);&lt;br /&gt;
    SET decimalSeparator =&lt;br /&gt;
            (SELECT IFNULL(char_value, '.') FROM parameter WHERE code = 'DECIMAL_SEPARATOR' AND key_id = 0 LIMIT 1);&lt;br /&gt;
&lt;br /&gt;
    SELECT CONCAT(&lt;br /&gt;
                   roundedHours, decimalSeparator, LPAD(FLOOR(remainingTime / 6), 2, '0')&lt;br /&gt;
               )&lt;br /&gt;
    INTO convertedValue;&lt;br /&gt;
&lt;br /&gt;
    RETURN convertedValue;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sexa2HoursMinute(sexacentimal int) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE convertedValue VARCHAR(255);&lt;br /&gt;
    DECLARE hours VARCHAR(255); # We separate hours computation from roundHours in order to keep the minus sign if hours is 0 but sexacentimal negative&lt;br /&gt;
    DECLARE roundedHours VARCHAR(255);&lt;br /&gt;
    DECLARE remainingTime VARCHAR(255);&lt;br /&gt;
    SET hours = sexacentimal / 600;&lt;br /&gt;
    SET roundedHours = IF(sexacentimal &amp;gt; 0, FLOOR(hours), CEIL(hours));&lt;br /&gt;
    SET remainingTime = ABS(sexacentimal - roundedHours * 600);&lt;br /&gt;
&lt;br /&gt;
    SELECT CONCAT(&lt;br /&gt;
                   roundedHours, ':', LPAD(FLOOR(remainingTime / 10), 2, '0')&lt;br /&gt;
               )&lt;br /&gt;
    INTO convertedValue;&lt;br /&gt;
&lt;br /&gt;
    RETURN convertedValue;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function stripChars(word varchar(255)) returns varchar(255)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE stripWord VARCHAR(255);&lt;br /&gt;
    SET stripWord = word;&lt;br /&gt;
    SELECT IF(stripWord REGEXP '[-]', REPLACE(stripWord, '-', ''), stripWord) INTO stripWord;&lt;br /&gt;
    SELECT IF(stripWord REGEXP '[ ]', REPLACE(stripWord, ' ', ''), stripWord) INTO stripWord;&lt;br /&gt;
    RETURN stripWord;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sumAccountEntry(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE balanceCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalBalance DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(debit, 0.00), IFNULL(credit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceDebit, balanceCredit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceDebit, balanceCredit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(debit), 0.00) + balanceDebit, IFNULL(SUM(credit), 0.00) + balanceCredit&lt;br /&gt;
    INTO totalDebit, totalCredit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME);&lt;br /&gt;
&lt;br /&gt;
    SELECT (totalCredit - totalDebit) INTO totalBalance;&lt;br /&gt;
&lt;br /&gt;
    RETURN totalBalance;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sumAccountEntryCredit(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalCredit DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(credit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceCredit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceCredit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(credit), 0.00) + balanceCredit&lt;br /&gt;
    INTO totalCredit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME);&lt;br /&gt;
&lt;br /&gt;
    RETURN totalCredit;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = overallCustomer@localhost function sumAccountEntryDebit(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalDebit DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(debit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceDebit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceDebit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(debit), 0.00) + balanceDebit&lt;br /&gt;
    INTO totalDebit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME);&lt;br /&gt;
&lt;br /&gt;
    RETURN totalDebit;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost function sumValidatedAccountEntry(accountId int, endDate datetime) returns decimal(15, 2)&lt;br /&gt;
BEGIN&lt;br /&gt;
    DECLARE balanceDate DATETIME;&lt;br /&gt;
    DECLARE balanceDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE balanceCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalDebit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalCredit DECIMAL(15, 2);&lt;br /&gt;
    DECLARE totalBalance DECIMAL(15, 2);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    SELECT balance_date, IFNULL(debit, 0.00), IFNULL(credit, 0.00)&lt;br /&gt;
    INTO balanceDate, balanceDebit, balanceCredit&lt;br /&gt;
    FROM balance_date&lt;br /&gt;
             LEFT JOIN balance ON (balance_date.id = balance.balance_date_id AND balance.account_id = accountId)&lt;br /&gt;
    WHERE balance_date.balance_date &amp;lt; endDate&lt;br /&gt;
    ORDER BY balance_date DESC&lt;br /&gt;
    LIMIT 1;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    IF (SELECT FOUND_ROWS()) = 0 THEN&lt;br /&gt;
        SELECT '0000-00-00 00:00:00', 0.00, 0.00 INTO balanceDate, balanceDebit, balanceCredit;&lt;br /&gt;
    END IF;&lt;br /&gt;
&lt;br /&gt;
    SELECT IFNULL(SUM(debit), 0.00) + balanceDebit, IFNULL(SUM(credit), 0.00) + balanceCredit&lt;br /&gt;
    INTO totalDebit, totalCredit&lt;br /&gt;
    FROM account_entry&lt;br /&gt;
    WHERE account_id = accountId&lt;br /&gt;
      AND account_date &amp;gt;= CAST(balanceDate AS DATETIME)&lt;br /&gt;
      AND account_date &amp;lt; CAST(endDate AS DATETIME)&lt;br /&gt;
      AND validated = 1;&lt;br /&gt;
&lt;br /&gt;
    SELECT (totalCredit - totalDebit) INTO totalBalance;&lt;br /&gt;
&lt;br /&gt;
    RETURN totalBalance;&lt;br /&gt;
END;&lt;br /&gt;
&lt;br /&gt;
create&lt;br /&gt;
    definer = root@localhost procedure addGapToDate(in gap int)&lt;br /&gt;
    modifies sql data&lt;br /&gt;
BEGIN&lt;br /&gt;
    &lt;br /&gt;
    DECLARE done TINYINT DEFAULT 0;&lt;br /&gt;
    DECLARE tmpTableName VARCHAR(255);&lt;br /&gt;
    DECLARE tmpColumnName VARCHAR(255);&lt;br /&gt;
    &lt;br /&gt;
    DECLARE cursor1 CURSOR FOR&lt;br /&gt;
        SELECT TABLE_NAME, COLUMN_NAME&lt;br /&gt;
        FROM information_schema.COLUMNS&lt;br /&gt;
        WHERE TABLE_SCHEMA = ( SELECT DATABASE() )&lt;br /&gt;
          AND DATA_TYPE IN ('date', 'datetime');&lt;br /&gt;
    &lt;br /&gt;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;&lt;br /&gt;
&lt;br /&gt;
    OPEN cursor1;&lt;br /&gt;
    REPEAT&lt;br /&gt;
        FETCH cursor1 INTO tmpTableName, tmpColumnName;&lt;br /&gt;
        IF NOT done THEN&lt;br /&gt;
            BEGIN&lt;br /&gt;
                SET @dynamicQuery = CONCAT('UPDATE ', tmpTableName, ' SET ', tmpColumnName, '= DATE_ADD(', tmpColumnName, ', INTERVAL ', gap, ' DAY)');&lt;br /&gt;
                PREPARE pQuery FROM @dynamicQuery;&lt;br /&gt;
                EXECUTE pQuery;&lt;br /&gt;
                DEALLOCATE PREPARE pQuery;&lt;br /&gt;
            END;&lt;br /&gt;
        END IF;&lt;br /&gt;
    UNTIL done END REPEAT;&lt;br /&gt;
    CLOSE cursor1;&lt;br /&gt;
&lt;br /&gt;
    TRUNCATE TABLE customer_bill_file;&lt;br /&gt;
END;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&lt;br /&gt;
==Table booking==&lt;br /&gt;
&lt;br /&gt;
Le contenu du champ ''aircraft_id'' de la table ''booking'' peut être nul. Dans ce cas, c'est une ancienne réservation effectuée sur une ressource non-existante ou qui n'existe plus; aussi nommé réservation orpheline.&lt;br /&gt;
&lt;br /&gt;
==Table flight==&lt;br /&gt;
&lt;br /&gt;
*airborne :&lt;br /&gt;
**0: Pas en l'air ou fermeture de vol : Le pilote a terminé le vol.&lt;br /&gt;
**1: En l'air ou ouverture de vol : Le pilote remplit le vol avant de voler.&lt;br /&gt;
&lt;br /&gt;
==Champs cachés==&lt;br /&gt;
Les champs suivants ne peuvent être exportés et ne doivent pas être inclus dans une requête SELECT. De plus, un &amp;quot;SELECT *&amp;quot; est interdit quand une des tables contient un champ caché :&lt;br /&gt;
*Table journal : Tous les champs&lt;br /&gt;
*Table log : Tous les champs&lt;br /&gt;
*Table parameter : Tous les champs&lt;br /&gt;
*Table person :&lt;br /&gt;
**hash_password&lt;br /&gt;
*Table structure :&lt;br /&gt;
**address&lt;br /&gt;
**admin_num&lt;br /&gt;
**city&lt;br /&gt;
**country&lt;br /&gt;
**default_notification&lt;br /&gt;
**default_slot_range&lt;br /&gt;
**default_timezone&lt;br /&gt;
**default_view_type&lt;br /&gt;
**email&lt;br /&gt;
**fax&lt;br /&gt;
**first_hour_displayed&lt;br /&gt;
**info_cell&lt;br /&gt;
**lang&lt;br /&gt;
**last_hour_displayed&lt;br /&gt;
**logo&lt;br /&gt;
**logo_name&lt;br /&gt;
**logo_ext&lt;br /&gt;
**logo_size&lt;br /&gt;
**mail_from_address&lt;br /&gt;
**mailing_list_name&lt;br /&gt;
**mailing_list_type&lt;br /&gt;
**min_slot_range&lt;br /&gt;
**name&lt;br /&gt;
**phone&lt;br /&gt;
**state&lt;br /&gt;
**twilight_range&lt;br /&gt;
**usual_profiles&lt;br /&gt;
**welcome_cell&lt;br /&gt;
**zipcode&lt;br /&gt;
*Table oauth_client : Tous les champs&lt;br /&gt;
*Table oauth_access_token : Tous les champs&lt;br /&gt;
*Table oauth_auth_code : Tous les champs&lt;br /&gt;
*Table oauth_refresh_token : Tous les champs&lt;br /&gt;
&lt;br /&gt;
Exemple de requêtes non autorisées :&lt;br /&gt;
&amp;lt;sql&amp;gt;SELECT * FROM structure;&lt;br /&gt;
&lt;br /&gt;
SELECT hash_password FROM person;&lt;br /&gt;
&lt;br /&gt;
SELECT person.id, validity.*&lt;br /&gt;
FROM person&lt;br /&gt;
LEFT JOIN validity ON (person.id=validity.person_id);&amp;lt;/sql&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
	<entry>
		<id>https://doc4-fr.openflyers.com/index.php?title=Documents&amp;diff=14467</id>
		<title>Documents</title>
		<link rel="alternate" type="text/html" href="https://doc4-fr.openflyers.com/index.php?title=Documents&amp;diff=14467"/>
		<updated>2026-06-08T15:38:00Z</updated>

		<summary type="html">&lt;p&gt;Mbouzar: /* Utilisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation=&lt;br /&gt;
L'objet de cette page est de présenter les fonctionnalités utilisateurs permettant d'accéder aux documents stockés sur une plateforme OpenFlyers.&lt;br /&gt;
&lt;br /&gt;
Les gestionnaires peuvent consulter la page de [[gestion des documents]].&lt;br /&gt;
&lt;br /&gt;
=Utilisation=&lt;br /&gt;
L'utilisateur peut accéder aux documents rattachés à chaque ressource depuis le planning. Il faut survoler la ressource avec le pointeur de la souris et choisir parmi les documents disponibles en cliquant sur le document souhaité.&lt;br /&gt;
[[File:doc-planning.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
==Consulter les documents==&lt;br /&gt;
Aller à '''Planning &amp;gt; Docs''' pour accéder à l'ensemble des documents.&lt;br /&gt;
&lt;br /&gt;
Les documents peuvent être filtrés à l'aide des critères suivants :&lt;br /&gt;
&lt;br /&gt;
* '''Catégorie'''&lt;br /&gt;
* '''Ressource/Structure'''&lt;br /&gt;
&lt;br /&gt;
Une fois le document trouvé, cliquer sur le pictogramme document pour le télécharger.&lt;br /&gt;
&lt;br /&gt;
==Historique des documents==&lt;br /&gt;
Chaque document dispose d'un historique des versions.&lt;br /&gt;
&lt;br /&gt;
L'historique est accessible depuis :&lt;br /&gt;
&lt;br /&gt;
* '''Gestion &amp;gt; Com/Docs &amp;gt; Documents &amp;gt; XXX &amp;gt; Historique'''&lt;br /&gt;
* '''Planning &amp;gt; Docs &amp;gt; XXX &amp;gt; Historique'''&lt;br /&gt;
&lt;br /&gt;
Pour chaque version, les informations suivantes sont affichées :&lt;br /&gt;
&lt;br /&gt;
*Date du téléversement&lt;br /&gt;
*Nom de l'utilisateur ayant téléversé le document&lt;br /&gt;
*Nom du fichier téléversé&lt;br /&gt;
*Ressource/Structure à laquelle le document est rattaché&lt;br /&gt;
*Catégorie du document&lt;br /&gt;
*Pictogramme de téléchargement du fichier&lt;/div&gt;</summary>
		<author><name>Mbouzar</name></author>
	</entry>
</feed>