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. Employees
  3. EH HR Custody v 19.0
  4. Sales Conditions FAQ

EH HR Custody

by ERP Heritage https://erpheritage.com.au
Odoo
v 19.0 Third Party 22
Download for v 19.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 1325
Technical Name eh_hr_custody
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 Custody

Company assets handed to employees, assigned and returned on an audited workflow.

Free · LGPL-3v 1.0.0LGPL-3v1.0.0
Assign and return
Overdue flag
Return condition
Hash-chained audit
Multi-company safe

Why this module

EH HR Custody

01 / WORKFLOW

A real handover lifecycle

Every record moves through Draft, Assigned, Returned, or Cancelled on the shared workflow engine. The buttons enforce the path: you cannot return what was never assigned, and a returned or cancelled record is final and refuses any further transition. The states and the order between them are configuration, not hard-coded Python.

02 / AUDIT

A history you can prove

Assignment, return, condition, dates, employee, and value are written to an append-only, hash-chained audit log. Each row links to the one before it by sha256, so an edit after the fact is detectable on a chain walk. You can show who handed out which asset, and when it came back, without bolting on extra tooling.

03 / OWNERSHIP

Yours, and self-hosted

LGPL-3 source on your own server. No per-user fee, no usage cap, no phone-home. Install only this module and it pulls just its platform dependencies, or add it to the full EH HR Platform you already run. Either way the custody data lives in your database beside the rest of HR.

Day in the life

An IT coordinator issues a laptop, then chases it back.

A new starter is handed a laptop worth 1,500. The coordinator opens a custody record, picks the employee, names the asset, sets an expected return date, and clicks Assign. The record stamps an automatic reference like CUST/2026/00042 and moves to Assigned, with the move written to the audit chain. Weeks later the expected date passes and the asset is not back, so the record flags itself overdue on the list view. When the laptop is finally returned, one click stamps the actual return date for that day, opens the condition field (Good, Fair, Damaged, or Lost) and the return notes, and closes the record as Returned. The whole handover, including who did each step, is reconstructable from the hash-chained log, and none of it touched a side spreadsheet.

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.

AUDIT . HASH CHAIN

Each audit row stores the sha256 of the previous row plus its own fields, so any edit that does not recompute the entire downstream chain is caught by a verify walk. Recordsets and dates in the payload are coerced identically on both the stored column and the hash material, so the chain never forks on a serialization quirk.

CONCURRENCY . LOCK

Audit appends take a transaction-scoped Postgres advisory lock before reading the chain tail, so two custody actions committing at once cannot read the same tail and fork the log. The lock releases automatically on commit or rollback.

WORKFLOW . FINAL STATE

Returned and Cancelled are marked final. The engine refuses any further transition out of a final state, even one a misconfigured definition might declare, so a closed custody record cannot be silently reopened or re-returned.

MULTI-COMPANY

Every custody record carries a required company and defaults to the active company. A write that tries to move a record into a company the user does not belong to is refused, even under sudo, unless an explicit audited override is set, and the elevation is written to the audit log with the full list of affected ids.

RETURN . IDEMPOTENT DATE

The return action stamps the actual return date to today only when it is still blank, so a back-dated return entered by hand is preserved rather than overwritten on the closing click.

PERMISSIONS . TRANSITION GUARD

Assign, return, and cancel are each gated to the HR Officer group at the engine level, not just hidden in the view. A user without the group is blocked from firing the transition even by calling the method directly.

What is inside

Built to do the job, end to end.

  • One model, eh.hr.custody. A single record per asset handout, holding the employee, asset name, free-text description, expected and actual return dates, return condition, return notes, an estimated value, and a live overdue flag. References are auto-numbered from a yearly sequence (CUST/2026/00001) the first time you save.
  • Workflow as data, not code. Draft, Assigned, Returned, and Cancelled, with the Assign, Return, and Cancel transitions, ship as workflow definition records on the eh_hr_engine_workflow engine. The status bar and header buttons are driven from that definition, so an administrator can re-shape the lifecycle without a developer.
  • Audit, company-scope, and chatter mixins. The model rides three platform mixins: the audited mixin for hash-chained change capture, the company-aware mixin for strict multi-company isolation, and mail.thread for the standard chatter and follower trail on every record.
  • Security and menu. HR Admin has full control, HR Manager can read, write, and create but not delete, and self-service employees get read-only visibility. The Custody menu sits under HR requests, scoped to the HR Officer group. Four automated tests cover defaults, the assign-return flow, the return date stamp, and the overdue flag.

Honest about the edges

What this does not do, so nothing surprises you.

  • This is a custody register, not an asset depreciation system. The value field is a plain estimate with no depreciation, book value, or accounting posting; pair it with an asset accounting module if you need those.
  • Assets are described by free text (name, description) rather than drawn from a serial-numbered asset catalogue. There is no product registry or barcode scan in this module.
  • Custody transitions are not gated by an approval chain in this module. The underlying engine supports approval-gated transitions, but custody assign, return, and cancel proceed directly once the user is in the HR Officer group.
  • The overdue flag is a live calculation shown on the record and list view. There is no built-in cron or notification that emails an alert when an asset becomes overdue.
  • Self-service employees can view custody records but cannot create or edit them. Handouts and returns are recorded by HR or IT staff, not by the employee from a portal.
Search

HR asset custody, employee asset tracking Odoo, company asset assignment, equipment handover and return, laptop custody management, asset return condition, overdue asset tracking, company property management HR, Odoo 19 community HR, hash-chained audit trail, multi-company asset custody, self-hosted HR module, LGPL-3 Odoo app, EH HR Platform

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