Modelo de Datos: HR (Recursos Humanos)
Modulo: hr
Total Modelos: 10+
Modelos Documentados: 6 (principales)
1. Indice de Modelos Principales
| Modelo |
Descripcion |
Campos |
Archivo |
| hr.employee |
Empleados |
100+ |
hr_employee.py |
| hr.department |
Departamentos |
15+ |
hr_department.py |
| hr.job |
Puestos trabajo |
15+ |
hr_job.py |
| hr.version |
Versiones empleado |
40+ |
hr_version.py |
| hr.work.location |
Ubicaciones |
6 |
hr_work_location.py |
| hr.employee.category |
Categorias |
3 |
hr_employee_category.py |
2. Detalle por Modelo
2.1 hr.employee (Empleados)
Archivo: models/hr_employee.py
Descripcion: Employee
Hereda de: mail.thread.main.attachment, mail.activity.mixin, resource.mixin, avatar.mixin
Campos de Identificacion
| Campo |
Tipo |
Req |
Descripcion |
| name |
Char |
Si |
Nombre (related resource_id.name) |
| barcode |
Char |
No |
Badge ID (unico) |
| pin |
Char |
No |
PIN seguridad |
| active |
Boolean |
No |
Activo (default=True) |
| resource_id |
Many2one |
Si |
Recurso asociado |
Campos Organizacionales
| Campo |
Tipo |
Req |
Descripcion |
| user_id |
Many2one |
No |
Usuario Odoo |
| company_id |
Many2one |
Si |
Empresa |
| department_id |
Many2one |
No |
Departamento |
| job_id |
Many2one |
No |
Puesto de trabajo |
| parent_id |
Many2one |
No |
Gerente directo |
| coach_id |
Many2one |
No |
Coach/Mentor |
| child_ids |
One2many |
No |
Subordinados directos |
Campos de Contacto Laboral
| Campo |
Tipo |
Descripcion |
| work_phone |
Char |
Telefono laboral |
| mobile_phone |
Char |
Movil laboral |
| work_email |
Char |
Email laboral |
| work_contact_id |
Many2one |
Contacto res.partner |
| work_location_id |
Many2one |
Ubicacion de trabajo |
Campos Personales (groups="hr.group_hr_user")
| Campo |
Tipo |
Descripcion |
| legal_name |
Char |
Nombre legal |
| birthday |
Date |
Fecha nacimiento |
| place_of_birth |
Char |
Lugar nacimiento |
| country_of_birth |
Many2one |
Pais nacimiento |
| private_phone |
Char |
Telefono privado |
| private_email |
Char |
Email privado |
| identification_id |
Char |
ID nacional |
| passport_id |
Char |
Numero pasaporte |
| permit_no |
Char |
Permiso de trabajo |
Campos de Versionamiento
| Campo |
Tipo |
Descripcion |
| version_ids |
One2many |
Historico versiones |
| current_version_id |
Many2one |
Version actual (stored) |
| version_id |
Many2one |
Version actual (computed) |
Restricciones
| Constraint |
Descripcion |
| barcode UNIQUE |
Badge ID unico |
| user_company UNIQUE |
Un usuario, una empresa |
2.2 hr.department (Departamentos)
Archivo: models/hr_department.py
Descripcion: HR Department
Hereda de: mail.thread, mail.activity.mixin
Estructura: Jerarquica (_parent_store=True)
Campos Principales
| Campo |
Tipo |
Req |
Descripcion |
| name |
Char |
Si |
Nombre departamento |
| complete_name |
Char |
No |
Nombre completo jerarquico |
| active |
Boolean |
No |
Activo (default=True) |
| company_id |
Many2one |
No |
Empresa |
| parent_id |
Many2one |
No |
Departamento padre |
| child_ids |
One2many |
No |
Subdepartamentos |
| manager_id |
Many2one |
No |
Gerente |
| member_ids |
One2many |
No |
Empleados |
| jobs_ids |
One2many |
No |
Puestos |
| total_employee |
Integer |
No |
Total empleados (computed) |
| parent_path |
Char |
No |
Ruta jerarquica |
| master_department_id |
Many2one |
No |
Departamento raiz |
2.3 hr.job (Puestos de Trabajo)
Archivo: models/hr_job.py
Descripcion: Job Position
Hereda de: mail.thread
Campos Principales
| Campo |
Tipo |
Req |
Descripcion |
| name |
Char |
Si |
Nombre del puesto |
| active |
Boolean |
No |
Activo |
| sequence |
Integer |
No |
Orden (default=10) |
| department_id |
Many2one |
No |
Departamento |
| company_id |
Many2one |
No |
Empresa |
| employee_ids |
One2many |
No |
Empleados en puesto |
| no_of_employee |
Integer |
No |
Empleados actuales |
| expected_employees |
Integer |
No |
Empleados esperados |
| no_of_recruitment |
Integer |
No |
Vacantes (default=1) |
| description |
Html |
No |
Descripcion |
| requirements |
Text |
No |
Requisitos |
| contract_type_id |
Many2one |
No |
Tipo contrato |
Restriccion
name + company_id + department_id UNIQUE
2.4 hr.version (Versiones de Empleado)
Archivo: models/hr_version.py
Descripcion: Employee Version History
Campos de Contrato
| Campo |
Tipo |
Descripcion |
| employee_id |
Many2one |
Empleado (requerido) |
| date_version |
Date |
Fecha efectiva (requerido) |
| contract_date_start |
Date |
Inicio contrato |
| contract_date_end |
Date |
Fin contrato |
| trial_date_end |
Date |
Fin periodo prueba |
| wage |
Monetary |
Salario bruto mensual |
| contract_type_id |
Many2one |
Tipo contrato |
| structure_type_id |
Many2one |
Estructura salarial |
Campos Personales
| Campo |
Tipo |
Descripcion |
| country_id |
Many2one |
Nacionalidad |
| sex |
Selection |
Genero (male/female/other) |
| marital |
Selection |
Estado civil |
| children |
Integer |
Hijos dependientes |
| identification_id |
Char |
ID nacional |
| ssnid |
Char |
Seguro social |
| passport_id |
Char |
Pasaporte |
Estados de Version
| Campo |
Tipo |
Descripcion |
| is_current |
Boolean |
Version actual |
| is_past |
Boolean |
Version pasada |
| is_future |
Boolean |
Version futura |
2.5 hr.work.location (Ubicaciones)
Archivo: models/hr_work_location.py
Descripcion: Work Location
| Campo |
Tipo |
Req |
Descripcion |
| name |
Char |
Si |
Nombre ubicacion |
| active |
Boolean |
No |
Activo |
| company_id |
Many2one |
Si |
Empresa |
| location_type |
Selection |
No |
Tipo (home/office/other) |
| address_id |
Many2one |
Si |
Direccion |
| location_number |
Char |
No |
Numero ubicacion |
2.6 hr.employee.category (Categorias)
Archivo: models/hr_employee_category.py
Descripcion: Employee Category (Tags)
| Campo |
Tipo |
Req |
Descripcion |
| name |
Char |
Si |
Nombre (unico) |
| color |
Integer |
No |
Color (1-11) |
| employee_ids |
Many2many |
No |
Empleados |
3. Diagrama Entidad-Relacion
┌───────────────────────┐ child_ids ┌───────────────────────┐
│ hr.department │◄─────────────────────│ hr.department │
│ │ │ │
│ - name │ parent_id │ (Subdepartamento) │
│ - complete_name │─────────────────────►│ │
│ - manager_id ──────┐ │ └───────────────────────┘
└───────────┬─────────┘ │
│ │
member_ids │
▼ │
┌───────────────────────┐ ┌───────────────────────┐
│ hr.employee │◄──────────────────────│ hr.employee │
│ │ parent_id │ (Subordinado) │
│ - name │ └───────────────────────┘
│ - department_id │
│ - job_id ──────────┐ │ version_ids ┌───────────────────────┐
│ - parent_id ───────┘ │─────────────────────►│ hr.version │
│ - user_id │ │ │
└───────────┬───────────┘ │ - date_version │
│ │ - wage │
│ job_id │ - contract_type_id │
▼ └───────────────────────┘
┌───────────────────────┐
│ hr.job │
│ │
│ - name │
│ - department_id │
│ - employee_ids │
│ - no_of_recruitment │
└───────────────────────┘
4. Modelos de Configuracion
hr.contract.type
| Campo |
Tipo |
Descripcion |
| name |
Char |
Nombre (traducible) |
| code |
Char |
Codigo |
| sequence |
Integer |
Orden |
| country_id |
Many2one |
Pais |
hr.departure.reason
| Campo |
Tipo |
Descripcion |
| name |
Char |
Razon (traducible) |
| sequence |
Integer |
Orden |
| country_id |
Many2one |
Pais |
Referencias:
- Carpeta models:
addons/hr/models/