Human Resources: Employees, Time Off and Expenses
What to know
Odoo HR centres on the employee record: contact details, department, job position, manager, work location and work schedule. Departments form a hierarchy; job positions are separate from departments. Contracts (in the HR app) hold the wage and schedule over time.
Time off uses time-off types with an approval flow: a type may require allocation (so the employee must have a balance) or be unlimited (e.g. sick leave). Allocations come from manual grants or accrual plans; public holidays are configured per calendar and reduce working days. Approvers are configured on the employee or time-off type. Attendance records check-in/out (kiosk mode with PIN) and is distinct from timesheets, which feed project billing. Expenses create records with a product, an expense account from the product category, and a paid by field (employee or company); approved expenses are posted and reimbursed. Recruitment adds job positions, applicants, stages and interview forms.
Traps
- A time-off type without allocation still consumes days but shows a negative balance.
- Accrual plans only credit balances when the accrual runs; new hires may have zero balance.
- Attendance ≠ timesheets: one tracks presence, the other feeds projects and invoicing.
- Expense accounting depends on the product's expense account, so a wrong product miscategorises the journal entry.
- Managers and approvers are different fields; approvals can stall when no approver is set.
Rule of thumb
Balance = allocated + accrued − taken. Twenty days allocated, two already taken, gives eighteen available; an accrual plan adds days monthly rather than up front.