Skip to Content

Timesheet Approval & OT

102.90 102.90

Instant digital delivery after payment confirmation.
License: OPL-1, every download is watermarked.
Terms and Conditions
Compatible with Odoo 18.0 · 19.0
OPL-1 license · Odoo 18.0 & 19.0
Timesheet Approval & OT for Odoo — preview banner

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

Operations manager paying time-and-a-half after 40 hours and double-time on weekends via banded rules.
HR approving weekly timesheets through a submit-then-manager-sign-off chain with rejection reasons.
Payroll administrator exporting locked, approved hours as ready-to-import regular and overtime lines.
Professional-services team turning logged project time into payable hours without manual reconciliation.
UK employer checking each worker's effective rate against the National Minimum Wage before payroll runs.
Field-services supervisor reviewing the band breakdown of a crew's overtime for the week.

Screenshots

Timesheet Approval & OT — Overtime Rules in Odoo

Overtime Rules

Timesheet Approval & OT — Timesheet Sheets in Odoo

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: OPL-1
  • Languages: English
  • Author: Pokutsoft
  • Dependencies: hr_timesheet
  • Support: support@pokutsoft.com

Update date: 2026-07-02