| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3247 |
| Technical Name |
wt_hrms_loans |
| License | OPL-1 |
| Website | https://way4tech.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 3247 |
| Technical Name |
wt_hrms_loans |
| License | OPL-1 |
| Website | https://way4tech.com |
WT HRMS Loans — Employee Loans with Amortization & Approval
Issue interest-bearing or interest-free employee loans with auto-generated installment schedules, multi-level approval chain, balance & total-paid tracking, and per-installment mark-as-paid.
employee loans · amortization schedule · loan installments · loan approval · payroll deduction · staff loans · hr loans · interest rate · loan balance · Odoo 19 · Odoo 18 · community edition · enterprise alternative · open hrms · HR software · HR automation · way4tech
Live Preview
A real screenshot from a working WT HRMS install on Odoo 19.
The Problem This Solves
Most companies issue staff loans informally on email. Three months in, nobody can remember the schedule, the balance, who approved it, or whether interest applies.
No real schedule
Loans live in spreadsheets. Installment dates drift. Last installment never quite balances because of rounding errors.
No approval trail
Who said yes? When? CFO never signed off, but somehow the money went out anyway.
No live balance
Employee asks "how much do I still owe?" — HR opens three tabs, asks Finance, comes back next week with an answer that's wrong by 2 installments.
The Solution — Schedule, Approval, Balance — In One Module
Set the amount, count, optional interest. Click Approve. Click Generate Installments — the schedule appears, with the rounding correctly trapped in the last installment. Tick Paid as each one clears.
- ✓ Sequential loan number — LOAN/2026/0001 via ir.sequence, never collides
- ✓ Loan amount + currency — uses company currency by default, multi-currency safe
- ✓ Configurable installment count — 1 to N, default 12
- ✓ Optional simple interest rate — annual % applied to total. Set 0 for interest-free.
- ✓ Auto-computed installment amount — recalculates as you change inputs in draft
- ✓ Multi-level approval — full approval engine via wt.hrms.approval.mixin
- ✓ Generate Installments button — available only after approval, builds the schedule from the start date
- ✓ Rounding-safe last installment — balances exactly to the loan total, no penny errors
- ✓ Mark Paid per installment — one-click button stamps paid_date
- ✓ Live Total Paid & Balance — stored computes update as installments are ticked
- ✓ Loans tab on the employee form — see all loans + remaining balances per person
- ✓ Search filters — Approved, Pending, group by Employee/Status
- ✓ Mail thread + activities — full chatter, followers, internal notes
- ✓ Reason field — the "why" stays attached to the loan
schedule
Step-by-Step User Guide
Install
Apps → install WT HRMS Loans. Pulls in WT HRMS Core if needed.
Configure approval chain
WT HRMS → Configuration → Approval Chains. New chain. Set Applies To = wt.hrms.loan. Add steps (e.g. Manager → HR Manager → CFO).
Create a loan
WT HRMS → Loans → New. Pick employee, set amount, installment count, interest rate, start date, reason. Click Submit.
Approve
Each approver in the chain clicks Approve on their step until state → Approved. Or Reject.
Generate installments
Click Generate Installments. The schedule appears under Installments, monthly from start date, last installment exact-balance.
Mark paid as you go
Each line has a Mark Paid button (icon: check). Click it as each payroll deducts. Total Paid + Balance update live.
Every Feature That Matters
Sequenced Loan Number
LOAN/year/0001 via ir.sequence — never collides, sortable by date, audit-friendly.
Optional Simple Interest
Annual % applied to total. Leave at 0% for interest-free welfare loans, set positive for paid loans.
Live Installment Calc
Amount, count, and rate combined into per-installment value — auto-recomputed in draft.
Multi-Level Approval
Inherits the WT HRMS approval mixin — configurable chain by model. Conditions and escalation supported.
Generate Installments
Post-approval button builds N monthly lines starting from the start date, sequenced and dated.
Rounding Safe
Last installment absorbs rounding so the schedule always balances exactly. No penny short, no penny over.
Per-Installment Mark Paid
One-click button on each line stamps paid_date. Triggers live recompute of Total Paid and Balance.
Live Balance
Stored compute on the loan: Total Paid + Balance always reflects current installment status — no lag.
Reason Field
Free text. Why was the loan asked for? Stays attached for audits, locked once submitted.
Loans Tab on Employee
Every loan for that person, with balance, in one tab. loan_count field counts only approved loans.
Color-Coded List
Approved → green, Rejected → red. Filters: Approved, Pending. Group by Employee or Status.
Mail Thread
Tracking on key fields. Full chatter, activities, followers — auditors love it.
Compatibility & Requirements
| Odoo Edition | Community & Enterprise |
| Odoo Version | 19.0 |
| Dependencies | wt_hrms_core (which depends on hr, mail, hr_contract) |
| Python Packages | python-dateutil (already shipped with Odoo) |
| External Services | None — runs entirely inside your Odoo instance |
About Waqas Riasat & Way4Tech
We build Odoo modules that fix real business pain — not nice-to-have features. Every WT HRMS module is hand-tested on a fresh Odoo 19 install before being published.
way4tech.com · info@way4tech.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module