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. Attendance
  3. EH HR Overtime v 18.0
  4. Sales Conditions FAQ

EH HR Overtime

by ERP Heritage https://erpheritage.com.au
Odoo
v 18.0 Third Party 25
Download for v 18.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 • Employees (hr)
• Attendances (hr_attendance)
• Discuss (mail)
Community Apps Dependencies Show
• EH HR Attendance Pro
• EH HR Compatibility
• EH HR Platform Core
• EH HR Workflow Engine
• EH HR Approval Engine
• EH HR Notify Engine
• EH HR Policy Engine
Lines of code 5264
Technical Name eh_hr_overtime
LicenseLGPL-3
Websitehttps://erpheritage.com.au
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
EH HR Platform

HR Overtime: Detect, Approve, Compensate

Overtime auto-detected from attendance, routed through a configurable approval workflow, and compensated as pay or time off in lieu.

Free · LGPL-3Odoo 18 CommunityLGPL-3v1.0.0
Auto-detect from attendance
Configurable approval workflow
Paid or time off in lieu
Data-driven multiplier
Idempotent generation

Why this module

HR Overtime: Detect, Approve, Compensate

Detection

Overtime that finds itself

A generation service reads the attendance day projection and creates one overtime entry for every day with positive overtime minutes, converting minutes to hours. Re-running it never duplicates: a per-day uniqueness constraint and a search guard keep generation idempotent over any date range.

Governance

Approval, not honour system

Every entry moves through a workflow whose states and transitions come from data. The employee submits, an HR manager approves, refuses, or marks it compensated. Each transition is group-gated and emitted to the platform audit log, so who advanced what is never in doubt.

Compensation

Pay or time in lieu, your rule

Choose paid out or time off in lieu per entry, and set the multiplier as a field rather than a buried constant. Compensated hours are computed and stored as hours times multiplier, so a 1.5x rule on two hours reads as three compensated hours on the list view.

Day in the life

From a long shift to a clean payroll-ready record

Friday a technician works ninety extra minutes; the attendance day projection records the overtime minutes. Over the weekend the generation service is run for the week and creates a single auto-sourced overtime entry of 1.5 hours, linked back to that attendance day. Monday the employee opens it, adds a reason, and submits. The HR manager reviews, sets the entry to time off in lieu, approves, and marks it compensated. The entry is now final, its multiplier and compensated hours visible at a glance, and every step from creation to completion sits in the append-only audit trail under the right company.

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 generation

The generation service guards every attendance day with a search-count check and the model carries a unique(attendance_day_id) constraint, so re-running over an overlapping date range creates zero duplicates and returns a count of new entries only.

Final-state lock

Compensated and Refused are marked final in the workflow definition. The engine refuses any further transition out of a final state, even one a misconfigured definition might declare, so a completed or refused entry cannot be quietly re-opened.

Group-gated transitions

Submit is restricted to the employee self group; approve, refuse, and mark-compensated are restricted to the HR manager group. A user outside a transition's allowed groups is rejected with a clear error rather than silently advancing the record.

Strict company scoping

Entries inherit the company-aware mixin: company is required and defaults to the active company, and a write that moves a record into a company the user does not belong to is refused unless an explicit, audited cross-company override is set.

Append-only audit

State, employee, date, hours, multiplier, and compensation changes are captured to a sha256 hash-chained audit log. Each row hashes the previous row, so any silent edit downstream breaks verify_chain and is detectable.

Non-negative hours

A check constraint rejects negative overtime hours at the database level, so neither manual entry nor a bad generation run can persist a negative figure.

Minutes to hours rounding

Auto-generated hours are computed from attendance overtime minutes divided by sixty and rounded to two decimals, so ninety recorded minutes lands as a clean 1.5 hours.

What is inside

Built to do the job, end to end.

  • Composes the platform engines. The overtime model inherits the workflow, audited, and company-aware mixins plus mail thread. It declares no state machine, approval, or audit logic of its own; the shared EH HR Platform engines do the work, which is why behaviour is consistent with the rest of the suite.
  • Data-defined workflow. Draft, Submitted, Approved, Compensated, and Refused states and their transitions ship as data records against a workflow definition keyed eh.hr.overtime. Steps and the groups allowed to fire them can be reconfigured without touching Python.
  • Attendance generation service. A registered service, eh.hr.overtime.generate, exposes generate_for_range(date_from, date_to, company) which scans attendance days with positive overtime minutes and creates linked entries. It is callable from a scheduler or by hand; this module ships the service, not a preconfigured cron.
  • Sequenced references and chatter. Each entry gets an automatic OT/year/number reference from a company-shared sequence, tracks field changes in the chatter via mail thread, and links back to its source attendance day for traceability.

Honest about the edges

What this does not do, so nothing surprises you.

  • Requires the EH HR Platform: depends on eh_hr_core, eh_hr_compat, eh_hr_engine_workflow, and eh_hr_attendance_pro. It is not a standalone overtime app.
  • Auto-detection reads the eh.hr.attendance.day projection from eh_hr_attendance_pro; without attendance data captured there, only manual entries are possible.
  • The generation service must be invoked by a scheduler or manually. This module ships the idempotent service but does not install its own scheduled job.
  • Overtime transitions are group-gated single-step approvals (employee submits, HR manager approves). The platform's multi-tier approval chains and self-approval guard are available in the engine but are not wired onto the overtime workflow in this module.
  • Compensation is recorded as an attribute (paid or time off in lieu) with a multiplier and computed compensated hours. The module does not itself post to payroll or create leave allocations.
  • Targets Odoo 18 Community.
Search

Odoo 18 overtime, overtime management Odoo, attendance overtime detection, overtime approval workflow, time off in lieu Odoo, paid overtime tracking, overtime multiplier, HR overtime module, employee overtime requests, overtime audit trail, Odoo Community HR, attendance to overtime, overtime compensation, multi-company overtime, ERP Heritage HR

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 ERP Heritage - Odoo Implementation • LinkedIn

v1.0.0 · LGPL-3 · Odoo 18 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