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. Human Resources Payroll
  3. EH HR Gratuity v 19.0
  4. Sales Conditions FAQ

EH HR Gratuity

by ERP Heritage https://erpheritage.com.au
Odoo
v 19.0 Third Party 25
Download for v 19.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)
• Discuss (mail)
Community Apps Dependencies Show
• EH HR Compatibility
• EH HR Platform Core
• EH HR Workflow Engine
Lines of code 1354
Technical Name eh_hr_gratuity
LicenseLGPL-3
Websitehttps://erpheritage.com.au
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
ERP Heritage HR Platform

EH HR Gratuity

End-of-service gratuity computed, approved, and settled on a configurable, audited HR workflow.

Free · LGPL-3FreeLGPL-3v1.0.0
Gratuity formula
4-step workflow
Hash-chained audit
Per-step approvals
Multi-company safe

Why this module

EH HR Gratuity

TRANSPARENT

A formula you can read

The payout is (basic salary / 30) times gratuity days per year times years of service, computed and stored on every change. Days per year is a per-record value (default 21), so you set the accrual basis instead of trusting a hidden constant.

GOVERNED

Settlement that is approved, not just typed

Each record walks a draft, computed, approved, paid lifecycle. Compute and cancel sit with HR Officers, approve and mark-paid with HR Admins. The states and transitions are data records, so the ladder can be reshaped without touching Python.

DEFENSIBLE

Every change is on the record

State, employee, years of service, basic salary, days per year, and the computed amount are written to an append-only, SHA-256 hash-chained audit log. A built-in chain check flags any row that was altered after the fact, which is what a termination payout dispute needs.

Day in the life

Settling a leaver, start to finish

An HR Officer opens a gratuity, picks the employee, and enters years of service and basic salary. The amount computes live from the days-per-year basis. They press Compute and the record locks into the computed state. An HR Admin reviews and Approves, then marks it Paid once payroll has released the funds. Paid is final: no quiet edits, no re-opening, no transition out of it. Every step, and every figure behind it, is on the chatter and in the audit chain.

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.

Final-state lock

Once a gratuity is Paid or Cancelled, the workflow engine refuses any further transition, even one a misconfigured definition might declare from it. The terminal marker is authoritative.

Self-approval guard

When a transition is approval-gated, the engine captures the real submitter before it elevates to sudo, so the user who fired the request cannot later approve their own request even if they hold an approver group.

Cross-company refusal

company_id is required and defaults to the active company. Writing a gratuity into a company the user does not belong to is rejected, even under sudo, unless an explicit audited override context is set, and the elevation is logged with every affected record id.

Audit advisory lock

Audit appends take a transaction-scoped Postgres advisory lock so concurrent writers cannot read the same chain tail and fork it. Hashes stay strictly ordered under load.

Wrong-state transition

A transition is only allowed from its declared source state and only for users in its allowed groups. Approving a draft, or paying something not yet approved, raises a clear error instead of skipping steps.

Non-negative guard

A database CHECK constraint rejects negative years of service or negative basic salary, so a fat-fingered minus sign cannot produce a nonsense settlement.

What is inside

Built to do the job, end to end.

  • The gratuity record. eh.hr.gratuity holds the employee, computation date, years of service, basic salary, days-per-year basis, and the stored computed amount. References auto-number as GRAT/<year>/00001 from a shared sequence. List and form views, a statusbar, and a chatter come ready to use under HR Records.
  • Configurable workflow. States (draft, computed, approved, paid, cancelled) and the transitions between them are data records on the platform workflow engine, each carrying its own allowed groups. You can relabel steps or change who may act without editing code.
  • Audit and company mixins. The record inherits the platform audited mixin and the strict company-aware mixin. Creates, writes, and deletes emit hash-chained audit rows; company scope is enforced on create and write. This module owns no audit or workflow code of its own, it consumes the shared engine.

Honest about the edges

What this does not do, so nothing surprises you.

  • Computation uses a single days-per-year basis per record (default 21) and a flat years-of-service input. It does not ship country-specific statutory gratuity tables, banded accrual rates, or partial-year proration logic; enter the basis and service figure that your policy or jurisdiction requires.
  • Mark paid records the settlement state in the workflow. It does not post a journal entry or payment into Odoo Accounting and does not generate a payslip or PDF certificate.
  • There is no scheduled job or wizard in this module; gratuities are created and advanced manually by authorised HR users.
  • Requires the EH HR Platform modules (eh_hr_core, eh_hr_compat, eh_hr_engine_workflow) and Odoo HR. It is a settlement record on that platform, not a standalone payroll engine.
Search

end of service gratuity odoo, EOSB odoo 19, gratuity calculation odoo, terminal benefits HR, final settlement payroll, employee offboarding odoo, severance pay module, odoo HR workflow approval, audited gratuity trail, multi company HR odoo, Odoo 19 Community HR, gratuity settlement workflow

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 Implementation Australia • LinkedIn

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