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>
280 lines
16 KiB
PL/PgSQL
280 lines
16 KiB
PL/PgSQL
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- SEED 07: AVANCES DE OBRA Y CONTROL DE CALIDAD
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- Proyecto: ERP Construcción
|
|
-- Autor: Claude Opus 4.5
|
|
-- Fecha: 2026-02-03
|
|
-- Descripción: Avances, fotos, bitácora, checklists, inspecciones, tickets
|
|
-- Dependencias: 04-proyectos-obras.sql, 05-presupuestos.sql, 02-users-profiles.sql
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
-- UUIDs: 00000000-0000-0000-0007-XXXXXXXXXXXX
|
|
|
|
BEGIN;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 1. AVANCES DE OBRA
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO construction.avances_obra (
|
|
id, tenant_id, concepto_id, lote_id,
|
|
capture_date, quantity_executed, percentage_executed,
|
|
status, notes,
|
|
captured_by, reviewed_by, reviewed_at, approved_by, approved_at,
|
|
created_at, created_by
|
|
) VALUES
|
|
-- Avances Lote A-01 (entregado)
|
|
('00000000-0000-0000-0007-000000000001', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0005-000000000101', '00000000-0000-0000-0004-000000000601',
|
|
'2024-03-15', 120.00, 100.00, 'approved', 'Limpieza completada',
|
|
'00000000-0000-0000-0002-000000000104', '00000000-0000-0000-0002-000000000105',
|
|
'2024-03-16', '00000000-0000-0000-0002-000000000103', '2024-03-17',
|
|
NOW(), '00000000-0000-0000-0002-000000000104'),
|
|
|
|
('00000000-0000-0000-0007-000000000002', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0005-000000000204', '00000000-0000-0000-0004-000000000601',
|
|
'2024-03-25', 8.50, 100.00, 'approved', 'Zapatas completadas',
|
|
'00000000-0000-0000-0002-000000000104', '00000000-0000-0000-0002-000000000105',
|
|
'2024-03-26', '00000000-0000-0000-0002-000000000103', '2024-03-27',
|
|
NOW(), '00000000-0000-0000-0002-000000000104'),
|
|
|
|
('00000000-0000-0000-0007-000000000003', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0005-000000000401', '00000000-0000-0000-0004-000000000601',
|
|
'2024-04-10', 185.00, 100.00, 'approved', 'Muros planta baja terminados',
|
|
'00000000-0000-0000-0002-000000000104', '00000000-0000-0000-0002-000000000105',
|
|
'2024-04-11', '00000000-0000-0000-0002-000000000103', '2024-04-12',
|
|
NOW(), '00000000-0000-0000-0002-000000000104'),
|
|
|
|
-- Avances Lote A-03 (en construcción)
|
|
('00000000-0000-0000-0007-000000000004', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0005-000000000204', '00000000-0000-0000-0004-000000000603',
|
|
'2024-04-20', 6.00, 70.59, 'approved', 'Zapatas en proceso',
|
|
'00000000-0000-0000-0002-000000000104', '00000000-0000-0000-0002-000000000105',
|
|
'2024-04-21', '00000000-0000-0000-0002-000000000103', '2024-04-22',
|
|
NOW(), '00000000-0000-0000-0002-000000000104'),
|
|
|
|
('00000000-0000-0000-0007-000000000005', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0005-000000000401', '00000000-0000-0000-0004-000000000603',
|
|
'2024-05-05', 120.00, 64.86, 'reviewed', 'Muros planta baja al 65%',
|
|
'00000000-0000-0000-0002-000000000104', '00000000-0000-0000-0002-000000000105',
|
|
'2024-05-06', NULL, NULL,
|
|
NOW(), '00000000-0000-0000-0002-000000000104'),
|
|
|
|
('00000000-0000-0000-0007-000000000006', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0005-000000000303', '00000000-0000-0000-0004-000000000603',
|
|
'2024-05-10', 45.00, 47.37, 'pending', 'Losa en proceso de colado',
|
|
'00000000-0000-0000-0002-000000000104', NULL, NULL, NULL, NULL,
|
|
NOW(), '00000000-0000-0000-0002-000000000104')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 2. BITÁCORA DE OBRA
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO construction.bitacora_obra (
|
|
id, tenant_id, fraccionamiento_id,
|
|
entry_date, entry_number, weather, temperature_max, temperature_min,
|
|
workers_count, description, observations, incidents,
|
|
registered_by,
|
|
created_at
|
|
) VALUES
|
|
('00000000-0000-0000-0007-000000000101', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-01', 1, 'Soleado', 28.5, 15.2, 45,
|
|
'Inicio de trabajos de cimentación en manzana B. Se realizó trazo y nivelación.',
|
|
'Personal completo. Maquinaria operando al 100%.',
|
|
NULL,
|
|
'00000000-0000-0000-0002-000000000104', NOW()),
|
|
|
|
('00000000-0000-0000-0007-000000000102', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-02', 2, 'Parcialmente nublado', 26.0, 14.8, 48,
|
|
'Continuación de excavación para zapatas. Armado de acero en lotes B-01 y B-02.',
|
|
'Se recibió material de acero y cemento.',
|
|
NULL,
|
|
'00000000-0000-0000-0002-000000000104', NOW()),
|
|
|
|
('00000000-0000-0000-0007-000000000103', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-03', 3, 'Lluvioso', 22.0, 13.5, 32,
|
|
'Trabajos suspendidos parcialmente por lluvia. Solo actividades bajo techo.',
|
|
'Lluvia desde las 10:00 hrs. Se protegieron materiales.',
|
|
'Suspensión parcial por clima',
|
|
'00000000-0000-0000-0002-000000000104', NOW()),
|
|
|
|
('00000000-0000-0000-0007-000000000104', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-04', 4, 'Soleado', 27.0, 15.0, 52,
|
|
'Colado de zapatas lotes B-01 y B-02. Inicio de muros planta baja lote A-05.',
|
|
'Concreto premezclado de calidad verificada.',
|
|
NULL,
|
|
'00000000-0000-0000-0002-000000000104', NOW()),
|
|
|
|
('00000000-0000-0000-0007-000000000105', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000101',
|
|
'2024-05-05', 5, 'Soleado', 29.0, 16.5, 55,
|
|
'Desencofrado de zapatas. Relleno compactado. Instalación eléctrica en lote A-01.',
|
|
'Visita de supervisión de INFONAVIT.',
|
|
NULL,
|
|
'00000000-0000-0000-0002-000000000104', NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 3. CHECKLISTS DE CALIDAD
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO construction.checklists (
|
|
id, tenant_id, prototipo_id, code, name, is_active,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0007-000000000201', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000001',
|
|
'CHK-CIM-90', 'Checklist Cimentación Casa 90', true,
|
|
NOW(), '00000000-0000-0000-0002-000000000110'),
|
|
|
|
('00000000-0000-0000-0007-000000000202', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000001',
|
|
'CHK-EST-90', 'Checklist Estructura Casa 90', true,
|
|
NOW(), '00000000-0000-0000-0002-000000000110'),
|
|
|
|
('00000000-0000-0000-0007-000000000203', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000001',
|
|
'CHK-ACAB-90', 'Checklist Acabados Casa 90', true,
|
|
NOW(), '00000000-0000-0000-0002-000000000110'),
|
|
|
|
('00000000-0000-0000-0007-000000000204', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000001',
|
|
'CHK-ENTREGA', 'Checklist Entrega Final', true,
|
|
NOW(), '00000000-0000-0000-0002-000000000110')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 4. ITEMS DE CHECKLIST
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO construction.checklist_items (
|
|
id, tenant_id, checklist_id, sequence, name, is_required,
|
|
created_at
|
|
) VALUES
|
|
-- Items Checklist Cimentación
|
|
('00000000-0000-0000-0007-000000000301', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', 1, 'Profundidad de excavación correcta', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000302', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', 2, 'Plantilla de concreto pobre', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000303', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', 3, 'Armado de acero según planos', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000304', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', 4, 'Recubrimientos de acero correctos', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000305', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', 5, 'Resistencia del concreto verificada', true, NOW()),
|
|
|
|
-- Items Checklist Entrega
|
|
('00000000-0000-0000-0007-000000000310', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', 1, 'Limpieza general de la vivienda', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000311', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', 2, 'Funcionamiento de instalaciones eléctricas', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000312', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', 3, 'Funcionamiento de instalaciones hidráulicas', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000313', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', 4, 'Estado de acabados', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000314', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', 5, 'Funcionamiento de puertas y ventanas', true, NOW()),
|
|
('00000000-0000-0000-0007-000000000315', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', 6, 'Documentación entregada', true, NOW())
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 5. INSPECCIONES DE CALIDAD
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO construction.inspecciones (
|
|
id, tenant_id, checklist_id, lote_id,
|
|
inspection_date, status,
|
|
inspector_id, approved_by, approved_at,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0007-000000000401', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', '00000000-0000-0000-0004-000000000601',
|
|
'2024-03-28', 'approved',
|
|
'00000000-0000-0000-0002-000000000110',
|
|
'00000000-0000-0000-0002-000000000103', '2024-03-29',
|
|
NOW(), '00000000-0000-0000-0002-000000000110'),
|
|
|
|
('00000000-0000-0000-0007-000000000402', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000204', '00000000-0000-0000-0004-000000000601',
|
|
'2024-05-15', 'approved',
|
|
'00000000-0000-0000-0002-000000000110',
|
|
'00000000-0000-0000-0002-000000000103', '2024-05-16',
|
|
NOW(), '00000000-0000-0000-0002-000000000110'),
|
|
|
|
('00000000-0000-0000-0007-000000000403', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0007-000000000201', '00000000-0000-0000-0004-000000000603',
|
|
'2024-04-25', 'in_review',
|
|
'00000000-0000-0000-0002-000000000110', NULL, NULL,
|
|
NOW(), '00000000-0000-0000-0002-000000000110')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- 6. TICKETS POSTVENTA
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
INSERT INTO construction.tickets_postventa (
|
|
id, tenant_id, lote_id,
|
|
ticket_number, reported_date, category, description, priority, status,
|
|
assigned_to, resolution, resolved_at,
|
|
created_at, created_by
|
|
) VALUES
|
|
('00000000-0000-0000-0007-000000000501', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000601',
|
|
'TKT-2024-001', '2024-06-01', 'Plomería',
|
|
'Fuga de agua en llave de lavabo del baño principal',
|
|
'medium', 'closed',
|
|
'00000000-0000-0000-0002-000000000105',
|
|
'Se reemplazó empaque de llave. Fuga corregida.',
|
|
'2024-06-03',
|
|
NOW(), '00000000-0000-0000-0002-000000000112'),
|
|
|
|
('00000000-0000-0000-0007-000000000502', '00000000-0000-0000-0003-000000000001',
|
|
'00000000-0000-0000-0004-000000000602',
|
|
'TKT-2024-002', '2024-06-10', 'Electricidad',
|
|
'Apagador de recámara 2 no funciona correctamente',
|
|
'low', 'open',
|
|
NULL, NULL, NULL,
|
|
NOW(), '00000000-0000-0000-0002-000000000112')
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
-- VERIFICACIÓN
|
|
-- ─────────────────────────────────────────────────────────────────────────────────
|
|
|
|
DO $$
|
|
DECLARE
|
|
v_avances INTEGER;
|
|
v_bitacora INTEGER;
|
|
v_checklists INTEGER;
|
|
v_inspecciones INTEGER;
|
|
v_tickets INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO v_avances FROM construction.avances_obra;
|
|
SELECT COUNT(*) INTO v_bitacora FROM construction.bitacora_obra;
|
|
SELECT COUNT(*) INTO v_checklists FROM construction.checklists;
|
|
SELECT COUNT(*) INTO v_inspecciones FROM construction.inspecciones;
|
|
SELECT COUNT(*) INTO v_tickets FROM construction.tickets_postventa;
|
|
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
RAISE NOTICE 'SEED 07 - AVANCES Y CALIDAD - COMPLETADO';
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
RAISE NOTICE 'Avances de obra: %', v_avances;
|
|
RAISE NOTICE 'Entradas de bitácora: %', v_bitacora;
|
|
RAISE NOTICE 'Checklists: %', v_checklists;
|
|
RAISE NOTICE 'Inspecciones: %', v_inspecciones;
|
|
RAISE NOTICE 'Tickets postventa: %', v_tickets;
|
|
RAISE NOTICE '══════════════════════════════════════════════════════════════';
|
|
END $$;
|
|
|
|
COMMIT;
|
|
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|
|
-- FIN SEED 07
|
|
-- ═══════════════════════════════════════════════════════════════════════════════
|