Fichier Virements Fournisseur PHP
Exemple de création de virements fournisseurs à partir de l’API idylis.com avec le langage PHP
Introduction
Le fichier FichierVirementFournisseur.php joint à titre d’exemple permet, via l’API, d’alimenter la table des virements fournisseurs (module Liaisons bancaires) en exploitant les écritures passées sur les comptes fournisseurs (module Comptabilité).
Un crochet par le module Gestion commerciale permettra de récupérer les coordonnées bancaires des comptes (IBAN et BIC notamment). En partant de la Comptabilité, vous pourrez agir sur la totalité des virements fournisseurs, qu’ils soient liés à votre activité commerciale ou à vos coûts de fonctionnement.
Prérequis
L’exemple est conçu pour être utilisé via un navigateur web. Pour l’exécuter, il est nécessaire :
d’installer et d’activer un serveur web (IIS, Apache)
d’installer et de configurer PHP
d’avoir une connexion internet active pour communiquer avec le service web
L’utilisation d’un environnement de développement (IDE) n’est pas requise.
Ensuite suivez ces étapes :
1. Téléchargez l’archive.
2. Dézippez le fichier dans le répertoire du serveur web configuré pour l’emplacement des fichiers PHP.
Tester l'exemple
Préparation
Avant de tester l’exemple, nous vous suggérons de préparer un mini jeu de test :
Dans le module de Comptabilité, créez deux comptes fournisseurs (de type 401XXX).
Saisissez ensuite, dans le journal des achats, deux écritures d’achat au crédit des fournisseurs. Enregistrez-les.
Dans le module de Gestion commerciale, créez les comptes fournisseurs avec leurs coordonnées bancaires :
Test
Lorsque les données existent dans le logiciel, vous pouvez démarrer le test :
Editez le fichier FichierVirementFournisseur.php.
Modifiez les valeurs de connexion de la méthode d’authentification avec vos codes d’accès (Administrateur).
Ouvrez une fenêtre de navigateur puis indiquez dans la barre d’adresse, l’url du fichier FichierVirementFournisseur.php, par exemple : HTTP://LOCALHOST/DOSSIEREXEMPLESPHPFICHIER/VIREMENTFOURNISSEUR.PHP Lorsque vous validez l’URL, le traitement se fait automatiquement. Rien n’est visible, sauf si vous placez des var_dump(); ou des print_r() dans le code.
Vérifiez le résultat dans le module Liaisons bancaires :
INSERT IMAGE !!
Aperçu du code
Cet exemple utilise un certain nombre de classes PHP sur lesquelles vous pouvez en savoir plus ici : http://php.net/.
Initialisation
Protocole soap
L’API idylis.com fonctionne via un service web basé sur le protocole SOAP. La première instruction permet d’instancier le client SOAP en passant en paramètre l’adresse du fichier.wsdl de description des services.
SoapClient : fournit le client pour le protocole SOAP
SoapHeader : construit l’en-tête SOAP*
Toutes les instructions qui suivent sont des méthodes de l’objet instancié avec le client SOAP.
En savoir plus : les différentes méthodes sont décrites dans le module Dev Center, menu API/Descriptif des services.
Un clic sur une méthode affiche un exemple de la structure attendue.
Méthode authentification
Pour pouvoir tester l’exemple fourni, vous devez en premier lieu indiquer vos codes d’accès idylis.com.
Pour la méthode authentification1, remplacez les valeurs des paramètres « MonCodeAbonné », « MonIdentifiant », « MonMotDePasse » par vos propres informations de connexion.
Attention, les codes d’accès doivent obligatoirement correspondre à un compte administrateur de Divalto idylis.
Propriété session
Elle permet de récupérer le jeton de session obtenu à partir de l’authentification. Cette étape est optionnelle si vous utilisez les méthodes avec session.
Récupération des données comptables
Le programme va identifier, dans le module Comptabilité les écritures passées sur les comptes fournisseurs.
Méthode DefinirModule
Cette méthode permet de vous connecter à la base de données du module visé (ici, le module de Comptabilité « CP ») avant d’exécuter les méthodes invoquées par la suite.
A noter : plus loin dans la procédure, vous aurez également besoin de la base de données du module de Gestion commerciale – Facturation « FA », ce qui nécessitera de rappeler la méthode DefinirModule en donnant cette fois-ci le code module « FA ».
Méthode LireTable
Une fois le module désigné, il s’agit d’indiquer avec la méthode LIRETABLE la table dans laquelle aller chercher les informations (ici « CP_Ecritures »), en précisant les critères de sélection des données en paramètres.
En savoir plus : le nom des tables par module est indiqué dans le module Dev Center, onglet [API], sous-onglet [Dictionnaire des données]. Un double-clic sur une table affiche les champs associés et leurs propriétés.
e service web retourne la réponse au format XML. Les données qui nous intéressent dans la réponse SOAP sont incluses dans le champ LIRETABLERESULT dont le contenu est repris dans un tableau via la classe SimpleXMLElement. Cette classe facilite le traitement de données XML en les convertissant dans un tableau de fiches (suite de balises ).
On teste au préalable que la méthode LireTable renvoie bien un enregistrement.
Récupération des données de facturation
Une fois les comptes fournisseurs et les montants à payer identifiés, il faut aller récupérer les coordonnées bancaires indiquées dans le module Gestion commerciale.
Puisqu’il s’agit de lire une table dans un autre module, et donc une autre base de données, il convient de rappeler la méthode DEFINIRMODULE. Le module concerné est cette fois Gestion commerciale - Facturation « FA ».
La méthode LIRETABLE va chercher les informations bancaires du fournisseur à partir du compte comptable précédemment récupéré :
On ajoute au tableau destiné aux virements fournisseurs les coordonnées bancaires du compte et un compteur initialisé à 0 en prévision de la boucle suivante.
Regroupement des informations par compte
La boucle qui suit permet de cumuler les écritures et données d’un même compte fournisseur.
Calcul des soldes
La seconde boucle permet de :
calculer le solde de chaque compte fournisseur et de ne garder que les comptes au solde créditeur,
récupérer toutes les informations nécessaires au fichier de virements SEPA,
compléter un nouveau tableau VirLBA
Elle vient terminer la boucle et permet d’alimenter la table Virements du module Liaisons bancaires :
Alimentation de la table virements
Méthode InsererTable
Note : il n’est pas nécessaire d’appliquer la méthode DEFINIRMODULE avant d’insérer les virements car les modules Liaisons bancaires et Gestion commerciale partagent la même base de données.
Télécharger l'exemple
Dernière mise à jour