HR
Salariés et congés
À quoi elle sert
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.
Ce que fait et ne fait pas le paquet
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.
Modèles
hr_department
A team or department of the company
Groupe de lecture: hr.user. Groupe d'écriture: hr.manager.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
name | text | none | non | hr.user | en clair | Department name |
head | text | public_directory | oui | hr.user | masqué | Name of the department head |
cost_centre | text | none | non | hr.user | en clair | Cost centre code used by finance |
hr_employee
A person employed by the company
Groupe de lecture: hr.user. Groupe d'écriture: hr.manager.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
name | text | public_directory | oui | hr.user | masqué | Full name |
job_title | text | public_directory | oui | hr.user | masqué | Job title |
work_email | text | public_directory | oui | hr.user | masqué | Work email address |
work_phone | text | public_directory | oui | hr.user | masqué | Work phone number |
department_id | ref → hr_department | none | non | hr.user | en clair | The department the person belongs to |
reports_to_id | ref → hr_employee | none | non | hr.user | en clair | The person's line manager |
hired_on | date | internal | oui | hr.user | masqué | First day of employment (YYYY-MM-DD) |
contract_type | select (permanent, fixed_term, contractor, intern) | confidential_hr | oui | hr.manager | non communiqué | Type of employment contract: permanent, fixed_term, contractor, intern |
private_email | text | confidential_hr | oui | hr.manager | non communiqué | Private email address |
private_phone | text | confidential_hr | oui | hr.manager | non communiqué | Private phone number |
home_address | longtext | confidential_hr | oui | hr.manager | non communiqué | Private home address |
birth_date | date | confidential_hr | oui | hr.manager | non communiqué | Date of birth (YYYY-MM-DD) |
national_id | text | confidential_hr | oui | hr.manager | non communiqué | National identity or social security number |
emergency_contact | text | confidential_hr | oui | hr.manager | non communiqué | Name and phone of the person to call in an emergency |
salary | money | financial | oui | hr.manager | non communiqué | Gross annual salary (minor currency units, e.g. cents) |
bank_iban | text | financial | oui | hr.manager | non communiqué | Bank account salary is paid into |
union_member | bool | special_category | oui | hr.special_reader | non communiqué | Whether the person is a trade union member |
work_permit_expiry | date | special_category | oui | hr.special_reader | non communiqué | Date the work permit expires, for non-citizens (YYYY-MM-DD) |
health_note | longtext | special_category | oui | hr.special_reader | non communiqué | Health condition or disability relevant to the workplace |
state | select (onboarding, active, offboarded) | none | non | hr.user | en clair | Employment status: onboarding, active, offboarded |
hr_leave_request
A request for time off
Groupe de lecture: hr.user. Groupe d'écriture: hr.user.
| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
employee_id | ref → hr_employee | none | non | hr.user | en clair | The employee asking for time off |
leave_kind | select (paid, unpaid, parental, study, other) | confidential_hr | oui | hr.user | non communiqué | Kind of leave: paid, unpaid, parental, study, other |
start_on | date | internal | oui | hr.user | masqué | First day of absence (YYYY-MM-DD) |
end_on | date | internal | oui | hr.user | masqué | Last day of absence (YYYY-MM-DD) |
days | number | none | non | hr.user | en clair | Working days requested |
reason | longtext | confidential_hr | oui | hr.manager | non communiqué | Why the leave is requested |
is_sick_leave | bool | special_category | oui | hr.special_reader | non communiqué | Whether the absence is due to illness |
medical_note | longtext | special_category | oui | hr.special_reader | non communiqué | Reference to the medical certificate, if any |
state | select (draft, requested, approved, refused) | none | non | hr.user | en clair | Request status: draft, requested, approved, refused |
Flux de travail
hr_employee
| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
hr_employee.activate | state: onboarding → active | hr.manager | non |
hr_employee.offboard | state: active → offboarded | hr.manager | oui |
hr_leave_request
| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
hr_leave_request.request | state: draft → requested | hr.user | non |
hr_leave_request.approve | state: requested → approved | hr.manager | oui |
hr_leave_request.refuse | state: requested → refused | hr.manager | oui |
Groupes de permissions
Groupes utilisés par cette application :
hr.managerhr.special_readerhr.user
Étapes d'approbation
Étapes qu'un agent ne peut que proposer :
hr_employee.offboardhr_leave_request.approvehr_leave_request.refuse
Ce que les agents peuvent et ne peuvent pas faire
Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.
Il ne peut que proposer ces étapes, qu'une personne doit approuver : hr_employee.offboard, hr_leave_request.approve, hr_leave_request.refuse, hr_department.delete, hr_employee.delete, hr_leave_request.delete.
Les données personnelles sont masquées sous forme de jetons de substitution : 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.
Ces champs ne sont pas communiqués aux agents : 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.
Dépendances
Aucune.
Installation
Installez-la depuis l'application Customize (Place de marché), ou en ligne de commande :
obop modules install-from hrNécessite une base de données et des droits d'administrateur.
Créer la vôtre
Le guide des modules montre comment sont écrites les applications de ce type