ONYX - Utilisation

Convertisseur CII UBL

De MappingDoc
Révision datée du 21 juin 2024 à 09:51 par Jdieu (discussion | contributions) (Contenu remplacé par « =Introduction= L'objet du '''convertisseur e-Invoicing ''' est de convertir un fichier 'XML Pivot' (format de données facilitant l'intégration de Efalia Compose) en... »)

Introduction

L'objet du convertisseur e-Invoicing est de convertir un fichier 'XML Pivot' (format de données facilitant l'intégration de Efalia Compose) en flux XML CII (pour la création d'un pdf factur-X) ou UBL.
Le convertisseur prend en entrée un flux XML Pivot soit fini, c'est à dire avec tous les informations nécessaires à la génération du CII ou UBL (recommandé) ou soit donne la possibilité au développeur de forcer la valeur d'un champ (soit par une simple valeur en dur ou soit via un calcul)

Prérequis

  • La clé Connect doit être activée sur le serveur Efalia Compose
  • Compatible avec la version Onyx sous Windows et Linux (Version 10.6.0 minimum)
  • Les dates doivent être sous la forme YYYY-MM-DD (A la charge du programme générant le XML Pivot de les formatter comme cela)
  • Les numériques ne doive pas avoir de séparateur de millier et doivent avoir un point comme séparateur de décimales (exemple : 11200.10)
  • Etre informé des normes de facturation électronique (CII et UBL)
  • Avoir un profil assez technique et connaitre les flux XML

Principe de fonctionnement

Le flux XML Pivot avec ou sans toutes les informations nécessaires est donnée à l'entrée du connecteur. Le connecteur prend en paramètre un fichier de paramétrage (pouvant être vide si besoin), le type de sortie (ubl ou factur-x) et le nom du fichier CII ou UBL en sortie.

  • Sortie CII (pour factur-X)

"C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param.xml" "-param:DB.output-type=factur-x" -outfile:"C:\work\out_cii.xml"

  • Sortie UBL

"C:/MAPPING/M-Processing Server/Applications/maprunrpt" -rptname:EINVOICING -param:DB.data_file="C:\work\out_pivot.xml" -param:DB.param_file="C:\work\edi_param.xml" "-param:DB.output-type=ubl" -outfile:"C:\work\out_ubl.xml"

(la valeur par défaut de DB.output-type est factur-x)

Fichier de paramétrage

Dans l'idéal, le flux de donnée en entrée doit contenir toutes les informations nécessaires à la génération du fichier e-Invoicing (UBL ou CII). Cependant, il est courant de traiter des flux non exhaustifs. Par conséquent, il est possible (dans certaines mesures) d'initaliser un champ avec une valeur (calculée ou en dur)

Pour ce faire, nous utiliserons le fichier de paramétrage.

Initialisation d'un champ avec une valeur en dur

Si par exemple dans le flux de données (XML Pivot), le champ dy typage de document (BT-3) est absent, on peut l'initialiser avec une valeur :

<param>
 <field id="BT-3">380</field>
</param>

Sa valeur sera alors 380 dans le flux CII ou UBL en sortie.

Remarque : Si BT-3 était présent mais avec une nouvelle valeur, alors sa nouvelle valeur sera 380.

Initialisation d'un champ avec la valeur d'un autre champ

Il est également possible d'initialiser ou de surcharger la valeur d'un champ avec la valeur d'un autre champ.

Par exemple, si la date d'échéance (BT-9) est absent du flux en entrée alors on peut l'initialiser avec la date d'émission de la facture (BT-2)

<param>
 <field id="BT-9" xpath="/data/doc/field[@id='BT-2']"
</param>

Dans le fichier UBL ou CII, la valeur de BT-9 sera la meme que le champ BT-2.


Surcharger le chemin d'une liste

Il est également possible de surcharger la valeur par défaut du chemin d'une liste. (liste de produits, liste de TVA ou autres)

Par exemple, si la liste des produits n'est pas /data/doc/list[@id='BG-25'], alors il est possible de lui donner un autre nom et chemin :

<param>
 <list id="BG-25" xpath="/*/doc/list[@id='produits']"/>
 <list id="BG-23" xpath="/*/doc/list[@id='tvas']"/>
</param>

Dans cet exemple, les produits (BG-25) sont localisés dans la liste "produits" et la liste de TVAs (BG-23) dans la liste "tvas" et tout cela au niveau <doc>

Valeurs par défaut

fff

Exemple de flux XML Pivot

Flux complet

Le flux suivant pourra être traité par le convertisseur avec un fichier de paramétrage vide

Fichier de paramétrage

<param/>

Fichier de donnée XML Pivot

<?xml version="1.0" encoding="UTF-8"?>
  <data>
   <doc type="FACTURE">		
   <!--id type of the invoice : Default :380 for commercial invoices  (Code de type de facture)-->
    <field id="BT-3">380</field>
    <!--Invoice date (Date d'émission facture initiale / facture rectificative) - YYYY-MM-DD-->
    <field id="BT-2">2022-11-19</field>
    <!--Invoice number (Numéro de facture)-->
    <field id="BT-1">0024657</field>
    <!--Currency code of the invoice : Default :EUR  (Code de devise de la facture)-->
    <field id="BT-5">EUR</field>
    <!--Total amount before VAT of the invoice (Montant total de la facture HT)-->
    <field id="BT-109">35600.00</field>
    <!--Total amount of VAT of the invoice (Montant total de TVA de la facture)-->
    <field id="BT-110">7120.00</field>
    <!--Total amount after VAT of the invoice  (Montant total de la Facture, avec la TVA.)-->
    <field id="BT-112">42720.00</field>
    <!--Already paid amount  (Montant déjà payé)-->
    <field id="BT-113">0.00</field>
    <!--Total amount to pay  (Montant à payer TTC)-->
    <field id="BT-115">42720.00</field>
    <!--Sum of all the amounts before VAT of the invoice on the line level  (Somme des montants nets des lignes de facture HT)-->
    <field id="BT-106">35600.00</field>
    <!--Due date  (Date d'échéance) - YYYY-MM-DD-->
    <field id="BT-9">2022-12-19</field>
    <!--Seller name  (Raison sociale du vendeur)-->
    <field id="BT-27">Efalia</field>
    <!--Seller Country code  (Code de pays du vendeur)-->
    <field id="BT-40">FR</field>
    <!--Seller VAT identifier  (Identifiant à la TVA du vendeur)-->
    <field id="BT-31">FR9876543210</field>
    <!--Buyer name  (Raison sociale de l'acheteur)-->
    <field id="BT-44">M. Lenoir</field>
    <!--Buyer Country code  (Code de pays de l'acheteur)-->
    <field id="BT-55">FR</field>
    <!--Buyer VAT identifier  (Identifiant à la TVA de l'acheteur)-->
    <field id="BT-48">FR1234567890</field>
    <!--List of products-->
     <list id="BG-25">
      <item>			
       <!--Item line number identifier (Identifiant de la ligne de facture)-->
        <field id="BT-126">1</field>
        <!--Billed quantity  (quantité facturée)-->
        <field id="BT-129" unitCode="C62">1</field>
        <!--Invoiced quantity unit of measure code  (Unité de mesure de la quantité facturée)--> 
        <field id="BT-130">PAL</field>
        <!--Item unit price before VAT  (Prix HT de l’article (unitaire))-->
        <field id="BT-146">20050.00</field>
        <!--VAT code type of the billed item  (Code de type de TVA de l’artice facturé)-->
        <field id="BT-151">S</field>
        <!--Item description  (Nom de l’article)-->
        <field id="BT-153">Infoprint 20 IBM</field>
        <!--Total amount before VAT of the billed item  (Montant Total HT de ligne article)-->
        <field id="BT-131">20050.00</field>
        <!--VAT type of the billed item-->
        <field id="itemVatTypeCode">VAT</field>
        <!--VAT applicable rate of the billed item (% de l'article facturé)-->
        <field id="BT-152">20.00</field>
      </item>
      <item>
        <field id="BT-126">2</field>
        <field id="BT-129" unitCode="C62">1</field>
        <field id="BT-130">PAL</field>
        <field id="BT-146">15550.00</field>
        <field id="BT-151">S</field>
        <field id="BT-153">Infoprint 60 IBM</field>
        <field id="BT-131">15550.00</field>
        <field id="itemVatTypeCode">VAT</field>
        <field id="BT-152">20.00</field>
      </item>			
     </list>
     <list id="BG-23">
      <item>				
        <!--VAT basis amount for this type of VAT  (Base d'imposition du type de TVA)-->
        <field id="BT-116">35600.00</field>
        <!--VAT amount for this type of VAT  (Montant de la TVA pour chaque type de TVA)-->
        <field id="BT-117">7120.00</field>
        <!--VAT type code  (Code de type de TVA)-->
        <field id="BT-118">S</field>
        <!--VAT rate for this type of VAT  (Taux de type de TVA)-->
        <field id="BT-119">20.00</field>
      </item>     
     </list>
   </doc>
  </data>