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

EH HR Loan

by ERP Heritage https://erpheritage.com.au
Odoo
v 18.0 Third Party 34
Download for v 18.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 1424
Technical Name eh_hr_loan
LicenseLGPL-3
Websitehttps://erpheritage.com.au
Versions 16.0 17.0 18.0 19.0
ERP Heritage · HR Platform
EH HR Platform

EH HR Loan

Employee loans and salary advances with an auto-built repayment schedule, group-gated approvals, and a tamper-evident audit trail.

Free · LGPL-3Odoo 18 CommunityLGPL-3v1.0.0
Auto repayment schedule
Draft to disbursed workflow
Group-gated approvals
Tamper-evident audit trail
Strict multi-company scope

Why this module

EH HR Loan

Honest scope

Does loans well, claims nothing more

Records loans and advances, builds the repayment schedule, and tracks paid balance. It deliberately does not post to journals or run payroll deductions; the manifest is explicit that accounting integration is a future seam, not a shipped feature.

Real controls

Approvals enforced in the engine, not the UI

Transitions are gated by HR groups in the workflow definition: employees submit, managers approve or refuse, officers disburse and close. The check runs server-side in action_transition, so it holds whether the move comes from a button, code, or the engine.

Defensible records

Every change leaves a verifiable trace

State, employee, amount, interest rate, instalment count, and start date are written to a shared append-only audit log whose rows are SHA-256 hash-chained and serialized with a Postgres advisory lock, so silent edits are detectable by a chain walk.

Day in the life

From request to a tracked repayment plan

An employee opens a loan, enters the amount, interest rate, instalment count, and first due date, adds a reason for approvers, and submits. A manager reviews and approves or refuses; an HR officer disburses. On disbursement the module clears any prior lines and generates an even instalment schedule, one row per period from the start date forward. As repayments come in, officers mark instalments paid, and total paid and outstanding balance recompute automatically. Every transition and field change is recorded in the hash-chained audit log.

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.

Idempotent schedule

generate_schedule unlinks existing repayment lines before rebuilding, so re-running disbursement never leaves duplicate or stale instalments behind.

Final-state lock

Closed and refused are marked is_final in the workflow definition; the engine refuses any further transition from a final state even if a misconfigured definition declares one.

Serialized audit chain

Audit appends take a transaction-scoped Postgres advisory lock so concurrent writers cannot read the same tail and fork the hash chain; verify_chain walks the rows and returns the first broken one.

Strict multi-company

company_id is required and defaults to the active company; a write that moves a loan to a company the user does not belong to is refused, and any permitted cross-company elevation is itself written to the audit log.

Group-gated transitions

Submit, approve, disburse, close, and refuse each carry an allowed-group set checked server-side, so an employee cannot self-approve a loan through the API by skipping the button.

Amount and instalment guard

A database CHECK constraint rejects negative loan amounts and non-positive instalment counts, so a zero-period or negative loan cannot be saved.

Per-year numbering

Loan references come from a company-shared sequence prefixed LOAN/<year>/ with five-digit padding, falling back to LOAN/AUTO only if the sequence is missing.

What is inside

Built to do the job, end to end.

  • Loan and repayment models. eh.hr.loan holds the principal, flat interest rate, instalment count, start date, and reason, with computed total repayable, total paid, and outstanding balance. eh.hr.loan.line holds each instalment with sequence, due date, amount, and a paid flag, cascade-deleted with its loan.
  • Engine-driven workflow. The loan inherits the platform workflow mixin and declares the eh.hr.loan workflow code. States and transitions live in a data-defined workflow definition, so the draft to submitted to approved to disbursed to closed path, plus the refuse branch, can be reconfigured without touching Python.
  • Audit and company mixins. Inheriting the audited and company-aware mixins gives the loan automatic before and after snapshots on write, create and unlink rows in the hash-chained audit log, and required company scoping with cross-company writes refused by default.
  • Schedule generation. On the disburse transition the bound post-action method generate_schedule spreads total repayable evenly across the instalment count, placing each due date one month apart from the start date using relativedelta.
  • Security and views. Access rights are defined for HR admin, officer, and self-service employee groups across both models. A list and form view with a statusbar, repayment schedule grid, and chatter ship ready to use under a dedicated Loans menu.
  • Tests. A post-install test suite covers default numbering and totals, interest folded into the repayable amount, schedule generation on disbursement, and balance recomputation when an instalment is marked paid.

Honest about the edges

What this does not do, so nothing surprises you.

  • No accounting or journal posting. The module is self-contained with no hard accounting dependency; repayments are tracked but not posted to the general ledger, and the manifest states this integration is a future seam.
  • No automatic payroll deduction. Instalments are marked paid manually by an HR officer; there is no link that withholds repayments from a payslip.
  • Flat interest only. Interest is a single flat percentage applied to the principal; there is no reducing-balance or compounding interest model.
  • Even instalments only. The generated schedule divides total repayable evenly across all periods on a monthly cadence; bespoke amounts, irregular intervals, balloon payments, or grace periods are not generated automatically.
  • No approval-chain escalation in this module. Transitions are gated by HR group membership, not by a multi-step approval chain with delegation or timeout escalation.
  • Depends on the EH HR Platform. Requires eh_hr_core, eh_hr_compat, eh_hr_engine_workflow, and hr; it is not a standalone loan app and uses the platform workflow and audit infrastructure.
  • Built for Odoo 18 Community.
Search

odoo employee loan, odoo hr loan management, salary advance odoo, loan repayment schedule odoo, odoo 18 hr loan, employee advance management, instalment loan tracking odoo, hr loan approval workflow, staff loan odoo community, odoo payroll loan, loan audit trail odoo, multi company hr loan

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 Customisation Services • LinkedIn

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