Akretion est fière de présenter son nouveau module account_move_export qui, comme son nom l'indique, permet d'export des écritures comptables. Ce nouveau module s'adresse aux sociétés qui ont fait le choix de ne pas tenir leur comptabilité dans Odoo. Il s'agit souvent de petites entreprises qui confient la tenue de leur comptabilité à expert-comptable par manque de compétences en interne. Pour éviter au cabinet comptable de saisir la totalité des écritures comptables, la société exporte certains journaux (le journal de vente, souvent aussi le journal d'achat, etc.) générés par Odoo sous forme de fichier pour que le cabinet comptable puisse les importer dans son logiciel comptable et éviter une fastidieuse re-saisie.
Jusqu'à présent, quand une société avait besoin de mettre en place un export d'écritures comptables, nous avions 3 solutions possibles :
- utiliser le fichier FEC, initialement conçu pour les contrôles fiscaux, mais qui est devenu un standard de-facto en France, en utilisant le module l10n_fr_fec ou l10n_fr_fec_oca. Avantage: format standard, très complet, supporté par de nombreux logiciels en France. Inconvénients : le FEC ne permet pas d'exporter l'analytique, ne permet pas de filtrer sur certains journaux, et il contient systématiquement les reports à nouveau.
- utiliser la fonction native d'export d'Odoo. Avantage : l'utilisateur peut lui-même choisir les champs qui seront exportés dans le fichier, et Odoo donne le choix entre les formats CSV et XLSX. Inconvénient : l'export natif d'Odoo n'est pas toujours facile à configurer pour un utilisateur non averti. Aucune option de configuration n'est proposée pour l'export CSV.
- implémenter, via un petit développement spécifique, la possibilité de générer un fichier d'export dans un format particulier demandé par le cabinet comptable. Avantage : le format généré sera exactement celui demandé. Inconvénient : ajoute du code spécifique sur le projet, qu'il faudra maintenir dans le temps.
Avec l'arrivée du multi-axe analytique dans Odoo version 16, il est devenu encore plus complexe pour un utilisateur non expert d'exporter les écritures comptables avec l'analytique par la fonction native d'export d'Odoo. Par ailleurs, quand la solution 3 était retenue, nous étions amenés à développer du code très similaire d'un projet à l'autre : la seule différence résidait dans quelques mini-détails de format de fichier.
Nous avons donc décidé que cette fonctionnalité d'export d'écritures comptables, même si elle peut sembler simple et d'importance secondaire, méritait un vrai module communautaire bien conçu.
Etant donné que ce module s'adresse aux sociétés qui exportent leurs écritures vers un cabinet comptable, un des enjeux essentiel est d'exporter toutes les écritures depuis le dernier export, sans oublier aucune écriture et sans exporter une seconde fois une écriture qui aurait déjà été exportée. Comme cette fonctionnalité est essentielle pour les utilisateurs du module, nous avons décidé que l'export d'écriture comptable serait un objet stocké dans Odoo et que cet objet serait lié à toutes les écritures contenues dans cet export (pour les développeurs : champ many2one de account.move vers le nouvel objet account.move.export créé par le module). Ce modèle de donnée permet de garantir qu'une pièce comptable est exportée une seule fois. Et cela permet à Odoo de restreindre les nouveaux exports aux écritures non encore exportées.
Le module permet d'exporter les écritures comptables :
- depuis le menu des pièces comptables (ou des factures, ou des avoirs), en les sélectionnant manuellement puis en cliquant sur Actions > Exporter les pièces comptables. Si une des pièces sélectionnées a déjà été exportée, un message d'erreur bloquant précisera quelle pièce comptable avait déjà été exportée.
- depuis le menu des écritures comptables, en les sélectionnant manuellement puis en cliquant sur Actions > Exporter les pièces comptables. Quand une écriture comptable est sélectionnée, toutes les écritures de la pièce seront présentes dans l'export : le module exporte toujours des pièces comptables entières. De même, si une des pièces sélectionnées a déjà été exportée, un message d'erreur bloquant précisera de quelle pièce il s'agit.
- depuis le nouveau menu Comptabilité > Journaux > Export des pièces comptables créé par ce module: l'utilisateur pourra filtrer sur un ou plusieurs journaux et/ou filtrer par date et choisir de sélectionner uniquement les écritures comptabilisées ou prendre aussi les écritures en brouillon.
Par ailleurs, l'utilisateur pourra choisir d'exporter ou non l'analytique. En v16, il pourra choisir d'exporter tous les axes ou seulement certains axes.
Dans le module de base, deux formats génériques ont été implémentés :
- le format XLSX,
- le format CSV : il est possible de choisir l'encodage des caractères, le séparateur de champ, le séparateur décimal, le format de date, la mise entre guillemets et l'extension du fichier (.csv ou .txt).
Si vous souhaitez modifier les formats génériques, comme par exemple changer l'ordre des colonnes, vous pouvez le faire très facilement en héritant la méthode _prepare_columns() de l'objet account.move.export.
Ce module a été conçu pour permettre d'ajouter des formats supplémentaires très facilement. Akretion publiera prochainement un module communautaire, qui dépend du module account_move_export, ajoutant le support du format natif du logiciel Quadratus.
Cerise sur le gâteau : ce module est entièrement traduit en français. Il est disponible pour Odoo 14.0 et 16.0 sur https://github.com/akretion/account-move-export
Nous sommes à l'écoute de vos retours d'expériences et de vos suggestions pour améliorer ce module. Nous espérons de cette contribution vous sera utile !