ServiceWeb vols : Différence entre versions

De GIVAV-WIKI
Aller à la navigationAller à la recherche
m (v3.3)
(ssl)
 
(8 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
'''Attention !''' Cette fonctionnalité apparaîtra en mars 2018 avec la version 3.3.<br />
 
<br />
 
 
 
Ce service Web remplace l'ancienne version qui utilisait SOAP. Maintenant, il utilise l'envoi d'objets encodé en JSON sur une liaison cryptée (HTTPS).<br />
 
Ce service Web remplace l'ancienne version qui utilisait SOAP. Maintenant, il utilise l'envoi d'objets encodé en JSON sur une liaison cryptée (HTTPS).<br />
 
L'ancienne version pourra encore être utilisée en 2018. Pour ceci, vous devez mettre en place l'utilisateur décrit ci-dessous, le mot de passe étant celui du club (utilisé par le module PDA ou PC).<br />
 
L'ancienne version pourra encore être utilisée en 2018. Pour ceci, vous devez mettre en place l'utilisateur décrit ci-dessous, le mot de passe étant celui du club (utilisé par le module PDA ou PC).<br />
Ligne 8 : Ligne 5 :
 
== Authentification ==
 
== Authentification ==
 
[[Fichier:ServiceWeb_3.3-01.png]]<br />
 
[[Fichier:ServiceWeb_3.3-01.png]]<br />
Pour accéder au service Web, il faut créer un utilisateur dédié.<br /><br />
+
Pour accéder au service Web, il faut créer un utilisateur dédié dont le rôle est décrit ci-dessous.<br /><br />
  
 
[[Fichier:ServiceWeb_3.3-02.png]]<br />
 
[[Fichier:ServiceWeb_3.3-02.png]]<br />
 
Cet utilisateur se voit affecter un rôle limité à l'accès au service Web des vols.<br /><br />
 
Cet utilisateur se voit affecter un rôle limité à l'accès au service Web des vols.<br /><br />
  
<code>
+
<code type="php">
 
     /**
 
     /**
 
     * Exécution d'un requête vers le serveur
 
     * Exécution d'un requête vers le serveur
Ligne 37 : Ligne 34 :
 
         // Requête
 
         // Requête
 
         $ch = curl_init();
 
         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, 'http://localhost:10095/givav.php/gvsw/vol/' . $fonction);
+
         curl_setopt($ch, CURLOPT_URL, 'https://club.givav.fr/givav.php/gvsw/vol/' . $fonction);
 
         curl_setopt($ch, CURLOPT_POST, 1);
 
         curl_setopt($ch, CURLOPT_POST, 1);
 
         curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
 
         curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
Ligne 43 : Ligne 40 :
 
         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,3);
 
         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,3);
 
         curl_setopt($ch, CURLOPT_TIMEOUT, 20);
 
         curl_setopt($ch, CURLOPT_TIMEOUT, 20);
         curl_setopt($ch, CURLOPT_SSLVERSION,3);
+
         curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1_2);
 
         $response = curl_exec($ch);
 
         $response = curl_exec($ch);
 
         if ($response === false) {
 
         if ($response === false) {
Ligne 62 : Ligne 59 :
 
Cette fonction permet de récupérer la liste des aéronefs.<br />
 
Cette fonction permet de récupérer la liste des aéronefs.<br />
  
<code>
+
<code type="php">
 
     // Liste des aéronefs
 
     // Liste des aéronefs
 
     $aeronefs = sendGivav('getAeronef',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
 
     $aeronefs = sendGivav('getAeronef',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
Ligne 77 : Ligne 74 :
 
<br />
 
<br />
  
<code>
+
<code type="php">
 
     [0] => stdClass Object
 
     [0] => stdClass Object
 
         (
 
         (
Ligne 93 : Ligne 90 :
 
             [remorqueur] => 1
 
             [remorqueur] => 1
 
             [saisie_remorque] => C
 
             [saisie_remorque] => C
             [flarm_id] =>  
+
             [id_flarm] =>  
 
             [actif] => 1
 
             [actif] => 1
 
             [situation] => B
 
             [situation] => B
Ligne 113 : Ligne 110 :
 
             [remorqueur] =>  
 
             [remorqueur] =>  
 
             [saisie_remorque] =>  
 
             [saisie_remorque] =>  
             [flarm_id] => DDDCBF
+
             [id_flarm] => DDDCBF
 
             [actif] => 1
 
             [actif] => 1
 
             [situation] => C
 
             [situation] => C
Ligne 120 : Ligne 117 :
 
Voici deux aéronefs retournés par le serveur.<br /><br />
 
Voici deux aéronefs retournés par le serveur.<br /><br />
  
<code>
+
<code type="php">
 
     // Aéronef
 
     // Aéronef
 
     class Aeronef
 
     class Aeronef
Ligne 207 : Ligne 204 :
 
         * @var string
 
         * @var string
 
         */
 
         */
         public $flarm_id;
+
         public $id_flarm;
 
         /**
 
         /**
 
         * Est-il actif ?
 
         * Est-il actif ?
Ligne 227 : Ligne 224 :
 
Cette fonction permet de récupérer la liste des treuils.<br />
 
Cette fonction permet de récupérer la liste des treuils.<br />
  
<code>
+
<code type="php">
 
     // Liste des treuils
 
     // Liste des treuils
 
     $treuils = sendGivav('getTreuil',array('actif' => true));
 
     $treuils = sendGivav('getTreuil',array('actif' => true));
Ligne 237 : Ligne 234 :
 
<br />
 
<br />
  
<code>
+
<code type="php">
 
     [0] => stdClass Object
 
     [0] => stdClass Object
 
         (
 
         (
Ligne 264 : Ligne 261 :
 
Voici trois treuils retournés par le serveur.<br /><br />
 
Voici trois treuils retournés par le serveur.<br /><br />
  
<code>
+
<code type="php">
 
     // Treuil
 
     // Treuil
 
     class Treuil
 
     class Treuil
Ligne 299 : Ligne 296 :
 
Cette fonction permet de récupérer la liste des pilotes.<br />
 
Cette fonction permet de récupérer la liste des pilotes.<br />
  
<code>
+
<code type="php">
 
     // Liste des pilotes
 
     // Liste des pilotes
 
     $pilotes = sendGivav('getPilote',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true));
 
     $pilotes = sendGivav('getPilote',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true));
Ligne 312 : Ligne 309 :
 
<br />
 
<br />
  
<code>
+
<code type="php">
 
     [28] => stdClass Object
 
     [28] => stdClass Object
 
         (
 
         (
Ligne 333 : Ligne 330 :
 
Voici un pilote retourné par le serveur.<br /><br />
 
Voici un pilote retourné par le serveur.<br /><br />
  
<code>
+
<code type="php">
 
     // Pilote
 
     // Pilote
 
     class Pilote
 
     class Pilote
Ligne 428 : Ligne 425 :
 
Cette fonction permet de récupérer la liste des clubs ou sections.<br />
 
Cette fonction permet de récupérer la liste des clubs ou sections.<br />
  
<code>
+
<code type="php">
 
     // Liste des clubs
 
     // Liste des clubs
 
     $clubs = sendGivav('getClub',array('actif' => true));
 
     $clubs = sendGivav('getClub',array('actif' => true));
Ligne 437 : Ligne 434 :
 
* actif : (booléen) '''true''' pour retourner uniquement les clubs actifs.
 
* actif : (booléen) '''true''' pour retourner uniquement les clubs actifs.
  
<code>
+
<code type="php">
 
     [36] => stdClass Object
 
     [36] => stdClass Object
 
         (
 
         (
Ligne 446 : Ligne 443 :
 
</code>
 
</code>
 
Voici un club retourné par le serveur.<br /><br />
 
Voici un club retourné par le serveur.<br /><br />
 
+
<code type="php">
<code>
 
 
     // Club ou section
 
     // Club ou section
 
     class Club
 
     class Club
Ligne 476 : Ligne 472 :
 
Cette fonction permet de récupérer la liste des comptes internes.<br />
 
Cette fonction permet de récupérer la liste des comptes internes.<br />
  
<code>
+
<code type="php">
 
     // Liste des comptes internes
 
     // Liste des comptes internes
 
     $compte_internes = sendGivav('getCompteInterne',array('actif' => true));
 
     $compte_internes = sendGivav('getCompteInterne',array('actif' => true));
Ligne 485 : Ligne 481 :
 
* actif : (booléen) '''true''' pour retourner uniquement les comptes actifs.
 
* actif : (booléen) '''true''' pour retourner uniquement les comptes actifs.
  
<code>
+
<code type="php">
 
     [0] => stdClass Object
 
     [0] => stdClass Object
 
         (
 
         (
Ligne 495 : Ligne 491 :
 
Voici un compte interne retourné par le serveur.<br /><br />
 
Voici un compte interne retourné par le serveur.<br /><br />
  
<code>
+
<code type="php">
 
     // Compte interne
 
     // Compte interne
 
     class CompteInterne
 
     class CompteInterne
Ligne 524 : Ligne 520 :
 
Cette fonction permet de récupérer la liste des types de vol.<br />
 
Cette fonction permet de récupérer la liste des types de vol.<br />
  
<code>
+
<code type="php">
 
     // Liste des types de vols
 
     // Liste des types de vols
 
     $types_vol = sendGivav('getTypeVol',array('planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
 
     $types_vol = sendGivav('getTypeVol',array('planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
Ligne 537 : Ligne 533 :
 
* simulateur : (booléen) '''true''' pour retourner les types utilisables pour les simulateurs.
 
* simulateur : (booléen) '''true''' pour retourner les types utilisables pour les simulateurs.
  
<code>
+
<code type="php">
 
     [5] => stdClass Object
 
     [5] => stdClass Object
 
         (
 
         (
Ligne 552 : Ligne 548 :
 
Voici un type de vol retourné par le serveur.<br /><br />
 
Voici un type de vol retourné par le serveur.<br /><br />
  
<code>
+
<code type="php">
 
     // Type de vol
 
     // Type de vol
 
     class TypeVol
 
     class TypeVol
Ligne 611 : Ligne 607 :
 
Cette fonction permet de récupérer la liste des types de remorquage.<br />
 
Cette fonction permet de récupérer la liste des types de remorquage.<br />
  
<code>
+
<code type="php">
 
     // Liste des types de remorquage
 
     // Liste des types de remorquage
 
     $types_remo = sendGivav('getTypeRemo',array());
 
     $types_remo = sendGivav('getTypeRemo',array());
Ligne 619 : Ligne 615 :
 
La variable ''$fonction'' a comme valeur '''getTypeRemo''', le tableau ''$params'' est vide.
 
La variable ''$fonction'' a comme valeur '''getTypeRemo''', le tableau ''$params'' est vide.
  
<code>
+
<code type="php">
 
     [0] => stdClass Object
 
     [0] => stdClass Object
 
         (
 
         (
Ligne 638 : Ligne 634 :
 
Voici des types de remorquage retournés par le serveur.<br /><br />
 
Voici des types de remorquage retournés par le serveur.<br /><br />
  
<code>
+
<code type="php">
 
     // Type de remorquage
 
     // Type de remorquage
 
     class TypeRemo
 
     class TypeRemo
Ligne 670 : Ligne 666 :
 
Ci-dessus, la description de l'objet retourné pour un type de remorquage.<br /><br />
 
Ci-dessus, la description de l'objet retourné pour un type de remorquage.<br /><br />
  
== Envoi d'un vol ==
+
== VI non réalisés ==
Cette fonction permet de récupérer la liste des types de remorquage.<br />
+
Cette fonction permet de récupérer la liste des VI vendu sur Internet qui n'ont pas encore été réalisés.<br />
  
<code>
+
<code type="php">
     // Liste des types de remorquage
+
     // Liste des VI à réaliser
     $types_remo = sendGivav('getTypeRemo',array());
+
     $vis = sendGivav('getVi',array());
     print_r($types_remo);
+
     print_r($vis);
 
</code>
 
</code>
Ce code PHP demande au serveur de lui retourner les type de remorquage actifs.<br />
+
Ce code PHP demande au serveur de lui retourner tous les VI non réalisés.<br />
La variable ''$fonction'' a comme valeur '''getTypeRemo''', le tableau ''$params'' est vide.
+
La variable ''$fonction'' a comme valeur '''getVi''', le tableau ''$params'' est vide.
  
<code>
+
<code type="php">
 
     [0] => stdClass Object
 
     [0] => stdClass Object
 
         (
 
         (
             [id_remorque] => 3
+
             [code_vi] => 97960-18851-68788
             [nom] => Forf. 500m
+
             [nom_prenom] => TOTO PIERRE
             [saisie_temps] =>  
+
             [tel] => +33 6 01 02 03 04
             [defaut] => 1
+
             [date_fin_valid] => 2020-01-28
 +
            [date_heure_resa] => 2019-01-30 13:30:00
 
         )
 
         )
  
 
     [1] => stdClass Object
 
     [1] => stdClass Object
 
         (
 
         (
             [id_remorque] => 2
+
             [code_vi] => 98103-67605-54800
             [nom] => Temps passé
+
             [nom_prenom] => TOTO MARIE
             [saisie_temps] => 1
+
             [tel] => +33 6 01 02 03 04
             [defaut] =>  
+
             [date_fin_valid] => 2019-10-04
 +
            [date_heure_resa] =>  
 
         )
 
         )
 
</code>
 
</code>
Voici des types de remorquage retournés par le serveur.<br /><br />
+
Le premier exemple montre un VI dont la réservation a été faite.<br />
 +
 
 +
== Envoi d'un vol ==
 +
Cette fonction permet d'envoyer un vol au serveur.<br />
 +
 
 +
<code type="php">
 +
    // Envoi d'un vol
 +
    $retour = sendGivav('setVol',array('vol' => json_encode($new_vol)));
 +
    if ($retour <> 'OK') echo 'Erreur : ' . $retour;
 +
</code>
 +
Ce code PHP envoi au serveur un objet vol. Le code de retour contient ''OK'' si l'enregistrement s'est bien effectué, sinon, il contient le texte de l'erreur.<br />
 +
Vous pouvez envoyer plusieurs fois le même vol, l'unicité se fait sur la date, le n° de planche et le n° de ligne.<br />
 +
La variable ''$fonction'' a comme valeur '''setVol''', le tableau ''$params'' contient l'objet vol.
  
<code>
+
<code type="php">
     // Type de remorquage
+
     /**
     class TypeRemo
+
    * Vol
 +
    */
 +
     class Vol
 
     {
 
     {
 
         /**
 
         /**
         * Identifiant unique
+
        * Date du vol (yyyy-mm-dd)
 +
        *
 +
        * @var string
 +
        */
 +
        public $date_vol = null;
 +
        /**
 +
        * Numéro de planche
 +
        *
 +
        * @var integer
 +
        */
 +
        public $planche = 1;
 +
        /**
 +
        * Numéro de ligne
 +
        *
 +
        * @var integer
 +
        */
 +
        public $no_ligne = 0;
 +
        /**
 +
        * Immatriculation de l'aéronef
 +
        *
 +
        * @var string
 +
        */
 +
        public $immatriculation = null;
 +
        /**
 +
         * Identifiant unique du type de vol
 +
        *
 +
        * @var integer
 +
        */
 +
        public $id_tarif_type_vol = 0;
 +
        /**
 +
        * Heure de décollage
 +
        *
 +
        * @var string
 +
        */
 +
        public $decollage = null;
 +
        /**
 +
        * Heure d'atterrissage
 +
        *
 +
        * @var string
 +
        */
 +
        public $atterrissage = null;
 +
        /**
 +
        * Nombre d'atterrissages
 +
        *
 +
        * @var integer
 +
        */
 +
        public $nb_atterrissages = 1;
 +
        /**
 +
        * Pilote ou club en place 1
 +
        *
 +
        * @var string
 +
        */
 +
        public $place_1 = null;
 +
        /**
 +
        * Pilote ou club en place 2
 +
        *
 +
        * @var string
 +
        */
 +
        public $place_2 = null;
 +
        /**
 +
        * Nom du passager (si VI)
 +
        *
 +
        * @var string
 +
        */
 +
        public $passager = null;
 +
        /**
 +
        * Lieu de décollage
 +
        *
 +
        * @var integer
 +
        */
 +
        public $lieu_decollage = null;
 +
        /**
 +
        * Lieu d'atterrissage
 +
        *
 +
        * @var string
 +
        */
 +
        public $lieu_atterrissage = null;
 +
        /**
 +
        * Est-ce un vol montagne ?
 +
        *
 +
        * @var boolean
 +
        */
 +
        public $montagne = false;
 +
        /**
 +
        * Commentaire
 +
        *
 +
        * @var string
 +
        */
 +
        public $commentaire = null;
 +
        /**
 +
        * Mode de décollage (T = treuil, R = remorqueur, M = autonome, E = élastique, V = voiture)
 +
        *
 +
        * @var string
 +
        */
 +
        public $mode_decollage = null;
 +
        /**
 +
        * Immatriculation du remorqueur
 +
        *
 +
        * @var string
 +
        */
 +
        public $remorqueur = null;
 +
        /**
 +
        * Pilote remorqueur
 +
        *
 +
        * @var string
 +
        */
 +
        public $pilote_remorqueur = null;
 +
        /**
 +
        * Identifiant unique du type de remorquage
 +
        *
 +
        * @var integer
 +
        */
 +
        public $id_remorque = null;
 +
        /**
 +
        * Horamètre de début du remorquage
 +
        *
 +
        * @var integer
 +
        */
 +
        public $rem_hora_debut = null;
 +
        /**
 +
        * Horamètre de fin du remorquage
 +
        *
 +
        * @var integer
 +
        */
 +
        public $rem_hora_fin = null;
 +
        /**
 +
        * Temps de remorquage en centièmes
 +
        *
 +
        * @var integer
 +
        */
 +
        public $tps_remorque_cent = null;
 +
        /**
 +
        * Pays du bénéficiaire
 +
        *
 +
        * @var string
 +
        */
 +
        public $tps_remorque = null;
 +
        /**
 +
        * Nombre d'unité de mise en l'air (UM) à facturer pour le remorquage
 +
        *
 +
        * @var float
 +
        */
 +
        public $nb_um = null;
 +
        /**
 +
        * Identifiant unique du treuil
 +
        *
 +
        * @var string
 +
        */
 +
        public $id_treuil = null;
 +
        /**
 +
        * Pilote du treuil
 +
        *
 +
        * @var string
 +
        */
 +
        public $treuilleur = null;
 +
        /**
 +
        * Temps moteur : Valeur de l'horamètre au début du vol
 +
        *
 +
        * @var integer
 +
        */
 +
        public $horametre_debut = null;
 +
        /**
 +
        * Temps moteur : Valeur de l'horamètre en fin du vol
 +
        *
 +
        * @var integer
 +
        */
 +
        public $horametre_fin = null;
 +
        /**
 +
        * Temps moteur en centièmes
 
         *
 
         *
 
         * @var integer
 
         * @var integer
 
         */
 
         */
         public $id_remorque;
+
         public $tps_moteur_cent = null;
 +
        /**
 +
        * Temps moteur (hh:mm:ss)
 +
        *
 +
        * @var string
 +
        */
 +
        public $tps_moteur = null;
 +
        /**
 +
        * Prix particulier pour le vol (cellule)
 +
        *
 +
        * @var float
 +
        */
 +
        public $prix_vol = null;
 +
        /**
 +
        * Pilote, club ou compte interne qui paie le vol (cellule)
 +
        *
 +
        * @var string
 +
        */
 +
        public $paie_vol = null;
 +
        /**
 +
        * Prix particulier pour le remorquage
 +
        *
 +
        * @var float
 +
        */
 +
        public $prix_remorque = null;
 +
        /**
 +
        * Pilote, club ou compte interne qui paie le remorquage
 +
        *
 +
        * @var string
 +
        */
 +
        public $paie_remorque = null;
 +
        /**
 +
        * Prix particulier pour le treuillage
 +
        *
 +
        * @var float
 +
        */
 +
        public $prix_treuil = null;
 +
        /**
 +
        * Pilote, club ou compte interne qui paie le treuillage
 +
        *
 +
        * @var string
 +
        */
 +
        public $paie_treuil = null;
 +
        /**
 +
        * Prix particulier pour le temps moteur
 +
        *
 +
        * @var float
 +
        */
 +
        public $prix_moteur = null;
 
         /**
 
         /**
         * Nom
+
         * Pilote, club ou compte interne qui paie le temps moteur
 
         *
 
         *
 
         * @var string
 
         * @var string
 
         */
 
         */
         public $nom;
+
         public $paie_moteur = null;
 +
        /**
 +
        * Tout le vol, cellule, moteur et mise ne l'air seront calculés ne pourront pas être déduit d'un forfait
 +
        *
 +
        * @var boolean
 +
        */
 +
        public $hors_forfait = false;
 +
        /**
 +
        * Ce vol compte-il pour la calcul automatique de la participation aux frais journalière ?
 +
        *
 +
        * @var boolean
 +
        */
 +
        public $hors_part_jour = false;
 +
        /**
 +
        * Ce vol compte-il pour la calcul de la participation aux frais 'Passager'
 +
        *
 +
        * @var boolean
 +
        */
 +
        public $hors_part_passager = false;
 +
        /**
 +
        * Ce vol compte-il pour la calcul de l'assurance VI
 +
        *
 +
        * @var boolean
 +
        */
 +
        public $hors_assurance_vi = false;
 
         /**
 
         /**
         * Doit-on saisir le temps de remorquage ?
+
         * L'instructeur partage-t-il le prix du vol ?
 
         *
 
         *
 
         * @var boolean
 
         * @var boolean
 
         */
 
         */
         public $saisie_temps;
+
         public $part_instructeur = false;
 
         /**
 
         /**
         * Est-ce le type de remorquage par défaut ?
+
         * Indique si un VI club a donné lieu à deux décollages
 
         *
 
         *
 
         * @var boolean
 
         * @var boolean
 
         */
 
         */
         public $defaut;
+
         public $vi_double = false;
 
     }
 
     }
 
</code>
 
</code>
Ci-dessus, la description de l'objet retourné pour un type de remorquage.<br /><br />
+
Ci-dessus, la description de l'objet vol.<br /><br />

Version actuelle datée du 6 mai 2020 à 06:14

Ce service Web remplace l'ancienne version qui utilisait SOAP. Maintenant, il utilise l'envoi d'objets encodé en JSON sur une liaison cryptée (HTTPS).
L'ancienne version pourra encore être utilisée en 2018. Pour ceci, vous devez mettre en place l'utilisateur décrit ci-dessous, le mot de passe étant celui du club (utilisé par le module PDA ou PC).

Authentification

ServiceWeb 3.3-01.png
Pour accéder au service Web, il faut créer un utilisateur dédié dont le rôle est décrit ci-dessous.

ServiceWeb 3.3-02.png
Cet utilisateur se voit affecter un rôle limité à l'accès au service Web des vols.

   /**
    * Exécution d'un requête vers le serveur
    *
    * @param string $fonction Action à exécuter
    * @param array $params Tableau des variables à transmettre
    * @return object
    */
   function sendGivav($fonction,$params)
   {
       // Données de connexion
       $post = array(
                'assoc' => '524901'
               ,'utilisateur' => 'sw.vol'
               ,'mot_de_passe' => 'mon mot de passe'
       );
       $post = array_merge($post,$params);
       $post_string = ;
       foreach ($post as $key => $value) {
           $post_string .= $key . '=' . $value . '&';
       }
       $post_string = rtrim($post_string,'&');
       // Requête
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, 'https://club.givav.fr/givav.php/gvsw/vol/' . $fonction);
       curl_setopt($ch, CURLOPT_POST, 1);
       curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
       curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,3);
       curl_setopt($ch, CURLOPT_TIMEOUT, 20);
       curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1_2);
       $response = curl_exec($ch);
       if ($response === false) {
           if (is_numeric(curl_errno($ch)) and function_exists('curl_strerror')) {
               throw new Exception('Curl error : ' . curl_strerror(curl_errno($ch)));
           } else {
               throw new Exception('Curl error : ' . curl_errno($ch));
           }
       }
       curl_close($ch);
       return json_decode($response);
   }

Cette fonction montre comment envoyer une requête en PHP au service Web des vols.
Les variables $fontion et $params sont expliquées plus loin.

Liste des aéronefs

Cette fonction permet de récupérer la liste des aéronefs.

   // Liste des aéronefs
   $aeronefs = sendGivav('getAeronef',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
   print_r($aeronefs);

Ce code PHP demande au serveur de lui retourner les aéronefs actifs sauf les simulateurs.
La variable $fonction a comme valeur getAeronef, le tableau $params contient :

  • actif : (booléen) true pour retourner uniquement les aéronefs actifs.
  • planeur : (booléen) true pour retourner les planeurs.
  • avion : (booléen) true pour retourner les avions.
  • ulm : (booléen) true pour retourner les ULM.
  • tmg : (booléen) true pour retourner les TMG.
  • simulateur : (booléen) true pour retourner les simulateurs.


   [0] => stdClass Object
       (
           [id_aeronef] => 23
           [immatriculation] => F-BRKD
           [nom_type] => MS 893
           [no_concours] => 
           [categorie] => A
           [nb_places] => 4
           [treuillable] => 
           [remorquable] => 
           [turbo] => 
           [autonome] => 1
           [saisie_moteur] => C
           [remorqueur] => 1
           [saisie_remorque] => C
           [id_flarm] => 
           [actif] => 1
           [situation] => B
       )
   [1] => stdClass Object
       (
           [id_aeronef] => 444
           [immatriculation] => F-CCDF
           [nom_type] => ASK 21
           [no_concours] => DF
           [categorie] => P
           [nb_places] => 2
           [treuillable] => 1
           [remorquable] => 1
           [turbo] => 
           [autonome] => 
           [saisie_moteur] => 
           [remorqueur] => 
           [saisie_remorque] => 
           [id_flarm] => DDDCBF
           [actif] => 1
           [situation] => C
       )

Voici deux aéronefs retournés par le serveur.

   // Aéronef
   class Aeronef
   {
       /**
        * Identifiant unique de l'aéronef
        *
        * @var integer
        */
       public $id_aeronef;
       /**
        * Immatriculation
        *
        * @var string
        */
       public $immatriculation;
       /**
        * Type de l'aéronef
        *
        * @var string
        */
       public $nom_type;
       /**
        * Numéro de concours
        *
        * @var string
        */
       public $no_concours;
       /**
        * Catégorie d'aéronef P = planeur, A = avion, U = UML, T = TMG, S = simulateur
        *
        * @var string
        */
       public $categorie;
       /**
        * Nombre de places
        *
        * @var integer
        */
       public $nb_places;
       /**
        * Est-il treuillable ? (Planeur, ULM)
        *
        * @var boolean
        */
       public $treuillable;
       /**
        * Est-il remorquable ? (Planeur, ULM)
        *
        * @var boolean
        */
       public $remorquable;
       /**
        * Le planeur est-il équipé d'un turbo ? (Planeur)
        *
        * @var boolean
        */
       public $turbo;
       /**
        * L'aéronef décolle-t-il seul ? (Planeur, ULM)
        *
        * @var boolean
        */
       public $autonome;
       /**
        * Mode de saisie du temps moteur (autonome ou turbo) T = Heures, minutes et secondes, C = Centièmes, H = Horamètre début et fin
        *
        * @var string
        */
       public $saisie_moteur;
       /**
        * Cet aéronef est-il un remorqueur ? (Avion, ULM, TMG)
        *
        * @var boolean
        */
       public $remorqueur;
       /**
        * Mode de saisie du temps de remorquage (remorqueur) T = Heures, minutes et secondes, C = Centièmes, H = Horamètre début et fin
        *
        * @var string
        */
       public $saisie_remorque;
       /**
        * Identifiant unique du FLARM
        *
        * @var string
        */
       public $id_flarm;
       /**
        * Est-il actif ?
        *
        * @var boolean
        */
       public $actif;
       /**
        * Situation par rapport au club : C = club, P = privé, B = banalisé, E = extérieur
        *
        * @var string
        */
       public $situation;
   }

Ci-dessus, la description de l'objet retourné pour un aéronef.

Liste des treuils

Cette fonction permet de récupérer la liste des treuils.

   // Liste des treuils
   $treuils = sendGivav('getTreuil',array('actif' => true));
   print_r($treuils);

Ce code PHP demande au serveur de lui retourner les treuils actifs.
La variable $fonction a comme valeur getTreuil, le tableau $params contient :

  • actif : (booléen) true pour retourner uniquement les treuils actifs.


   [0] => stdClass Object
       (
           [id_treuil] => 2
           [nom] => TOST 1
           [exterieur] => 
           [actif] => 1
       )
   [1] => stdClass Object
       (
           [id_treuil] => 1
           [nom] => TOST 2
           [exterieur] => 
           [actif] => 1
       )
   [2] => stdClass Object
       (
           [id_treuil] => 3
           [nom] => Treuil extérieur (autre club)
           [exterieur] => 1
           [actif] => 1
       )

Voici trois treuils retournés par le serveur.

   // Treuil
   class Treuil
   {
       /**
        * Identifiant unique du treuil
        *
        * @var integer
        */
       public $id_treuil;
       /**
        * Nom
        *
        * @var string
        */
       public $nom;
       /**
        * Est-ce un treuil extérieur ?
        *
        * @var boolean
        */
       public $exterieur;
       /**
        * Le treuil est-il actif ?
        *
        * @var boolean
        */
       public $actif;
   }

Ci-dessus, la description de l'objet retourné pour un treuil.

Liste des pilotes

Cette fonction permet de récupérer la liste des pilotes.

   // Liste des pilotes
   $pilotes = sendGivav('getPilote',array('actif' => true,'planeur' => true,'avion' => true,'ulm' => true));
   print_r($pilotes);

Ce code PHP demande au serveur de lui retourner les pilotes actifs quelque soit l'activité pratiquée.
La variable $fonction a comme valeur getPilote, le tableau $params contient :

  • actif : (booléen) true pour retourner uniquement les pilote actifs. Si false, les pilotes actifs dans les 3 ans sont retournés.
  • planeur : (booléen) true pour retourner les pilote qui participent à l'activité planeurs.
  • avion : (booléen) true pour retourner les pilote qui participent à l'activité avions.
  • ulm : (booléen) true pour retourner les pilote qui participent à l'activité ULM.


   [28] => stdClass Object
       (
           [code] => P2272
           [nom_prenom] => MOREAU CHRISTOPHE
           [actif] => 1
           [planeur] => 1
           [avion] => 1
           [ulm] => 
           [instructeur_planeur] => 1
           [instructeur_avion] => 
           [instructeur_ulm] => 
           [vi_planeur] => 1
           [vi_avion] => 
           [vi_ulm] => 
           [remorqueur] => 
           [treuilleur] => 1
       )

Voici un pilote retourné par le serveur.

   // Pilote
   class Pilote
   {
       /**
        * 'P' + Numéro national
        *
        * @var string
        */
       public $code;
       /**
        * Nom et prénom
        *
        * @var string
        */
       public $nom_prenom;
       /**
        * Le pilote est-il actif ?
        *
        * @var boolean
        */
       public $actif;
       /**
        * Participe-t-il à l'activite planeur ?
        *
        * @var boolean
        */
       public $planeur;
       /**
        * Participe-t-il à l'activite avion ?
        *
        * @var boolean
        */
       public $avion;
       /**
        * Participe-t-il à l'activite ULM ?
        *
        * @var boolean
        */
       public $ulm;
       /**
        * Est-ce un instructeur planeur ?
        *
        * @var boolean
        */
       public $instructeur_planeur;
       /**
        * Est-ce un instructeur avion ?
        *
        * @var boolean
        */
       public $instructeur_avion;
       /**
        * Est-ce un instructeur ULM ?
        *
        * @var boolean
        */
       public $instructeur_ulm;
       /**
        * Est-ce un pilote VI planeur ?
        *
        * @var boolean
        */
       public $vi_planeur;
       /**
        * Est-ce un pilote VI avion ?
        *
        * @var boolean
        */
       public $vi_avion;
       /**
        * Est-ce un pilote VI ULM ?
        *
        * @var boolean
        */
       public $vi_ulm;
       /**
        * Est-ce un pilote remorqueur ?
        *
        * @var boolean
        */
       public $remorqueur;
       /**
        * Est-ce un pilote treuilleur ?
        *
        * @var boolean
        */
       public $treuilleur;
   }

Ci-dessus, la description de l'objet retourné pour un pilote.

Liste des clubs

Cette fonction permet de récupérer la liste des clubs ou sections.

   // Liste des clubs
   $clubs = sendGivav('getClub',array('actif' => true));
   print_r($clubs);

Ce code PHP demande au serveur de lui retourner les clubs actifs.
La variable $fonction a comme valeur getClub, le tableau $params contient :

  • actif : (booléen) true pour retourner uniquement les clubs actifs.

   [36] => stdClass Object
       (
           [code] => C41101225
           [nom] => VOL A VOILE YONNAIS
           [actif] => 1
       )

Voici un club retourné par le serveur.

   // Club ou section
   class Club
   {
       /**
        * 'C' + numéro de compte comptable
        *
        * @var string
        */
       public $code;
       /**
        * Nom
        *
        * @var string
        */
       public $nom;
       /**
        * Le club est-il actif ?
        *
        * @var boolean
        */
       public $actif;
   }

Ci-dessus, la description de l'objet retourné pour un club.

Liste des comptes internes

Cette fonction permet de récupérer la liste des comptes internes.

   // Liste des comptes internes
   $compte_internes = sendGivav('getCompteInterne',array('actif' => true));
   print_r($compte_internes);

Ce code PHP demande au serveur de lui retourner les comptes internes actifs.
La variable $fonction a comme valeur getCompteInterne, le tableau $params contient :

  • actif : (booléen) true pour retourner uniquement les comptes actifs.

   [0] => stdClass Object
       (
           [code] => I41100606
           [nom] => ASVV Divers
           [actif] => 1
       )

Voici un compte interne retourné par le serveur.

   // Compte interne
   class CompteInterne
   {
       /**
        * 'I' + numéro de compte comptable
        *
        * @var string
        */
       public $code;
       /**
        * Nom
        *
        * @var string
        */
       public $nom;
       /**
        * Le compte est-il actif ?
        *
        * @var boolean
        */
       public $actif;
   }

Ci-dessus, la description de l'objet retourné pour un compte interne.

Liste des types de vol

Cette fonction permet de récupérer la liste des types de vol.

   // Liste des types de vols
   $types_vol = sendGivav('getTypeVol',array('planeur' => true,'avion' => true,'ulm' => true,'tmg' => true,'simulateur' => false));
   print_r($types_vol);

Ce code PHP demande au serveur de lui retourner les type de vols actifs pour toutes les activités sauf le simulateur.
La variable $fonction a comme valeur getTypeVol, le tableau $params contient :

  • planeur : (booléen) true pour retourner les types utilisables pour les planeurs.
  • avion : (booléen) true pour retourner les types utilisables pour les avions.
  • ulm : (booléen) true pour retourner les types utilisables pour les ULM.
  • tmg : (booléen) true pour retourner les types utilisables pour les TMG.
  • simulateur : (booléen) true pour retourner les types utilisables pour les simulateurs.

   [5] => stdClass Object
       (
           [id_tarif_type_vol] => 5
           [nom] => 6 VI perso
           [caracteristique] => 5
           [planeur] => 1
           [avion] => 1
           [ulm] => 1
           [tmg] => 1
           [simulateur] => 1
       )

Voici un type de vol retourné par le serveur.

   // Type de vol
   class TypeVol
   {
       /**
        * Identifiant unique
        *
        * @var integer
        */
       public $id_tarif_type_vol;
       /**
        * Nom
        *
        * @var string
        */
       public $nom;
       /**
        * Caractéristique : 1 = Vol en solo, 2 = Vol à deux, 3 = Vol s'instruction, 4 = VI club, 5 = VI personnel
        *
        * @var integer
        */
       public $caracteristique;
       /**
        * Ce type de vol peut-il être utilisé pour un vol en planeur ?
        *
        * @var boolean
        */
       public $planeur;
       /**
        * Ce type de vol peut-il être utilisé pour un vol en avion ?
        *
        * @var boolean
        */
       public $avion;
       /**
        * Ce type de vol peut-il être utilisé pour un vol en ULM ?
        *
        * @var boolean
        */
       public $ulm;
       /**
        * Ce type de vol peut-il être utilisé pour un vol en TMG ?
        *
        * @var boolean
        */
       public $tmg;
       /**
        * Ce type de vol peut-il être utilisé pour un vol en simulateur ?
        *
        * @var boolean
        */
       public $simulateur;
   }

Ci-dessus, la description de l'objet retourné pour un type de vol.

Liste des types de remorquage

Cette fonction permet de récupérer la liste des types de remorquage.

   // Liste des types de remorquage
   $types_remo = sendGivav('getTypeRemo',array());
   print_r($types_remo);

Ce code PHP demande au serveur de lui retourner les type de remorquage actifs.
La variable $fonction a comme valeur getTypeRemo, le tableau $params est vide.

   [0] => stdClass Object
       (
           [id_remorque] => 3
           [nom] => Forf. 500m
           [saisie_temps] => 
           [defaut] => 1
       )
   [1] => stdClass Object
       (
           [id_remorque] => 2
           [nom] => Temps passé
           [saisie_temps] => 1
           [defaut] => 
       )

Voici des types de remorquage retournés par le serveur.

   // Type de remorquage
   class TypeRemo
   {
       /**
        * Identifiant unique
        *
        * @var integer
        */
       public $id_remorque;
       /**
        * Nom
        *
        * @var string
        */
       public $nom;
       /**
        * Doit-on saisir le temps de remorquage ?
        *
        * @var boolean
        */
       public $saisie_temps;
       /**
        * Est-ce le type de remorquage par défaut ?
        *
        * @var boolean
        */
       public $defaut;
   }

Ci-dessus, la description de l'objet retourné pour un type de remorquage.

VI non réalisés

Cette fonction permet de récupérer la liste des VI vendu sur Internet qui n'ont pas encore été réalisés.

   // Liste des VI à réaliser
   $vis = sendGivav('getVi',array());
   print_r($vis);

Ce code PHP demande au serveur de lui retourner tous les VI non réalisés.
La variable $fonction a comme valeur getVi, le tableau $params est vide.

   [0] => stdClass Object
       (
           [code_vi] => 97960-18851-68788
           [nom_prenom] => TOTO PIERRE
           [tel] => +33 6 01 02 03 04
           [date_fin_valid] => 2020-01-28
           [date_heure_resa] => 2019-01-30 13:30:00
       )
   [1] => stdClass Object
       (
           [code_vi] => 98103-67605-54800
           [nom_prenom] => TOTO MARIE
           [tel] => +33 6 01 02 03 04
           [date_fin_valid] => 2019-10-04
           [date_heure_resa] => 
       )

Le premier exemple montre un VI dont la réservation a été faite.

Envoi d'un vol

Cette fonction permet d'envoyer un vol au serveur.

   // Envoi d'un vol
   $retour = sendGivav('setVol',array('vol' => json_encode($new_vol)));
   if ($retour <> 'OK') echo 'Erreur : ' . $retour;

Ce code PHP envoi au serveur un objet vol. Le code de retour contient OK si l'enregistrement s'est bien effectué, sinon, il contient le texte de l'erreur.
Vous pouvez envoyer plusieurs fois le même vol, l'unicité se fait sur la date, le n° de planche et le n° de ligne.
La variable $fonction a comme valeur setVol, le tableau $params contient l'objet vol.

   /**
    * Vol
    */
   class Vol
   {
       /**
        * Date du vol (yyyy-mm-dd)
        *
        * @var string
        */
       public $date_vol = null;
       /**
        * Numéro de planche
        *
        * @var integer
        */
       public $planche = 1;
       /**
        * Numéro de ligne
        *
        * @var integer
        */
       public $no_ligne = 0;
       /**
        * Immatriculation de l'aéronef
        *
        * @var string
        */
       public $immatriculation = null;
       /**
        * Identifiant unique du type de vol
        *
        * @var integer
        */
       public $id_tarif_type_vol = 0;
       /**
        * Heure de décollage
        *
        * @var string
        */
       public $decollage = null;
       /**
        * Heure d'atterrissage
        *
        * @var string
        */
       public $atterrissage = null;
       /**
        * Nombre d'atterrissages
        *
        * @var integer
        */
       public $nb_atterrissages = 1;
       /**
        * Pilote ou club en place 1
        *
        * @var string
        */
       public $place_1 = null;
       /**
        * Pilote ou club en place 2
        *
        * @var string
        */
       public $place_2 = null;
       /**
        * Nom du passager (si VI)
        *
        * @var string
        */
       public $passager = null;
       /**
        * Lieu de décollage
        *
        * @var integer
        */
       public $lieu_decollage = null;
       /**
        * Lieu d'atterrissage
        *
        * @var string
        */
       public $lieu_atterrissage = null;
       /**
        * Est-ce un vol montagne ?
        *
        * @var boolean
        */
       public $montagne = false;
       /**
        * Commentaire
        *
        * @var string
        */
       public $commentaire = null;
       /**
        * Mode de décollage (T = treuil, R = remorqueur, M = autonome, E = élastique, V = voiture)
        *
        * @var string
        */
       public $mode_decollage = null;
       /**
        * Immatriculation du remorqueur
        *
        * @var string
        */
       public $remorqueur = null;
       /**
        * Pilote remorqueur
        *
        * @var string
        */
       public $pilote_remorqueur = null;
       /**
        * Identifiant unique du type de remorquage
        *
        * @var integer
        */
       public $id_remorque = null;
       /**
        * Horamètre de début du remorquage
        *
        * @var integer
        */
       public $rem_hora_debut = null;
       /**
        * Horamètre de fin du remorquage
        *
        * @var integer
        */
       public $rem_hora_fin = null;
       /**
        * Temps de remorquage en centièmes
        *
        * @var integer
        */
       public $tps_remorque_cent = null;
       /**
        * Pays du bénéficiaire
        *
        * @var string
        */
       public $tps_remorque = null;
       /**
        * Nombre d'unité de mise en l'air (UM) à facturer pour le remorquage
        *
        * @var float
        */
       public $nb_um = null;
       /**
        * Identifiant unique du treuil
        *
        * @var string
        */
       public $id_treuil = null;
       /**
        * Pilote du treuil
        *
        * @var string
        */
       public $treuilleur = null;
       /**
        * Temps moteur : Valeur de l'horamètre au début du vol
        *
        * @var integer
        */
       public $horametre_debut = null;
       /**
        * Temps moteur : Valeur de l'horamètre en fin du vol
        *
        * @var integer
        */
       public $horametre_fin = null;
       /**
        * Temps moteur en centièmes
        *
        * @var integer
        */
       public $tps_moteur_cent = null;
       /**
        * Temps moteur (hh:mm:ss)
        *
        * @var string
        */
       public $tps_moteur = null;
       /**
        * Prix particulier pour le vol (cellule)
        *
        * @var float
        */
       public $prix_vol = null;
       /**
        * Pilote, club ou compte interne qui paie le vol (cellule)
        *
        * @var string
        */
       public $paie_vol = null;
       /**
        * Prix particulier pour le remorquage
        *
        * @var float
        */
       public $prix_remorque = null;
       /**
        * Pilote, club ou compte interne qui paie le remorquage
        *
        * @var string
        */
       public $paie_remorque = null;
       /**
        * Prix particulier pour le treuillage
        *
        * @var float
        */
       public $prix_treuil = null;
       /**
        * Pilote, club ou compte interne qui paie le treuillage
        *
        * @var string
        */
       public $paie_treuil = null;
       /**
        * Prix particulier pour le temps moteur
        *
        * @var float
        */
       public $prix_moteur = null;
       /**
        * Pilote, club ou compte interne qui paie le temps moteur
        *
        * @var string
        */
       public $paie_moteur = null;
       /**
        * Tout le vol, cellule, moteur et mise ne l'air seront calculés ne pourront pas être déduit d'un forfait
        *
        * @var boolean
        */
       public $hors_forfait = false;
       /**
        * Ce vol compte-il pour la calcul automatique de la participation aux frais journalière ?
        *
        * @var boolean
        */
       public $hors_part_jour = false;
       /**
        * Ce vol compte-il pour la calcul de la participation aux frais 'Passager'
        *
        * @var boolean
        */
       public $hors_part_passager = false;
       /**
        * Ce vol compte-il pour la calcul de l'assurance VI
        *
        * @var boolean
        */
       public $hors_assurance_vi = false;
       /**
        * L'instructeur partage-t-il le prix du vol ?
        *
        * @var boolean
        */
       public $part_instructeur = false;
       /**
        * Indique si un VI club a donné lieu à deux décollages
        *
        * @var boolean
        */
       public $vi_double = false;
   }

Ci-dessus, la description de l'objet vol.