Dolibarr

Les versions couvertes.

Le travail de TraQL porte sur une version de Dolibarr à la fois : les règles de calcul sont lues dans le code source de cette version, et une montée de version peut les déplacer. Chaque page ci-dessous dit ce qui a été mesuré, et sur quelle base.

Ce que TraQL sait faire sur Dolibarr

TraQL lit les règles de calcul là où Dolibarr les applique — dans les écrans qui sortent le chiffre, pas dans les fichiers qui y ressemblent — et les écrit dans ses propres fichiers de déclaration, avec le fichier et la ligne d'origine.

Il produit alors la requête qui répond à votre question, la règle qu'il a appliquée, et les autres réponses que Dolibarr donne lui-même à la même question, avec ce que chacune compte en trop.

Ce travail est refait à chaque version majeure : une montée de version peut déplacer une règle. C'est pourquoi il y a une page par version.

Les particularités de Dolibarr

Le périmètre — la colonne entity. Dolibarr porte cette colonne sur 172 tables. TraQL la filtre, et la valeur est déclarée, pas devinée : entite.valeur dans base-dolibarr.json, où elle vaut 1 — l'hypothèse d'une installation mono-société. Elle apparaît dans la requête, elle se relit, et une installation multi-société doit changer ce nombre.

Une limite connue et écrite : le filtre porte sur la table principale, pas encore sur les tables jointes. Et une table ne porte pas la colonne : pour llx_bank, l'entité est portée par le compte bancaire, et le chemin est déclaré au lieu d'être deviné.

L'exercice — la constante SOCIETE_FISCAL_MONTH_START. Dolibarr range le premier mois de l'exercice dans llx_const, et la constante est par entité. TraQL la lit dans votre base au moment du scan et fige ce qu'il a trouvé. Sans elle, « cette année » et « en 2025 » répondraient sur l'année civile alors que votre entreprise clôture ailleurs — un chiffre faux et muet.

Ce qui se passe quand elle n'est pas réglée est déclaré, parce que Dolibarr y a un cas dégénéré : leur getDolGlobalInt emploie isset et non empty, donc une constante présente et vide rend 0, pas le défaut. Sur 0, TraQL refuse et le dit.

La devise — la colonne multicurrency_code. C'est elle qui porte la devise d'une pièce, et devise.fait_foi déclare celle qui vaut pour ce client. Quand la table interrogée ne porte pas cette colonne, TraQL pose une valeur déclarée — 'EUR' AS devise — et le dit : c'est la réserve que vous lirez sur la page de version. Elle est vraie tant que ce client ne facture que dans une seule devise.

Sur la trésorerie, la devise n'est pas déclarée en dur : elle se lit dans le compte bancaire, par un chemin déclaré.

Les tiers — qui voit quoi. TraQL suppose que celui qui interroge voit tous les tiers : droits.tous_les_tiers vaut true. Si l'outil sert à un commercial qui ne voit que son portefeuille, il faut le déclarer et donner son identifiant — Dolibarr restreint alors par llx_societe_commerciaux sur fk_user. Déclarer la restriction sans donner l'identifiant ne passe pas : TraQL s'arrête plutôt que de rendre un chiffre plus grand que ce que son propre écran lui montre.

Ce que TraQL ne fait pas sur Dolibarr

Rien de mesuré qui soit propre à Dolibarr et indépendant de la version. Nous avons cherché un équivalent de la contrainte d'hébergement qui vaut chez Odoo — un service qui n'ouvrirait pas la base : aucun n'est mesuré dans nos fichiers. Ce qui vaut pour tous les logiciels est écrit sur la page d'accueil, et ce qui est propre à une version est sur la page de cette version.

Les versions couvertes

Ces informations ont été relevées le 31 août 2026, sur le dépôt au commit 17d9143.

Les autres logiciels que TraQL couvre