Se rendre au contenu

Le modèle hr.employee : comprendre l’architecture Employee d’Odoo

Guide complet du modèle Employé d’Odoo pour RH, développeurs et consultants fonctionnels
11 mars 2026 par
Le modèle hr.employee : comprendre l’architecture Employee d’Odoo
Dasolo
| Aucun commentaire pour l'instant

Introduction


Dans Odoo, chaque type d’information métier — client, facture, commande, collaborateur — a sa propre structure. Les modèles dictent cette structure : ils définissent quelles données on garde, comment elles se relient entre elles et comment elles sont stockées en base.


Savoir manipuler les modèles Odoo est indispensable pour les consultants fonctionnels comme pour les développeurs. Ce sont eux qui forment l’ossature des données : champs, relations et règles métier sont tous définis au niveau du modèle.


Ici, nous nous intéressons au cœur du module RH : le modèle hr.employee. Que vous configuriez l’intégration paie, la gestion des congés ou des plannings, vous reviendrez inévitablement vers lui.

Qu’est-ce que le modèle hr.employee


Le modèle hr.employee centralise les informations personnelles et professionnelles des collaborateurs. C’est le point d’entrée pour toute donnée relative à une personne employée par l’entreprise.


Ce modèle appartient à l’app RH d’Odoo et est utilisé par plusieurs fonctionnalités : pointages, congés, contrats, paie et feuilles de temps se basent sur les données qu’il contient.


Lors de l’installation du module Employees, hr.employee est activé. D’autres modules viennent l’étendre via l’héritage de modèle : hr_contract ajoute des champs de contrat, hr_attendance gère les entrées/sorties, hr_leave s’occupe des congés. Chacun enrichit le socle sans dupliquer la base.


Odoo propose aussi des vues restreintes comme hr.employee.public pour exposer une version limitée des données à des utilisateurs sans droits complets — un exemple concret de contrôle d’accès et d’héritage de modèles.

Champs clés du modèle


Voici les champs principaux du hr.employee à connaître. Maîtriser ces éléments vous permettra d’administrer correctement les fiches collaborateur et d’intégrer d’autres modules.


1. name

Type : Char. Nom affiché du collaborateur. C’est souvent le champ visible dans les listes et les recherches et sert d’identifiant lisible pour l’utilisateur.


2. create_date

Type : Datetime. Date/heure de création de l’enregistrement. Généré automatiquement, utile pour les rapports et l’audit.


3. write_date

Type : Datetime. Date/heure de la dernière modification. Permet de savoir quand la fiche a été mise à jour pour la dernière fois.


4. active

Type : Boolean. Indicateur d’archivage. Mettre à False archive la fiche sans la supprimer définitivement — pratique lors d’un départ.


5. company_id

Type : Many2one (res.company). En multi-société, indique à quelle entité appartient le collaborateur. Ce champ est souvent requis pour les configurations par société.


6. user_id

Type : Many2one (res.users). Lie la fiche collaborateur à un compte Odoo. Permet la connexion, l’accès portail, et la gestion des autorisations liées au collaborateur.


7. work_email

Type : Char. Adresse e‑mail professionnelle. Utilisée pour les notifications internes et la correspondance métier.


8. work_phone

Type : Char. Téléphone professionnel. Affiché sur les fiches et utilisé dans les flux de contact internes.


9. mobile_phone

Type : Char. Numéro mobile professionnel. Souvent utilisé pour les alertes urgentes ou la messagerie mobile.


10. department_id

Type : Many2one (hr.department). Département d’affectation. Sert pour l’organigramme, les rapports et les circuits d’approbation.


11. job_id

Type : Many2one (hr.job). Poste lié au catalogue de postes. Permet de regrouper et gérer les positions ouvertes et les intitulés standardisés.


12. job_title

Type : Char. Intitulé libre. Utile pour des titres spécifiques quand job_id n’est pas utilisé ou pour personnaliser l’affichage.


13. parent_id

Type : Many2one (hr.employee). Responsable hiérarchique. Sert à construire la hiérarchie et à piloter les chaînes d’approbation.


14. coach_id

Type : Many2one (hr.employee). Coach ou tuteur. Utilisé pour le suivi développement et les évaluations — n’accorde pas de droits supplémentaires par défaut.


15. resource_id

Type : Many2one (resource.resource). Lien vers l’entité de planning. Permet l’intégration avec la planification, les capacités et le calendrier.


16. work_contact_id

Type : Many2one (res.partner). Contact professionnel. Relié au partenaire utilisé pour la facturation ou la communication entreprise.


17. address_id

Type : Many2one (res.partner). Adresse de travail. Référence le partenaire qui représente le lieu d’affectation ou le bureau.


18. address_home_id

Type : Many2one (res.partner). Adresse privée. À utiliser pour la paie, les contacts d’urgence et l’administration personnelle.


19. resource_calendar_id

Type : Many2one (resource.calendar). Calendrier de travail. Définit horaires et jours ouvrés pour le calcul des présences et des congés.


20. employee_type

Type : Selection. Type de collaborateur : Employé, Indépendant ou Stagiaire. Impacte la gestion des contrats et le traitement administratif.


21. barcode

Type : Char. Identifiant de badge. Utilisé pour les bornes de pointage et les scanners.


22. pin

Type : Char. Code PIN pour le mode Kiosk de l’application Présences ou pour certaines opérations de caisse.


23. birthday

Type : Date. Date de naissance. Sert au dossier RH et peut déclencher des rappels anniversaires si activé.


24. identification_id

Type : Char. Numéro national d’identification. Important pour la conformité paie et les déclarations légales.


25. passport_id

Type : Char. Numéro de passeport. Utile pour la mobilité internationale et le suivi des permis de travail.


26. bank_account_id

Type : Many2one (res.partner.bank). Compte bancaire pour le versement des salaires.


27. private_email

Type : Char. Adresse personnelle. À privilégier si l’adresse professionnelle n’existe pas ou pour les communications privées.


28. phone

Type : Char. Téléphone personnel. Distinct des coordonnées professionnelles pour la confidentialité.


29. contract_id

Type : Many2one (hr.contract). Contrat actif. Référence directe au contrat en vigueur pour le collaborateur.


30. contract_ids

Type : One2many (hr.contract). Historique des contrats. Permet de consulter l’évolution contractuelle du collaborateur.


31. image_1920

Type : Binary. Photo du collaborateur. Odoo stocke plusieurs tailles pour l’affichage dans l’annuaire et les rapports.


32. related_partner_id

Type : Many2one (res.partner). Le partenaire lié. Assure la cohérence entre la fiche RH et le CRM ou la facturation.


33. leave_manager_id

Type : Many2one (res.users). Utilisateur chargé d’approuver les congés. Si non défini, le système dirige vers un gestionnaire par défaut.


34. expense_manager_id

Type : Many2one (res.users). Responsable des notes de frais. Influence le circuit d’approbation des dépenses.


35. timesheet_manager_id

Type : Many2one (res.users). Responsable des feuilles de temps. Gère la validation des heures saisies par projet.

Utilisations du modèle dans les processus métiers


1. Annuaire et intégration des nouveaux arrivants

À la création d’une fiche collaborateur, les RH renseignent nom, département, poste, responsable et coordonnées. Le champ user_id est renseigné quand on crée un compte Odoo pour le collaborateur — inutile pour ceux qui n’ont pas d’accès système.


2. Pointage et suivi du temps

Les entrées et sorties sont enregistrées via l’app Présences et stockées dans hr.attendance, liées à hr.employee. Les champs barcode et pin activent le mode borne pour faciliter le pointage physique.


3. Congés et absences

Les demandes de congé référencent la fiche employé. Les approbateurs et le calcul des droits s’appuient sur leave_manager_id et resource_calendar_id pour appliquer les règles de l’entreprise.


4. Paie et contrats

La paie utilise les informations de hr.employee pour la structure salariale, le compte bancaire et le contrat actif. contract_id pointe vers le contrat du moment tandis que contract_ids retrace l’historique.


5. Feuilles de temps et allocation projet

Les temps saisis sur les projets sont rattachés à hr.employee. Le timesheet_manager_id pilote les validations et resource_id sert à la planification des capacités.

Comment les développeurs étendent ce modèle


Les développeurs disposent de plusieurs méthodes pour enrichir hr.employee. L’héritage de modèle est la voie privilégiée pour conserver la maintenabilité lors des montées de version.


Héritage de modèle

Déclarez _inherit = 'hr.employee' dans votre module pour ajouter des champs, surcharger des méthodes ou ajouter des contraintes. Cette approche garde les modifications séparées du noyau et facilite les mises à jour.


Ajout de champs

Déclarez des champs Odoo dans votre modèle hérité en choisissant le type adapté : Char, Many2one, Boolean, Integer, Text, Selection, etc. Pensez aux champs dépendants de la société dans un contexte multi-entreprise.


Extensions Python

Redéfinissez create, write ou unlink pour ajouter votre logique métier, en appelant super() pour préserver le comportement existant. Attention aux champs calculés et à leurs dépendances pour éviter des boucles ou des incohérences.


Odoo Studio

Studio permet d’ajouter rapidement des champs sans écrire de code — pratique pour des besoins rapides. Pour des règles métier complexes ou des projets évolutifs, préférez un module personnalisé versionnable.

Bonnes pratiques


  • N’assignez user_id que si le collaborateur doit réellement se connecter à Odoo. Tous les employés n’ont pas besoin d’un compte utilisateur.
  • Construisez la hiérarchie via parent_id de manière cohérente, du sommet vers la base, afin que les circuits d’approbation et l’organigramme fonctionnent correctement.
  • Attribuez un resource_calendar_id pour que les calculs d’heures travaillées et de congés soient cohérents à travers les modules.
  • Pour des intégrations API, utilisez XML‑RPC ou JSON‑RPC. Le modèle hr.employee est exposé via l’API Odoo — soignez le mapping des identifiants externes pour éviter les incohérences.
  • Pour les champs personnalisés, préfixez-les par x_ ou par un préfixe de module afin d’éviter des collisions lors des mises à jour d’Odoo.
  • Protégez les champs sensibles en les liant à des groupes comme hr.group_hr_user pour éviter qu’ils ne soient préchargés ou visibles par des utilisateurs non autorisés.

Erreurs fréquentes


  • Créer des doublons plutôt que de rechercher des fiches existantes est une erreur courante. Utilisez work_email ou identification_id pour éviter les doublons.
  • Ne confondez pas user_id et related_partner_id : user_id correspond au compte de connexion, related_partner_id au contact (partenaire) lié pour la facturation ou le CRM.
  • N’oubliez pas de renseigner employee_type : ce champ est requis et influe sur le comportement des contrats et des traitements administratifs.
  • Quand vous surchargez des méthodes centrales, appelez toujours super() ; ne pas le faire peut casser d’autres modules ou rendre les upgrades impossibles.
  • Évitez d’ajouter des champs requis sans fournir de valeurs par défaut : les enregistrements existants risquent d’échouer lors des migrations ou des installations.
  • Ne rendez pas accessibles des champs RH sensibles à tout le monde. Restreignez l’accès avec des groupes pour respecter la confidentialité des données personnelles.

Conclusion


Le modèle hr.employee est le pivot de la gestion RH dans Odoo : il rassemble les informations collaborateur et relie la paie, les présences, les congés et les contrats. Maîtriser ses champs et son extension facilite la configuration et l’intégration des modules.


Que vous soyez consultant fonctionnel qui cartographie les processus RH ou développeur qui conçoit des modules personnalisés, bien comprendre hr.employee évite des erreurs coûteuses et accélère les déploiements.

Besoin d’aide pour votre implémentation Odoo ?


Dasolo accompagne les entreprises dans la mise en place et l’optimisation d’Odoo. Nous intervenons sur les intégrations API, le développement sur mesure et l’architecture des données, avec une expertise approfondie des modèles comme hr.employee.


Si vous cherchez un partenaire pour vos personnalisations RH, vos intégrations ou votre projet Odoo, notre équipe peut vous accompagner. Planifiez une démo pour discuter de votre projet.

Le modèle hr.employee : comprendre l’architecture Employee d’Odoo
Dasolo 11 mars 2026
Partager cet article
Se connecter pour laisser un commentaire.