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 18.0
  4. Sales Conditions FAQ

EH HR Gratuity

by ERP Heritage https://erpheritage.com.au
Odoo
v 18.0 Third Party 22
Download for v 18.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
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 1304
Technical Name eh_hr_gratuity
LicenseLGPL-3
Websitehttps://erpheritage.com.au
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 1304
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 paid on one audited workflow.

Free · LGPL-3v 1.0.0LGPL-3v1.0.0
End-of-service gratuity
Configurable days-per-year basis
Computed settlement amount
Draft to computed to approved to paid
Role-gated transitions

Why this module

EH HR Gratuity

Configure, do not code

The accrual basis is data

Days accrued per year of service is a field on the record, defaulting to 21. Change the basis per record without touching Python, and the amount recomputes from basic salary, years of service and that basis automatically.

Governed end to end

Four states, role-gated

A gratuity moves draft, computed, approved, paid, with cancel available from draft. The workflow engine refuses any transition that is not defined from the current state, locks the final states, and checks the user is in the allowed group before each step.

Provable history

Tamper-evident audit

Every create, write and cancel is written to an append-only, sha256 hash-chained log. State, employee, years, salary, the days basis and the computed amount are captured, and the chain can be verified on demand to show nothing was edited after the fact.

Day in the life

A leaver, settled on the record

An HR officer opens a gratuity for the departing employee, enters years of service and basic salary, and the settlement amount computes from the days-per-year basis. The officer hits Compute to move it to computed; an HR administrator reviews and Approves, then marks it Paid once the money is out. Each step is permission-checked and written to the audit chain, so the final settlement is fully reconstructable from the trail rather than from a spreadsheet nobody kept.

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 reaches paid or cancelled, the engine treats it as final and refuses any further transition, even one a misconfigured definition might declare from it.

Transition guard

A transition only fires if it is defined from the record's current state. You cannot mark a draft paid, or approve a record that was never computed; the engine raises rather than silently advancing.

Role-gated steps

Compute and Cancel require the HR officer group; Approve and Mark paid require the HR administrator group. A user outside the allowed group is refused, and admin is the only bypass.

Chain serialization

Audit appends take a transaction-scoped Postgres advisory lock, so two concurrent saves cannot fork the hash chain; the lock releases automatically on commit or rollback.

Audit-only changes skipped

A write that does not actually change any captured field emits no audit row, so the trail records real edits rather than no-op saves.

Strict multi-company

Each gratuity is owned by a company, required on create. Moving a record into a company the user does not belong to is rejected, and any cross-company override is itself written to the audit log.

Non-negative inputs

A database check constraint refuses negative years of service or negative basic salary, so the computed amount cannot be driven below zero by bad input.

Stable references

Each record is auto-numbered from a year-prefixed sequence on create, with a fallback reference if the sequence is unavailable, so saved records always carry a non-default name.

What is inside

Built to do the job, end to end.

  • Model it adds. One model, eh.hr.gratuity, holding the employee, computation date, years of service, basic salary, the days-per-year basis and the computed gratuity amount, with chatter on the form.
  • The computation. gratuity_amount is a stored computed field equal to (basic_salary / 30) times days_per_year times years_of_service, recomputed whenever any of the three inputs changes.
  • Workflow as data. The draft, computed, approved, paid and cancelled states and their transitions ship as workflow-definition records, not hard-coded Python, so the path is inspectable and the engine enforces it.
  • Audit and company mixins. The model inherits the platform's audited mixin and strict company-aware mixin, so the hash-chained log and multi-company guards apply without any code living in this module.
  • Security and access. HR administrators get full access, HR officers read, write and create without delete, and HR managers get read-only, set in ir.model.access.csv.
  • Tests in the box. Automated tests cover the computed amount and defaults and the full draft to paid transition path, run as part of the platform suite.

Honest about the edges

What this does not do, so nothing surprises you.

  • The days-per-year basis defaults to 21 and is editable per record. The module does not ship country-specific gratuity rule tables, tiered slabs, or unpaid-leave deductions; the formula is a single straight-line accrual you supply inputs to.
  • Years of service is entered as a number on the record. The module does not auto-derive tenure from contract or joining dates.
  • Marking a gratuity paid is a workflow step that records the settlement. It does not post a journal entry, generate a payslip, or move money; integration with payroll or accounting is not included here.
  • The shipped gratuity workflow uses direct role-gated transitions. It does not wire in the multi-step approval-chain engine, so there is no N-step escalation ladder on this document type out of the box.
  • There is no scheduled job in this module; gratuity records are created and advanced by people, not by a cron.
Search

odoo gratuity, end of service gratuity odoo, EOSB odoo, gratuity calculation, end of service benefit, severance pay odoo, terminal benefits, employee final settlement, odoo 18 hr, offboarding settlement, leaver pay, gratuity workflow, hr platform odoo community, self-hosted hr odoo

ERP Heritage

Production-grade Odoo accounting, built to an engineering bar and documented honestly. Support: info@erpheritage.com.au
Developed by Odoo Implementation Australia

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