Une facture fournisseur saisie deux fois est payée deux fois. Une ligne sans taxe passe en comptabilité et se découvre à la déclaration. Une échéance calculée par un code de paiement que personne n'a vérifié décale une trésorerie.
Dix-sept modules communautaires posent les contrôles que la saisie comptable réclame — et rendent visible ce qu'Odoo calcule sans le montrer.
Résumé
Quatre modules contrôlent la saisie : un total de vérification comparé au total calculé, l'unicité du numéro de facture fournisseur, l'obligation d'une taxe sur chaque ligne, et la cohérence entre dates de réception et date comptable.
Trois traitent les échéances : la date d'échéance rendue modifiable malgré une condition de paiement, la date calculée affichée au lieu du seul libellé de la condition, et la date limite d'escompte remontée en en-tête.
Quatre encadrent la validation : une confirmation avec motif avant annulation, la validation par paliers des pièces comptables, un approbateur par défaut défini sur la fiche fournisseur, et la possibilité de garder un paiement en brouillon.
Le reste améliore le quotidien : un avertissement client sur la facture, des messages d'avertissement prédéfinis, des motifs d'avoir configurables, des menus réunissant factures et avoirs, une vue en tableau croisé sur les factures, et une référence reportée sur les factures récurrentes générées automatiquement.
L'essentiel
- Un total de vérification : on saisit le total du document, Odoo refuse si le calcul diffère.
- Le numéro de facture fournisseur rendu unique — le contrôle anti double paiement.
- Une taxe obligatoire sur chaque ligne, à la comptabilisation.
- La date d'échéance modifiable, même avec une condition de paiement.
- La date d'échéance calculée affichée, au lieu du seul libellé « 30 jours ».
- Une confirmation avec motif avant d'annuler une facture ou un paiement.
- La validation par paliers des pièces comptables, avec approbateur par fournisseur.
- Factures et avoirs dans un même menu, et une vue en tableau croisé.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Contrôles de saisie | account_invoice_check_total, account_invoice_supplier_ref_unique, account_invoice_tax_required, account_invoice_check_picking_date | 4 |
| Échéances | account_invoice_date_due, account_invoice_payment_term_date_due, account_invoice_discount_date | 3 |
| Validation et annulation | account_move_cancel_confirm, account_move_tier_validation, account_move_tier_validation_approver, account_payment_state_keep_draft | 4 |
| Confort et lisibilité | account_invoice_warn_message, account_warn_option, account_invoice_refund_reason, account_menu_invoice_refund, account_move_pivot_view, account_move_auto_post_ref | 6 |
Les menus ajoutés : Facturation ▸ Configuration ▸ Gestion ▸ Refund Reasons, et deux menus réunissant factures et avoirs côté clients comme côté fournisseurs.
Les quatre contrôles qui évitent les erreurs coûteuses
Le total de vérification
account_invoice_check_totalajoute un champ où l'on saisit le total TTC imprimé sur le document reçu. Odoo compare avec son propre calcul et refuse la validation en cas d'écart. C'est la double saisie volontaire — celle qui attrape la ligne oubliée, la quantité fausse et le taux de TVA mal choisi.
Le principe est ancien et éprouvé : en comptabilité, on ne vérifie pas en relisant, on vérifie en recomptant par un autre chemin.
Le doublon de facture fournisseur
account_invoice_supplier_ref_unique contrôle l'unicité du numéro de facture pour un même fournisseur. Saisir deux fois la même facture — parce qu'elle est arrivée par courriel puis par courrier — est l'erreur qui conduit au double paiement.
La taxe obligatoire
account_invoice_tax_required empêche de comptabiliser une facture dont une ligne n'a aucune taxe. Une ligne sans taxe ne remonte pas dans la déclaration de TVA : l'erreur se découvre au contrôle, des mois plus tard.
La cohérence des dates
account_invoice_check_picking_date vérifie que les dates des réceptions correspondent à la date comptable de la facture. C'est le contrôle du rattachement à l'exercice : une marchandise reçue en décembre facturée en janvier ne doit pas glisser d'un exercice à l'autre sans qu'on le sache.
Ces contrôles complètent ceux décrits dans contrôles de saisie comptable.
Les échéances : montrer ce qu'Odoo calcule
| Module | Ce qu'il change |
|---|---|
account_invoice_payment_term_date_due | Affiche la date d'échéance calculée, là où Odoo ne montre que le libellé de la condition de paiement |
account_invoice_date_due | Rend la date d'échéance modifiable manuellement, même avec une condition de paiement |
account_invoice_discount_date | Remonte en en-tête la date limite d'escompte, gérée ligne par ligne |
Le premier corrige une habitude d'interface discutable : afficher « 30 jours fin de mois » plutôt que « 31 mars ». Le comptable sait convertir ; le dirigeant qui regarde une facture, non — et c'est lui qui pilote la trésorerie.
Le second traite les cas réels de négociation : un fournisseur accorde un délai exceptionnel, un client obtient un report. Sans ce module, il faut changer la condition de paiement — qui s'appliquera aussi aux factures suivantes.
Le troisième sert les entreprises qui pratiquent l'escompte pour paiement anticipé : la date limite doit être visible au moment de décider de payer, pas enfouie dans une ligne d'échéancier.
Valider, approuver, annuler
account_move_tier_validationapplique aux pièces comptables — factures clients et fournisseurs, avoirs, écritures — le moteur générique de validation par paliers.account_move_tier_validation_approverpermet de désigner, sur la fiche fournisseur, l'approbateur par défaut de ses factures.account_move_cancel_confirmimpose une confirmation, avec motif optionnel, avant d'annuler une facture, un avoir, une écriture ou un paiement.account_payment_state_keep_draftautorise l'enregistrement d'un paiement en le gardant en brouillon.
L'approbateur par fournisseur est le détail qui rend le circuit praticable : désigner un valideur par montant produit un goulot sur une seule personne, alors que désigner un responsable par fournisseur répartit la charge sur ceux qui connaissent le dossier.
Le moteur de validation et ses pièges sont décrits dans base_tier_validation.
Le dernier module répond à un besoin de trésorerie : préparer un paiement sans le comptabiliser, pour le soumettre à validation ou attendre la date d'exécution.
Six améliorations du quotidien comptable
| Module | Ce qu'il apporte |
|---|---|
account_invoice_warn_message | Une alerte visuelle sur la facture quand le client porte un avertissement de facturation |
account_warn_option | Des messages d'avertissement prédéfinis plutôt que du texte libre |
account_invoice_refund_reason | Des motifs d'avoir configurables, choisis à l'émission |
account_menu_invoice_refund | Factures et avoirs réunis dans un même menu, côté clients et côté fournisseurs |
account_move_pivot_view | Une vue en tableau croisé sur les factures et avoirs |
account_move_auto_post_ref | La référence reportée sur les factures générées par une récurrence |
Le quatrième corrige une séparation discutable : Odoo met les avoirs dans un menu distinct des factures, alors que le travail comptable les traite ensemble. Réunir les deux évite de chercher un document dans le mauvais écran.
Les motifs d'avoir, eux, rendent analysable ce qui est habituellement expliqué en texte libre : combien d'avoirs pour erreur de prix, pour retour, pour geste commercial ? La réponse oriente des corrections de processus.
La vue en tableau croisé, enfin, fait d'un écran de saisie un écran d'analyse — sans passer par un module de reporting.
Limites connues
- Le total de vérification est une double saisie : il coûte quelques secondes par facture, et c'est son intérêt.
- L'unicité du numéro fournisseur gêne les avoirs portant le même numéro : vérifier le comportement attendu sur vos flux.
- La taxe obligatoire bloque les lignes légitimement sans taxe : certaines écritures n'en ont pas.
- Rendre la date d'échéance modifiable affaiblit la condition de paiement : à encadrer par un droit.
- La validation par paliers sur les pièces comptables ralentit la clôture : à réserver aux montants significatifs.
account_invoice_check_picking_dateest peu documenté dans le relevé : comportement à vérifier sur le dépôt.
Identité technique
Les dix-sept modules viennent du dépôt OCA account-invoicing, branche 18.0 — 75 modules au total —, en licences AGPL-3 et LGPL-3 selon le module. Trois s'appuient sur des socles génériques du dépôt server-ux : validation par paliers, confirmation d'annulation, options d'avertissement.
Les familles voisines : contrôles de saisie comptable, l'import des factures fournisseurs et les conforts de facturation.
Questions fréquentes
Comment éviter de payer deux fois la même facture fournisseur ?
account_invoice_supplier_ref_unique contrôle l'unicité du numéro de facture pour un même fournisseur et bloque la saisie d'un doublon. C'est l'erreur classique de la facture arrivée par courriel puis par courrier, saisie par deux personnes différentes.
À quoi sert un total de vérification ?
À recompter par un autre chemin. account_invoice_check_total demande de saisir le total TTC imprimé sur le document ; Odoo compare avec son calcul et refuse la validation en cas d'écart. C'est ce qui attrape une ligne oubliée, une quantité fausse ou un taux de TVA mal choisi.
Pourquoi Odoo n'affiche-t-il pas la date d'échéance ?
Parce qu'avec une condition de paiement, il montre le libellé — « 30 jours fin de mois » — et non la date calculée. account_invoice_payment_term_date_due affiche la date. Et account_invoice_date_due la rend modifiable, pour les délais négociés au cas par cas.
Peut-on faire approuver les factures fournisseur par le bon interlocuteur ?
Oui : account_move_tier_validation applique la validation par paliers aux pièces comptables, et account_move_tier_validation_approver permet de désigner l'approbateur par défaut sur la fiche fournisseur. Cela répartit la charge sur ceux qui connaissent le dossier, au lieu d'un goulot sur un valideur unique.
Peut-on voir factures et avoirs dans le même écran ?
account_menu_invoice_refund réunit factures et avoirs dans un même menu, côté clients comme côté fournisseurs. Odoo les sépare, alors que le travail comptable les traite ensemble — et chercher un document dans le mauvais écran est une perte de temps quotidienne.
Se faire accompagner
Les contrôles de facturation ont une particularité : ils coûtent quelques secondes par document et évitent des corrections qui prennent des heures. Le total de vérification en est l'exemple parfait — une double saisie assumée, que les comptables adoptent sans discussion parce qu'ils en connaissent la raison.
Nous les posons donc en expliquant le pourquoi, et nous mesurons ensuite : combien de blocages par semaine, pour quelles causes. Un contrôle qui ne déclenche jamais peut être retiré ; un contrôle qui déclenche tous les jours révèle un problème en amont. Voir les prestations d'Atalios Consulting, notre méthode ou demander un rappel.
Pour aller plus loin
- Contrôles de saisie comptable
- Import des factures fournisseurs
- Circuits de validation avec base_tier_validation
En résumé
Un total à recompter, un numéro fournisseur qui ne peut pas exister deux fois, une taxe obligatoire sur chaque ligne, et la date d'échéance enfin visible et modifiable. Plus la validation par paliers avec un approbateur par fournisseur, qui répartit la charge au lieu de créer un goulot. Parlons de vos contrôles comptables.