Allons-y pour la collaboration, c’est avec plaisir :
En fait, je me suis mal exprimé. Une véritable compta repose sur une architecture de base de données très propre. A l’aide de requêtes SQL, on pourra pratiquement tout faire. Dans la v5, ce n’était même pas la peine de commencer à faire de la compta. Par contre, en v6, on peut envisager de travailler.
Voici mes questions concernant la version GIT :
-
https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql
Pourquoi faire une comptabilité en centimes ?
Ou alors, il faudrait que tout Dolibarr gère les centimes et migrer toutes les bases existantes.
On ne pourra pas faire de jointure sur des numeric présents dans des modules, si ceux-ci utilisent numeric.
Dans tout Dolibarr, c’est plus simple d’utiliser la valeur numeric.
Il faudrait d’ailleurs le préciser dans la documentation développeur.
-
https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/install/mysql/tables/llx_accounting_fiscalyear.sql
Il faudrait également prévoir un fichier llx_accounting_fiscalperiod.sql
Relation 1=>N
Dans exercice comptable, il y a plusieurs périodes.
Certaines entreprises sont au trimestriel, d’autres en mensuel.
Par ailleurs, on peut parfois négocier une modification exceptionnelle de la durée fiscale, comme c’est le cas durant le premier exercice. En cas de difficulté, on peut négocier une modification des périodes en cours d’exercice. Par exemple commencer au mensuer, puis passer au trimestriel.
Il faudra simplement prévoir un petit script de création des périodes.
Ensuite, l’utilisateur pourra les modifier en base de données.
Inutile de tout coder en PHP, c’est plus paramétrable en base de données.
- Plus important : plan comptable
https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/install/mysql/tables/llx_accounting_account.sql
Si on veut pouvoir faire des requêtes SQL imbriquées pour calculer la somme de comptes par jointures, il faut distinguer les comptes virtuels (génériques) des comptes personnalisés. Par exemple 401 et 410 sont des comptes virtuels. Au sein de chaque compte virtuel, on force la création de comptes personnalisés, comme pour les cas clients et fournisseur. Ou alors coder en PHP que lorsqu’un compte a un enfant, il doit être nul et ne peut contenir de valeurs. Mais ce sera plus compliqué à coder.
C’est important car on pourra ainsi calculer facilement et sans risque d’erreur la somme d’un compte de classe 4.
- Clôture des comptes
Dupliquer le plan comptable en clôture, pour stockage.
Le plan comptable est donc le plan comptable de l’année en cours.
Mais le cas se pose parfois de travailler sur l’année précédente, alors qu’elle n’est pas encore clôturée et sur l’année en cours. On doit donc stocker la référence de l’année fiscale dans le plan comptable. A la fermeture, on duplique le plan comptable et on le rouvre avec une nouvelle anneé. C’est un mécanisme beaucoup plus puissant. On pourra créer un index unique sur l’année, pour ne pas avoir de doublon.
- Indexes
Il manque pas mal d’indexes de performance dans les tables, mais j’imagine que c’est normal car les développements sont récents.
J’ai proposé ces quelques modifications, car Tryton et Odoo fonctionnent ainsi. C’est essentiel si on veut pouvoir paramétrer des états SQL sans risque de se tromper dans les calculs. Concernant Odoo, on est d’accord que c’est commercial. Par contre, leur compta est très bien foutue. Les éditeurs conservent les états SQL et ne les diffusent pas. Mais on peut tout faire, jusqu’au bilan et compte de résultat, et j’aimerais bien que Dolibarr ait une structure de données aussi bien étudiée.
Que pensez-vous de mes suggestions ?