IUM-EAM
v1.0.0Employee Asset Management
Track physical assets across any holder type — employees, warehouses, departments — using a polymorphic model with full transition history and audit logging.
Quick Install
$composer require obelaw/ium-eam
PHP 8.2+ • Laravel 11+
All Features
Everything you need to track and manage physical assets across your organization, from creation to retirement.
Asset Lifecycle
Manage assets from the moment they enter inventory to the day they are retired. Every state transition is explicit, recorded, and traceable with a full audit trail.
- Statuses: available, assigned, maintenance, lost, retired
- Create with code, serial number, and purchase value
- One-call retirement with reason logging
- Return to pool by transferring to null holder
- AssetCreated, AssetRetired events fired automatically
Polymorphic Holders
Any Eloquent model can hold assets. Add the HasAssets trait to employees, warehouses, departments, or any custom model — no schema changes required.
- HasAssets trait — one line to enable on any model
- Auto-resolve status from config holder map
- receiveAsset() for direct trait-level transfers
- Morph map support to keep class names out of the DB
- InvalidHolderException guards unconfigured models
Transfer History
Every holder change is recorded as an immutable transition. Know exactly who held an asset, when, in what condition, and why it moved — without ever losing historical data.
- Full from/to holder recorded on every transfer
- Condition tracking: good, damaged, lost
- performed_by, reason, and notes fields
- AssetTransferred event on every move
- Query full history per asset in one call
Asset Categories
Organize assets into a self-referential category tree. Group laptops, vehicles, furniture, and tools into hierarchies that reflect your organization's real structure.
- Unlimited depth with parent_id self-reference
- Unique slug per category for clean querying
- Filter reports by category tree node
- Fluent create, find, and list API
- AssetCategoryDTO for typed data transfer
Reports
Query your asset inventory from every angle. Find overdue assets, track what each holder has, surface lost and damaged items, and pull transition timelines — all via a clean report API.
- Assets by holder, category, or status
- Overdue asset detection with AssetOverdue event
- Lost and damaged asset report
- Full transition history per asset
- heldBy() for direct holder inventory queries
Audit Log
Every create, update, transfer, and retirement is written to an immutable audit log. Replay the full history of any asset and know exactly who did what and when.
- Actions: created, updated, transferred, retired
- performed_by field on every log entry
- JSON payload snapshot per action
- Separate from transition history for clean separation
- Optional notes field per log entry
Native Integration
IUM-EAM plugs into the IUM ecosystem and works alongside any Eloquent model in your application.
Any Eloquent Model
Polymorphic Design
Add the HasAssets trait to employees, departments, warehouses, or any custom model to make it an asset holder instantly.
IUM-WMS
Warehouse Management
Use warehouse models directly as asset holders. Assets assigned to a warehouse automatically reflect the configured status.
Laravel Events
Event-Driven Hooks
AssetCreated, AssetTransferred, AssetRetired, and AssetOverdue events let you hook into the lifecycle from any listener.
Start with EAM
Read the full documentation for installation guides, code examples, and API reference.
Read EAM Docs