Ir al contenido

El Modelo hr.employee: Comprendiendo la Arquitectura de Empleados en Odoo

Una guía completa sobre el modelo de empleados de Odoo para RRHH, desarrolladores y consultores funcionales
11 de marzo de 2026 por
El Modelo hr.employee: Comprendiendo la Arquitectura de Empleados en Odoo
Dasolo
| Sin comentarios aún

Introducción


En Odoo, los modelos definen cómo se estructura y almacena la información en la base de datos. Cada pieza de datos empresariales con la que trabajas, desde pedidos de venta hasta facturas y empleados, reside en un modelo.


Entender los modelos de Odoo es esencial tanto para desarrolladores como para consultores funcionales. Los modelos son la base de la arquitectura de datos de Odoo. Definen campos, relaciones y lógica empresarial.


Este artículo se centra en uno de los modelos centrales del módulo de RRHH: hr.employee. Ya sea que estés construyendo flujos de trabajo personalizados de RRHH, integrando sistemas de nómina o configurando asistencia y permisos, trabajarás con este modelo.

¿Qué es el modelo hr.employee?


El modelo hr.employee representa a los empleados en Odoo. Es el lugar central donde se almacena toda la información del personal.


Este modelo de Odoo es parte de la aplicación de RRHH (Recursos Humanos). Se utiliza en asistencia, licencias, contratos, nómina y hojas de tiempo.


Se instala cuando habilitas la aplicación de Empleados. Otros módulos lo extienden a través de la herencia de modelos de Odoo. hr_contract añade campos de contrato. hr_attendance añade registro de entrada y salida. hr_leave añade tiempo libre. Cada módulo añade lo que necesita sin duplicar la estructura central.


Odoo también proporciona hr.employee.public, una vista restringida de los mismos datos para usuarios que necesitan visibilidad limitada de los empleados. Este es un ejemplo de cómo Odoo utiliza patrones de modelos abstractos y herencia de modelos para controlar el acceso.

Campos clave en el modelo


Aquí están los campos más importantes de Odoo en el modelo hr.employee. Comprender estos te ayudará a trabajar de manera efectiva con los registros de empleados.


1. nombre

Tipo: Char. Este campo almacena el nombre del empleado. Se muestra típicamente en muchas vistas de Odoo y es el identificador principal del registro del empleado.


2. fecha_creación

Tipo: Datetime. Almacena la fecha y hora en que se creó el registro. Gestionado automáticamente por Odoo. Útil para informes y auditorías.


3. fecha_modificación

Tipo: Datetime. Almacena la fecha y hora de la última modificación. También gestionado automáticamente. Ayuda a rastrear cuándo se actualizó por última vez la información.


4. activo

Tipo: Booleano. Bandera de eliminación suave. Cuando es Falso, el registro se archiva y se oculta de las vistas predeterminadas. Utilice esto cuando un empleado se va. Los registros no se eliminan físicamente.


5. company_id

Tipo: Many2one (res.company). En configuraciones de múltiples empresas, esto indica a qué empresa de Odoo pertenece el empleado. Requerido para la mayoría de los registros de empleados.


6. user_id

Tipo: Many2one (res.users). Vincula al empleado con un usuario de Odoo. Cuando se establece, el empleado puede iniciar sesión y usar Odoo. Utilizado para acceso al portal, hojas de tiempo y aprobaciones.


7. work_email

Tipo: Char. La dirección de correo electrónico laboral. Utilizada para comunicaciones internas y notificaciones.


8. work_phone

Tipo: Char. El número de teléfono laboral. Se muestra en los formularios de empleados y se utiliza para flujos de trabajo de contacto.


9. mobile_phone

Tipo: Char. Número de teléfono móvil laboral. A menudo utilizado para SMS o notificaciones urgentes.


10. department_id

Tipo: Many2one (hr.department). El departamento al que pertenece el empleado. Se utiliza para organigramas, informes y flujos de aprobación.


11. job_id

Tipo: Many2one (hr.job). La posición laboral. Se vincula al modelo hr.job que define los títulos de trabajo y las posiciones abiertas.


12. job_title

Tipo: Char. Título de trabajo en texto libre. Se puede utilizar cuando job_id no está establecido o para títulos personalizados.


13. parent_id

Tipo: Many2one (hr.employee). El gerente. Permite la jerarquía de empleados. Se utiliza para cadenas de aprobación y estructura organizativa.


14. coach_id

Tipo: Many2one (hr.employee). El entrenador de este empleado. Se utiliza para el rendimiento y desarrollo. El entrenador no tiene derechos específicos por defecto.


15. resource_id

Tipo: Many2one (resource.resource). Se vincula al modelo de recursos. Se utiliza para programación, planificación de capacidad e integración de calendarios.


16. work_contact_id

Tipo: Many2one (res.partner). El contacto laboral. Enlaza con el registro del socio utilizado para comunicaciones y documentos relacionados con el trabajo.


17. address_id

Tipo: Many2one (res.partner). Dirección laboral. Enlaza con un registro de res.partner para la oficina o ubicación de trabajo.


18. address_home_id

Tipo: Many2one (res.partner). Dirección privada. La dirección de casa del empleado, no la oficina. Se utiliza para nómina y contactos de emergencia.


19. resource_calendar_id

Tipo: Many2one (resource.calendar). Horario laboral. Define las horas y días de trabajo. Se utiliza para asistencia, permisos y planificación.


20. employee_type

Tipo: Selección. Tipo de empleado: Empleado, Freelancer o Pasante. Requerido. Afecta el historial del contrato: solo el tipo Empleado se supone que está bajo contrato.


21. barcode

Tipo: Char. ID de la insignia. Se utiliza para la identificación del empleado en el quiosco de asistencia y otros escaneos de código de barras.


22. pin

Tipo: Char. PIN utilizado para registrarse y salir en el modo Kiosco de la aplicación de Asistencia. También se utiliza para cambiar el cajero en el Punto de Venta.


23. cumpleaños

Tipo: Fecha. Fecha de nacimiento. Utilizado para registros de RRHH y recordatorios opcionales de cumpleaños.


24. identificación_id

Tipo: Char. Número de identificación nacional. Utilizado para el cumplimiento de RRHH y nómina.


25. pasaporte_id

Tipo: Char. Número de pasaporte. Utilizado para el seguimiento de viajes y permisos de trabajo.


26. cuenta_bancaria_id

Tipo: Many2one (res.partner.bank). Cuenta bancaria del empleado para pagos de salario.


27. correo_electrónico_privado

Tipo: Char. El correo electrónico personal del empleado. Utilizado cuando el correo electrónico de trabajo no está disponible.


28. teléfono

Tipo: Char. Número de teléfono privado. Diferente de los detalles de contacto laboral.


29. contract_id

Tipo: Many2one (hr.contract). Contrato actual. Referencia al contrato activo.


30. contract_ids

Tipo: One2many (hr.contract). Todos los contratos vinculados a este empleado. Historial de contratos.


31. image_1920

Tipo: Binario. Foto o avatar del empleado. Odoo almacena múltiples tamaños. Utilizado en formularios, informes y en el directorio.


32. related_partner_id

Tipo: Many2one (res.partner). El contacto vinculado a este empleado. Conecta los datos del empleado con el modelo de socio para CRM y otros módulos.


33. leave_manager_id

Tipo: Many2one (res.users). Usuario responsable de aprobar las ausencias. Si está vacío, la aprobación va a un Administrador o Aprobador.


34. expense_manager_id

Tipo: Many2one (res.users). Usuario responsable de aprobar gastos. Si está vacío, la aprobación va a un Administrador o Aprobador.


35. timesheet_manager_id

Tipo: Many2one (res.users). Usuario responsable de aprobar hojas de tiempo. Si está vacío, la aprobación va a un Administrador de Hojas de Tiempo o Usuario.

Cómo se utiliza este modelo en los flujos de trabajo empresariales


1. Directorio de Empleados y Onboarding

Cuando RRHH crea un nuevo empleado, completa el registro hr.employee. Nombre, departamento, trabajo, gerente y detalles de contacto. El enlace user_id se establece cuando el empleado obtiene acceso a Odoo.


2. Asistencia y Seguimiento del Tiempo

Los empleados registran su entrada y salida a través de la aplicación de Asistencia. Los tiempos de entrada y salida se almacenan en hr.attendance, vinculados a hr.employee. Los campos de código de barras y pin habilitan el modo quiosco.


3. Tiempo Libre y Licencias

Las solicitudes de licencia hacen referencia al empleado. El leave_manager_id y resource_calendar_id determinan quién aprueba y cuántos días se asignan.


4. Nómina y Contratos

La nómina utiliza hr.employee para la estructura salarial, datos de cuenta bancaria y contrato. El contract_id se vincula al contrato actual. Los contract_ids contienen el historial completo.


5. Hojas de Tiempo y Asignación de Proyectos

Cuando los empleados registran tiempo en proyectos, la hoja de tiempo se vincula a hr.employee. El timesheet_manager_id controla la aprobación. El resource_id se vincula a las herramientas de planificación y programación.

Cómo los desarrolladores extienden este modelo


Los desarrolladores extienden hr.employee utilizando varios patrones. La herencia de modelos de Odoo es el principal mecanismo.


Herencia de Modelos

Utiliza _inherit = 'hr.employee' para extender el modelo. Agrega nuevos campos, sobrescribe métodos o añade restricciones. El modelo heredado en Odoo mantiene tus cambios en un módulo separado para facilitar las actualizaciones.


Añadiendo Campos

Define nuevos campos de Odoo en tu modelo heredado. Usa el tipo de campo correcto: Char, Many2one, Boolean, Integer, Text, Selection. Considera campos dependientes de la empresa para multiempresa.


Extensiones de Python

Sobrescribe create, write o unlink para añadir lógica. Usa super() para llamar al original. Ten cuidado con los campos computados y sus dependencias.


Odoo Studio

Odoo Studio te permite añadir campos sin código. Bueno para personalizaciones rápidas. Para lógica compleja o actualizaciones, los módulos personalizados son más mantenibles.

Mejores prácticas


  • Establece user_id solo cuando el empleado necesite acceso a Odoo. No todos los empleados necesitan una cuenta de usuario.
  • Utiliza correctamente la jerarquía parent_id. Construye la estructura organizativa de arriba hacia abajo.
  • Establezca resource_calendar_id para cálculos consistentes de horas de trabajo y licencias.
  • Al construir integraciones de API, utilice la API XML-RPC o JSON-RPC. El modelo hr.employee en Odoo está completamente expuesto como un modelo de API. Mapee los ID externos con cuidado.
  • Para campos personalizados, use el prefijo x_ o un prefijo de módulo para evitar conflictos con futuras versiones de Odoo.
  • Los campos restringidos a hr.group_hr_user no deben prefetcharse para usuarios sin acceso a HR. Utilice grupos en las definiciones de campos.

Errores comunes


  • Crear registros de empleados duplicados en lugar de buscar los existentes. Utilice work_email o identification_id para la deduplicación.
  • Confundir user_id y related_partner_id. user_id es para el inicio de sesión en Odoo. related_partner_id es el registro de contacto.
  • Olvidar establecer employee_type. Es obligatorio y afecta el comportamiento del contrato.
  • Sobrescribir métodos centrales sin llamar a super(). Esto puede romper otros módulos o futuras actualizaciones.
  • Agregar campos personalizados requeridos sin valores predeterminados. Los registros existentes fallarán la validación en la actualización.
  • Exponer campos sensibles de HR a usuarios sin hr.group_hr_user. Utilice grupos en campos que contengan datos privados.

Conclusión


El modelo hr.employee es central para Odoo HR. Almacena datos de empleados, enlaces a contratos, asistencia y licencias. Comprender sus campos y cómo los módulos lo extienden le ayudará a configurar, personalizar e integrar Odoo de manera efectiva.


Ya sea que sea un consultor funcional mapeando procesos de HR o un desarrollador construyendo módulos personalizados, un sólido conocimiento de hr.employee le ahorrará tiempo y evitará errores.

¿Necesitas ayuda con tu implementación de Odoo?


Dasolo ayuda a las empresas a implementar, personalizar y optimizar Odoo. Nos especializamos en integraciones de API y desarrollo de Odoo. Nuestro equipo tiene una profunda experiencia con la arquitectura de datos de Odoo y modelos como hr.employee.


Si necesita ayuda con su implementación de Odoo, módulos de RRHH personalizados o integraciones, estamos aquí para ayudar. Reserve una demostración para discutir su proyecto.

El Modelo hr.employee: Comprendiendo la Arquitectura de Empleados en Odoo
Dasolo 11 de marzo de 2026
Compartir esta publicación
Iniciar sesión para dejar un comentario