This add a validation mechanism to review employee attendance and generate compensatory hours (allocated leaves) that can be used later as day off or to regulate credits leaves as this module is compatible with hr_holidays_credit module.
This is based on the hr_attendance_overtime module which mark rows as "overtime" those rows are not due by default as it could came from possible mist check-out. So manager can decide to add or not those overtime attendance lines or not and compute or adjust compensatory/leaves hours to generate.
..note:
If you are allowing flexible hours - check-in/check-out range are bigger than average hours per day - So you can generate compensatory hours from lines that are not marked as overtime.
Once review is validated attendance lines are locked on that period.
At the end managers can check holidays allocation per year and by employee to make sure allowed employee compensatory hours are not over.
Employees can:
- access to validated sheets to review hours taken account
- see current week hours on check-in view
auto_awesome What this module does
AI-generated from the code · Odoo 14.0Managers can review weekly employee attendance, decide which overtime counts, and validate the week. Validation locks those attendance records and can automatically create compensatory leave allocations or leave requests.
This module adds an attendance validation workflow for managers. A new document, the attendance validation sheet, covers one employee and a date range (by default the previous week). Managers open it from the Attendance menu under Attendance validation, click to retrieve attendances and leaves, and see the employee's attendance lines, approved leaves, theoretical calendar hours, worked hours, overtime due and not due, and the resulting compensatory hours.
On the sheet, managers can mark overtime lines as due or not due. The compensatory hours are computed from worked hours plus leave hours plus due overtime minus theoretical hours; a positive result becomes compensatory hours to allocate, a negative result becomes compensatory hours taken. Clicking Validate locks the sheet and its attendance lines: those lines can no longer be created, changed or deleted, and the period is protected against new attendance entries. If compensatory hours are positive, a validated leave allocation is created; if negative, a leave request is created and validated.
A scheduled job generates review sheets for the previous week for all active employees. Employees can see their own validated sheets under Validated attendance. Settings let you choose the leave type used for compensatory hours, and leave types can be excluded from the review. The employee attendance screen also shows hours worked in the current week.
Depends on
Menus it adds
Models and fields (7)
- hr.leave · extends an existing modelvalidation_sheet_id (Validation sheet)
- hr.attendance · extends an existing modelis_overtime_due (Is overtime due), validation_sheet_id (Validation sheet)
- hr.leave.type · extends an existing modelignored_in_attendance_validation
- hr.employee.base · extends an existing modelhours_current_week
- resource.calendar · extends an existing modeltotal_hours (Total calendar hours)
- res.config.settings · extends an existing modelhr_attendance_compensatory_leave_type_id
- hr.attendance.validation.sheet · new modelstate (State), date_to (Date to), leave_id (Leave), date_from (Date from), leave_ids (Leaves), calendar_id (Calendar), employee_id (Employee), leave_hours (Leaves (hours)), attendance_ids (Attendances), attendance_hours (Attendance (hours)), compensatory_hour (Compensatory hour), theoretical_hours (Theoretical (hours)), attendance_due_ids (Valid attendances), overtime_due_hours (Overtime due (hours)), leave_allocation_id (Leave allocation), require_regeneration (Require regeneration), attendance_total_hours (Total Attendance (hours)), overtime_not_due_hours (Overtime not due (hours)), regularization_compensatory_hour_taken (Regularization compensatory hours' taken)
Text generated by AI (DeepSeek) from reading the Odoo 14.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/hr-attendance.
terminal Installation and usage
OCA documentation · Odoo 14.0Configuration
Source · Odoo 14.0- Ensure employee weeks are properly set
- Set the leave type to use by generating compensatory hours from attendance review (to be done in hr attendance configuration)
- You can ignore some leaves in validation sheet by ticking the "Ignored in attendance validation" (for instance it can be useful if you manage employee remote days using hr.leave in such case you want to ignore those lines)
- once all leaves and attendances has been recorded you can generate leave reviews by setting up a cron job running every monday morning to generate the previous week with the following code on
hr.attendance.validation.sheetmodel:
model.generate_reviews()Usage
Source · Odoo 14.0- Once review has been generate by ir cron manager are able to open each one on Attenances > Manager > Attendance validation
- On each form decide if recorded overtime are due or not
- change the amount of allocated compensatory hours to generate
- validate the review to generate the allocation
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.