Skip to main content

Overview

GIMA provides a comprehensive asset management system that allows you to track physical assets, their locations, and inventory items across your organization.

Asset Data Model

Understanding the asset structure is essential for effective asset management:

Core Concepts

1

Articulos (Article Templates)

Define generic item types with brand, model, and specifications that can be instantiated as assets.
2

Activos (Assets)

Specific instances of articles with unique locations, values, and operational states.
3

Ubicaciones (Locations)

Physical locations where assets are deployed (building, floor, room).
4

Repuestos (Spare Parts)

Inventory items used for maintenance and repairs with stock tracking.

Asset Structure

Activo Model

Assets are the core entities in GIMA’s inventory system.
class Activo extends Model
{
    protected $fillable = [
        'articulo_id',    // Reference to article template
        'ubicacion_id',   // Physical location
        'estado',         // Operational status
        'valor',          // Asset value
    ];
}

Asset States

Assets can have the following operational states:
Estado: operativo
Description: Asset is fully operational and in active use
Label: Operativo

Creating Assets

Asset creation endpoints are typically restricted to admin and supervisor roles. Ensure you have the appropriate permissions.

Step 1: Create or Select Article Template

First, define the article type (e.g., air conditioner, computer, pump):
Article Example
{
  "tipo": "equipo_hvac",
  "marca": "Carrier",
  "modelo": "30GX-200",
  "descripcion": "Aire acondicionado central 20 ton"
}

Step 2: Create or Select Location

Define where the asset will be located:
Location Example
{
  "edificio": "Edificio Principal",
  "piso": "3",
  "salon": "Sala de Servidores"
}

Step 3: Create Asset Instance

Create a specific asset instance with the article and location:
Asset Example
{
  "articulo_id": 1,
  "ubicacion_id": 5,
  "estado": "operativo",
  "valor": 25000.00
}

Managing Locations

Ubicacion Model

Locations represent physical spaces in your organization:
class Ubicacion extends Model
{
    protected $fillable = [
        'edificio',  // Building name
        'piso',      // Floor number or name
        'salon'      // Room or area name
    ];
}

Example Location Structure

{
  "id": 1,
  "edificio": "Edificio Principal",
  "piso": "3",
  "salon": "Sala de Servidores",
  "created_at": "2024-01-15T10:00:00.000000Z",
  "updated_at": "2024-01-15T10:00:00.000000Z"
}

Inventory Management

Repuesto Model

Spare parts are tracked with stock levels and supplier information:
class Repuesto extends Model
{
    protected $fillable = [
        'proveedor_id',    // Supplier reference
        'direccion_id',    // Storage location
        'descripcion',     // Part description
        'codigo',          // Part number/SKU
        'stock',           // Current stock quantity
        'stock_minimo',    // Minimum stock threshold
        'costo',           // Unit cost
    ];
}

Example Spare Part Record

{
  "id": 15,
  "proveedor_id": 3,
  "direccion_id": 2,
  "descripcion": "Filtro de aire HVAC 20x25x1",
  "codigo": "FLT-HVAC-2025",
  "stock": 45.00,
  "stock_minimo": 10.00,
  "costo": 15.50,
  "created_at": "2024-01-10T08:00:00.000000Z",
  "updated_at": "2024-03-05T14:30:00.000000Z"
}
When stock falls below stock_minimo, the system should trigger reorder notifications. Implement monitoring to prevent stockouts of critical parts.

Article Types

Articulos Model

Article templates define reusable specifications:
class Articulos extends Model
{
    protected $fillable = [
        'tipo',          // Article type (enum)
        'marca',         // Brand/manufacturer
        'modelo',        // Model number
        'descripcion'    // Detailed description
    ];
}

Common Article Examples

{
  "id": 1,
  "tipo": "equipo_hvac",
  "marca": "Carrier",
  "modelo": "30GX-200",
  "descripcion": "Chiller enfriado por agua de 200 toneladas para sistema centralizado"
}

Asset Relationships

Assets maintain relationships with other entities in GIMA:

Maintenance Calendar

Each asset can have scheduled maintenance events:
$activo->calendarioMantenimientos()->get();
// Returns collection of CalendarioMantenimiento records

Maintenance History

Track all maintenance work performed on an asset:
$activo->mantenimientos()->get();
// Returns collection of Mantenimiento records

Failure Reports

View all failure reports associated with an asset:
$activo->reportes()->get();
// Returns collection of Reporte records

Asset Queries

Common queries for asset management:
// Find all assets in a specific location
$ubicacion = Ubicacion::find($ubicacion_id);
$activos = $ubicacion->activos;

// With full details
$activos = Ubicacion::with(['activos.articulo'])
    ->find($ubicacion_id)
    ->activos;

Best Practices

1

Maintain accurate location data

Ensure location information is up-to-date when assets are moved. Accurate location data is critical for maintenance scheduling and emergency response.
2

Track asset values

Record initial asset values and update them during major repairs or upgrades. This data is essential for financial reporting and insurance.
3

Use consistent naming conventions

Establish standard naming conventions for buildings, floors, and rooms to ensure consistency across the organization.
4

Monitor spare part inventory

Regularly check stock levels against minimum thresholds. Set up automated alerts when inventory falls below critical levels.
5

Document asset specifications

Include detailed descriptions in article templates to help maintenance technicians quickly identify correct parts and procedures.

Common Workflows

Adding a New Asset

  1. Create or locate the article template (Articulos)
  2. Create or locate the physical location (Ubicacion)
  3. Create the asset instance (Activo) linking article and location
  4. Set initial estado to “operativo”
  5. Record the asset valor for financial tracking
  6. Schedule preventive maintenance in CalendarioMantenimiento

Moving an Asset

  1. Identify the asset by ID
  2. Verify the new location exists
  3. Update the asset’s ubicacion_id
  4. Update any scheduled maintenance records if technician assignments need changes
  5. Document the move in audit logs

Decommissioning an Asset

  1. Update asset estado to “baja”
  2. Cancel any pending maintenance schedules
  3. Close or reassign open maintenance work orders
  4. Update inventory records if asset contains recoverable parts
  5. Archive asset documentation
Asset management operations typically require supervisor or admin roles. Ensure proper authorization checks are in place before allowing asset creation, updates, or deletion.

Build docs developers (and LLMs) love