-- ═══════════════════════════════════════════════════════════════════════════════ -- 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 -- ═══════════════════════════════════════════════════════════════════════════════