Notes de frais

Justificatifs dans les notes de frais

dolixjustif · version 1.0.0

Le PDF de la note de frais contient aussi ses justificatifs, photos et PDF, page par page : un seul document à transmettre.

Prix
49 € HT
Dolibarr
19.0 minimum
Version
1.0.0
Licence
GPL v3+
Langues
Français, anglais, allemand

49 € hors taxes.

La commande, le paiement, la facture et le téléchargement sont assurés par le DoliStore.

Acheter sur le DoliStore — 49 € HT
Le PDF de la note de frais ER2610-0001, suivi de ses trois justificatifs dans l'ordre des lignes : billet de train et facture d'hôtel en PDF, photo du ticket de restaurant. Chaque page porte son repère : ligne, date, montant, nom du fichier.
Le PDF de la note de frais ER2610-0001, suivi de ses trois justificatifs dans l'ordre des lignes : billet de train et facture d'hôtel en PDF, photo du ticket de restaurant. Chaque page porte son repère : ligne, date, montant, nom du fichier.
01

Ce que fait le module

  • Ordre fixe : d'abord les justificatifs rattachés aux lignes, dans l'ordre des lignes. Un fichier rattaché à plusieurs lignes n'apparaît qu'une fois.
  • En option, activée par défaut : les autres fichiers de l'onglet « Fichiers joints » de la note, sauf les documents produits par Dolibarr.
  • Photos JPG, PNG et GIF : redressées selon l'orientation EXIF, lue directement dans le fichier, sans l'extension PHP « exif » ; transparence remplacée par du blanc ; image centrée et ajustée à la page, en portrait ou en paysage selon son sens.
  • PDF : ajoutés page par page, chaque page à son format d'origine, portrait ou paysage.
  • Repère en haut de chaque page de justificatif, désactivable : « Justificatif — référence de la note — ligne, date, montant TTC — nom du fichier ». Un fichier non rattaché porte la mention « non rattaché à une ligne ».
  • Contrôle avant lecture : fichier vide, taille maximale (20 Mo par défaut, réglable de 1 à 200 Mo), format, PDF complet, PDF non chiffré. Un fichier refusé est listé sur une dernière page, « Justificatifs non joints à ce document », avec la raison, et signalé à l'écran.
  • La fusion est écrite dans un fichier à part. Le PDF de Dolibarr n'est remplacé qu'en cas de succès.
  • Sur Dolibarr 19 à 23, la bibliothèque PDF du cœur peut arrêter PHP sur certains PDF abîmés. Le module met alors le fichier de côté et affiche une page d'explication avec un lien vers la note de frais, au lieu d'une page blanche. À la génération suivante, le fichier est listé comme non joint. La liste des fichiers mis de côté se consulte et se vide dans la configuration.
  • Aucune table, aucun droit, aucun menu. Les trois réglages sont propres à chaque entité en multi-société.
02

À qui ça sert

Dans Dolibarr, chaque ligne de note de frais peut être rattachée à un justificatif, mais le PDF de la note ne contient que le tableau des frais. Les tickets restent à part, à télécharger un par un.

Dans Dolibarr, chaque ligne de note de frais peut être rattachée à un justificatif. Mais le PDF de la note ne contient que le tableau des frais. Les tickets, les factures d’hôtel et les billets restent à part, dans l’onglet « Fichiers joints », à télécharger un par un.

Pour transmettre une note complète au comptable ou au service qui rembourse, il faut donc envoyer le PDF, puis chaque fichier, et espérer que personne ne mélange l’ordre.

À qui ça sert : Les structures qui transmettent leurs notes de frais à un comptable ou à un service de remboursement, et les salariés qui photographient leurs tickets avec leur téléphone.

03

Ce que le module ne fait pas

Ce bloc figure sur les 12 fiches, sans exception.

  • Formats acceptés : PDF, JPG, PNG et GIF. Les photos HEIC des iPhone, les documents Word et les autres formats ne sont pas convertis : ils sont listés comme non joints.
  • Un PDF protégé (chiffré) est écarté, même s'il s'ouvre sans mot de passe. Il faut le déposer sans protection.
  • Sans l'extension PHP GD, seuls les JPEG sont joints, sans redressement.
  • Dans le PDF, les photos sont réenregistrées en JPEG et limitées à 2 400 pixels sur le plus grand côté. Une image de plus de 60 millions de pixels est écartée. Le fichier déposé n'est pas modifié.
  • Le module ne vérifie pas que chaque ligne a un justificatif : une ligne sans fichier rattaché n'est pas signalée.
  • Seul le PDF des notes de frais est complété. Le module agit à la fin de la génération, par le crochet afterPDFCreation ; il a été essayé avec le modèle de note de frais du cœur uniquement.
  • Si la fusion de PDF est désactivée dans Dolibarr (constante MAIN_DISABLE_TCPDI), le PDF est laissé tel quel, sans justificatif ni message.
  • Un fichier mis de côté est reconnu à son contenu : il reste écarté tant que la liste n'a pas été vidée dans la configuration.
04

Comment ça marche

Quand Dolibarr produit le PDF d’une note de frais, le module ajoute les justificatifs à la suite, dans un ordre fixe :

  1. les fichiers rattachés aux lignes, dans l’ordre des lignes. Un fichier rattaché à plusieurs lignes n’apparaît qu’une fois ;
  2. en option, activée par défaut, les autres fichiers de l’onglet « Fichiers joints », sauf les documents produits par Dolibarr.

Photos et PDF

Fichier Ce que fait le module
Photo JPG Redressée selon l’orientation EXIF enregistrée par le téléphone, lue directement dans le fichier, sans l’extension PHP « exif ». Centrée et ajustée à la page.
Image PNG ou GIF Transparence remplacée par du blanc, image centrée et ajustée à la page.
PDF Ajouté page par page, chaque page à son format d’origine, portrait ou paysage.

Une image plus large que haute est placée sur une page en paysage. Dans le PDF, les photos sont réenregistrées en JPEG et limitées à 2 400 pixels sur le plus grand côté. Le fichier déposé, lui, n’est pas modifié.

Les autres formats — photos HEIC des iPhone, documents Word… — ne sont pas convertis : ils sont listés comme non joints. Le redressement et la prise en charge des PNG et GIF demandent l’extension PHP GD ; sans elle, seuls les JPEG sont joints, tels quels.

Le repère sur chaque page

En haut de chaque page de justificatif, une ligne indique d’où il vient :

Justificatif — ER2610-0001 — ligne 1 · 07/10/2026 · 68,00 € — billet_train.pdf

Référence de la note, numéro de ligne, date et montant TTC de la ligne, nom du fichier. Un fichier qui n’est rattaché à aucune ligne porte la mention « non rattaché à une ligne ». Le repère se désactive dans la configuration.

Un justificatif ne bloque jamais la note de frais

Chaque fichier est contrôlé avant d’être lu : fichier vide, taille maximale, format, PDF complet, PDF non chiffré. Un fichier refusé n’empêche pas la note d’être produite. Il est listé sur une dernière page, « Justificatifs non joints à ce document », avec la raison, et un message le signale à l’écran.

Sur Dolibarr 19 à 23, la bibliothèque PDF du cœur peut arrêter PHP sur certains PDF abîmés : l’utilisateur obtient une page blanche. Le module s’en protège. Le fichier fautif est mis de côté, une page explique ce qui s’est passé et ramène à la note de frais. À la génération suivante, le PDF est produit normalement et le fichier y figure comme non joint.

Le module ne vérifie pas que chaque ligne a un justificatif : une ligne sans fichier rattaché n’est pas signalée.

La capture montre le résultat : quatre pages du même PDF, côte à côte.

La première est la note de frais ER2610-0001 telle que Dolibarr la produit : trois lignes — un train Strasbourg – Paris à 68,00, une nuit d’hôtel à 102,65, un déjeuner client à 40,50 — pour un total TTC de 211,15.

Suivent les trois justificatifs, dans l’ordre des lignes : le billet de train et la facture d’hôtel, deux PDF, puis la photo du ticket de restaurant. Chaque page porte son repère, dont la date et le montant correspondent à la ligne de la note. Il n’y a pas de page « Justificatifs non joints à ce document » : les trois fichiers ont été joints.

05

Réglages

ConfigurationModules/ApplicationsJustificatifs dans les notes de frais :

Réglage Défaut Effet
Joindre aussi les fichiers non rattachés à une ligne activé Tous les fichiers de l’onglet « Fichiers joints », sauf les documents produits par Dolibarr.
Repère en haut de chaque page de justificatif activé Référence de la note, numéro de ligne, date et montant, nom du fichier.
Taille maximale d’un justificatif (Mo) 20 De 1 à 200. Au-delà, le fichier est écarté et signalé.

Sous les réglages, la liste des justificatifs mis de côté après une erreur de lecture. Un fichier mis de côté est reconnu à son contenu : il reste écarté tant que la liste n’a pas été vidée avec le bouton « Vider la liste ».

Les réglages sont propres à chaque entité en multi-société.

06

Sécurité et garde-fous

  • Le PDF d’origine n’est jamais abîmé. La fusion est écrite dans un fichier à part ; le PDF produit par Dolibarr n’est remplacé qu’en cas de succès.
  • Contrôle avant lecture de chaque justificatif : taille, format, PDF complet, PDF non chiffré. Une image de plus de 60 millions de pixels est écartée.
  • Fichiers confinés au dossier de la note de frais : un fichier rattaché à une ligne n’est lu que s’il se trouve réellement dans ce dossier.
  • Aucun droit nouveau. Les justificatifs sont ajoutés pour toute personne qui peut déjà générer le PDF de la note de frais.
  • Page de configuration réservée aux administrateurs, et ses deux actions — enregistrer, vider la liste — exigent le jeton anti-CSRF de la session.
07

Ce qui est livré

Ce que le module écrit dans votre installation
Tables créées en baseAucune table. Le dossier du module ne contient pas de répertoire sql/. À l'activation, le module enregistre trois réglages dans les constantes de Dolibarr. Si un justificatif est mis de côté, sa trace est gardée dans un petit fichier, documents/dolixjustif/quarantaine_.json, et non en base.
PermissionsLe descripteur déclare rights = array() : le module n'ajoute aucune permission. Les justificatifs sont ajoutés pour toute personne qui peut générer le PDF de la note de frais. La page de configuration est réservée aux administrateurs.
Désinstallation
  • Désactiver le module dans ConfigurationModules/Applications. Les PDF générés ensuite redeviennent ceux de Dolibarr.
  • Les PDF déjà générés gardent leurs justificatifs jusqu'à leur prochaine génération.
  • Les trois réglages restent dans les constantes de Dolibarr, et la liste des fichiers mis de côté reste dans documents/dolixjustif/. Aucune table n'est à supprimer.
  • Le dossier dolixjustif, en clair, sous licence GPL v3 ou ultérieure : descripteur, deux classes (le crochet de fin de génération du PDF et la fusion), page de configuration, icônes.
  • Les traductions présentes dans langs/ : français (fr_FR), anglais (en_US) et allemand (de_DE).
  • Un README.md et un ChangeLog.md.

Le module a besoin du module Notes de frais. Le descripteur exige Dolibarr 19.0 et PHP 7.4 au minimum ; les scénarios de test ont été exécutés sur 19.0.4, 20.0.4, 21, 22, 23.0.4 et 24.0.1.

  • Aucune table créée. Le module ne contient pas de répertoire sql/.
  • Il ne modifie ni les lignes, ni les montants, ni les fichiers déposés. Il lit la liste des fichiers de la note de frais ; la seule écriture est le PDF produit, complété.
  • À l’activation, trois réglages sont enregistrés dans les constantes de Dolibarr.
  • Si un PDF abîmé est mis de côté, sa trace est gardée dans un petit fichier, documents/dolixjustif/quarantaine_<entité>.json, et non en base.
  • Aucune connexion sortante : rien n’est envoyé nulle part.
  • À la désactivation, les PDF générés ensuite redeviennent ceux de Dolibarr. Les PDF déjà générés gardent leurs justificatifs jusqu’à leur prochaine génération. Les trois réglages et la liste des fichiers mis de côté restent ; vous pouvez les supprimer vous-même.
08

Compatibilité

Le descripteur du module ne déclare qu’une version minimale. Aucune borne haute n’est inscrite dans le code : les versions ci-dessous sont celles sur lesquelles le module a réellement été exécuté.

Compatibilité du module Justificatifs dans les notes de frais
Versions de DolibarrDolibarr 19.0 minimum. Installé et exécuté sur 19.0.4, 20.0.4, 21, 22, 23.0.4 et 24.0.1.
PHP minimum7.4
Modules Dolibarr à activerNotes de frais
LicenceGPL v3 ou ultérieure, code source complet
LanguesFrançais, anglais, allemand
MenuAucune entrée de menu. Le module agit quand le PDF de la note de frais est généré ; ses réglages sont dans ConfigurationModules/Applications.
09

Installation

  1. Récupérer le module sur le DoliStore et télécharger le fichier zip.
  2. Dans Dolibarr : AccueilConfigurationModules/Applicationsonglet « Déployer/installer un module externe », puis envoyer le zip. Sinon, décompresser le dossier dolixjustif dans htdocs/custom/.
  3. Activer « Justificatifs dans les notes de frais » dans la liste des modules. Il s'appuie sur le module Notes de frais. Les trois réglages sont créés avec leurs valeurs par défaut.
  4. Si besoin, ajuster dans la page de configuration du module : fichiers non rattachés, repère, taille maximale d'un justificatif.
  5. Générer à nouveau le PDF d'une note de frais : les justificatifs apparaissent à la suite.

Le détail — droits du dossier custom, hébergement mutualisé, mise à jour, désinstallation — est sur la page Installation et mise à jour.

10

Questions fréquentes

Sur quelles versions de Dolibarr ce module fonctionne-t-il ?

Le descripteur exige Dolibarr 19.0 au minimum et PHP 7.4 au minimum. Les scénarios de test ont été exécutés sur 19.0.4, 20.0.4, 21, 22, 23.0.4 et 24.0.1, et l'installation depuis le zip sur un 24.0.1 vierge. Si vous avez un doute sur votre version, écrivez avant d'acheter.

Le module modifie-t-il ma base ou mes fichiers ?

Non. Il ne crée aucune table et ne touche ni aux lignes, ni aux montants, ni aux fichiers déposés. Il lit la liste des fichiers de la note de frais et remplace uniquement le PDF produit par Dolibarr, et seulement si la fusion a réussi. Les essais consignés ont été faits sur MariaDB ; PostgreSQL n'a pas été essayé.

Que se passe-t-il si un justificatif est illisible ?

Il est écarté, et la note de frais est produite quand même. Le PDF se termine par une page « Justificatifs non joints à ce document », qui donne le nom du fichier et la raison : fichier vide, trop volumineux, format non pris en charge, illisible ou abîmé, PDF protégé. Un message le signale aussi à l'écran.

Les photos prises au téléphone sont-elles dans le bon sens ?

Oui pour les JPEG qui portent l'orientation EXIF : le module la lit directement dans le fichier, sans l'extension PHP « exif », et redresse l'image. Le redressement et la prise en charge des PNG et GIF demandent l'extension PHP GD. Sans elle, les JPEG sont joints tels quels et les PNG et GIF sont listés comme non joints.

Et si je désinstalle ?

Les PDF générés ensuite redeviennent ceux de Dolibarr. Les PDF déjà générés gardent leurs justificatifs jusqu'à leur prochaine génération. Les trois réglages et la liste des fichiers mis de côté restent ; vous pouvez les supprimer vous-même.

Qui répond au support, et comment se passent les mises à jour ?

Le support est assuré par la personne qui a écrit le module, à support@dolix.fr. La commande, le paiement, la facture et le téléchargement sont assurés par le DoliStore, où les nouvelles versions sont publiées.

11

Journal des versions

Repris du fichier ChangeLog.md du module : une seule source.

1.0.09 octobre 2026

Première version : les justificatifs rattachés aux lignes, puis, en option, les autres fichiers déposés, sont ajoutés à la suite du PDF de la note de frais. Photos JPG, PNG et GIF redressées selon l'orientation EXIF et ajustées à la page ; PDF ajoutés page par page à leur format. Repère sur chaque page. Contrôle avant lecture ; justificatifs écartés listés sur une dernière page et signalés à l'écran. Fusion écrite à part : le PDF de Dolibarr n'est remplacé qu'en cas de succès. Protection contre l'arrêt de PHP par la bibliothèque PDF de Dolibarr (versions 19 à 23), avec liste des fichiers mis de côté dans la configuration.

12

Support de ce module

Écrivez à support@dolix.fr. C’est la personne qui a écrit le module qui répond.

Réponse sous deux jours ouvrés. Ce n’est pas un service d’astreinte.

À joindre à votre message

  • La version exacte de Dolibarr.
  • Le module concerné et sa version — ici dolixjustif 1.0.0.
  • Ce que vous avez fait, et ce que vous attendiez.
  • Le message d’erreur recopié tel quel, ou une capture d’écran.
  • Comment Dolibarr est installé, si vous le savez.

Ce module est en vente sur le DoliStore.

La commande, le paiement, la facture et le téléchargement sont assurés par le DoliStore.

Acheter sur le DoliStore — 49 € HT
Aussi

Les autres modules