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.