La fiche employé d'Odoo Community couvre l'essentiel administratif et s'arrête là. Les langues pratiquées, l'ancienneté calculée, les visites médicales obligatoires, les équipements de protection remis : rien de tout cela n'y figure.
Quinze modules communautaires l'étendent — et l'un d'eux corrige un défaut de confidentialité du standard.
Résumé
Six modules traitent l'identité : un identifiant unique par employé, généré aléatoirement ou par séquence ; un second nom de famille ; l'âge calculé depuis la date de naissance ; le numéro de sécurité sociale exposé — il existe dans le modèle mais n'est pas affiché ; un poste téléphonique et un numéro court ; et un marqueur d'employé externe rattaché au tiers qui l'administre.
Quatre modules traitent le dossier : les langues pratiquées avec un niveau sur quatre compétences, les proches déclarés, un espace documentaire exposant les pièces jointes de l'employé, et les dates clés de la relation de travail avec l'ancienneté calculée.
Trois modules traitent la santé et la sécurité : les visites médicales avec leur circuit d'états et un assistant de génération en masse par département, et deux modules d'équipements de protection individuelle — marquage des produits, règles de dotation, demandes et sortie de stock.
Deux modules enfin traitent le temps et la confidentialité : des horaires multiples applicables par plage de dates pour un même employé, et le masquage des coordonnées bancaires aux utilisateurs sans droits comptables.
L'essentiel
- Un identifiant unique par employé, aléatoire ou par séquence.
- Les langues pratiquées et le niveau sur quatre compétences.
- Les visites médicales avec circuit d'états et génération en masse.
- L'ancienneté calculée depuis les dates clés de la relation de travail.
- Plusieurs horaires de travail par employé, par plage de dates.
- Les équipements de protection individuelle : dotation, demande, sortie de stock.
- Les coordonnées bancaires masquées aux utilisateurs sans droits comptables.
- Le numéro de sécurité sociale exposé — à encadrer avant de l'activer.
Ce que ces modules ajoutent à l'instance
| Famille | Modules | Nombre |
|---|---|---|
| Identité | hr_employee_id, hr_employee_second_lastname, hr_employee_age, hr_employee_ssn, hr_employee_phone_extension, hr_employee_partner_external | 6 |
| Dossier | hr_employee_language, hr_employee_relative, hr_employee_document, hr_employee_service | 4 |
| Santé et sécurité | hr_employee_medical_examination, hr_employee_ppe, hr_personal_equipment_request | 3 |
| Temps et confidentialité | hr_employee_calendar_planning, hr_employee_bank_restrict | 2 |
Les menus : Employés ▸ Languages, Employés ▸ Examens médicaux avec ses deux sous-menus — générer les examens, voir les examens.
Un défaut de confidentialité du standard
Dans Odoo, un employé est doublé d'une fiche contact. Les coordonnées bancaires saisies pour le virement de salaire vivent donc sur un contact — visible de tout utilisateur ayant accès aux contacts, c'est-à-dire de presque tout le monde.
hr_employee_bank_restrict (LGPL-3) masque la section des comptes bancaires quand le contact est lié à un employé, sauf pour les utilisateurs ayant des droits comptables étendus.
C'est le premier module à installer sur une instance qui gère de la paie ou des virements de salaire. Le défaut n'est pas théorique : il suffit d'ouvrir l'application Contacts et de chercher un collègue.
Deux autres données à encadrer
hr_employee_ssn expose sur la fiche employé le champ de numéro de sécurité sociale, qui existe dans le modèle de base mais n'est pas affiché dans la vue standard d'Odoo.
hr_employee_relative stocke la liste des proches déclarés par l'employé — liens familiaux, pour les ayants droit ou les personnes à prévenir.
Ces deux modules ajoutent des données personnelles sensibles au sens du règlement européen. Les activer suppose une base légale, une durée de conservation définie, et des droits d'accès restreints au service qui en a besoin — pas « au service RH » en général.
Les règles d'accès et les groupes sont traités dans droits utilisateurs et sécurité d'accès.
L'identité et le dossier
hr_employee_idajoute un identifiant unique au niveau de la société, généré à la création — tirage aléatoire de chiffres, ou numérotation par séquence. C'est le matricule, que le standard ne fournit pas.hr_employee_second_lastnameajoute un second nom de famille, selon la convention hispanique ou pour une personne portant un double nom. Il étend le module de séparation prénom/nom.hr_employee_agecalcule l'âge depuis la date de naissance — utile pour les obligations liées aux tranches d'âge, pas pour la curiosité.hr_employee_phone_extensionajoute un poste interne et un numéro court, pour les organisations dotées d'un standard téléphonique.hr_employee_partner_externalmarque un employé comme externe et le rattache au tiers qui l'administre, tout en le laissant apparaître dans les effectifs. Le cas de l'intérimaire, du prestataire en régie, du salarié d'un groupement d'employeurs.
Les langues et l'ancienneté
hr_employee_language enregistre les langues pratiquées et le niveau de maîtrise sur quatre compétences : lecture, écriture, expression orale, compréhension orale. Référentiel sous Employés ▸ Languages.
La granularité en quatre compétences n'est pas excessive : un collaborateur qui lit l'anglais technique sans le parler n'est pas affectable au même poste qu'un autre qui le parle sans l'écrire.
hr_employee_service suit les dates clés de la relation de travail — embauche, début effectif, fin — et calcule la durée de service. C'est l'ancienneté, qui sert au calcul de droits.
hr_employee_document expose un bouton Documents donnant accès à toutes les pièces jointes de l'employé, accessible aux RH, aux responsables et à l'employé lui-même.
La santé et la sécurité au travail
hr_employee_medical_examination crée un modèle de visite médicale avec son circuit d'états, sa conversation, et un assistant de génération en masse par département ou par sélection. Deux menus sous Employés ▸ Examens médicaux.
La visite médicale périodique est une obligation dont l'oubli se découvre lors d'un contrôle ou d'un accident. La génération en masse par département est exactement le geste attendu : une campagne annuelle, pas cent rappels individuels.
Deux modules traitent les équipements personnels :
hr_personal_equipment_requestgère les demandes d'équipement personnel des employés.hr_employee_ppele spécialise pour les équipements de protection individuelle : marquer un produit comme EPI, définir des règles de dotation, et suivre les remises.hr_personal_equipment_stockrelie ces demandes au stock, pour que la remise d'un équipement soit une sortie.
Le suivi des EPI est à la fois une obligation de l'employeur et un poste de coût réel : les chaussures de sécurité, les gants et les casques se remplacent, et sans suivi on ne sait ni qui a reçu quoi, ni quand.
Plusieurs horaires pour un même employé
hr_employee_calendar_planning permet de planifier plusieurs horaires de travail pour un même employé, chacun applicable sur une plage de dates.
C'est le besoin de toute entreprise où les horaires changent : passage d'un temps plein à un temps partiel, alternance de semaines, horaires d'été, aménagement temporaire après un arrêt.
Sans ce module, changer l'horaire d'un employé écrase l'horaire précédent — et tous les calculs passés, congés et temps de travail compris, se recalculent sur le nouvel horaire. L'historique devient faux rétroactivement.
Le dernier point est le plus important : ce n'est pas un module de confort, c'est une correction de l'intégrité des données historiques.
Limites connues
hr_employee_ssnethr_employee_relativemanipulent des données personnelles sensibles : base légale, durée de conservation et droits d'accès restreints sont des prérequis, pas des options.hr_employee_bank_restrictmasque l'affichage, il ne chiffre rien : un utilisateur capable d'exporter les contacts ou d'interroger la base y accède toujours.- Le masquage repose sur les droits comptables étendus : vérifier qui les possède réellement dans votre instance.
hr_employee_second_lastnamedépend dehr_employee_firstname, le module de séparation prénom/nom.hr_employee_ppedépend dehr_personal_equipment_request, et le lien stock d'un module supplémentaire : trois briques pour un suivi d'EPI complet.- Les visites médicales ne stockent pas d'avis médical et ne doivent pas en stocker : seule l'existence et la date de la visite relèvent de l'employeur.
hr_employee_calendar_planningest en version 2.0.3 : la plus avancée du lot, et la plus structurante — à tester sur une base de recette avant une instance en paie.
Identité technique
Les quinze modules viennent du dépôt OCA hr, branche 18.0 — 31 modules au total. Quatorze sont en AGPL-3, hr_employee_bank_restrict est en LGPL-3. Les dépendances : hr pour la plupart, account pour le masquage bancaire, mail pour les anniversaires, hr_employee_firstname pour le second nom, hr_personal_equipment_request pour les EPI.
Voir aussi contrats de travail, départements et formation pour le reste du dépôt.
Questions fréquentes
Les coordonnées bancaires des salariés sont-elles visibles dans Odoo ?
Oui, par défaut : un employé est doublé d'une fiche contact, et les coordonnées bancaires y sont visibles de tout utilisateur ayant accès aux contacts. hr_employee_bank_restrict les masque sauf pour les utilisateurs à droits comptables étendus. C'est le premier module à installer sur une instance qui gère des virements de salaire.
Peut-on suivre les visites médicales obligatoires dans Odoo ?
Oui, avec hr_employee_medical_examination : un modèle dédié avec circuit d'états et un assistant de génération en masse par département. C'est le geste attendu — une campagne annuelle, pas cent rappels individuels. Le module ne doit pas stocker d'avis médical, qui ne relève pas de l'employeur.
Peut-on gérer plusieurs horaires de travail pour un même salarié ?
Oui : hr_employee_calendar_planning permet plusieurs horaires, chacun applicable sur une plage de dates. Ce n'est pas un confort : sans lui, changer un horaire écrase le précédent et tous les calculs passés — congés, temps de travail — se recalculent sur le nouvel horaire. L'historique devient faux rétroactivement.
Odoo gère-t-il un matricule employé ?
Pas en standard. hr_employee_id ajoute un identifiant unique au niveau de la société, généré à la création par tirage aléatoire de chiffres ou par séquence.
Peut-on enregistrer le numéro de sécurité sociale d'un salarié ?
Le champ existe dans le modèle de base mais n'est pas affiché ; hr_employee_ssn l'expose. C'est une donnée personnelle sensible : l'activer suppose une base légale, une durée de conservation définie et des droits d'accès restreints au service qui en a besoin — pas « au service RH » en général.
Se faire accompagner
La fiche employé est le seul endroit d'un ERP où l'extension fonctionnelle et la protection des données tirent en sens inverse : chaque champ utile au service RH est une donnée personnelle de plus à encadrer. Et le standard laisse déjà voir les coordonnées bancaires à tout le monde.
Nous commençons donc par le masquage bancaire et la revue des droits, puis nous ajoutons les champs un par un, avec leur justification et leur durée de conservation. Une fiche employé minimale et étanche vaut mieux qu'une fiche complète et ouverte. Voir les prestations d'Atalios Consulting ou demander un rappel.
Pour aller plus loin
En résumé
La fiche employé d'Odoo Community s'arrête à l'essentiel administratif — et laisse voir les coordonnées bancaires des salariés à tout utilisateur ayant accès aux contacts. Quinze modules l'étendent, dont un qui corrige ce défaut, et deux dont l'activation demande un encadrement. Parlons de votre dossier RH.