Guide · Facturation

Facturer les heures dans Odoo : de la feuille de temps à la facture

Quand on facture en régie, on veut que chaque heure prestée arrive sur la facture, et aucune en double. Odoo le fait aussi en Community, avec un service facturé sur base des feuilles de temps. Comment le configurer, où ça coince en pratique, et ce que TimeViking ajoute.

Mis à jour le · par l'équipe TimeViking

Comment Odoo facture les heures

Dans Odoo, une ligne de temps est une ligne analytique sur un projet, le plus souvent avec une tâche. On ne facture pas la ligne elle-même, mais via un bon de commande :

  1. un service avec la politique de facturation « Basé sur les feuilles de temps » ;
  2. un bon de commande confirmé avec ce service ;
  3. un projet ou une tâche relié à la ligne de commande ;
  4. des lignes de temps sur ce projet ou cette tâche, qui reçoivent automatiquement l'article de la commande ;
  5. une facture pour les heures livrées et pas encore facturées.

Tout cela se trouve dans le module sale_timesheet, qu'Odoo installe dès que vous utilisez Ventes et Feuilles de temps ensemble. C'est du Community : nous l'avons vérifié dans le code source d'Odoo 18, 19 et 20.

Exemple : une société de conseil IT met en place un système chez un client logistique, facturé en régie. Le devis devient une commande, les tâches vont dans un projet, et chaque vendredi le chef de projet voit sur la commande combien d'heures ont déjà été livrées.

La mise en place

  1. Créez un service facturé à l'heure

    Dans Ventes : un article de type Service, avec la politique de facturation Basé sur les feuilles de temps (Based on Timesheets) et, sous Créer à la commande, une tâche ou un projet. Indiquez votre tarif horaire.

  2. Confirmez un bon de commande

    Faites un devis pour le client avec ce service et les heures estimées, puis confirmez-le. Odoo crée le projet ou la tâche et le relie à la ligne de commande.

  3. Votre équipe encode ses heures sur cette tâche

    Chaque ligne de temps sur le projet ou la tâche reçoit l'article de la commande client. La colonne Délivré de la commande additionne les heures.

  4. Vérifiez les heures

    Dans Feuilles de temps, filtrez sur le projet et la période, et vérifiez que chaque ligne a un article de commande. Les lignes sans article n'arrivent pas sur la facture.

  5. Créez la facture

    Sur la commande : Créer une facture. Odoo reprend les heures livrées et pas encore facturées. Dès que la facture est comptabilisée, ces lignes sont verrouillées.

Trois façons de tarifer un projet

Sur un projet facturable, vous choisissez dans Odoo comment les heures reçoivent un prix (le champ Tarif) :

FaçonQuand
Taux de la tâcheChaque tâche a sa propre ligne de commande. Pratique si vous vendez des services différents à des clients différents.
Taux du projetUn seul tarif horaire pour tout le projet, quelle que soit la personne.
Taux de l'employéLe même travail à un tarif différent par personne, par exemple junior et senior. Vous associez une ligne de commande à chaque employé.

Sur chaque ligne de temps, Odoo indique aussi un type de facturation : sur feuilles de temps, à prix fixe, par jalons, manuel ou non facturable. Dans les rapports des Feuilles de temps, vous regroupez dessus pour voir quelle part des heures devient réellement du chiffre d'affaires.

Là où ça coince en pratique

Sur le forum d'Odoo, les mêmes questions reviennent. La plupart ont la même cause : une ligne de temps qui n'est pas reliée à l'article de la commande.

  • Le projet a été créé à la main. Il n'a alors pas de ligne de commande, et les heures n'arrivent jamais sur la facture. Reliez le projet ou la tâche à un article de commande.
  • La politique de facturation a été modifiée après coup. Odoo ne l'applique pas rétroactivement aux lignes existantes.
  • Quelqu'un a encodé sur la mauvaise tâche. Une tâche sans ligne de commande, ou une tâche interne, ne compte pas.
  • La commande n'est pas confirmée. Ce n'est qu'après confirmation qu'Odoo crée le projet et le lien.
Astuce : affichez la colonne Article de la commande client dans la liste des Feuilles de temps. Une cellule vide est une heure que vous ne facturerez pas.

Les heures facturées sont verrouillées

Dès qu'une ligne de temps figure sur une facture comptabilisée, Odoo ne la laisse plus supprimer (« You cannot remove a timesheet that has already been invoiced »), même pour un administrateur. S'il faut corriger, annulez la facture ou faites une note de crédit. Dans Odoo 18 et 19, le champ de la facture s'appelle timesheet_invoice_id, dans 20 reinvoice_move_id ; le comportement est le même.

Ce que TimeViking ajoute

TimeViking ne fait pas les factures : cela reste Odoo. Il veille à ce que les heures y soient à temps et au bon endroit.

  • Des heures sur la bonne tâche. Votre équipe choisit un projet et une tâche d'Odoo, aussi sur GSM. Odoo relie lui-même la ligne à l'article de commande de la tâche, comme pour une ligne encodée dans Odoo.
  • Avant la facture : approbation par semaine. Le chef de projet voit par personne les heures soumises et la part facturable, et renvoie une semaine si quelque chose cloche. Voir valider les feuilles de temps dans Odoo.
  • Heures facturables et leur valeur par projet, client ou personne, avec export vers Excel et CSV.
  • Les lignes facturées restent intactes. Si une ligne est sur une facture, l'app ne la modifie ni ne la supprime, et dit pourquoi.

Plus d'infos sur la connexion sur la page intégration Odoo ; le prix, sur les tarifs.

Essayez TimeViking avec votre propre Odoo.

Gratuit pour les équipes jusqu'à 3 utilisateurs, pour toujours. Les équipes plus grandes l'essaient 30 jours gratuitement, sans carte.

Questions fréquentes

Peut-on facturer des heures avec Odoo Community ?

Oui. Le module sale_timesheet (Ventes et Feuilles de temps ensemble) est Community, LGPL-3, dans Odoo 18, 19 et 20. Pas besoin d'Enterprise.

Pourquoi les heures livrées de ma commande ne correspondent-elles pas aux feuilles de temps ?

Le plus souvent, certaines lignes ne sont pas reliées à l'article de la commande : le projet a été créé à la main, ou la tâche n'a pas d'article. Affichez la colonne Article de la commande client dans la liste des Feuilles de temps et filtrez les valeurs vides. Odoo n'applique pas non plus rétroactivement une politique de facturation modifiée après coup.

Peut-on encore modifier une ligne de temps facturée ?

Plus une fois la facture comptabilisée : Odoo refuse alors aussi la suppression. Annulez la facture ou faites une note de crédit. TimeViking ne force pas ces lignes et indique pourquoi elles sont verrouillées.

TimeViking facture-t-il lui-même ?

Non. Les factures se font dans Odoo. TimeViking met les heures dans Odoo, sur le bon projet et la bonne tâche, pour qu'Odoo les relie à la commande. Dans l'app, vous voyez par projet les heures facturables et leur valeur, et vous les exportez vers Excel.

Autres guides