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 Roster v 16.0
  4. Sales Conditions FAQ

Attendance Roster

by ERP Heritage https://www.erpheritage.com.au/
Odoo
v 16.0 Third Party 44
Download for v 16.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 Reports
• Attendance Suite Base
• EH HR Compatibility
Lines of code 2641
Technical Name eh_hr_attendance_roster
LicenseLGPL-3
Websitehttps://www.erpheritage.com.au/
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
Rostering and shift planning for Odoo 16 Community attendance

Attendance Roster for Odoo 16

Plan shifts from weekly templates, fill open shifts, approve swaps, and let the roster drive late detection and overtime, all on Community.

Free · LGPL-3Odoo 16 CommunityIdempotent generation cronv1.0.0
Weekly shift templates
Per-employee default template
Daily generation cron
Configurable horizon (default 28 days)
Open shifts and claim

Why this module

Attendance Roster for Odoo 16

Plan once

Templates become real shifts

Build a template as a row per active day of week with start, end, and break, set it as an employee's default, and the daily cron materialises concrete shifts up to your horizon. Re-running never duplicates a shift for the same employee and start.

Cover gaps

Open shifts and swaps

Leave a shift unassigned and it shows as an open shift staff can claim, blocked if they already have a shift at that moment. Swap requests route to a manager, and approval reassigns the shift while guarding against clashes and self-swaps.

Close the loop

The roster drives the numbers

A planned shift sharpens late detection: the cutoff becomes the shift start plus company grace instead of one company-wide time. The same windows drive overtime, daily hours beyond the shift plus ordinary hours over the weekly or fortnightly cap.

Day in the life

From weekly pattern to a costed week

A planner builds a shift template with Monday to Friday rows, nine to five, thirty minute break, and sets it as the default for the floor team. Overnight the generation cron creates four weeks of shifts per employee, skipping any that already exist. One person is away, so their shift is left open and a colleague claims it from the calendar; another asks to hand off Thursday, the team lead approves the swap and the shift moves across. When the week is worked, check-ins past each shift start plus grace are flagged late against the planned start, not a blanket time, and hours past the rostered window plus anything over the 38 hour weekly cap land as overtime on the right day.

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.

Idempotent regeneration

Generation is guarded twice: a SQL UNIQUE on (employee, start) and a pre-create search, so re-running the cron or widening the horizon never duplicates an existing shift.

Timezone correctness

Generation and late detection both localise to the company timezone, build the day window in local time, and store UTC, so shifts and cutoffs land on the correct calendar day across zones.

Clash guards

Claiming an open shift, or approving a swap, is blocked when the target already has a shift starting at that moment, surfacing a clear message instead of a raw constraint error.

Self-swap guard

A swap whose target is the same employee already on the shift is rejected at validation, so the request cannot resolve to a no-op reassignment.

Late-pass ownership

When the roster is installed it owns the whole late-detection pass and does not call super, avoiding double-flagging staff who arrived early for their shift but late versus the company default. Already-tagged check-ins are skipped, so re-runs do not duplicate exceptions.

Period overtime redistribution

Adding or editing an attendance recomputes its weekly or fortnightly siblings, so a later shift added to the period correctly pushes the overtime onto the last shift rather than an earlier one.

Multi-company scoping

Global record rules scope shift templates and shifts to the user's allowed companies, and a shift inherits its company from the assigned employee, falling back to the active company when open.

Empty template guard

A template with no day rows is refused both by the constraint and by an explicit check in create, covering the case where create vals omit the lines entirely.

What is inside

Built to do the job, end to end.

  • Models. eh.hr.shift.template and its day-pattern lines, eh.hr.roster.shift with planned, completed, missed, and cancelled states, and eh.hr.roster.swap for handover requests. hr.employee gains a default template and a scheduled-shifts list.
  • Generation and cron. A daily ir.cron calls the generation routine, which walks each company's active employees with a default template and creates shifts per matching day of week up to the horizon, in batches, idempotent on employee and start.
  • Roster-driven computes. hr.attendance gains a rostered-shift link and a roster overtime field computed from the covering shift: daily hours beyond the net rostered window plus the ordinary hours that tip the employee over the weekly or fortnightly cap.
  • Views and config. Calendar (week mode) and list views of shifts with status decorations, swap views, an employee default-template field, and settings for horizon and overtime basis on the company and config settings.
  • Security. Access rights for user, manager, admin, and auditor groups from the attendance base, plus global per-company record rules on templates and shifts.
  • Tests. Suites cover shift generation, templates, open-shift claim, swap approval and clash blocking, roster-driven daily and weekly overtime, and late detection with a roster present.

Honest about the edges

What this does not do, so nothing surprises you.

  • Generation creates shifts only for employees who have a default shift template set; employees without one are skipped.
  • Shift templates carry weekly day-of-week patterns; there is no calendar of public holidays, leave-aware suppression, or rotating multi-week cycles.
  • Late detection and overtime build on this suite's attendance base and reports modules and their company settings, not on Odoo's native working-schedule or Enterprise planning models.
  • Overtime uses a single weekly or fortnightly ordinary cap per company; it is not a full award interpreter with penalty rates, allowances, or per-classification rules.
  • The generation routine processes up to a batch limit per run; very large workforces with long horizons may need several cron passes to catch up.
  • Swap approval is a single manager step; there is no multi-level escalation ladder or delegation chain.
Search

Odoo 16 roster, shift planning Odoo Community, attendance roster, weekly shift template, open shift claim, shift swap approval, roster overtime, planned versus actual attendance, hr_attendance rostering, Community Edition planning alternative, work schedule Odoo, late detection roster

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 16 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