| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Project (project) • Discuss (mail) |
| Lines of code | 816 |
| Technical Name |
gb_uk_timesheet_approval_overtime_rules |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Project (project) • Discuss (mail) |
| Lines of code | 816 |
| Technical Name |
gb_uk_timesheet_approval_overtime_rules |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Timesheet Approval & OT
Overtime rules, approval chain and payroll lock/export for timesheets
Native Odoo timesheets have weak overtime handling and no real approval workflow, so managers reconcile hours by hand each period and payroll gets the figures late. This module adds a configurable, auditable approval and overtime engine on top of your existing account.analytic.line timesheet data, splitting regular versus overtime hours band by band with per-band multipliers. Sheets run a submit, approve and lock workflow, export payroll-ready lines, and flag any worker whose effective rate falls below the National Minimum Wage. It suits operations and HR managers, professional-services and field teams, and UK employers needing defensible approved hours for payroll and NMW compliance.
Key Features
Configurable overtime rule sets
The ts.overtime.rule model sets a daily_threshold, weekly_threshold and a basis of weekly, daily or greater-of, plus a rounding increment. ts.overtime.band rows define pay multipliers (1.5 time-and-a-half, 2.0 double-time) from a given overtime hour, with distinct start-hour validation.
Sheets built from real timesheet data
ts.sheet.action_compute reads the employee's account.analytic.line project timesheets for the week via _collect_timesheets, groups them by day and applies the rule. No parallel time record is kept, so the figures always trace back to actual logged time.
Band-by-band overtime split
split_overtime distributes each day's overtime across the configured bands, and ts.sheet.line._compute_band_split weights the hours by their multipliers into payable_hours and a readable band_summary. Weekly overtime is allocated to the latest days of the week first.
Submit, approve, reject workflow
The sheet state runs draft, submitted, approved, rejected, locked. action_submit schedules a to-do activity for the employee's manager, action_approve blocks self-approval unless the user is in group_ts_approval_manager, and action_reject records a reason, all tracked in the chatter.
Lock approved hours for payroll
action_lock moves an approved sheet to locked, and action_compute refuses to rebuild approved or locked sheets, so the hours feeding payroll cannot be silently changed after sign-off. Rejected or submitted sheets can be reset to draft for correction.
Payroll-ready export lines
get_payroll_lines returns one dict per pay category, a REGULAR line plus an OT_ line per band with hours, multiplier, rate and amount, and action_open_payroll_export launches the ts.payroll.export.wizard. get_week_summary gives a compact dashboard view of the week.
National Minimum Wage check
The sheet computes effective_rate as pay divided by hours actually worked and _compute_nmw flags nmw_breach and the nmw_shortfall against the nmw_reference_rate. action_check_nmw raises a clear warning when the effective rate falls below the statutory minimum.
Use Cases
Screenshots
Overtime Rules
Timesheet Sheets
Why Choose This Module
Native Odoo timesheets have weak overtime handling and no real approval workflow, so managers reconcile hours by hand each period. This module adds a configurable, auditable approval and overtime engine on top of your existing timesheet data, splitting regular vs overtime hours band by band and locking approved hours ready for payroll.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: LGPL-3
- Languages: 35+
- Author: Baris Genc
- Dependencies: hr_timesheet
- Support: odoo@gencbaris.com
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