Seeds include: - 01-core-catalogs.sql: Units, currencies, taxes, banks, states (~100 records) - 02-users-profiles.sql: 12 roles, 50+ permissions, 12 demo users - 03-empresa-tenant.sql: Demo company with 2 branches, 4 warehouses - 04-proyectos-obras.sql: 3 projects, stages, lots, apartments - 05-presupuestos.sql: CMIC-based concepts, 5 budgets - 06-estimaciones.sql: Contracts, estimates, advances - 07-avances-calidad.sql: Progress, logbook, quality checklists - 08-hse.sql: PPE catalog, training, incidents - 09-finanzas.sql: Chart of accounts, CxP, CxC, balanced entries - 10-activos-documentos.sql: Assets, maintenance, documents Total: ~940 records for complete demo coverage Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
311 lines
17 KiB
PL/PgSQL
311 lines
17 KiB
PL/PgSQL
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- SEED 10: ACTIVOS Y DOCUMENTOS
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- Proyecto: ERP Construcción
|
|
-- Autor: Claude Opus 4.5
|
|
-- Fecha: 2026-02-03
|
|
-- Descripción: Equipos, maquinaria, mantenimientos, categorías y documentos
|
|
-- Dependencias: 03-empresa-tenant.sql, 04-proyectos-obras.sql
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
-- UUIDs: 00000000-0000-0000-000a-XXXXXXXXXXXX
|
|
|
|
BEGIN;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 1. CATEGORÍAS DE ACTIVOS
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO assets.asset_categories (
|
|
id, tenant_id, code, name, description, parent_id, is_active,
|
|
created_at
|
|
) VALUES
|
|
('00000000-0000-0000-000a-000000000001', '00000000-0000-0000-0003-000000000001',
|
|
'MAQ', 'Maquinaria Pesada', 'Equipos de excavación y movimiento de tierra', NULL, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000002', '00000000-0000-0000-0003-000000000001',
|
|
'VEH', 'Vehículos', 'Unidades de transporte', NULL, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000003', '00000000-0000-0000-0003-000000000001',
|
|
'HER', 'Herramienta', 'Herramienta menor y equipo portátil', NULL, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000004', '00000000-0000-0000-0003-000000000001',
|
|
'EQU', 'Equipo de Construcción', 'Equipo especializado de construcción', NULL, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000005', '00000000-0000-0000-0003-000000000001',
|
|
'OFI', 'Equipo de Oficina', 'Mobiliario y equipo de oficina', NULL, true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 2. ACTIVOS / EQUIPOS
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO assets.assets (
|
|
id, tenant_id, asset_code, name, category_id,
|
|
asset_type, status, ownership_type,
|
|
brand, model, serial_number, year_manufactured,
|
|
purchase_date, purchase_price,
|
|
current_hours, current_kilometers,
|
|
fuel_capacity, fuel_consumption_rate,
|
|
useful_life_years, depreciation_method,
|
|
current_project_id,
|
|
is_active, created_at, created_by
|
|
) VALUES
|
|
-- Maquinaria pesada
|
|
('00000000-0000-0000-000a-000000000101', '00000000-0000-0000-0003-000000000001',
|
|
'MAQ-001', 'Retroexcavadora CAT 420F2', '00000000-0000-0000-000a-000000000001',
|
|
'heavy_machinery', 'assigned', 'owned',
|
|
'Caterpillar', '420F2', 'CAT420F2-2022-12345', 2022,
|
|
'2022-06-15', 1850000.00,
|
|
2500, NULL, 200, 12.5, 10, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000102', '00000000-0000-0000-0003-000000000001',
|
|
'MAQ-002', 'Excavadora CAT 320', '00000000-0000-0000-000a-000000000001',
|
|
'heavy_machinery', 'assigned', 'owned',
|
|
'Caterpillar', '320', 'CAT320-2021-67890', 2021,
|
|
'2021-03-20', 3200000.00,
|
|
4200, NULL, 400, 25.0, 10, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000103', '00000000-0000-0000-0003-000000000001',
|
|
'MAQ-003', 'Cargador Frontal 966M', '00000000-0000-0000-000a-000000000001',
|
|
'heavy_machinery', 'available', 'leased',
|
|
'Caterpillar', '966M', 'CAT966M-2023-11111', 2023,
|
|
'2024-01-01', NULL,
|
|
800, NULL, 350, 22.0, NULL, NULL,
|
|
NULL,
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
-- Vehículos
|
|
('00000000-0000-0000-000a-000000000104', '00000000-0000-0000-0003-000000000001',
|
|
'VEH-001', 'Camioneta Nissan NP300', '00000000-0000-0000-000a-000000000002',
|
|
'vehicle', 'assigned', 'owned',
|
|
'Nissan', 'NP300 Frontier', 'NISSNP300-2023-XXXXX', 2023,
|
|
'2023-02-10', 450000.00,
|
|
NULL, 35000, 80, 10.5, 5, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000105', '00000000-0000-0000-0003-000000000001',
|
|
'VEH-002', 'Camión Volteo Kenworth', '00000000-0000-0000-000a-000000000002',
|
|
'vehicle', 'assigned', 'owned',
|
|
'Kenworth', 'T800', 'KENT800-2020-YYYYY', 2020,
|
|
'2020-08-15', 1200000.00,
|
|
NULL, 125000, 300, 3.5, 10, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
-- Equipo de construcción
|
|
('00000000-0000-0000-000a-000000000106', '00000000-0000-0000-0003-000000000001',
|
|
'EQU-001', 'Revolvedora de concreto', '00000000-0000-0000-000a-000000000004',
|
|
'light_equipment', 'assigned', 'owned',
|
|
'Cipsa', 'Ultra 10', 'CIPSA-U10-2022-001', 2022,
|
|
'2022-04-01', 85000.00,
|
|
1200, NULL, 15, 4.0, 8, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000107', '00000000-0000-0000-0003-000000000001',
|
|
'EQU-002', 'Vibrador de concreto', '00000000-0000-0000-000a-000000000004',
|
|
'light_equipment', 'assigned', 'owned',
|
|
'Wacker', 'M2500', 'WACKER-M2500-2023-002', 2023,
|
|
'2023-05-15', 25000.00,
|
|
600, NULL, NULL, 2.0, 5, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000108', '00000000-0000-0000-0003-000000000001',
|
|
'EQU-003', 'Placa vibradora', '00000000-0000-0000-000a-000000000004',
|
|
'light_equipment', 'available', 'owned',
|
|
'Wacker', 'WP1550', 'WACKER-WP1550-2022-003', 2022,
|
|
'2022-07-20', 45000.00,
|
|
800, NULL, 8, 3.5, 8, 'straight_line',
|
|
NULL,
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000109', '00000000-0000-0000-0003-000000000001',
|
|
'EQU-004', 'Cortadora de concreto', '00000000-0000-0000-000a-000000000004',
|
|
'light_equipment', 'in_maintenance', 'owned',
|
|
'Stihl', 'TS 800', 'STIHL-TS800-2021-004', 2021,
|
|
'2021-11-10', 35000.00,
|
|
1500, NULL, 1.5, 2.5, 5, 'straight_line',
|
|
NULL,
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000110', '00000000-0000-0000-0003-000000000001',
|
|
'EQU-005', 'Andamio tubular (lote 20 pzas)', '00000000-0000-0000-000a-000000000004',
|
|
'tool', 'assigned', 'owned',
|
|
'Scaffolding', 'Standard', 'SCAF-STD-2022-LOT01', 2022,
|
|
'2022-03-01', 120000.00,
|
|
NULL, NULL, NULL, NULL, 10, 'straight_line',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 3. PLANES DE MANTENIMIENTO
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO assets.maintenance_plans (
|
|
id, tenant_id, plan_code, name,
|
|
asset_id, maintenance_type, frequency,
|
|
estimated_duration_hours, estimated_cost,
|
|
tasks_description, is_active,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-000a-000000000201', '00000000-0000-0000-0003-000000000001',
|
|
'PM-MAQ-001', 'Mantenimiento preventivo retroexcavadora',
|
|
'00000000-0000-0000-000a-000000000101', 'preventive', 'monthly',
|
|
4, 15000.00,
|
|
'Cambio de aceite, filtros, revisión de niveles, inspección de mangueras',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000202', '00000000-0000-0000-0003-000000000001',
|
|
'PM-MAQ-002', 'Mantenimiento 500 horas excavadora',
|
|
'00000000-0000-0000-000a-000000000102', 'preventive', 'by_hours',
|
|
8, 35000.00,
|
|
'Servicio mayor: cambio de aceites, filtros, revisión de sistema hidráulico',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106'),
|
|
|
|
('00000000-0000-0000-000a-000000000203', '00000000-0000-0000-0003-000000000001',
|
|
'PM-VEH-001', 'Servicio camioneta 10,000 km',
|
|
'00000000-0000-0000-000a-000000000104', 'preventive', 'by_kilometers',
|
|
2, 5000.00,
|
|
'Cambio de aceite, filtros, revisión de frenos y suspensión',
|
|
true, NOW(), '00000000-0000-0000-0002-000000000106')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 4. CATEGORÍAS DE DOCUMENTOS
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO documents.document_categories (
|
|
id, tenant_id, code, name, description, parent_id, level, is_active,
|
|
created_at
|
|
) VALUES
|
|
('00000000-0000-0000-000a-000000000301', '00000000-0000-0000-0003-000000000001',
|
|
'PLANOS', 'Planos', 'Planos arquitectónicos y de ingeniería', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000302', '00000000-0000-0000-0003-000000000001',
|
|
'PERMISOS', 'Permisos y Licencias', 'Permisos de construcción y licencias', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000303', '00000000-0000-0000-0003-000000000001',
|
|
'CONTRATOS', 'Contratos', 'Contratos y addendas', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000304', '00000000-0000-0000-0003-000000000001',
|
|
'FACTURAS', 'Facturas y Comprobantes', 'CFDIs y comprobantes fiscales', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000305', '00000000-0000-0000-0003-000000000001',
|
|
'ESTIMACIONES', 'Estimaciones', 'Estimaciones y generadores', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000306', '00000000-0000-0000-0003-000000000001',
|
|
'SEGURIDAD', 'Documentos HSE', 'Documentación de seguridad e higiene', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000307', '00000000-0000-0000-0003-000000000001',
|
|
'CALIDAD', 'Control de Calidad', 'Reportes e inspecciones de calidad', NULL, 1, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000308', '00000000-0000-0000-0003-000000000001',
|
|
'GARANTIAS', 'Garantías', 'Garantías de equipos y materiales', NULL, 1, true, NOW()),
|
|
|
|
-- Subcategorías de Planos
|
|
('00000000-0000-0000-000a-000000000311', '00000000-0000-0000-0003-000000000001',
|
|
'PLANOS-ARQ', 'Planos Arquitectónicos', 'Planos de arquitectura', '00000000-0000-0000-000a-000000000301', 2, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000312', '00000000-0000-0000-0003-000000000001',
|
|
'PLANOS-EST', 'Planos Estructurales', 'Planos de estructura', '00000000-0000-0000-000a-000000000301', 2, true, NOW()),
|
|
|
|
('00000000-0000-0000-000a-000000000313', '00000000-0000-0000-0003-000000000001',
|
|
'PLANOS-INS', 'Planos de Instalaciones', 'Planos de instalaciones', '00000000-0000-0000-000a-000000000301', 2, true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 5. DOCUMENTOS
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO documents.documents (
|
|
id, tenant_id, document_code, title, category_id,
|
|
document_type, status, access_level,
|
|
author, document_date,
|
|
project_id, description,
|
|
requires_approval, is_locked,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-000a-000000000401', '00000000-0000-0000-0003-000000000001',
|
|
'DOC-PALMAS-001', 'Plano Arquitectónico General - Las Palmas E1', '00000000-0000-0000-000a-000000000311',
|
|
'plan', 'approved', 'internal',
|
|
'Arq. Juan Pérez', '2024-01-15',
|
|
'00000000-0000-0000-0004-000000000101', 'Plano general de distribución Etapa 1',
|
|
true, true,
|
|
NOW(), '00000000-0000-0000-0002-000000000103'),
|
|
|
|
('00000000-0000-0000-000a-000000000402', '00000000-0000-0000-0003-000000000001',
|
|
'DOC-PALMAS-002', 'Plano Estructural Cimentación - Las Palmas E1', '00000000-0000-0000-000a-000000000312',
|
|
'plan', 'approved', 'internal',
|
|
'Ing. Roberto García', '2024-01-20',
|
|
'00000000-0000-0000-0004-000000000101', 'Plano de cimentación con detalles estructurales',
|
|
true, true,
|
|
NOW(), '00000000-0000-0000-0002-000000000103'),
|
|
|
|
('00000000-0000-0000-000a-000000000403', '00000000-0000-0000-0003-000000000001',
|
|
'DOC-PALMAS-003', 'Licencia de Construcción Municipal', '00000000-0000-0000-000a-000000000302',
|
|
'permit', 'approved', 'confidential',
|
|
'Municipio de Aguascalientes', '2024-02-01',
|
|
'00000000-0000-0000-0004-000000000101', 'Licencia de construcción vigente',
|
|
false, true,
|
|
NOW(), '00000000-0000-0000-0002-000000000102'),
|
|
|
|
('00000000-0000-0000-000a-000000000404', '00000000-0000-0000-0003-000000000001',
|
|
'DOC-PALMAS-004', 'Contrato Subcontratista Cimentaciones', '00000000-0000-0000-000a-000000000303',
|
|
'contract', 'approved', 'restricted',
|
|
'Constructora Demo', '2024-02-28',
|
|
'00000000-0000-0000-0004-000000000101', 'Contrato firmado con Cimientos del Norte',
|
|
true, true,
|
|
NOW(), '00000000-0000-0000-0002-000000000102'),
|
|
|
|
('00000000-0000-0000-000a-000000000405', '00000000-0000-0000-0003-000000000001',
|
|
'DOC-PALMAS-005', 'Reporte de Inspección Calidad - Cimentación Lote A-01', '00000000-0000-0000-000a-000000000307',
|
|
'report', 'approved', 'internal',
|
|
'Diego Calidad Rodríguez', '2024-03-28',
|
|
'00000000-0000-0000-0004-000000000101', 'Reporte de inspección de cimentación aprobado',
|
|
true, false,
|
|
NOW(), '00000000-0000-0000-0002-000000000110')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- VERIFICACIÓN
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
DO $$
|
|
DECLARE
|
|
v_categorias_activos INTEGER;
|
|
v_activos INTEGER;
|
|
v_planes_mant INTEGER;
|
|
v_categorias_docs INTEGER;
|
|
v_documentos INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO v_categorias_activos FROM assets.asset_categories;
|
|
SELECT COUNT(*) INTO v_activos FROM assets.assets;
|
|
SELECT COUNT(*) INTO v_planes_mant FROM assets.maintenance_plans;
|
|
SELECT COUNT(*) INTO v_categorias_docs FROM documents.document_categories;
|
|
SELECT COUNT(*) INTO v_documentos FROM documents.documents;
|
|
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
RAISE NOTICE 'SEED 10 - ACTIVOS Y DOCUMENTOS - COMPLETADO';
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
RAISE NOTICE 'Categorías de activos: %', v_categorias_activos;
|
|
RAISE NOTICE 'Activos/Equipos: %', v_activos;
|
|
RAISE NOTICE 'Planes de mantenimiento: %', v_planes_mant;
|
|
RAISE NOTICE 'Categorías de documentos: %', v_categorias_docs;
|
|
RAISE NOTICE 'Documentos: %', v_documentos;
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
END $$;
|
|
|
|
COMMIT;
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- FIN SEED 10
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|