J’ai le plaisir de vous présenter ma dernière contribution open source : une extension LibreOffice permettant de générer des factures électroniques au format Factur‑X dans LibreOffice Calc.
Une facture électronique au format Factur‑X est une facture PDF classique qui contient en pièce jointe du PDF un fichier factur-x.xml
au format Cross Industry Invoice (CII) qui décrit les informations de la facture sous forme structurée. Ainsi, quand on reçoit une facture au format Factur‑X, on peut la comptabiliser automatiquement sans recourir à des systèmes de reconnaissance de caractères (qui ne sont jamais totalement fiables !).
Cette contribution est mon cadeau de Noël à toutes les entreprises françaises de moins de dix salariés qui sont concernées par l’obligation de déposer leurs factures à destination de la sphère publique (État, collectivités locales, hôpitaux, etc.) sur Chorus Pro à partir du 1ᵉʳ janvier 2020. Chorus Pro est la plate‑forme de facturation électronique de l’administration française et Factur‑X est l’un des formats de facture électronique pris en charge. Cette extension LibreOffice apporte une solution à toutes les petites entreprises qui font leurs factures dans un simple tableur !
Techniquement, cette extension LibreOffice contient une macro développée en Python (ainsi que les bibliothèques Python requises) permettant de générer une facture ou un avoir au format Factur‑X dans LibreOffice Calc. La norme Factur‑X spécifie cinq profils correspondant à cinq niveaux de détail dans les données structurées fournies dans le fichier XML : Minimum, Basic WL, Basic, EN 16931 (qui correspond à la norme européenne du même nom) et Extended. Tous les profils Factur‑X sont acceptés par la plate‑forme Chorus Pro. L’extension que j’ai développée permet de générer une facture Factur‑X au profil Minimum.
L’extension LibreOffice a été testée sous Windows, macOS et GNU/Linux. Elle est totalement traduite en français. Des factures d’exemple fonctionnant avec la macro sont fournies en français et en anglais ; vous n’avez plus qu’à les personnaliser pour votre entreprise. La génération de la facture Factur‑X se fait en local grâce à ma bibliothèque Python factur‑x embarquée dans l’extension LibreOffice. Cette extension LibreOffice est publiée sous licence GPL.
Quelques précisions :
- l’obligation d’émettre des factures électroniques au 1ᵉʳ janvier 2020 ne concerne que les factures à destination de l’État, des collectivités locales, des hôpitaux et de certains établissements publics (B2G) ; il n’y a pas d’obligation pour les factures B2B ni pour les factures B2C ;
- Chorus Pro gère d’autres normes de factures électroniques ; il est par exemple possible de déposer un fichier XML au format Universal Business Language (UBL) ou Cross Industry Invoice (CII) ou d’autres formats moins connus ;
- vous pouvez déposer les factures manuellement sur le portail Web de Chorus Pro, mais il est également possible de les déposer via une API ou en EDI (prévoir l’achat d’un certificat SSL client RGS une étoile) ;
- si votre logiciel de facturation ne sait générer que des factures PDF « simples », vous pouvez quand même déposer vos factures PDF sur le portail Chorus Pro, mais ce sera à vous de saisir manuellement les données de la facture (SIRET de l’administration destinataire, numéro de facture, date de facture, total HT, total TTC, numéro de commande, etc.), avec l’aide du système de reconnaissance de caractères (OCR) intégré dans Chorus Pro.
Si vous connaissez des petites entreprises qui font leurs factures dans un tableur, n’hésitez pas à leur parler de cette extension LibreOffice pour Factur‑X !
Aller plus loin
- Instructions d’installation et d’utilisation (839 clics)
- Projet GitHub (224 clics)
- Tutoriel vidéo (359 clics)
- La plate‑forme Chorus Pro (81 clics)
- Dépêche LinuxFr.org : « Odoo génère la première facture Factur‑X déposée sur Chorus Pro » (137 clics)
# Ça a l'air super
Posté par Sytoka Modon (site web personnel) . Évalué à 4.
Sachant que le format OpenDocument est en XML, il n'y avait pas moyen de faire cette extension en utilisant les bibliothèques de LibreOffice plutôt que de rajouter une couche avec Python ? Ce n'est pas que j'adore ou que je déteste Python mais en pratique, cela rajoute un langage en dépendance et donc complique fortement sa maintenance et une éventuelle intégration à long terme ?
Qu'en penses-tu ?
[^] # Re: Ça a l'air super
Posté par Alexis de Lattre (site web personnel) . Évalué à 8.
Le jour où la fonction d'export PDF de LibreOffice supportera l'ajout de pièce jointes (ce qui n'est pas le cas actuellement, en tout cas pas sur la version de LibreOffice présente dans Ubuntu 18.04), alors on pourra se passer de ma librairie python factur-x qui post-process le PDF généré par LibreOffice pour ajouter le fichier "factur-x.xml" en pièce jointe. Développer le post-processing du PDF pour ajouter la pièce jointe en LibreOffice Basic me semble hyper-difficile.
Si un jour LibreOffice supporte nativement l'ajout de pièces jointes dans l'export PDF, ça permettrait de re-développer cette extension et de la simplifier énormément… et pourquoi pas d'abandonner le python pour LibreOffice Basic !
Je n'ai pas encore discuté de cette feature avec des développeurs LibreOffice… il faudrait d'abord que je vérifie que la feature n'est présente ni dans une version super récente ni dans le trunk.
D'ailleurs, il y a des cas où on a besoin de déposer une pièce jointe sur Chorus en plus de la facture (genre un PV de recette de travaux qui a déclenché la facture), et, dans ce cas, il faut que ce soit une pièce jointe supplémentaire dans la facture PDF. Pour l'instant, mon extension LibreOffice ne le permet pas, mais ça ne serait pas très difficile à développer (vu que ma lib python factur-x le supporte). Je le ferai si je rencontre qqun qui en a besoin…
[^] # Re: Ça a l'air super
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 01 janvier 2020 à 10:22.
Je ne sais pas si on est dans le même cas, mais LibreOffice est déjà capable d'inclure le fichier odt dans le PDF. C'est accessible via une option à cocher quand on utilise la fenêtre d'export
Il faudrait voir si l'odt est une pièce jointe du PDF, je ne sais pas…
[^] # Re: Ça a l'air super
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 2.
En fait ça génère un fichier à l'extension pdf qui contient les deux fichiers le pdf et l'odf. Il faut ouvrir le fichier à partir de LibreOffice pour pouvoir ouvrir l'odf. Donc ça n'est pas une pièce jointe mais une archive "complète" je dirais.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Ça a l'air super
Posté par Alexis de Lattre (site web personnel) . Évalué à 10.
Je confirme : quand on utilise la fonction "PDF Hybride (fichier ODF incorporé)", l'incorporation du fichier ODF n'est pas fait sous forme d'une pièce jointe (/Names /EmbeddedFiles /Names dans le Catalog du PDF), mais sous une autre forme (/AdditionalStreams directement dans le trailer du PDF). Comme j'avais encore jamais vu cette entrée /AdditionalStreams dans le trailer d'un PDF, j'ai été regardé dans la spec de la norme PDF (PDF Reference 1.7 d'Adobe, 6th edition) : a ma grande surprise, il n'y a aucune mention du terme "AdditionalStreams" dans la spec PDF !!! J'ai fait une petite recherche Internet à ce sujet, et je suis tombé sur ce bug report de LibreOffice qui dit que la clé "/AdditionalStreams" est une clé propriétaire inventée par LibreOffice (alors que la spec PDF interdit l'ajout de clés propriétaires) et que le PDF "hybride" généré n'est donc pas conforme à la norme PDF, et suggérant d'utiliser au contraire les pièces jointes PDF (qui a non seulement l'avantage d'être conforme au standard PDF, mais aussi l'avantage de donner la possibilité à l'utilisateur de voir que ce PDF est spécial avec l'ODF embarqué quand il ouvre le PDF dans son lecteur PDF habituel, et aussi d'extraire l'ODF du PDF avec un simple lecteur PDF, sans avoir besoin de LibreOffice pour cela). A ce stade du bug report, la réponse a été de dire que les lecteurs PDF ne sont pas dérangés par cette clé propriétaire et que donc ce n'était pas un bug prioritaire ! Comme quoi, on peut s'appeler LibreOffice, être partisan du format ouvert OpenDocument et ne pas respecter les autres normes comme PDF… très surprenant !
[^] # Re: Ça a l'air super
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 5. Dernière modification le 02 janvier 2020 à 08:41.
Wow, c'est effectivement étonnant, je ne pensais pas que LibreOffice faisait des PDFs non-standards avec cette option.
Je trouve aussi que l'argumentation de l'utilisateur kurt.pfeifle est vraiment mauvaise: avec ce genre de discours, on ne corrige jamais aucun bug… genre "pas vu, pas pris".
Par contre, je pense que ça serait intéressant d'ajouter un commentaire pour expliquer que, si LibreOffice corrige ce bug, ça sera utile pour pouvoir inclure facilement des factur-x.
[^] # Re: Ça a l'air super
Posté par Alexis de Lattre (site web personnel) . Évalué à 5.
Bonne idée ! J'ai ajouté un commentaire dans le bug report pour suggérer d'avoir un vrai support des pièces jointes dans l'export PDF de LibreOffice et de l'utiliser pour leur fonctionnalité de PDF Hybride… ça ferait d'une pierre deux coups !
[^] # Re: Ça a l'air super
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 2.
Tu veux que j'en rajoute une couche ? Ou bien ?
Avec LibreOffice cela peut être utile de confirmer que c'est un bug à corriger pas un truc à traiter par le mépris.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Ça a l'air super
Posté par Jean-Baptiste Faure . Évalué à 3.
C'est déjà fait par Julien Nabet : « LO should respect PDF standard, I put this one to normal importance but it should be even higher than this.» et il a ajouté 3 autres développeurs de premier plan en copie.
[^] # Re: Ça a l'air super
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à -3.
Les utilisateurs de base ne comptent pas, en effet. Merci de le confirmer.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par Alexis de Lattre (site web personnel) . Évalué à 5.
J'en profite pour faire une petite demande : si vous utilisez une distribution Linux autre que Debian ou Ubuntu (ou leurs dérivés) et que vous êtes prêt à tester mon extension LibreOffice pour Factur-X, ça m'intéresse de savoir si vous avez besoin d'installer un paquet non installé par défaut pour supporter les macros Python sous LibreOffice (sur Debian/Ubuntu, il faut ajouter le paquet libreoffice-script-provider-python).
Cela me permettra de compléter les instructions d'installation actuelles où seules Ubuntu et Debian sont mentionnées.
[^] # Re: Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par deuzene (site web personnel) . Évalué à 6.
Sur Fedora ici :
Avant d'installer ton extension j'ai vérifier s'il y avait un paquet qui correspond à libreoffice + python avec la commande
dnf search libreoffice | grep python
qui m'a renvoyépython3-openoffice.noarch : Python 3 libraries for interacting with LibreOffice
.J'ai malgré tout installé ton extension sans ce paquet et ouvert
factur-X_modele_facture_francais.ods
. Je n'y connais rien, mais le PDF a été généré avec un fichier intégréfactur-x.xml
. Donc a priori ça marche sans rien faire sur Fedora.Merci pour ton travail, même si je n'en ai pas besoin (mais j'ai fait tourné l'info).
« Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »
[^] # Re: Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par Alexis de Lattre (site web personnel) . Évalué à 4.
Merci pour l'info pour Fedora. J'ai mis à jour le README sur github pour dire qu'il n'y avait pas besoin de paquets supplémentaires pour faire marcher l'extension LibreOffice Factur-X. Je suis content que ça ait marché du premier coup chez toi :)
[^] # Re: Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par L'intendant zonard (site web personnel) . Évalué à 5.
Installation dans Mageia 7 sans problème.
Bravo pour cette initiative, je vais tenter de pousser cela auprès des fournisseurs de mes établissements scolaires.
Intendant, donc méchant, mais libre !
[^] # Re: Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par Alexis de Lattre (site web personnel) . Évalué à 2.
Merci d'avoir testé sous Mageia ; j'ai mis à jour la section installation de la doc.
[^] # Re: Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par bertile . Évalué à 3.
Idem sous Archlinux, avec le paquet libreoffice-fresh cela fonctionne sans ajout.
Merci!
[^] # Re: Procédure d'install pour distro Linux autre que Ubuntu/Debian
Posté par Alexis de Lattre (site web personnel) . Évalué à 2.
Merci pour l'info concernant ArchLinux ; j'ai mis à jour la procédure d'install en conséquence.
# liberté
Posté par ToasteR (site web personnel) . Évalué à 0.
J’ai le plaisir de vous présenter ma dernière contribution
open sourcelibrenon ?
[^] # Re: liberté
Posté par ZeroHeure . Évalué à 10.
Chacun est libre de son vocabulaire.
Voir les Règles de modération :
"La liberté est à l'homme ce que les ailes sont à l'oiseau" Jean-Pierre Rosnay
[^] # Re: liberté
Posté par Anonyme . Évalué à 10. Dernière modification le 01 janvier 2020 à 14:24.
Chacun est-il libre de poser des questions en s'exposant volontairement au jugement des utilisateurs inscrits ?
Il me semble que ToasteR ne s'est pas opposé à la terminologie de l'auteur, mais a posé posément, respectueusement, peut-être naïvement (ah non, compte créé en 2002), une question, qui plus est en s'adressant directement à l'auteur.
La licence de ce projet étant la GPLv3, il est légitime de se demander si ce choix de terminologie est fait en toute connaissance de cause ou plus simplement par désintéressement au cours de la rédaction pour ce genre de précision pompeuse.
L'auteur reste libre de répondre ou d'ignorer la question s'il la considère incongrue.
Les utilisateurs inscrits restent libres de moinsser, pertinenter et commenter.
Les modérateurs restent libre de modérer.
Les rappels intempestifs au règlement contribue à dégrader l'ambiance du site (écrit celui qui y a succombé très récemment et cherche encore à déterminer si il a été intempestif ou pas).
mais manifestement je fatigue, vieillis et me grmphssifis (EDIT: c'est peut-être ça devenir un troll ?!).
Est-ce que la question de ToasteR est lourde, pompeuse et sans intérêt ? peut-être…
Est-il un habitué de ce genre de question, à la gâchette facile, d'où le rappel au règlement ? je ne sais pas…
Est-ce que ce commentaire apporte quelque chose ? je doute…
Restera, restera pas, je me la pose de plus en plus celle là… bonne année…
et j'oubliais le plus important: merci à Alexis pour cet outil !
[^] # Re: liberté
Posté par be_root . Évalué à 3.
Contribuent.
Comme les rappels intempestifs à la conjugaison, d'ailleurs ;)
Il se prend pour Napoléon, son état empire.
# Logiciel ?
Posté par Guillaume Maillard (site web personnel) . Évalué à 5.
Juste une petite note pour préciser que les entreprises utilisent des logiciels de gestion commerciale pour faire leurs factures. Utiliser LibreOffice et cette extension risque de ne pas être très pratique.
J'en profite pour vous annoncer que la prochaine version d'OpenConcerto (ERP OpenSource) intégrera Factur-X en standard lors de la création d'une facture.
[^] # Re: Logiciel ?
Posté par JM BBB . Évalué à 9.
Pas forcément, ça dépend des situations et des besoins de ces entreprises.
Pour la mienne (2 employés, CA environ 250 k€, une trentaine de factures par an), les factures sont éditées et suivies avec une simple suite bureautique (traitement de texte et tableur). La saisie comptable est faite une fois par an, au moment du bilan annuel. Et c'est très pratique et simple comme ça.
Une solution permettant d'éditer simplement une facture au format Chorus Pro depuis la suite bureautique peut bien rendre service.
M'en bati sieu nissart
[^] # Re: Logiciel ?
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 5.
Moi j'utilise une base de données que j'ai créée sous Base avec un bouton qui ouvre le modèle de facture (avec numérotation auto) et, effectivement, cette extension est encore mieux que ce que je faisais. Je veux dire, étant donné qu'elle se base sur un modèle, je vais simplement changer la destination du bouton et le faire pointer sur le modèle de facture "factur-x". Pas plus compliqué que ça.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# Erreur de LibreOffice au lancement de la génération du pdf
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 2.
Bon, j'essaie, je précise que je n'ai pas de numéro de TVA mais un siret valide et pas de numéro Chorus Pro (je ne sais pas si ça a un lien, mais je ne crois pas).
L'erreur :
L'ordinateur :
Mageia 7.1 avec des librairies Python (lib64python3-devel, lib64python3.7, lib64python3.7-stdlib, lib64python3.7-testsuite et libobasis6.3-python-script-provider plus des tas d'autres trucs Python, en fait si je ne me trompe pas il y a du Python installé par défaut dans Mageia 7).
Version: 6.3.4.2
Build ID: 60da17e045e08f1793c57c00ba83cdfce946d0aa
Threads CPU : 4; OS : Linux 5.4; UI Render : par défaut; VCL: gtk3;
Locale : fr-FR (fr_FR.UTF-8); Langue IHM : fr-FR
Calc: threaded
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Erreur de LibreOffice au lancement de la génération du pdf
Posté par Alexis de Lattre (site web personnel) . Évalué à 3.
Et quelle est la version utilisée de l'extension LibreOffice pour Factur-X ?
Dans la version 0.15, il y avait un bug qui provoquait un plantage de la macro quand le numéro de TVA de l'émetteur n'était pas renseigné (et 2 autres erreurs de ce genre). Je l'ai corrigé dans la version 0.16.
Est-ce que l'erreur se produit avec la facture modèle en français (sans changer aucune donnée dedans) ? Si la réponse est non et que tu utilises bien la version 0.16, peux-tu m'envoyer le fichier ODS avec les modifications que tu as effectué pour que je puisse reproduire le bug ?
[^] # Re: Erreur de LibreOffice au lancement de la génération du pdf
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 3. Dernière modification le 02 janvier 2020 à 18:54.
C'est bon, merci. Mauvaise version en effet.
Et alors je vois comment l'interfacer avec ma base de données Client : rajouter une feuille et lier la feuille Facture à celle où sont les données que je récupère de ma base de données.
Par contre, je suggèrerais bien d'arriver à pouvoir se passer du message (toujours un peu anxiogène) d'activation de la macro si c'est possible.
C'est une excellente macro.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# Souci TVA
Posté par patlan55 . Évalué à 1.
Bonjour,
Bravo pour cette extension.
Je travaille pour une association loi 1901 en relation avec une administration.
Côté association, j'ai rentré le numéro de SIRET sans numéro de TVA.
Côté administration, j'ai rentré le code service Chorus Pro, ainsi que le numéro de marché.
j'ai modifié dans la facture la formule de la TVA car il n'y en a pas ..
Dons je me retrouve avec un montant HT 1234,00 euros avec une TVA à 0,00 euros et un montant TTC à 1234,00 euros.
Lors de la génération du PDF, je récupère un pop up m'indiquant que la cellule B21 (Total TVA) est un champ obligatoire mais il est actuellement vide ou n'a pas le bon type. Or la valeur présente reprise de la facture (cellue D35) est de 0.00 euros..
Quelle solution pour corriger ce souci ?
Cordialement,
[^] # Re: Souci TVA
Posté par Alexis de Lattre (site web personnel) . Évalué à 2.
Merci pour ton retour… c'est effectivement un bug. Je l'ai corrigé dans la version 0.17, à télécharger sur https://github.com/akretion/factur-x-libreoffice-extension/releases
Est-ce que tu pourras confirmer que ça marche bien pour toi avec cette version ?
[^] # Re: Souci TVA
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 3.
En fait, si je comprends bien, on peut modifier le contenu des champs de la colonne Valeur de la feuille Données de toute façon non ? (sinon ça fonctionne).
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Souci TVA
Posté par Alexis de Lattre (site web personnel) . Évalué à 1.
Oui, bien sûr ! Seule la position des champs de la colonne valeur du 2e onglet (onglet données), ainsi que leur type (date, nombre, …), doit être conservée.
[^] # Re: Souci TVA
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 2.
Autre chose, ça n'envoie que la première feuille (la facture) et celle appelée "données" ? Si oui, j'adapte mon système et je fais dans la foulée un tutoriel expliquant comment interfacer ça avec Base quand, comme moi, on n'est pas développeur (c'est bien pour un petit volume de factures mais ça permet une meilleure gestion et ça n'empêche pas le recours à un logiciel de compta agréé).
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Souci TVA
Posté par Alexis de Lattre (site web personnel) . Évalué à 2.
Oui, seuls les 2 premiers onglets du tableur sont utilisés par la macro. Le 1er onglet est exporté en PDF ; le 2e onglet permet de générer le XML. Dans le 2e onglet, seules les valeurs des cellules de la 2e colonne sont utilisées. Il est possible de changer les formules de la 2e colonne de l'onglet 'Données'.
[^] # Re: Souci TVA
Posté par patlan55 . Évalué à 2.
Bonjour,
j'ai installé l'extension version 0.17…
Tout fonctionne parfaitement.
Cordialement,
[^] # Re: Souci TVA
Posté par patlan55 . Évalué à 1.
Bonjour,
J'ai installé la version 0.17 .. Tout est ok.
Pour débuter, je suis resté sur ton format de facture. Aucune cellule changée ou déplacée. J'ai juste remplacé le logo originel par celui de l'association.
Lors de la génération du PDF, j'ai un message "Problèmes lors de l'export PDF" .. Transparences supprimées… certains objets ont été convertis en image afin de supprimer ….. Vous obtiendrez un meilleur résultat si vous supprimez les objets transparents avant l'export.
Serait ce dû à l'image de l'association quej'ai mise ? Si oui y a t'il un format à respecter ? png, jpg ou autre ?
Cordialement,
[^] # Re: Souci TVA
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 4.
Ça n'est pas lié à la macro mais au format d'export. Inutile de changer quoi que ce soit. J'imagine qu'il s'agissait d'un png avec un fond transparent.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Souci TVA
Posté par Jean-Baptiste Faure . Évalué à 3.
Probablement. On a ce message d'alerte quand le format d'export PDF est du PDF archive (case "PDF/A, (ISO 19005)" cochée sous Général dans la boîte de dialogue d'export PDF), variante PDF qui exclue, entre autres choses, les objets avec transparence.
# Lecture automatique de document
Posté par tisaac (Mastodon) . Évalué à 1.
Ce passage me fait penser que je suis (passivement) à la recherche d'un logiciel qui "encoderait" automatiquement des données de factures dans un tableur.
J'ai trouvé des trucs non-libres (ici ou ici). Vous connaitriez des trucs dans le genre en opensource ?
Surtout, ne pas tout prendre au sérieux !
[^] # Re: Lecture automatique de document
Posté par Alexis de Lattre (site web personnel) . Évalué à 3.
Pour les factures non factur-X, j'utilise la librairie Python invoice2data:
https://github.com/invoice-x/invoice2data
Avec cette lib, le PDF est d'abord converti en texte brut (donc le PDF ne doit pas être issu d'un scan), puis il va chercher le template (fichier YAML) qui correspond au fournisseur (via des mots clés tel que le numéro de TVA ou SIRET), puis il utilise les regexp indiquées dans le template pour extraire les données essentielles (date, numéro de facture, total HT, total TTC). Il y a déjà des templates pour plusieurs grandes entreprises françaises gros émetteurs de factures (EDF, Orange, SFR, Free, … cf https://github.com/invoice-x/invoice2data/tree/master/src/invoice2data/extract/templates/fr) et tout le monde est invité à en contribuer.
Il faut quand même faire l'effort de préparer un template par fournisseur ; donc ça va bien pour les fournisseurs récurrents, mais pas pour les fournisseurs ponctuels.
[^] # Re: Lecture automatique de document
Posté par marty314 . Évalué à -1.
J'ai vraiment pas le temps cet an-ci mais je m'étais amusé avec python tesseract ocr pour la reconnaissance des scans
[^] # Re: Lecture automatique de document
Posté par Alexis de Lattre (site web personnel) . Évalué à 3.
Dans invoice2data, il y a plusieurs modules d'entrée possible ; par défaut, c'est le module pdftotext qui est utilisé (texte brut extrait du PDF), mais il existe aussi un module d'entrée tesseract (OCR opensource, utile quand le PDF est issu du scan d'une facture papier… mais ce sera évidemment moins fiable que l'extraction de texte brut) et un autre basé sur Google Vision (service en ligne de Google qui fait du machine learning/IA, cf https://cloud.google.com/vision/?hl=fr)
La liste des modules d'entrée d'invoice2data se trouve dans ce morceau de code:
cf https://github.com/invoice-x/invoice2data/blob/master/src/invoice2data/main.py#L25
[^] # Re: Lecture automatique de document
Posté par marty314 . Évalué à 0.
Merci, je garde pour plus tard c'est très intéressant, p-e à intégrer sur ErpNext je bosse là dessus ces temps-ci
J'utilisais Odoo avant, j'avais déjà vu passer "akretion" merci pour tes contributions
# Suggestion d'amélioration
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 5. Dernière modification le 07 janvier 2020 à 13:59.
Pour commencer, ça fonctionne tout à fait comme je veux avec la connexion avec ma base de données. C'est impeccable. Super merci.
Sinon deux points me chagrinent :
Merci encore.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Suggestion d'amélioration
Posté par Alexis de Lattre (site web personnel) . Évalué à 4.
Je suis content que cette extension vous plaise !
Pour répondre à vos 2 points:
Petite chose à faire attention quand vous mettez à jour : vérifiez que le fichier est bien nommé "factur-x_macro.oxt" (et qu'il n'a pas été renommé automatiquement factur-x_macro.oxt(1)" car vous l'auriez téléchargé dans le même répertoire que la version précédente de l'extension) quand vous procédez à la mise à jour de l'extension, sinon le bouton ne marchera plus. En effet, le bouton contient le chemin vers l'extension, qui est désignée par le nom du fichier au moment de l'installation (c'est bizarre, mais c'est comme ça !).
[^] # Re: Suggestion d'amélioration
Posté par Alexis de Lattre (site web personnel) . Évalué à 3.
Suite à votre suggestion, j'ai sorti à l'instant une version 0.20 qui ajoute une nouvelle entrée de menu "Fichier > Exporter au format Factur-X". A télécharger sur https://github.com/akretion/factur-x-libreoffice-extension/releases/
[^] # Re: Suggestion d'amélioration
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 5.
Merci, c'est tout à fait bien.
Sinon, j'ai fait une icône pour générer un pdf "factur-x", si ça va et s'il en faut d'autres, je pourrais continuer à m'amuser avec Inkscape.
Sinon, pour les personnes susceptibles de facturer à des entreprises ou des particuliers. Dans le premier cas, il y un SIRET, utiliser le bouton "factur-x", dans le second cas, utiliser l'export pdf de LibreOffice en n'exportant que la première page (celle de la facture). Ainsi on a un seul modèle que l'on peut utiliser avec ou sans numéro de SIRET de client.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Suggestion d'amélioration
Posté par Alexis de Lattre (site web personnel) . Évalué à 2.
Merci pour cette proposition de logo. Ca serait effectivement super d'avoir un logo pour cette extension LibreOffice, plutôt que de squatter le logo de Factur-X profil minimum. Je me permets de suggérer quelques idées d'évolution du logo, pour le rendre plus compréhensible et plus lisible (compte tenu du fait qu'il est affiché en toute petite taille) : supprimer l'étoile et la flèche rouge, et les remplacer pour un gros X rouge. Qu'en pensez-vous ? Ce n'est peut-être pas très subtil, mais vu la taille à laquelle il est affiché, il est difficile de mettre des subtilités.
Concernant votre 2e point : il doit être possible de facturer un particulier en Factur-X sans SIRET. D'ailleurs, j'ai un peu amélioré les formules dans le 2e onglet pour que le champ SIRET soit vide et non égale à 0 quand le champ SIRET client est vide dans le 1er onglet. Pour moi, le but est de générer une facture Factur-X profil minimum en B2B, B2C et B2G.
[^] # Re: Suggestion d'amélioration
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 2.
Je vais en dessiner plusieurs avec éventuellement d'autres couleurs, et après, ce sera une question de choix.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Suggestion d'amélioration
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 3. Dernière modification le 09 janvier 2020 à 20:56.
Voilà une série, au format pdf et le fichier svg.
S'il y a un problème avec le fichier svg, ce serait bien de me le dire. Je trouverai un autre moyen de le partager (il y a un truc curieux sur mon nuage).
Il y a deux séries identiques pour voir la visibilité sur thème clair et foncé et les explications, au cas où, sur comment en faire des png et des fichiers individuels.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: Suggestion d'amélioration
Posté par Alexis de Lattre (site web personnel) . Évalué à 1.
Un très grand merci pour cette série de logos. Cela m'a permis d'avancer dans ma réflexion et d'aboutir à ce que je souhaitais. J'ai publié à l'instant la version 0.22 avec le nouveau logo pour le projet, et un autre plus simple pour l'entrée de menu (la très petite taille empêche de toute façon de faire des choses compliquées). J'espère qu'il vous plaira.
J'en profite pour mentionner la journée de la facture électronique qui se déroule à Paris Jeudi 16 Janvier dans les locaux de GS1. Je serai présent toute la journée et je participerai à la conf de 10h15 "Atelier pratique Factur-X" pour présenter l'extension LibreOffice (et une autre petite surprise… que je dois finir de coder d'ici là !).
[^] # Re: Suggestion d'amélioration
Posté par BAud (site web personnel) . Évalué à 2. Dernière modification le 11 janvier 2020 à 02:40.
tu peux l'ajouter sur l'AdL pour avoir un peu plus de visibilité :-)
https://www.agendadulibre.org/
vu que tu sembles sur Paris : https://www.agendadulibre.org/events?region=12
Je te recommande https://www.agendadulibre.org/events/21094 pour annoncer les événements ensuite à l'avance (tu trouveras de l'aide pour annoncer sur l'AdL à l'avance)
En plus, AdL, ça devrait te parler :D (moi aussi je suis piston)
# Suivi de mise a jour
Posté par patlan55 . Évalué à 1.
Bonjour,
Je suis tjs les évolutions …
J'ai donc installé la version 0.20 .. Nickel .. Sur ma facture actuelle.
Par contre, j'ai ensuite essayé de charger votre exemple de facture version 0.18..
Il y a immédiatement un message d'erreur "Erreur générale. Erreur d'entrée/sortie général".
Cordialement,
[^] # Re: Suivi de mise a jour
Posté par Alexis de Lattre (site web personnel) . Évalué à 1.
Je viens de faire le test avec l'extension version 0.20 et le modèle de facture correspondant à la version 0.18, et ça marche bien sans soucis (j'ai testé avec le modèle français et anglais). Je pense que votre fichier modèle ODS en 0.18 est corrompu…
D'une manière générale, il est possible d'utiliser d'anciens modèles de facture avec les dernières versions de l'extension. En effet, le but est de pouvoir mettre à jour l'extension sans avoir besoin de modifier votre modèle de facture personnalisé.
# Pour ajouter le bouton Factur-x a la barre d'outils du modèle de facture
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 5. Dernière modification le 08 janvier 2020 à 18:44.
Au cas où vous ne sauriez pas le faire :
Outils > Personnaliser
;Barres d'outils
, pour l'Étendue
choisir le nom du fichier, soit factur-x.ots dans l'exemple (si le vôtre s'appelle pouet.ots, LibreOffice vous proposera pouet.ots) ;Macros
(tout en bas), pour aller plus vite, dans le module recherche, on peut entrer fac (ou factur) ;generate_facturx_invoice_v1
et cliquer sur la flèche droite pour l'ajouter dans la barre d'outils.Je l'ai ajouté dans la barre d'outils standard à côté du bouton PDF (celui qui ouvre une boite de dialogue, c'est préférable au bouton PDF direct, d'ailleurs vous pouvez en profiter pour changer le bouton PDF par défaut par celui-ci, catégorie Documents, entrer PDF dans la recherche, c'est la fonction PDF en bas de la pile qu'il faut choisir) ).
Et voilà.
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
# dépose dans CHORUS
Posté par pride . Évalué à 1.
Tout d'abord merci pour cette contribution qui je l'espère, trouvera un écho dans l'administration scolaire, familière de CHORUS-PRO.
Curieux de tester l'affaire, j'ai édité ma 1ère facture et l'ai déposé dans CHORUS. Seulement, alors que l'application n'affiche aucun message d'erreur (au contraire : "Le lot de factures a été importé correctement sous le n°…."), je ne retrouve ma facture nulle part.
Si quelqu'un voit d'où peut venir le problème… Merci d'avance.
[^] # Re: dépose dans CHORUS
Posté par Alexis de Lattre (site web personnel) . Évalué à 4.
Tout d'abord, il faut que le flux passe à l'état "intégré". Pour cela, il faut aller dans le menu "Suivi des flux" (il faut activer cet espace au préalable si vous ne voyez pas cette entrée de menu), rechercher dans les flux et vérifier l'état du flux en question. D'après mon expérience, il faut entre quelques minutes et 36h pour qu'un flux passe à l'état "intégré".
Une fois que le flux est passé à l'état "intégré", on peut voir la facture dans le menu "Factures émises > Rechercher".
[^] # Re: dépose dans CHORUS
Posté par pride . Évalué à 2.
Merci, c'est effectivement une méconnaissance de ma part des subtilités de CHORUS ! Je retrouve mes différentes tentatives, rejetées à chaque fois pour la raison suivante :
"Facture n°XXXXXX-39:Le code service (FichierXml.SupplyChainTradeTransaction.ApplicableHeaderTradeAgreement.BuyerReference.value) n'existe pas dans le referentiel des codes services. Le referentiel est accessible depuis le portail."
or mon "client" n'exige pas de code service… J'ai tout de même corrigé ma facture en le renseignant ("FACTURES_PUBLIQUES"), sans effet. J'ai peut-être corrompu le fichier xml en faisant des modifications sur le modèle de fichier ods fourni… je vais refaire des tests à partir de ce fichier d'origine.
[^] # Re: dépose dans CHORUS
Posté par Alexis de Lattre (site web personnel) . Évalué à 2.
Si ton "client" public n'utilise pas de code service, alors il faut que la balise "BuyerReference" du XML soit vide ou non présente.
Est-ce que la balise "BuyerReference" est présente dans le XML en pièce jointe du PDF que tu as déposé sur Chorus (dans l'idéal, la balise ne devrait pas apparaître) ?
Si la balise apparaît, que vaut la cellule B12 du 2e onglet de ton ODS ? Est-elle bien vide ?
Si ta cellule B12 vaut "0", modifie la formule pour mettre par exemple:
=T($Facture.C18)
comme ça, B12 est vide quand le champ C18 du 1er onglet est vide.
J'ai modifié le modèle de facture il y a qq jours pour utiliser cette formule…
[^] # Re: dépose dans CHORUS
Posté par pride . Évalué à 1.
Il m'a fallu un peu de temps, voilà le résultat de mon test :
1. j'avais effectivement raté ma modification du modèle proposé, qui par lui-même passe bien
2. Une fois passée en "intégrée", on perd un peu la trace de la facture, sauf à faire une recherche assez fastidieuse… À la différence d'un pdf ordinaire qui apparait tout de suite sous l'onglet "factures émises".
3. Il a fallu que j'attende de me tourner vers le client, qui m'a confirmé avoir reçu la facture de façon conforme sur son profil CHORUS.
Bref, ça marche mais l'interface de CHORUS ne vas pas nous aider à diffuser cette méthode, c'est dommage. Je vais persévérer néanmoins !
Merci Alexis pour tes précieux conseils.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.