HR Custody for Company Assets
Hand laptops, phones and tools to staff and get them back, with a hash-chained audit trail.
Why this module
HR Custody for Company Assets
Know who holds what
Every laptop, phone or tool handed out is one record tied to one employee, with an auto-numbered reference and a full history you can stand behind.
History you cannot quietly edit
Assignments, returns, condition and value changes land in an append-only, sha256 hash-chained audit log with a verify step, so tampering is detectable rather than invisible.
No bespoke workflow code
Custody owns no workflow or audit logic of its own. It runs on the shared platform engine, so its states, gating and audit behave exactly like the rest of your HR suite.
Day in the life
A laptop goes out and comes back
An HR officer opens a custody record for an employee, names the asset, sets a two week return date and assigns it. The record sits in Assigned. The date passes and it is not back yet, so it shows as overdue in the list. When the laptop is returned, the officer hits Return, the actual return date is stamped, condition is logged as Good, and the record closes as Returned. Each of those steps left a hash-chained audit row behind it.
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.
Once a record is Returned or Cancelled the engine refuses any further transition, even if a misconfigured definition declares one from that state. Final means final.
Audit rows are append-only and chained by sha256 over the previous row, with appends serialized by a Postgres transaction advisory lock so concurrent writes cannot interleave and break the chain. A verify step catches any edit that did not recompute the whole downstream chain.
company_id is required and defaults to the active company. Writing a record into a company the user is not a member of is rejected, and any allowed cross-company elevation is itself written to the audit log.
Pressing Return stamps todays date as the actual return date only when one was not already entered, so a back-dated manual return date is preserved.
Assign, Return and Cancel transitions are restricted to the HR Officer group. A user outside the allowed groups is refused the transition with a clear error rather than a silent no-op.
The overdue flag is computed live from the expected return date and the actual return date, so an item stops being overdue the moment it is returned and never the moment before.
What is inside
Built to do the job, end to end.
- Custody record. One eh.hr.custody record per asset, with employee, asset name, free-text description, assigned date, expected return date, actual return date, condition on return, return notes and an estimated value. Auto-numbered as CUST per year per sequence.
- Engine-driven workflow. States and transitions are defined as data and executed by the platform workflow engine. Draft to Assigned to Returned, with Cancel available from Draft. The statusbar and action buttons are driven by the definition, not hard-coded.
- Audit and company mixins. Custody inherits the platform audited and company-aware mixins, so state, employee, asset, dates, condition and value changes are captured to the hash-chained audit log and every record is strictly scoped to its owning company.
- Security and menu. Access rules for HR admin, manager and self-service employee groups, a Custody menu under HR requests for officers, and chatter on the form for day-to-day notes alongside the formal audit trail.
Honest about the edges
What this does not do, so nothing surprises you.
- This is a custody and handover tracker, not an asset catalog or inventory module. Assets are named on the custody record as free text, there is no per-asset master record, stock integration, barcode or serial validation.
- There is no depreciation, valuation accounting or financial posting. The value field is an estimate stored for reference only.
- Overdue items are flagged in the list view but there is no scheduled job, email reminder or escalation notification for them in this module.
- Transitions are gated to the HR Officer group. There is no employee self-service portal flow for staff to request or return their own assets, and custody transitions are not routed through an approval chain.
- Requires the EH HR Platform base modules (eh_hr_core, eh_hr_compat and eh_hr_engine_workflow). It is built for Odoo 18 Community and is not a standalone install.
company asset custody odoo, employee asset tracking, hr custody odoo 18, asset handover and return, laptop custody management, tamper evident audit trail hr, multi company asset tracking, overdue asset tracking, odoo community hr asset management, employee equipment tracking
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.
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.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Bring Employment Hero onboarding workflows, employee goals and contractor flags into Odoo Community as real recor...
End to end French B2B and B2G electronic invoicing for the DGFiP reform, generating Factur-X PDF/A-3 with embedde...
Accept ZainCash wallet payments in Iraq at your Odoo checkout, on the ZainCash Payment Gateway v2 with OAuth2, re...
Sync Employment Hero ATS recruitment job openings into the standard Odoo Recruitment app, mapping each opening on...
The New Zealand country pack for the ERP Heritage Employment Hero integration
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 1352 |
| Technical Name |
eh_hr_custody |
| License | LGPL-3 |
| Website | https://erpheritage.com.au |
Please log in to comment on this module