Dans sa version native, pour le dataset FACFOU, les positions de la facture sont détaillées dans le fichier pivot. Pour intégrer une facture au format Factur-X, un pivot allégé suffit, puisque les données concernant les positions se trouvent dans le fichier XML encapsulé dans le PDF/A3, ce qui implique qu’il est constructible à partir de ces données.
L’idée est d’utiliser l'API creer_dataset, qui permettant de déposer le fichier, et de déduire les données du pivot allégé, à partir des données du fichier XML du Factur-X.
Convention de nommage du fichier Factur-X
Le nom du fichier doit répondre à une règle de nommage bien définie:
Construction des données
Dossier, établissement et fournisseur
Les données dossier, établissement et fournisseur sont déduites des données du nœud ram:buyerTradeParty , qui contient le numéro de Siret, le code GLN et le code Duns.
Le GlobalId ayant l’attribut SchemeID 0002, correspond au Siret.
Le GlobalId ayant l’attribut SchemeID 0088, correspond au GLN.
Le GlobalId ayant l’attribut SchemeID 0060, correspond au Duns.
Dossier et établissement
Le programme vérifie, dans la table ETS, s’il existe un établissement ayant le Duns ou le Siret stockés dans les balises décrites précédemment.
Si trouvé , on garnit la balise <Dossier></Dossier> du fichier pivot, avec la valeur du champ DOS de la table ETS et la balise <Etablissement></Etablissement> avec la valeur du champ ETB de la table ETS.
Si pas trouvé, on procède à la recherche d’une fiche Dossier ayant le Siret ou le Duns ou le GLN correspondant
Si on a trouvé ni dossier, ni établissement, le traitement s’arrête en renvoyant l'erreur Dossier inexistant.
Fournisseur et nom du fournisseur
Les données fournisseur et nom du fournisseur sont également déduites du nœud ram:SellerTradeParty, à partir de la donnée correspondant au siret.
Sur le dossier/établissement trouvé lors de la phase de recherche décrite dans le paragraphe précédant, le programme procède à la recherche d’une fiche fournisseur correspondant au siret du noeud ram:BuyerTradeParty du Factur-X.
Si la fiche fournisseur est trouvée, on garnit les balises <CodeFournisseur></CodeFournisseur>
<NomFournisseur></NomFournisseur> du fichier pivot.sinon les balises sont laissées à vide et les erreurs adéquates sont générées.
Date de facture et date d'échéance
Ces informations sont lues dans la balise ram:IssueDateTime du fichier XML du Factur-X.
Numéro de facture fournisseur
Le numéro de facture fournisseur est le résultat de concaténation de la chaîne de caractères FA, avec la valeur de la balise ram:ID du fichier XML du Factur-X.