| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3197 |
| Technical Name |
wt_hrms_overtime |
| License | OPL-1 |
| Website | https://way4tech.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3197 |
| Technical Name |
wt_hrms_overtime |
| License | OPL-1 |
| Website | https://way4tech.com |
WT HRMS Overtime — Policy-Driven OT With Approval Workflow
A focused overtime-request module: per-policy weekday / weekend / holiday rate multipliers, planned vs. actual hours, configurable max-hours-per-week cap, and full multi-level approval through the WT HRMS approval chain.
overtime Odoo · OT request · OT policy · weekday weekend holiday rate · rate multiplier · pre-approved overtime · OT approval workflow · HR overtime · Odoo 19 · Odoo 18 · community edition · enterprise alternative · open hrms · HR software · HR automation · way4tech
Live Preview
A real screenshot from a working WT HRMS install on Odoo 19.
The Problem This Solves
Overtime is paid at a different rate on weekdays, weekends and holidays in almost every country — but vanilla Odoo has no policy model and no request workflow for it.
No OT request workflow
"Can I do 4h OT on Saturday?" turns into a Slack thread, an email, then a forgotten promise. Nothing reaches payroll.
No multiplier policy
Weekday 1.5x, weekend 2x, holiday 3x is industry-standard but Odoo has no place to record it — payroll has to hard-code rates per employee.
Planned vs. actual is invisible
Without recording planned vs. actual hours, abuse and burn-out go unmeasured and labour-law max-hours caps are impossible to enforce.
The Solution — Policies + Requests, Approval-Gated
Two models, one workflow: a Policy that defines the rates and caps, and a Request that an employee submits and management approves.
- ✓ Overtime Policy — weekday rate (default 1.5), weekend rate (2.0), holiday rate (3.0)
- ✓ Max hours / week cap field on policy — ready for labour-law compliance reporting
- ✓ Requires-pre-approval flag on policy
- ✓ Sequenced request numbers —
OT/YYYY/0001 - ✓ Three OT types — Weekday / Weekend / Holiday — drive the correct multiplier automatically
- ✓ Computed rate multiplier reads from the chosen policy & type — no manual entry
- ✓ Planned vs. actual hours tracked separately — planned locks at draft, actual editable post-approval
- ✓ DB-level CHECK constraints prevent negative planned/actual hours
- ✓ Submit / Approve / Reject / Cancel / Reset-to-Draft buttons gated by group
- ✓ Multi-step approval chain via WT HRMS approval mixin
- ✓ Search filters — Approved, Pending, Weekday, Weekend, Holiday + group-by Employee/Status/Type
- ✓ List decoration — approved rows green, rejected red
- ✓ Overtime tab on the employee form showing every request
- ✓ mail.thread chatter + audit log on every request
- ✓ Multi-company aware with
_check_company_auto = True
Step-by-Step User Guide
Install the module
Install WT HRMS Overtime from Apps. wt_hrms_core installs automatically.
Define overtime policies
Open WT HRMS → Configuration → Overtime Policies. Create one policy per workforce segment (Standard, Field Ops, Drivers, â¦) with weekday rate, weekend rate, holiday rate and the per-week max-hours cap.
(Optional) Configure an approval chain
In WT HRMS → Configuration → Approval Chains, create a chain for wt.hrms.overtime.request with steps such as Manager → HR Manager. Without a chain, submitted requests auto-approve.
Employee raises an OT request
Open WT HRMS → Overtime and click New. Pick employee, date, the OT type (weekday/weekend/holiday), the policy, planned hours and a reason — rate multiplier auto-fills. Click Submit.
Manager approves
An HR Manager opens the request, reviews planned hours and reason, and clicks Approve or Reject. Rejected and cancelled requests can be reset to draft and re-submitted.
Capture actual hours & feed payroll
After the OT happens, the actual-hours field can be filled in (it stays editable post-approval). When wt_hrms_payroll is installed, payroll rules consume actual_hours à rate_multiplier à hourly_rate directly off the request.
Marquee Features
Three-Tier Rate Policy
Weekday / Weekend / Holiday multipliers per policy — defaults to 1.5/2.0/3.0 but tweakable per workforce segment.
Auto Rate Multiplier
Computed field reads policy + chosen OT type — no manual entry, no opportunity for typos.
Planned vs. Actual
Planned hours lock once the request leaves Draft; actual hours stay editable so you can record what really happened.
Sequenced & Tracked
OT/YYYY/0001 reference, mail.thread chatter, full audit log via WT HRMS approval log.
Approval Chain
Multi-level workflow with conditional steps — Manager → HR Manager → specific user, all configurable.
Built-in Filters
Approved, Pending, Weekday, Weekend, Holiday filters + Employee/Status/Type group-bys ready in the search view.
Employee Form Tab
A dedicated Overtime tab on every hr.employee form lists all OT requests for that person.
Pre-Approval Flag
Policies can be flagged as requiring pre-approval — a hook for ops dashboards and policy enforcement.
DB-Level Safety
CHECK constraints reject negative planned/actual hours at the database layer — no chance of bad data slipping through.
Compatibility & Requirements
| Odoo Edition | Community & Enterprise |
| Odoo Version | 19.0 |
| Module Dependencies | wt_hrms_core (auto-installed) |
| Python Packages | None |
| External Services | None |
| Security Groups Used | base.group_user (request own), hr.group_hr_manager (approve, configure) |
About Waqas Riasat & Way4Tech
We build Odoo modules that fix real business pain — not nice-to-have features. The WT HRMS suite is a Community-only HR + Payroll replacement that we use ourselves and ship with hand-tested upgrade paths.
way4tech.com · info@way4tech.com · WhatsApp +92 315 411 4748
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module