IUM-EAM

v1.0.0

Employee 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