HR

Empleados y ausencias

MarketplacePersonas y proyectosVersión 0.1.0manifest

Para qué sirve ​

A register of employees, departments and leave requests, with strict data classes: pay, bank details and national id are visible to managers only and health or union data only to a special reader group. Agents never see the sensitive classes.

Qué hace y qué no hace el paquete ​

Employees, departments and leave requests. Personal data is classified strictly: pay, bank and national id are visible to managers only, and health and union data to the special reader group.

Modelos ​

hr_department ​

A team or department of the company

Grupo de lectura: hr.user. Grupo de escritura: hr.manager.

CampoTipoClase de datosDatos personalesGrupoLos agentes venDescripción
nametextnonenohr.useren claroDepartment name
headtextpublic_directorysíhr.userenmascaradoName of the department head
cost_centretextnonenohr.useren claroCost centre code used by finance

hr_employee ​

A person employed by the company

Grupo de lectura: hr.user. Grupo de escritura: hr.manager.

CampoTipoClase de datosDatos personalesGrupoLos agentes venDescripción
nametextpublic_directorysíhr.userenmascaradoFull name
job_titletextpublic_directorysíhr.userenmascaradoJob title
work_emailtextpublic_directorysíhr.userenmascaradoWork email address
work_phonetextpublic_directorysíhr.userenmascaradoWork phone number
department_idref → hr_departmentnonenohr.useren claroThe department the person belongs to
reports_to_idref → hr_employeenonenohr.useren claroThe person's line manager
hired_ondateinternalsíhr.userenmascaradoFirst day of employment (YYYY-MM-DD)
contract_typeselect (permanent, fixed_term, contractor, intern)confidential_hrsíhr.managerretenidoType of employment contract: permanent, fixed_term, contractor, intern
private_emailtextconfidential_hrsíhr.managerretenidoPrivate email address
private_phonetextconfidential_hrsíhr.managerretenidoPrivate phone number
home_addresslongtextconfidential_hrsíhr.managerretenidoPrivate home address
birth_datedateconfidential_hrsíhr.managerretenidoDate of birth (YYYY-MM-DD)
national_idtextconfidential_hrsíhr.managerretenidoNational identity or social security number
emergency_contacttextconfidential_hrsíhr.managerretenidoName and phone of the person to call in an emergency
salarymoneyfinancialsíhr.managerretenidoGross annual salary (minor currency units, e.g. cents)
bank_ibantextfinancialsíhr.managerretenidoBank account salary is paid into
union_memberboolspecial_categorysíhr.special_readerretenidoWhether the person is a trade union member
work_permit_expirydatespecial_categorysíhr.special_readerretenidoDate the work permit expires, for non-citizens (YYYY-MM-DD)
health_notelongtextspecial_categorysíhr.special_readerretenidoHealth condition or disability relevant to the workplace
stateselect (onboarding, active, offboarded)nonenohr.useren claroEmployment status: onboarding, active, offboarded

hr_leave_request ​

A request for time off

Grupo de lectura: hr.user. Grupo de escritura: hr.user.

CampoTipoClase de datosDatos personalesGrupoLos agentes venDescripción
employee_idref → hr_employeenonenohr.useren claroThe employee asking for time off
leave_kindselect (paid, unpaid, parental, study, other)confidential_hrsíhr.userretenidoKind of leave: paid, unpaid, parental, study, other
start_ondateinternalsíhr.userenmascaradoFirst day of absence (YYYY-MM-DD)
end_ondateinternalsíhr.userenmascaradoLast day of absence (YYYY-MM-DD)
daysnumbernonenohr.useren claroWorking days requested
reasonlongtextconfidential_hrsíhr.managerretenidoWhy the leave is requested
is_sick_leaveboolspecial_categorysíhr.special_readerretenidoWhether the absence is due to illness
medical_notelongtextspecial_categorysíhr.special_readerretenidoReference to the medical certificate, if any
stateselect (draft, requested, approved, refused)nonenohr.useren claroRequest status: draft, requested, approved, refused

Flujos de trabajo ​

hr_employee ​

AcciónMueveQuién puede ejecutarlaAprobación
hr_employee.activatestate: onboarding → activehr.managerno
hr_employee.offboardstate: active → offboardedhr.managersí

hr_leave_request ​

AcciónMueveQuién puede ejecutarlaAprobación
hr_leave_request.requeststate: draft → requestedhr.userno
hr_leave_request.approvestate: requested → approvedhr.managersí
hr_leave_request.refusestate: requested → refusedhr.managersí

Grupos de permisos ​

Grupos que usa esta aplicación:

  • hr.manager
  • hr.special_reader
  • hr.user

Pasos con aprobación ​

Pasos que un agente solo puede proponer:

  • hr_employee.offboard
  • hr_leave_request.approve
  • hr_leave_request.refuse

Qué pueden y qué no pueden hacer los agentes ​

Un agente puede leer, buscar, crear y actualizar registros de esta aplicación, y ejecutar las acciones que no requieren aprobación, dentro de los grupos de permisos de su token.

Solo puede proponer estos pasos, y una persona debe aprobarlos: hr_employee.offboard, hr_leave_request.approve, hr_leave_request.refuse, hr_department.delete, hr_employee.delete, hr_leave_request.delete.

Los datos personales se enmascaran como tokens marcadores: hr_department.head, hr_employee.name, hr_employee.job_title, hr_employee.work_email, hr_employee.work_phone, hr_employee.hired_on, hr_leave_request.start_on, hr_leave_request.end_on.

Estos campos se retienen por completo y los agentes no los ven: hr_employee.contract_type, hr_employee.private_email, hr_employee.private_phone, hr_employee.home_address, hr_employee.birth_date, hr_employee.national_id, hr_employee.emergency_contact, hr_employee.salary, hr_employee.bank_iban, hr_employee.union_member, hr_employee.work_permit_expiry, hr_employee.health_note, hr_leave_request.leave_kind, hr_leave_request.reason, hr_leave_request.is_sick_leave, hr_leave_request.medical_note.

Dependencias ​

Ninguna.

Instalación ​

Instálala desde la aplicación Customize (Marketplace) o desde la línea de comandos:

bash
obop modules install-from hr

Requiere una base de datos y derechos de administrador.

Crea la tuya ​

La guía de módulos explica cómo se escriben aplicaciones como esta