Documentation10 min de lecture

Présences, notes de frais, congés et paie : trente-quatre modules RH

Le module OCA `hr_attendance_report_theoretical_time` (dépôt `hr-attendance`, version 18.0.2.1.3, licence AGPL-3) compare la **durée théorique de travail à la durée réellement pointée**, avec quatre écrans d'analyse — et s'appuie sur le référentiel des **jours fériés** pour que la comparaison soit juste. Trente-trois autres modules traitent les notes de frais, les congés, la paie et les postes de travail.

Équipe au travail dans des bureaux ouverts

Quatre domaines RH fonctionnent mal dans Odoo Community, et pour la même raison : ils comparent des données qui ne sont pas comparables. Le temps pointé sans le temps théorique, une note de frais sans circuit de visa, un congé sans les jours fériés, une paie sans postes de travail.

Trente-quatre modules communautaires y remédient, et terminent cinq dépôts RH.

Résumé

Neuf modules traitent les présences : la comparaison temps théorique / temps réel, une vue calendrier, le pointage par badge RFID, des motifs de présence avec le temps de pause inclus, l'historique complet accessible à l'employé, la traçabilité des modifications, le lien aux horaires multiples, et la mise à jour des heures supplémentaires depuis le contrat.

Dix modules traitent les notes de frais : un visa par paliers, des règles d'exception bloquantes, une séquence avec son option, la traçabilité des paiements, l'annulation intégrale, le rattachement d'une facture fournisseur, un reçu d'achat au lieu d'une facture, une petite caisse, et l'avance sur frais avec sa séquence.

Huit modules traitent les congés : des demandes périodiques en une saisie, un filtre par type sur la vue d'ensemble, la période naturelle, les villes dans les jours fériés, des réglages, l'exclusion du week-end d'un calendrier flexible, les congés géographiques, et le lien aux horaires multiples.

Sept modules enfin traitent la paie et les postes : un moteur de paie avec ses règles, ses structures et ses registres de cotisations, sa comptabilisation, ses avantages contractuels, ses jours fériés, ses paramètres datés, un module de bulletins par employé, et des postes de travail avec leur planning.

L'essentiel

  • Le temps théorique comparé au temps réellement pointé.
  • Le pointage par badge RFID.
  • Un visa par paliers sur les notes de frais.
  • Des règles d'exception bloquant une note de frais non conforme.
  • Une petite caisse avec son détenteur.
  • L'avance sur frais et son apurement.
  • Des demandes de congé périodiques en une saisie.
  • Un moteur de paie avec règles, structures et registres.

Ce que ces modules ajoutent à l'instance

DépôtModulesNombre
hr-attendancehr_attendance_report_theoretical_time, hr_attendance_calendar_view, hr_attendance_rfid, hr_attendance_reason, hr_attendance_rest_time_included, hr_attendance_full_history, hr_attendance_modification_tracking, hr_attendance_employee_calendar_planning, hr_contract_update_overtime9
hr-expensehr_expense_tier_validation, hr_expense_exception, hr_expense_sequence, hr_expense_sequence_option, hr_expense_payment, hr_expense_cancel, hr_expense_invoice, hr_expense_vendor_receipt, hr_expense_petty_cash, hr_expense_advance_clearing, hr_expense_advance_clearing_sequence11
hr-holidayshr_holidays_leave_repeated, hr_holidays_leave_report_calendar_type, hr_holidays_natural_period, hr_holidays_public_city, hr_holidays_settings, hr_holidays_calendar_planning, resource_calendar_flexible_exclude_weekend, resource_leaves_geographic8
payrollpayroll, payroll_account, payroll_contract_advantages, payroll_hr_public_holidays, payroll_rule_time_parameter, hr_payroll_document6
shift-planninghr_shift, hr_shift_holidays_public2

Les menus : Présences ▸ Analyse ▸ Durée théorique / Durée réelle et ses trois écrans, Présences ▸ Configuration ▸ Raisons, Dépenses ▸ Configuration ▸ Expense Report Exception Rules, Facturation ▸ Comptabilité ▸ Petty Cash, une application Paie avec ses règles et structures, Employés ▸ Payrolls, et une application Shifts avec son planning.

Les présences : théorique contre réel

Un relevé de pointage seul ne dit rien : vingt-sept heures pointées cette semaine est un chiffre inutile sans savoir que le contrat prévoit trente-cinq heures et que lundi était férié. La comparaison théorique/réel est la seule lecture exploitable.

hr_attendance_report_theoretical_time (version 18.0.2.1.3) compare la durée théorique à la durée pointée, avec quatre écrans — analyse des présences, rapport comparatif, sélection d'employés, tous les employés. Il dépend du référentiel de jours fériés.

  • hr_attendance_rfid permet le pointage par badge RFID — le seul mode acceptable sur un site de production ou un entrepôt.
  • hr_attendance_calendar_view ajoute une vue calendrier des présences.
  • hr_attendance_reason ajoute des motifs de présence avec leur référentiel, et hr_attendance_rest_time_included fait inclure le temps de pause dans les heures travaillées.
  • hr_attendance_full_history donne à l'employé l'accès à son historique complet.
  • hr_attendance_modification_tracking trace les modifications de présence dans la conversation.
  • hr_attendance_employee_calendar_planning relie les présences aux horaires multiples, et hr_contract_update_overtime met à jour les heures supplémentaires depuis le contrat.

La traçabilité des modifications de pointage est un garde-fou de contrôle interne : un relevé de présence qu'un responsable peut corriger sans trace n'est pas une preuve, et le temps de travail est une donnée dont la fiabilité est contrôlée.

L'accès de l'employé à son historique complet relève du même principe, côté salarié : il peut vérifier ce qui est enregistré à son sujet.

Les notes de frais

hr_expense_tier_validation remplace le circuit d'approbation standard par un visa par paliers, et hr_expense_exception définit des règles d'exception — par code, par domaine ou par méthode — bloquant une note non conforme. Référentiel sous Dépenses ▸ Configuration ▸ Expense Report Exception Rules.

Les règles d'exception sont ce qui déplace le contrôle au bon endroit : plutôt qu'un responsable qui vérifie à la main que chaque repas est sous le plafond et que chaque justificatif est joint, une règle bloque la soumission. Le contrôle devient systématique au lieu d'être aléatoire.

  • hr_expense_petty_cash gère une petite caisse avec son détenteur désigné, sous Facturation ▸ Comptabilité ▸ Petty Cash.
  • hr_expense_advance_clearing (version 18.0.1.1.1) gère les avances sur frais et leur apurement, avec sa séquence dédiée.
  • hr_expense_payment trace le lien entre la note de frais et les paiements, et hr_expense_cancel permet d'annuler intégralement une note déjà traitée.
  • hr_expense_invoice rattache une facture fournisseur à une ligne payée par l'employé, et hr_expense_vendor_receipt (LGPL-3) génère un reçu d'achat plutôt qu'une facture.
  • hr_expense_sequence attribue une référence séquentielle à chaque note, avec son option de séquence alternative.

L'avance sur frais et la petite caisse répondent au même besoin et par deux voies : l'argent remis avant la dépense. L'avance est nominative et s'apure ; la petite caisse est détenue et se reconstitue.

Les congés

  • hr_holidays_leave_repeated permet des demandes périodiques en une seule saisie — un mercredi après-midi récurrent, par exemple.
  • hr_holidays_natural_period traite la période naturelle d'un congé.
  • hr_holidays_leave_report_calendar_type ajoute un filtre par type de congé sur la vue d'ensemble.
  • hr_holidays_public_city ajoute les villes au référentiel des jours fériés.
  • hr_holidays_settings ajoute des réglages.
  • resource_calendar_flexible_exclude_weekend exclut le week-end d'un calendrier de travail flexible.
  • resource_leaves_geographic traite les congés géographiques.
  • hr_holidays_calendar_planning relie les congés aux horaires multiples.

Les villes dans les jours fériés ne sont pas une subtilité administrative : en France, l'Alsace-Moselle a deux jours fériés supplémentaires, et plusieurs territoires d'outre-mer ont leurs propres dates. Un calcul de congés qui l'ignore est faux pour ces salariés.

La demande périodique est le module qui supprime une saisie absurde : un temps partiel à jour fixe génère cinquante-deux demandes de congé par an dans le standard.

Les horaires multiples par employé sont traités dans la fiche employé étendue.

La paie et les postes de travail

payroll (LGPL-3, version 18.0.1.4.0) fournit un moteur de paie communautaire : des règles salariales avec leurs catégories, des structures de salaire, des registres de cotisations, et les bulletins des employés, dans une application Paie.

Le moteur de paie communautaire existe, et c'est une information en soi — mais une paie française demande un paramétrage conventionnel, déclaratif et légal considérable, que ce moteur ne fournit pas. La plupart des PME françaises externalisent la paie, et l'importent ensuite dans Odoo.

  • payroll_account (LGPL-3) comptabilise la paie.
  • payroll_contract_advantages (LGPL-3) définit des avantages contractuels avec leurs gabarits.
  • payroll_hr_public_holidays relie la paie aux jours fériés.
  • payroll_rule_time_parameter (LGPL-3) permet des paramètres datés dans les règles — un taux qui change au 1er janvier.
  • hr_payroll_document gère des bulletins par employé, sous Employés ▸ Payrolls.

Les paramètres datés sont la pièce indispensable d'une paie : les taux de cotisation changent chaque année, et une règle sans version dans le temps réécrit l'histoire.

L'import de la paie externalisée est traité dans encaissements, exercices et plan comptable.

Les postes de travail

hr_shift (version 18.0.1.1.3) définit des postes de travail pour les employés, avec une application Shifts et son planning. hr_shift_holidays_public les relie aux jours fériés.

C'est le besoin d'une activité à horaires tournants — commerce, santé, production en continu — que le calendrier de travail unique ne couvre pas.

Limites connues

  • Huit modules ont un README réduit à leur catégorie, répartis sur les cinq dépôts.
  • Le moteur de paie communautaire ne fournit aucun paramétrage conventionnel français : conventions collectives, taux, déclarations sociales et éditions légales restent à construire. La plupart des PME externalisent la paie.
  • La comparaison théorique/réel dépend du référentiel de jours fériés : sans lui, elle compte les fériés comme du temps dû.
  • Le pointage RFID suppose un matériel compatible et son protocole.
  • Les règles d'exception bloquent la soumission : une règle trop stricte paralyse le processus, une règle trop souple ne contrôle rien.
  • Le visa par paliers dépend de base_tier_validation : installer le moteur avec son extension de transfert, sinon un congé bloque les remboursements.
  • La petite caisse est un compte de tiers détenu par une personne : son contrôle est un acte comptable, pas une fonctionnalité.
  • resource_calendar_flexible_exclude_weekend et resource_leaves_geographic touchent les calendriers de ressources : à éprouver, car ils modifient tous les calculs de temps.

Identité technique

Les trente-quatre modules viennent de cinq dépôts OCA, branche 18.0 — hr-attendance, hr-expense, hr-holidays, payroll et shift-planning —, désormais tous documentés ici. Vingt-six sont en AGPL-3, huit en LGPL-3. Les dépendances externes : hr_attendance, hr_expense, hr_holidays, hr_contract, hr_work_entry_holidays, hr_holidays_public et calendar_public_holiday pour les jours fériés, base_tier_validation pour le visa, base_exception pour les règles, base_sequence_option et base_time_parameter pour les séquences et les paramètres datés, account_receipt_journal pour le reçu d'achat, hr_employee_calendar_planning pour les horaires multiples.

Voir aussi la fiche employé étendue et contrats de travail, conventions collectives et formation.

Questions fréquentes

Comment savoir si un salarié a fait ses heures ?

Avec hr_attendance_report_theoretical_time, qui compare la durée théorique à la durée pointée, en quatre écrans. Un relevé de pointage seul ne dit rien : vingt-sept heures pointées est un chiffre inutile sans savoir que le contrat prévoit trente-cinq heures et que lundi était férié. Le module dépend du référentiel de jours fériés.

Peut-on bloquer une note de frais non conforme automatiquement ?

Oui : hr_expense_exception définit des règles d'exception — par code, domaine ou méthode — qui bloquent la soumission. Le contrôle devient systématique au lieu d'être aléatoire. Une règle trop stricte paralyse le processus, une règle trop souple ne contrôle rien.

Odoo Community gère-t-il la paie française ?

Le moteur payroll existe — règles salariales, structures, registres de cotisations, bulletins — mais il ne fournit aucun paramétrage conventionnel français : conventions, taux, déclarations sociales et éditions légales restent à construire. La plupart des PME françaises externalisent la paie et l'importent ensuite dans Odoo.

Peut-on saisir un congé récurrent en une fois ?

Oui, avec hr_holidays_leave_repeated : des demandes périodiques en une seule saisie. Sans lui, un temps partiel à jour fixe génère cinquante-deux demandes de congé par an.

Les jours fériés locaux sont-ils pris en compte ?

Avec hr_holidays_public_city, oui : il ajoute les villes au référentiel des jours fériés. Ce n'est pas une subtilité — en France, l'Alsace-Moselle a deux jours fériés supplémentaires, et plusieurs territoires d'outre-mer ont leurs propres dates. Un calcul qui l'ignore est faux pour ces salariés.

Se faire accompagner

Ces quatre domaines ont en commun d'être contrôlés : le temps de travail, les remboursements de frais, les congés et la paie sont des sujets où un relevé sans trace, un contrôle aléatoire ou un calcul faux se paient lors d'un contentieux.

Nous posons donc d'abord les référentiels qui rendent les calculs justes — jours fériés avec leurs particularités locales, horaires réels — puis les garde-fous : traçabilité des modifications de pointage, règles d'exception sur les frais, visa par paliers. Voir les prestations d'Atalios Consulting ou demander un rappel.

Pour aller plus loin

En résumé

Quatre domaines RH fonctionnent mal dans Odoo Community pour la même raison : ils comparent des données qui ne sont pas comparables. Le temps pointé sans le temps théorique, une note de frais sans visa, un congé sans les jours fériés locaux. Trente-quatre modules y remédient. Parlons de votre gestion RH.

Documentation OCARessources humainesOdoo Community

Partager

Fiches connexes

Baies de serveurs dans une salle machine
Le module OCA `queue_job` (dépôt `queue`, version 18.0.3.4.1, licence LGPL-3) ajoute à Odoo une **file de travaux de fond** avec ses canaux, ses fonctions et ses tâches, sous le menu **File d'attente des tâches** : c'est la brique dont dépendent plus de quarante modules communautaires, et la première à surveiller en exploitation. Vingt-six autres modules traitent les composants, la configuration hors base, l'impression serveur et l'IoT.
Lire la suite
Documentation OCA, Exploitation
Câbles réseau branchés sur un commutateur
Le module OCA `endpoint` (dépôt `web-api`, version 18.0.1.1.4, licence LGPL-3) permet de **déclarer un point d'entrée HTTP depuis l'interface**, sous **Paramètres ▸ Technique ▸ Endpoints** : une adresse, une méthode, un traitement — sans écrire de module. Vingt-trois autres modules traitent le cache, les imports par sessions, les échanges de factures et l'agenda.
Lire la suite
Documentation OCA, Intégration