Skip to main content

What is Asset Management?

The Asset Management module in MLM CMMS provides a comprehensive system for tracking physical equipment, machinery, and infrastructure across your organization. Assets are the foundation of your maintenance operations, linking work orders, preventive maintenance schedules, and maintenance history in one centralized location.
Assets in MLM CMMS are permission-protected. Users need either assets:read or assets:full_access permissions to access the asset module.

Key Features

Asset Registry

Maintain a complete inventory of all equipment with detailed specifications, including serial numbers, models, purchase dates, and warranty information.

Status Tracking

Monitor asset status in real-time: Operational, In Maintenance, Out of Service, or Retired.

Preventive Maintenance

Configure automated preventive maintenance schedules with customizable frequencies and auto-generated work orders.

Maintenance History

Track complete maintenance history including labor costs, parts costs, downtime, and linked work orders.

Asset Data Model

Each asset in the system contains the following core information:

Basic Information

  • Code: Unique identifier for the asset (e.g., PUMP-001)
  • Name: Descriptive name of the asset
  • Description: Detailed description of the asset and its purpose
  • Category: Asset classification (defined in asset categories)
  • Asset Type: Custom type field for additional classification
  • Location: Physical location where the asset is installed

Technical Specifications

  • Manufacturer: Equipment manufacturer
  • Model: Model number or designation
  • Serial Number: Manufacturer’s serial number
  • Asset Tag: Internal identification tag

Financial Information

  • Purchase Date: Date the asset was acquired
  • Install Date: Date the asset was put into service
  • Purchase Cost: Initial acquisition cost
  • Salvage Value: Estimated residual value
  • Warranty End Date: Expiration date of warranty coverage

Operational Data

  • Status: Current operational status
    • OPERATIVO (Operational)
    • EN_MANTENIMIENTO (In Maintenance)
    • FUERA_DE_SERVICIO (Out of Service)
    • RETIRADO (Retired)
  • Criticality: Rating from 1 (Very Low) to 5 (Critical)
  • Is Active: Boolean flag for soft deletion
Assets are never hard-deleted from the database. Use the is_active flag to deactivate assets instead of deleting them to preserve historical data.

Asset Views

The system provides specialized views for different use cases:

v_assets View

The v_assets view (defined in src/services/assetsService.ts:47-53) enriches asset data with:
  • Location name and code (joined from locations table)
  • Category name (joined from asset_categories table)
  • Complete preventive maintenance plan details
  • Next scheduled maintenance date
  • Last generated work order information
// Example: Fetching assets with location and category info
import { getAssets } from '@/services/assetsService';

const assets = await getAssets();
// Returns AssetView[] with location_name, category_name, and preventive plan data

Asset Criticality

Asset criticality helps prioritize maintenance activities and resource allocation:
1

Level 1 - Very Low

Non-essential equipment with minimal impact on operations
2

Level 2 - Low

Equipment with minor operational impact
3

Level 3 - Medium

Standard equipment with moderate operational importance (default)
4

Level 4 - High

Critical equipment requiring priority attention
5

Level 5 - Critical

Mission-critical equipment where failure causes immediate operational disruption

Status History Tracking

Every status change is automatically logged in the asset_status_history table (see src/services/assetsService.ts:179-220). This creates an audit trail showing:
  • Previous status (from_status)
  • New status (to_status)
  • Timestamp of change
  • User who made the change
  • Optional notes explaining the change
// Example: Changing asset status with history tracking
import { changeAssetStatus } from '@/services/assetsService';

const result = await changeAssetStatus({
  asset_id: 123,
  to_status: 'EN_MANTENIMIENTO',
  note: 'Scheduled preventive maintenance'
});

// Returns both updated asset and history record
console.log(result.asset.status); // 'EN_MANTENIMIENTO'
console.log(result.history.changed_at); // ISO timestamp

Asset-Work Order Relationship

Assets are linked to work orders through the ticket_assets junction table, enabling:
  • Many-to-many relationships: One work order can affect multiple assets
  • Primary asset designation: Mark the main asset for a work order
  • Automatic maintenance logging: Work order associations create maintenance log entries
See the Tracking Assets page for implementation details.

Permissions Required

Access to asset features is controlled by RBAC permissions:
PermissionLevelDescription
assets:readRead-onlyView assets and their details
assets:full_accessFull accessCreate, update, and manage all asset data
The asset module checks permissions on page load (src/pages/inventory/AssetsPage.tsx:17). Users without proper permissions see a restricted access message.

Next Steps

Track Assets

Learn how to create assets, link them to work orders, and manage maintenance history

Asset Categories

Organize your assets with categories for better classification and reporting