This module extends the functionality of hr_timesheet_sheet and help employees to manage their attendance according to timesheet period. It provide functionality to checkin/checkout directly from timesheet-sheet. It also help you/management in performace evaluation by displaing total attendance time and difference of total attendance time and total working time.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Employees can check in and check out directly from their timesheet sheet, and the sheet shows total attendance hours and the difference versus timesheet hours. Attendance entries are automatically linked to the matching timesheet period.
This module connects attendance records with timesheet sheets so that the two stay consistent.
On a timesheet sheet, a new Attendances tab shows the employee's current attendance status and Check In / Check Out buttons, plus the list of attendance entries for that period. The sheet also displays total attendance time and the difference between attendance time and timesheet time, and a button shows how many attendances are linked.
Attendance records automatically get linked to the timesheet sheet whose dates cover the check-in date, using the employee's time zone. When a new timesheet sheet is created, existing unlinked attendances falling inside its period are attached to it.
Business rules are enforced: you cannot add or delete an attendance that belongs to a submitted or confirmed timesheet, and attendance dates must fall inside the timesheet period. A timesheet cannot be submitted while an attendance has a check-in without a check-out.
Attendance list, form and filter views now show the related timesheet sheet, and the timesheet sheet list shows total attendance and difference columns.
Depends on
Models and fields (2)
- hr.attendance · extends an existing modelsheet_id (Sheet)
- hr_timesheet.sheet · extends an existing modelattendances_ids (Attendances), attendance_count, attendance_state (Current Status), total_attendance, total_difference (Difference)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 18.0
Confirmed on 2026-11-03 in branch 18.0 of OCA/timesheet.
terminal Installation and usage
OCA documentation · Odoo 18.0Installation
Source · Odoo 18.0This module relies on:
- The OCA module 'HR Timesheet Sheet', and can be downloaded from Github:
Usage
Source · Odoo 18.0- Goto Timesheets \> My Timesheet Sheets and create a timesheet
- Goto tab Attendances on timesheet form
- You can see there your current status checkin/checkout
- You also can create attendance by clicking on button Check In/Check Out on right side
- You can see your attendance that belongs to current timesheet on left side in same tab
- 'Total Attendance' is total working time based on your attendance
- 'Difference' is the difference betwwen total attandance time and working time (sum(attendace-time) - sum(unit amount in timessheet lines))
- Two smart buttons are present on top-right corner of timesheet form
- First one(with time icon) will take you list of your timesheets (by default filter timesheets related to current timesheet-sheet)
- Second one(labeled as Attendances) will take you to list of your attendances (by default filter ateendances related to current timesheet-sheet)
- It prevents to change in any attendance related to timesheet-sheet that already has submitted
- It also prevents to submit such a timesheet-sheet not having equal number of checkin and checkout
No verified information in OCA: Configuration.
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.