| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 2783 |
| Technical Name |
wt_hrms_expense |
| License | OPL-1 |
| Website | https://way4tech.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 2783 |
| Technical Name |
wt_hrms_expense |
| License | OPL-1 |
| Website | https://way4tech.com |
WT HRMS Expense — Categorised Claims, Receipts & Approval Sheets
A community-friendly expense module: pre-seeded categories, single-line claims with receipt attachments, batch expense sheets, multi-level approval, and per-record currency — without depending on Odoo Enterprise's hr_expense.
employee expenses · expense claims · expense sheets · receipt attachment · expense categories · expense approval · reimbursement Odoo · HR expense community · cash vs bank transfer · 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
Odoo Community has no expense module. Teams resort to Excel, Google Forms, or worse, cash envelopes — and reimbursement audits become nightmares.
Community has nothing
Odoo's hr_expense is Enterprise-only. Community users have to either pay or duct-tape email + Excel.
No receipt evidence
Without an attachment field on the claim itself, receipts pile up in WhatsApp threads — impossible to audit, easy to lose.
Approving 12 claims one by one
Without a sheet to bundle a trip's worth of claims, each line drags through approval separately and finance can't pay one transfer for the trip.
The Solution — Three Models, Pre-Seeded, Approval-Driven
Categories, individual expense lines and a parent sheet to batch them — all wired through the WT HRMS approval engine.
- ✓ 8 pre-seeded categories — Travel, Meals, Accommodation, Transportation, Office Supplies, Communication, Training, Other
- ✓ Add your own categories — name, code, active flag
- ✓ Single-line expense claim — employee, date, category, amount, description
- ✓ Receipt attachment field with filename — PDFs, photos, scans — stored as Odoo attachment
- ✓ Per-claim currency — multi-currency-friendly
- ✓ Sequenced numbering —
EXP/YYYY/0001 - ✓ Expense Sheet — bundle multiple claims (e.g. one trip) into a single approvable record
- ✓ Auto-totalled sheet —
total_amount= sum of child expense amounts - ✓ Sheet sequencing —
EXPSH/YYYY/0001 - ✓ Payment-mode field — Cash or Bank Transfer
- ✓ Submit / Approve / Reject / Cancel / Reset-to-Draft on both expense and sheet
- ✓ Multi-step approval chain via WT HRMS approval mixin
- ✓ Search filters — Approved / Pending + group-by Employee / Category / Status
- ✓ List decoration — approved rows green, rejected red
- ✓ One2many on hr.employee — employee form shows all that person's expenses
- ✓ CHECK constraint rejects negative amounts at the DB layer
- ✓ mail.thread chatter & multi-company aware
Step-by-Step User Guide
Install the module
Install WT HRMS Expense from Apps. wt_hrms_core installs automatically and the 8 default categories are seeded immediately.
Tune your categories
Open WT HRMS → Configuration → Expense Categories. Add new ones (Client Entertainment, Subscriptions, â¦), retire ones you don't need by clearing the Active flag.
Employee logs an expense
Open WT HRMS → Expenses → My Expenses, click New. Pick category, amount, date, attach the receipt, and write a description. Click Submit — the claim flows through the approval chain.
(Optional) Bundle into a sheet
For a trip or month-end batch, open WT HRMS → Expenses → Expense Sheets, create a sheet, drop multiple expense lines into it, choose payment mode (Cash / Bank Transfer). Total auto-sums and the whole sheet goes through approval as one record.
Manager approves or rejects
An HR Manager opens the request, downloads the receipt, then clicks Approve or Reject. Cancelled / rejected items can be reset to draft and re-submitted.
Reimburse
Approved sheets show the chosen payment mode and total — finance pays out and the chatter records the result. The expense lives forever on the employee form's expenses tab.
Marquee Features
Pre-Seeded Categories
8 categories (TRAVEL, MEALS, ACCOM, TRANS, OFFICE, COMM, TRAIN, OTHER) seeded with proper codes for reporting.
Receipt Attachment
Native Odoo binary attachment field with filename — readonly once approved so the receipt is locked into the audit trail.
Expense Sheets
Group multiple expenses into one sheet with auto-totalled amount and a single approval — perfect for trips and month-end batches.
Two Payment Modes
Cash or Bank Transfer on every sheet — finance teams know exactly how to disburse before they open the form.
Multi-Currency
Per-record currency on every claim — record what was actually spent abroad in foreign currency without losing fidelity.
Approval Chain
Multi-level workflow with full audit log — same engine as Loans, Advances and Lifecycle.
Sequenced References
Lines are EXP/YYYY/0001, sheets are EXPSH/YYYY/0001 — clean, distinguishable, audit-ready.
Built-in Filters
Approved / Pending filters and Employee / Category / Status group-bys ready in both expense and sheet search views.
Employee Tab
A One2many on hr.employee means every employee's full expense history is one click away on their HR profile.
Compatibility & Requirements
| Odoo Edition | Community & Enterprise (does NOT depend on Enterprise hr_expense) |
| Odoo Version | 19.0 |
| Module Dependencies | wt_hrms_core (auto-installed) |
| Python Packages | None |
| External Services | None |
| Security Groups Used | base.group_user (own claims), hr.group_hr_manager (approve, configure) |
About Waqas Riasat & Way4Tech
We build Odoo modules that fix real business pain — not nice-to-have features. The WT HRMS suite is a Community-only HR + Payroll replacement that we use ourselves and ship with hand-tested upgrade paths.
way4tech.com · info@way4tech.com · WhatsApp +92 315 411 4748
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