Extraction des lignes de détails d'une facture

Préambule : facture électronique

Si la facture de votre fournisseur est au format Factur-X par exemple, alors celle-ci sera directement intégrée dans Dolibarr à condition qu'elle soit conforme par rapport à la norme. L'extraction du détail de la facture sera automatique (sous réserve de l'implémentation de la norme par l'éditeur du document initial ; une information qui n'existe pas ne risque pas d'être inventée).

Présentation

L'extraction des lignes des factures a toujours été un objectif principal du projet. Prévu pour la version 2.0, il est arrivé plus rapidement et vous pouvez en bénéficier dès à présent.

Certaines contraintes sont tout de même à prendre en compte et cette documentation devrait vous permettre de les cerner.

La création d'un masque d'extraction de données est un travail manuel et précis qui demande du temps. C'est la raison pour laquelle elle est proposée sous forme d'un paiement ponctuel.

Note : D'un côté le serveur d'extraction de données et de l'autre le plugin Dolibarr ScanInvoices. Les deux sont liés mais n'évoluent pas à la même vitesse : certaines données extraites par le serveur ne sont pas forcément encore exploitées par ScanInvoices.

Liste des champs extraits par le serveur

Vous trouverez ci-dessous la liste des mots clés et champs que le serveur est en capacité d'extraire :

  • ref : référence produit (fournisseur)
  • label : label (étiquette "courte")
  • qty : quantité
  • tauxtva : taux de TVA appliqué sur la ligne
  • tax_value : montant de la TVA appliqué sur la ligne
  • lot : numéro de lot
  • ean : code EAN
  • dlc : date limite de consommation (produit périssable)
  • remise_percent : remise en % appliquée au produit
  • unit_price : prix unitaire
  • amount_untax : total de la ligne
  • desc : description détaillée du produit (généralement les lignes suivantes)
  • ecopart : écoparticipation
  • deee : taxe DEEE (électronique)
  • surtax : surtaxe spécifique (voir par exemple certaines factures belges)

Limites

Documents numérisés issus d'une photo ou d'un scan

Pour l'instant, et sauf petite révolution technique, ces documents ne sont malheureusement pas concernés par l'extraction détaillée. Trop de parasites entrent en jeu et le résultat n'est pas à la hauteur des objectifs fixés par le projet.

En résumé : papier froissé, marque des pliures, présence de taches, qualité d'impression initiale (bavures, bandes verticales), lourdeur du moteur d'OCR et des outils de nettoyage bitmap.

Information qui brouille le contenu du document

Exemple d'une facture avec la mention "duplicata" superposée au contenu.

Information ajoutée sur la facture

Organisation du document "artistique"

Certains fournisseurs doivent considérer qu'une facture est une zone d'expression artistique. Vous comprendrez donc qu'il ne nous est pas possible de faire la différence entre le contenu de la facture et la publicité ajoutée qui recouvre la liste des produits.

Document graphique

Document incohérent

Certaines factures semblent bien parties pour être exploitables, sauf que tout à coup un article semble vouloir se démarquer des autres. Exemple avec cette facture où tous les montants des articles ont deux chiffres après la virgule sauf un qui en a cinq.

Incohérence dans le document

Lignes et colonnes impossibles à dissocier

Dans d'autres cas, la zone de description des produits est une sorte de grosse zone de texte sans aucune mise en page permettant d'interpréter l'information. Il n'est alors pas possible d'extraire la référence du produit, son prix unitaire, etc.

Information manquante

Il arrive également que certaines factures ne comportent pas assez d'informations pour que l'extraction des lignes puisse être intéressante. C'est particulièrement vrai sur une facture qui n'indique par exemple pas de référence produit, ou de code (ou de taux) de TVA, et qui globalise en fin de document deux taux de TVA sans aucun moyen de savoir quelle ligne est impactée par quel taux.

Extraire des données = écrire des expressions régulières

Pour extraire des données, il faut savoir écrire des expressions régulières.