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

EH HR Gratuity

by ERP Heritage https://erpheritage.com.au
Odoo
v 17.0 Third Party 22
Download for v 17.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 and settled on an audited workflow.

Free · LGPL-3Odoo 17 CommunityLGPL-3v1.0.0
End-of-service gratuity
Draft to paid workflow
Hash-chained audit trail
Strict multi-company scope
Configurable days-per-year basis

Why this module

EH HR Gratuity

Honest math

One transparent formula

Gratuity is basic salary over 30, times days per year, times years of service. The result is a stored computed field, so it stays consistent on screen, in lists and in exports, and recomputes whenever an input changes.

Auditable

Every change is on the record

State, employee, years, salary, days-per-year and the computed amount are captured into an append-only, sha256 hash-chained audit log on create, write and unlink. A verify pass walks the chain and reports the first tampered row.

Governed

Right people, right step

Compute and cancel are gated to HR Officers, approve and mark-paid to HR Admins. Transitions are refused from the wrong state, and the paid and cancelled states are final, so a settled record cannot be quietly reopened.

Day in the life

From last working day to settled payout

An HR officer opens a gratuity record for a leaving employee, fills in years of service, basic salary and the days-per-year basis, and saves. A GRAT reference is generated automatically and the computed payout appears at once. The officer runs Compute to move the record to computed, and the audit log captures the snapshot. An HR admin reviews the figure, approves it, then marks it paid once settled. Each step is group-gated and final states are locked, so the paid record stands as a tamper-evident settlement on the audit trail.

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.

Concurrency

Audit appends are serialised by a transaction-scoped Postgres advisory lock, so two transactions writing gratuity events at once cannot read the same chain tail and fork the hash chain.

Idempotency

A reference is generated from the sequence only when the name is still New, so re-saving or copying a record never burns a second GRAT number or overwrites an existing one.

Multi-company

company_id is required and defaults to the active company. A cross-company write is refused even under sudo unless an explicit audited override context is set, and the override itself is logged with every affected record id.

Final states

Paid and cancelled are marked final in the workflow definition. Any further transition from a final state is refused, even one a misconfigured definition might declare.

State guard

A transition is only applied when it is defined from the record's current state and the user holds one of its allowed groups; otherwise it is rejected with a clear error rather than silently advancing.

Audit signal

A write that does not change any audited field emits no audit row, so the trail stays meaningful instead of filling with no-op edits, while create and unlink are always recorded.

Data integrity

A database CHECK constraint rejects negative years of service or negative basic salary, so the computed payout cannot be driven below zero by bad input.

What is inside

Built to do the job, end to end.

  • Gratuity record and formula. The eh.hr.gratuity model holds employee, computation date, years of service, basic salary and an integer days-per-year basis defaulting to 21. The gratuity amount is a stored computed field equal to basic salary over 30, times days per year, times years of service, recomputed on any input change.
  • Configurable workflow. States draft, computed, approved, paid and cancelled, and the transitions between them, are workflow definition records rather than code. The status bar and header buttons are driven from that definition, so the steps can be reconfigured without touching Python.
  • Append-only audit trail. Through the platform audited mixin, every create, write and unlink on a gratuity record is captured into eh.hr.audit.log with before and after snapshots, chained by sha256 over the previous row. No group is granted write or unlink rights on the log itself.
  • Strict company scope. The company-aware mixin makes company_id required, defaults it to the active company and forbids cross-company writes by default, with a logged, explicit override path for the rare legitimate case.
  • References, security and chatter. Records carry an auto-generated GRAT reference, an HR Officer and HR Admin access model, a menu under HR records, and a mail.thread chatter with field tracking on the key figures.

Honest about the edges

What this does not do, so nothing surprises you.

  • The days-per-year basis is a single value per record, defaulting to 21. The module does not model tiered schedules such as a different rate for the first years of service versus later years; adjust the basis per record where a different rate applies.
  • Years of service and basic salary are entered on the record, not derived. The module does not auto-calculate tenure from contract or join dates, nor pull the salary from a contract or payslip.
  • This module computes and records the settlement only. It does not post a journal entry, generate a payslip, or create a vendor or employee payment; mark paid is a workflow state, not an accounting action.
  • Transitions are gated by user group, not by a multi-step approval chain. The platform approval engine exists but is not wired into this module, so there is no escalation ladder or per-record approver routing here.
  • There is no scheduled job in this module; records are created and advanced by users, not by a cron.
  • Currency follows the company; the amount is a plain monetary figure with no built-in multi-currency conversion of the basic salary input.
Search

end of service gratuity odoo, eos gratuity, severance pay odoo 17, final pay calculation, gratuity calculator odoo, leaving entitlement hr, odoo 17 community hr, hr workflow approval, hash chained audit trail, multi company hr odoo, employee end of service settlement, days per year gratuity

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 17 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