| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 1733 |
| Technical Name |
eh_hr_attendance_reports |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Attendances (hr_attendance)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 1733 |
| Technical Name |
eh_hr_attendance_reports |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Attendance Reports
An hourly exception cron and a manager dashboard that turn raw kiosk events into something a supervisor can act on. Late check ins raised as warnings; missed check outs raised as critical; today and last seven days of activity grouped into kanbans the manager actually opens.
Day in the life
9:30 standup. The supervisor opens Today and already sees who came in late.
The hourly cron has run twice since 8am. Two late check ins on the kanban; both are warnings. Yesterday's three open attendances are still flagged critical because they never got a check out and the threshold has lapsed. The supervisor walks the floor, finds out one had a flat tyre, marks the exception resolved with a note, leaves the others for HR to chase. The dashboard kanban resets cleanly tomorrow morning. No spreadsheet, no fortnightly review, no surprise.
Overview
What this module does, in one read.
eh_hr_attendance_reports adds the cron that detects late and missed check out exceptions, plus the dashboards a manager actually opens.
No new models; the exception model lives in the suite base. The cron runs hourly, two passes per call. It is idempotent on a per attendance basis so a re run does not duplicate the warning. When the rostering module is installed the comparison cutoff is the planned shift start, not the company default; the upgrade is automatic.
Capabilities
Eight things this module gives you, with no padding.
Hourly detection cron
Two passes per run: late check in for the current day, missed check out older than the threshold. Idempotent: an attendance row that has already raised an exception this day does not raise a duplicate.
Late check in detection
For every check in past the company default check in time plus the grace minutes setting, a late exception is raised as a warning. Defaults: 9:00 plus five minutes of grace.
Missed check out detection
Every open attendance whose check in is older than the configured threshold (default 12 hours) raises a missed check out exception, severity critical. The row stays open for HR to close manually.
Today and last seven days kanbans
Manager dashboard with three kanbans: today's attendance grouped by check in state, exceptions summary by severity, and a 24 hour audit log summary by event type.
Open or closed state on hr.attendance
A computed eh_state on hr.attendance reads open when check_out is empty, closed otherwise. Searchable, filterable, the dashboards group by it.
Per company configuration
Default check in time, grace minutes, and missed check out hours sit on res.company under People Operations Settings. Different companies in a multi tenant can run different rules.
Roster aware when present
Install the rostering module and the late detection compares against the planned shift start instead of the company default. Late by their own roster, not by an arbitrary office time.
Timezone aware
The cron resolves the cutoff time in the company's partner timezone (or UTC fallback). 9:00 means 9:00 in the company's local time, not the server's.
Frequently asked questions
Honest answers to the questions a buyer asks.
How often does the cron run?
Hourly out of the box. Adjust under Technical > Scheduled Actions if you need it more or less frequent. The detection logic is idempotent, so over running is safe.
Will it work without rostering installed?
Yes. Without the rostering module the cron uses the company default check in time as the cutoff. Add the rostering module later and the comparison switches automatically to the planned shift start.
What severity does each exception get?
Late check ins are warnings. Missed check outs are critical. Both severities are filterable and groupable on the dashboard.
Can a manager dismiss or resolve an exception?
Yes. The exception model from the suite base carries a resolution state and a notes field. Mark resolved with a note; the dashboard kanban moves the card off the open column.
Please log in to comment on this module