Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Attendances
  3. Attendance Reports v 17.0
  4. Sales Conditions FAQ

Attendance Reports

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 17.0 Third Party 56
Download for v 17.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Versions 16.0 17.0 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Attendances (hr_attendance)
• Discuss (mail)
• Employees (hr)
Community Apps Dependencies Show
• Attendance Suite Base
• EH HR Compatibility
Lines of code 1842
Technical Name eh_hr_attendance_reports
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
ERP Heritage Attendance Suite

Attendance Reports

An hourly cron that turns raw check-ins into late and missed-checkout exceptions, plus a today dashboard for managers, on Odoo 17 Community.

Free · LGPL-3FreeLGPL-3v1.0.0
Late detection
Missed checkout
Hourly cron
Today dashboard
Per-company

Why this module

Attendance Reports

01 / DETECTION

Two passes, every hour

The cron runs hourly and walks each company in turn. Pass one flags any check-in today that lands after the company default time plus grace, at warning severity. Pass two flags any attendance still open past the company threshold, at critical severity. The open row is left untouched for HR to close by hand.

02 / SAFETY

Re-runs never duplicate

Before creating, each pass loads the attendances it already tagged for that exception type and skips them. Running the cron twice in a row produces exactly one exception per event, which the test suite asserts directly. No advisory lock is needed because the idempotency check is the guard.

03 / VISIBILITY

Today, at a glance

Managers and auditors get a Today attendance kanban grouped by open or closed state, so open rows read as people still on site. Filters cover today, open, and closed. The menu is gated to the suite manager and auditor groups, not handed to every employee.

Day in the life

09:40, the morning after

Overnight the cron raised a critical missed check-out for a warehouse worker whose badge-in from 4pm yesterday was never closed, and a warning late exception for a 09:32 arrival against the 09:00 plus 5 minute window. Both carry severity, the related attendance, and a plain-language description of which cutoff was crossed. The manager opens the Today kanban, sees the still-open row in the open column, and closes it. The cron does not touch the open attendance itself, so nothing is silently mutated under HR.

Edge cases

The cases most modules quietly ignore.

In the shipped code today, each one a place where a cheaper module silently does the wrong thing.

Timezone correctness

The late pass localizes today and the cutoff into the company partner timezone, then converts back to UTC for the search. An unknown timezone name falls back to UTC rather than crashing the run.

Idempotent re-runs

Each pass collects attendances it has already tagged for that exception type and skips them, so a double cron fire, a manual re-trigger, or an overlapping schedule yields one exception per event, not duplicates.

Multi-company scoping

Both passes loop res.company and filter attendances by employee_id.company_id, reading that company's own default time, grace, and threshold. Each exception is stamped with its company_id.

Open rows left intact

Missed check-out raises a critical exception but deliberately leaves the attendance open, so HR closes it manually and the cron never fabricates a check-out time.

Fractional check-in time

The default check-in float is split into hour and minute, so 8.5 means 08:30 and 9.0 means 09:00 when the cutoff is built.

Cron isolation

Detection runs as the root scheduler user and creates exceptions via sudo, so it is not blocked by the record-level access of whoever last logged in.

What is inside

Built to do the job, end to end.

  • Hourly exception cron. An ir.cron firing every hour as the root user, calling a single entrypoint that runs the late and missed-checkout passes in sequence over every company.
  • Late check-in pass. Per company, builds a timezone-aware cutoff from the default check-in time plus grace minutes and raises a warning exception for each of today's check-ins past it, skipping any already tagged.
  • Missed check-out pass. Per company, finds attendances with no check-out whose check-in predates the missed-checkout threshold and raises a critical exception, leaving the row open.
  • Today attendance dashboard. A hr.attendance kanban grouped by a computed open or closed state with today, open, and closed filters, defaulting to today, reachable from a manager-gated Reports submenu.
  • Per-company settings. Default check-in time, late grace minutes, and missed-checkout hours surface in an Exceptions block on the Attendance Suite settings page, stored on res.company.
  • Exception lifecycle. Exceptions live on the shared suite model with severity, occurred-on, a related attendance, and resolve or reopen actions tracked through the chatter.

Honest about the edges

What this does not do, so nothing surprises you.

  • Two detection passes only: late check-in and missed check-out. No-show, early-in, geofence, and liveness exception types exist on the shared model but are not produced by this module.
  • Detection compares against the company-wide default check-in time, not per-employee work schedules or planned shifts. Roster-aware comparison is deferred to a later wave and is not present on this branch.
  • The reachable dashboard in this module is the Today attendance kanban. The exception kanban view ships but is not wired to its own menu or action here, and there is no audit-log summary dashboard in this module.
  • There is no PDF or spreadsheet export of exceptions or attendance from this module. Inspection is through the Odoo views.
  • The cron interval is fixed at one hour in shipped data. Detection is point-in-time at each run, not real-time on check-in.
  • Requires the eh_hr_attendance_base module and the standard hr_attendance module; it does not function standalone.
Search

Odoo 17 attendance reporting, attendance exception detection, late check in detection Odoo, missed checkout alert, hr_attendance dashboard, attendance cron Odoo, employee attendance monitoring, Odoo Community attendance, attendance exceptions by severity, today attendance kanban, multi company attendance, ERP Heritage attendance suite

Work with ERP Heritage

Need this fitted to the way you work?

ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.

Build and tailor
Odoo Implementation, Customization and Development, scoped to your workflow.
Connect and move
Odoo Integration and Migration across systems and Odoo versions.
Run and support
Odoo Support and Training so your team stays productive after go live.
Plan and advise
Odoo Consultation and ERP Consulting, from discovery to roadmap.

We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.

Languages

Available in 19 languages

The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.

ArabicChinese (Simplified)Chinese (Traditional)DutchFrenchGermanHindiIndonesianItalianJapaneseKoreanPolishPortuguese (Brazil)RussianSpanishSwedishThaiTurkishVietnamese
ERP Heritage

Production-grade Odoo HR, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au
Developed by Odoo Customisation Services • LinkedIn

v1.0.0 · LGPL-3 · Odoo 17 Community

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with