-- ============================================================
--  Datos de Paquetes y servicios traídos del sistema anterior
--  (automatizaciones, variables, fórmulas, materiales y lista de precios).
--  Ejecutar una sola vez, después de la migración 2026-10-14_01, con las
--  tablas paquete* vacías.
-- ============================================================
USE tinsa_db;


INSERT INTO `paquete_producto` (`id`, `nombre`, `precio`, `unidad`, `id_producto`, `activo`, `usuario_modifico`, `created_at`, `updated_at`) VALUES (1,'Tubo acero inox 1.1/2\" (6m)',35.35,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(2,'Tubo acero inox 2\" (6m)',50.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(3,'1/2 Tubo 1.1/2\"',17.68,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(4,'1/2 Tubo 2\"',25.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(5,'Tapón plano 1.1/2\"',3.67,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(6,'Tapón plano 2\"',4.95,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(7,'Tapón cargador 1.1/2\"',9.03,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(8,'Tapón cargador 2\"',12.39,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(9,'Flange + tapa 1.1/2\"',9.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(10,'Flange + tapa 2\"',14.87,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(11,'Conector de cable',2.80,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(12,'Ancla expansiva',1.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(13,'Tornillo de armas 12 x 3/4',0.02,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(14,'Codo articulado 1.1/2\"',8.09,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(15,'Codo articulado 2\"',12.17,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(16,'Codo 90° 1.1/2\"',7.56,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(17,'Codo 90° 2\"',10.76,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(18,'Unión 1.1/2\"',5.25,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(19,'Unión 2\"',7.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(20,'Cable acero (rollo)',7.45,'m',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(21,'Disco de corte',1.54,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(22,'Disco milhojas',5.75,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(23,'Electrodo',1.75,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(24,'Mascon rojo',2.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(25,'Mano de obra',17.00,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(26,'Transporte',0.00,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(27,'Vidrio templado 6mm',35.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(28,'Riel intermedio acm',14.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(29,'Silicón estructural',8.00,'tubo',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(30,'Lámina ACM Plomo',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(31,'Lámina ACM Silver',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(32,'Lámina ACM Amarillo',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(33,'Lámina ACM Anaranjado',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(34,'Lámina ACM Azul Navy',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(35,'Lámina ACM Azul Sky',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(36,'Lámina ACM Negro Mate',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(37,'Lámina ACM Negro Brillante',50.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(38,'Lámina ACM Blanco Mate',50.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(39,'Lámina ACM Blanco Brillante',50.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(40,'Lámina ACM Rojo Mate',50.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(41,'Lámina ACM Rojo Brillante',50.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(42,'Lámina ACM Verde Puma',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(43,'Lámina ACM Madera',60.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(44,'Riel omega ACM (6m)',7.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(45,'Moldura ACM (2.44m)',0.72,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(46,'Tornillo fino ACM',0.01,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(47,'Tornillo broca ACM',0.02,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(48,'Separador 1/4',0.25,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(49,'Separador 1/8',0.19,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(50,'Separador 1/16',0.18,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(51,'Silicón estructural ACM',7.00,'tubo',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(52,'Tirro (rollo 22m)',0.58,'rollo',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(53,'Instalación ACM',25.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(54,'Transporte fascia',0.00,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(55,'Andamio',0.00,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(56,'Vidrio templado 10mm',45.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(57,'Chapetón acero inox',14.51,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(58,'Zócalo aluminio (6m)',149.16,'m',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(59,'Poste acero inox 1.5\"',0.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(60,'Poste acero inox 2\"',0.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(61,'Imprevistos',0.00,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(62,'soporte vidrio acero',9.51,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(63,'Vidrio templado 12mm',0.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(64,'Tubo estructural 2x1 (6m)',17.51,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(65,'Ángulo (estructura)',17.70,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(66,'Brocha (estructura)',4.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(67,'Pintura anticorrosiva',29.65,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(68,'Thinner',0.00,'global',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(69,'Instalación estructura',14.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(70,'Transporte estructura',0.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(71,'Clip / accesorio zócalo',0.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(72,'Bracket 1.1/2\" vidrio pasamanos',11.85,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(73,'bracket 2\" vidrio pasamanos',16.50,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(74,'Soldadura lateral',1.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(75,'Soldadura intermedia',3.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(76,'Varilla (tubo de media)',15.92,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(77,'Tornillo conico de 14x4”',0.60,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(78,'Ancla plastica 3/8”x2”',0.07,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(79,'Flange articulado 1/2',15.53,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(80,'Flange articulado 2\"',0.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(81,'Lámina ACM Beige',48.00,NULL,NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(82,'Araña 2 vias',45.62,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(83,'Araña 4 vias',81.11,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(84,'Botón alineamiento',2.21,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(85,'Araña 1 vias',34.10,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(86,'Lámina ACM Bronce',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(87,'VIdrio cool-lite ST 150 templado de 6 mm INCO',52.26,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(88,'Tubo de aluminio de 1 3/4 x 3\" color negro',42.24,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(89,'Cinta norton 1/4 x 1/4 X 15m',16.00,'rollo',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(90,'Silicon estructural NGR power GLAZE 600 ML',4.75,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(91,'Escuadra de 1/4  1 3/4 1 3/4 INCO',0.60,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(92,'Espuma para muro cortina',0.45,'m',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(94,'Wipper de tela libra',0.80,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(95,'Alcohol Isopropilico',2.50,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(96,'tornillo de 12 x 2\"',0.25,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(97,'Tornillo de 8 x 1 cabeza redonda',0.03,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(99,'Soporte de acero inoxidable pared tubo (bracket)',8.72,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(100,'tapón plano de 2\"',3.48,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(103,'Perno exagonal',0.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(104,'soporte vidrio muro simple vidrio templado sistema placas',6.75,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(105,'soporte vidrio muro doble vidrio templado sistema placas',7.50,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(106,'Lámina ACM Gris Charcoal',80.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(107,'LAMINA ACRILICA LECHOSA',45.20,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(108,'wpc',20.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(109,'pieza estrillada de aluminio fascia decorativa AL-550',43.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(110,'PERFIL UNION AL-551',7.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(111,'MOLDURA DECORATIVA REMATES AL-552',9.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(112,'PERFIL INSERTO AN-553',7.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(113,'GUINDOLA',2000.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(114,'CLIPS WPC Para WPC Gris',0.30,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(115,'M2 de Divisiones para baño de ACM tuberia de aluminio 1 3/4 x 1 3/4',187.40,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(116,'Puerta abatible para divisiones de ACM para baño',140.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(117,'ESTRUCTURA PARA ACM SECUNDARIA',35.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(118,'PINTURA PREMIUN SHERWIN WILLIAM',9.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(119,'PINTURA MEDIO SERWIN WILLIAN',7.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(120,'MANO DE OBRA PINTURA',6.50,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(121,'WPC exterior cafe',25.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(122,'lamina ACM beige 1.22 x 2.44',48.00,'pza',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(123,'S1400 VF 6mm Negro',115.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(124,'S1400 VF 6mm Natural',120.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(125,'S1400 VF 6mm Blanco',115.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(126,'S1400 proyectable 6mm Negro',210.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(127,'S1400 proyectable 6mm Natural',210.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(128,'S1400 proyectable 6mm Blanco',210.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(129,'S3600 Ventana corrediza 2H2R 6mm Negro',100.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(130,'S4600 Ventana corrediza 2H2R 6mm Negro',150.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(131,'S4600 Puerta corrediza 2H2R 6mm Negro',100.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(132,'S4600 Puerta corrediza 2H2R 10mm Negro',115.00,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(133,'S4600 Puerta corrediza + 3 rieles 10mm Negro',125.67,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(134,'S4600 Puerta corrediza + 4 rieles 10mm Negro',136.34,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(135,'S4600 Puerta corrediza + 5 rieles 10mm Negro',147.01,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52'),(136,'S4600 Puerta corrediza + 6 rieles 10mm Negro',157.68,'m²',NULL,1,NULL,'2026-10-13 16:10:52','2026-10-13 16:10:52');

INSERT INTO `paquete` (`id`, `nombre`, `descripcion`, `activo`, `usuario_modifico`, `created_at`, `updated_at`) VALUES (6,'Pasamano Acero Inox con Cables','Calcula materiales para pasamano de acero inoxidable con sistema de cables. Selector de ubicación: escalera, rampa o terraza.',1,NULL,'2026-05-16 10:19:18','2026-06-10 11:00:24'),(7,'Pasamanos Vidrio con Postes','Calcula materiales para pasamanos de vidrio templado 10mm con sistema de postes de acero inoxidable. Soporta escalera, terraza y rampa desde un único formulario.',1,NULL,'2026-05-21 16:44:48','2026-06-10 17:16:39'),(8,'ACM','Calcula láminas ACM, rieles, moldura, silicón, tornillería y consumibles para fascias. Soporta orientación horizontal y vertical, con o sin estructura metálica.',1,NULL,'2026-05-22 11:33:21','2026-06-23 17:45:20'),(9,'Pasamano Vidrio Zocalo y Chapetones','Suministro e instalación de pasamanos de vidrio templado con sistema de fijación mediante chapetones y/o zócalo de aluminio.',1,NULL,'2026-05-22 14:42:22','2026-06-09 13:30:08'),(10,'Pasamanos Acero Inox con Varillas','Calcula tubos, varillas, tapones, flanges, conectores o soldaduras, anclas, tornillos y consumibles para pasamanos de acero inoxidable con sistema de varillas. Soporta escalera, terraza y rampa.',1,NULL,'2026-05-26 14:55:54','2026-09-12 11:09:47'),(11,'Copia de ACM','Calcula láminas ACM, rieles, moldura, silicón, tornillería y consumibles para fascias. Soporta orientación horizontal y vertical, con o sin estructura metálica.',0,NULL,'2026-06-11 15:56:43','2026-06-11 15:57:02'),(12,'Muro cortina','Sistema de automatización que calcula la cantidad de materiales a utilizar en una instalación de muro cortina.',1,NULL,'2026-07-18 14:04:05','2026-07-29 15:12:16'),(13,'Puertas y ventanas corredizas',NULL,1,NULL,'2026-09-30 15:42:54','2026-09-30 15:42:54');

INSERT INTO `paquete_variable` (`id`, `id_paquete`, `nombre`, `etiqueta`, `tipo`, `unidad`, `opciones`, `valor_default`, `requerido`, `en_titulo`, `comentario`, `orden`) VALUES (403,9,'sistema','Sistema','selector',NULL,'[\"chapetones\",\"zocalo\"]',NULL,1,1,NULL,0),(404,9,'tramos','Tramos','lista','m',NULL,NULL,1,0,NULL,1),(405,9,'altura','Altura del vidrio','numero','m',NULL,NULL,1,0,NULL,2),(406,9,'diametro','Diámetro del tubo','selector',NULL,'[\"1.5\",\"2\"]',NULL,1,1,NULL,3),(407,9,'con_tubo','¿Lleva tubo superior?','selector',NULL,'[\"si\",\"no\"]',NULL,1,1,NULL,4),(408,9,'esquinas','Esquinas 90°','numero','pzas',NULL,NULL,1,0,NULL,5),(409,9,'esqdife','Esquinas ≠ 90°','numero','pzas',NULL,NULL,1,0,NULL,6),(440,6,'ubicacion','Ubicación','selector',NULL,'[\"escalera\",\"rampa\",\"terraza\"]','escalera',1,1,NULL,0),(441,6,'altura','Altura del pasamano','numero','m',NULL,NULL,1,0,NULL,1),(442,6,'tramos','Anchos de tramos','lista','m',NULL,NULL,1,0,NULL,2),(443,6,'cables','Cantidad de cables','numero','cables',NULL,'0',1,0,NULL,3),(444,6,'esquinas','Esquinas 90°','numero','pzas',NULL,'0',1,0,NULL,4),(445,6,'esqdife','Esquinas ≠ 90° / descansos','numero','pzas',NULL,'0',1,0,NULL,5),(446,6,'diametro','Diámetro de tubo','selector',NULL,'[\"1.5\",\"2\"]','1.5',1,1,NULL,6),(477,7,'tipo','tipo','selector',NULL,'[\"escalera\",\"terraza\",\"rampa\"]',NULL,1,1,NULL,0),(478,7,'diame','Diametro','selector',NULL,'[\"1.5\",\"2\"]',NULL,1,1,'Opciones: 3.81 (1½ pulg), 5.08 (2 pulg)',1),(479,7,'tramos','Tramos','lista','m',NULL,NULL,1,0,'Ancho de cada tramo en metros',2),(480,7,'altura','Altura','numero',NULL,NULL,NULL,1,0,'Altura del pasamanos en metros',3),(481,7,'esquina','Esquinas 90°','numero',NULL,NULL,NULL,1,0,'Esquinas a 90° (0 si no hay)',4),(482,7,'esquinasdife','Descansos','numero',NULL,NULL,NULL,1,0,'Esquinas diferentes a 90° (0 si no hay)',5),(543,11,'orientacion','orientación','selector',NULL,'[\"horizontal\",\"vertical\"]','horizontal',1,1,NULL,0),(544,11,'color','Color ACM','selector',NULL,'[\"plomo\",\"silver\",\"amarillo\",\"anaranjado\",\"azul-navy\",\"azul-sky\",\"negro-mate\",\"negro-brillante\",\"blanco-mate\",\"blanco-brillante\",\"rojo-mate\",\"rojo-brillante\",\"verde-puma\",\"madera\",\"beige\"]','plomo',1,1,NULL,1),(545,11,'anchoFrente','Ancho de pantalla','numero','m',NULL,NULL,1,0,'Ancho de pantalla de frente en metros',2),(546,11,'altoFrente','Alto de pantalla','numero','m',NULL,NULL,1,0,'Alto de pantalla de frente en metros',3),(547,11,'anchoInferior','Ancho de remate inferior','numero','m',NULL,NULL,1,0,'Ancho de remate inferior en metros',4),(548,11,'altoInferior','Alto de remate inferior','numero','m',NULL,NULL,1,0,'Alto de remate inferior en metros',5),(549,11,'anchoSuperior','Ancho de remate superior','numero','m',NULL,NULL,1,0,'Ancho de remate superior en metros',6),(550,11,'altoSuperior','Alto de remate superior','numero','m',NULL,NULL,1,0,'Alto de remate superior en metros',7),(551,11,'anchoDerecho','Ancho de remate derecho','numero','m',NULL,NULL,1,0,'Ancho de remate de lado derecho en metros',8),(552,11,'altoDerecho','Alto de remate derecho','numero','m',NULL,NULL,1,0,'Alto del remate del lado derecho en metros',9),(553,11,'anchoIzquierdo','Ancho de remate izquierdo','numero','m',NULL,NULL,1,0,'Ancho de remate de lado izquierdo en metros',10),(554,11,'altoIzquierdo','Alto de remate izquierdo','numero','m',NULL,NULL,1,0,'Alto del remate del lado izquierdo en metros',11),(555,11,'estructura','¿Estructura?','selector',NULL,'[\"si\",\"no\"]',NULL,1,1,NULL,12),(582,8,'orientacion','orientación','selector',NULL,'[\"horizontal\",\"vertical\"]','horizontal',1,1,NULL,0),(583,8,'color','Color ACM','selector',NULL,'[\"plomo\",\"silver\",\"amarillo\",\"anaranjado\",\"azul-navy\",\"azul-sky\",\"negro-mate\",\"negro-brillante\",\"blanco-mate\",\"blanco-brillante\",\"rojo-mate\",\"rojo-brillante\",\"verde-puma\",\"madera\",\"beige\",\"bronce\"]','plomo',1,1,NULL,1),(584,8,'anchoFrente','Ancho de pantalla','numero','m',NULL,NULL,1,0,'Ancho de pantalla de frente en metros',2),(585,8,'altoFrente','Alto de pantalla','numero','m',NULL,NULL,1,0,'Alto de pantalla de frente en metros',3),(586,8,'anchoInferior','Ancho de remate inferior','numero','m',NULL,NULL,1,0,'Ancho de remate inferior en metros',4),(587,8,'altoInferior','Alto de remate inferior','numero','m',NULL,NULL,1,0,'Alto de remate inferior en metros',5),(588,8,'anchoSuperior','Ancho de remate superior','numero','m',NULL,NULL,1,0,'Ancho de remate superior en metros',6),(589,8,'altoSuperior','Alto de remate superior','numero','m',NULL,NULL,1,0,'Alto de remate superior en metros',7),(590,8,'anchoDerecho','Ancho de remate derecho','numero','m',NULL,NULL,1,0,'Ancho de remate de lado derecho en metros',8),(591,8,'altoDerecho','Alto de remate derecho','numero','m',NULL,NULL,1,0,'Alto del remate del lado derecho en metros',9),(592,8,'anchoIzquierdo','Ancho de remate izquierdo','numero','m',NULL,NULL,1,0,'Ancho de remate de lado izquierdo en metros',10),(593,8,'altoIzquierdo','Alto de remate izquierdo','numero','m',NULL,NULL,1,0,'Alto del remate del lado izquierdo en metros',11),(594,8,'estructura','¿Estructura?','selector',NULL,'[\"si\",\"no\"]',NULL,1,1,NULL,12),(627,12,'alto','Altura','numero','m',NULL,NULL,1,0,'Altura del muro cortina.',0),(628,12,'ancho','Ancho','numero','m',NULL,NULL,1,0,'Ancho del muro cortina.',1),(629,12,'modulo_h','Modulación Horizontal','numero','m',NULL,NULL,1,0,NULL,2),(630,12,'modulo_v','Modulación Vertical','numero','m',NULL,NULL,1,0,NULL,3),(631,12,'losa','Separación de losa','numero','m',NULL,NULL,1,0,NULL,4),(632,12,'nivel','Niveles','numero',NULL,NULL,NULL,1,0,NULL,5),(633,10,'tipo','Tipo','selector',NULL,'[\"escalera\",\"terraza\",\"rampa\"]',NULL,1,1,'Opciones: escalera, terraza, rampa',0),(634,10,'diame','Diametro','selector',NULL,'[\"1.5\",\"2\"]',NULL,1,1,'Opciones: 3.81 (1½ pulg), 5.08 (2 pulg)',1),(635,10,'tramos','Tramos','lista',NULL,NULL,NULL,1,0,'Ancho de cada tramo en metros',2),(636,10,'altura','Altura','numero','m',NULL,NULL,1,0,'Altura del pasamanos en metros',3),(637,10,'varillas','Varillas','numero',NULL,NULL,NULL,1,0,'Cantidad de varillas por espacio (0 si no hay)',4),(638,10,'conexion','Conexión','selector',NULL,'[\"Conectores\",\"Soldaduras lateral\",\"Soldaduras intermedia\"]',NULL,1,1,'Opciones: Conectores, Soldaduras lateral, Soldaduras intermedia',5),(639,10,'esquinas','Esquinas 90°','numero',NULL,NULL,NULL,1,0,'Esquinas a 90° (0 si no hay)',6),(640,10,'esquinasdife','Esquinas diferentes a 90°/ descansos','numero',NULL,NULL,NULL,1,0,'Esquinas diferentes a 90° (0 si no hay)',7),(644,13,'alto','Altura','numero','m',NULL,NULL,1,0,NULL,0),(645,13,'ancho','Anchura','numero','m',NULL,NULL,1,0,NULL,1),(646,13,'tipo','Sistema','selector',NULL,'[\"S1400 VF 6mm Negro\",\"S1400 VF 6mm Natural\",\"S1400 VF 6mm Blanco\",\"S1400 proyectable 6mm Negro\",\"S1400 proyectable 6mm Natural\",\"S1400 proyectable 6mm Blanco\",\"S3600 Ventana corrediza 2H2R 6mm Negro\",\"S4600 Ventana corrediza 2H2R 6mm Negro\",\"S4600 Puerta corrediza 2H2R 6mm Negro\",\"S4600 Puerta corrediza 2H2R 10mm Negro\",\"S4600 Puerta corrediza + 3 rieles 10mm Negro\",\"S4600 Puerta corrediza + 4 rieles 10mm Negro\",\"S4600 Puerta corrediza + 5 rieles 10mm Negro\",\"S4600 Puerta corrediza + 6 rieles 10mm Negro\"]',NULL,1,0,NULL,2);

INSERT INTO `paquete_formula` (`id`, `id_paquete`, `nombre`, `formula`, `comentario`, `orden`) VALUES (683,9,'totalAncho','tramos.reduce((s, x) => s + x, 0)','Suma total de tramos',0),(684,9,'bracket','tramos.reduce((s, x) => {   const y = x / 1.4;   if (x <= 1.40) return s + 2;   const ee = Number.isInteger(y) ? y : Math.floor(y) + 1;   return s + (ee * 2); }, 0)','2 brackets por espacio. Tramos ≤1.40m siempre 2 brackets',1),(685,9,'c_accesorios','tramos.reduce((s, x) => {      const cantidadTramos = Math.ceil(x / 1.40);      return s + (cantidadTramos * 4);  }, 0)','Chapetones o zócalo-clips: ≤0.80m→4, ≤1.40m→6, más largo→6 por espacio',2),(686,9,'m2_vidrio_chap','tramos.reduce((s, x) => {   const y = x / 1.4;   let ps, espacios;   if (x <= 0.80) return s;   if (x <= 1.40) { ps = 2; espacios = 1; }   else if (Number.isInteger(y)) { ps = y + 1; espacios = y; }   else { const ee = Math.floor(y) + 1; ps = ee + 1; espacios = ee; }   const ancho_cm = (x * 100) - ((parseFloat(diametro) * ps) + (espacios * 4));   return s + Math.ceil((ancho_cm / 100) * altura); }, 0)','Chapetones: descuenta el diámetro de postes y juntas de cada espacio',3),(687,9,'m2_vidrio_zoc','Math.ceil(totalAncho * altura)','Zócalo: vidrio corrido sin descontar postes (van por detrás del perfil)',4),(688,9,'m2_vidrio','sistema === \'chapetones\' ? m2_vidrio_chap : m2_vidrio_zoc','Selector final según sistema',5),(689,9,'perfil_zocalo','sistema === \'zocalo\' ? Math.ceil(totalAncho / 6) : 0','Barras de perfil de zócalo de 6m — solo aplica en sistema zócalo',6),(690,9,'raw_tubos','totalAncho / 6','Barras de tubo superior (solo si con_tubo = \'si\')',7),(691,9,'dec_tubos','raw_tubos - Math.floor(raw_tubos)',NULL,8),(692,9,'tubos_barras','dec_tubos > 0 && dec_tubos < 0.5 ? Math.floor(raw_tubos) : Math.ceil(raw_tubos)',NULL,9),(693,9,'necesita_medio','dec_tubos > 0 && dec_tubos < 0.5 ? 1 : 0',NULL,10),(694,9,'qty_taponplano','(tramos.length * 2) - ((esquinas + esqdife) * 2)',NULL,11),(695,9,'discoc_qty','totalAncho < 6 ? 1 : Math.ceil(totalAncho / 6)',NULL,12),(758,6,'totalAncho','tramos.reduce((s, x) => s + x, 0)','totalAncho calcula la suma total de todos los tramos ingresados, obteniendo el ancho lineal acumulado de la estructura o proyecto.',0),(759,6,'postes','tramos.reduce((s, x) => {      const y = x / 1.2;      if (x <= 1.40) return s + 2;      else if (x <= 2.50) return s + 3;      else return s + (Number.isInteger(y) ? y + 1 : Math.floor(y) + 2);    }, 0) - (esquinas + esqdife)','Calcula la cantidad total de postes necesarios según la longitud de cada tramo, aplicando reglas de separación máxima y descontando las esquinas ya consideradas.',1),(760,6,'raw','(altura * postes / 6) + (totalAncho / 6)','Calcula la cantidad estimada de materia prima requerida en función de la altura, la cantidad de postes y el ancho total del proyecto, considerando piezas de 6 metros.',2),(761,6,'dec','raw - Math.floor(raw)','Obtiene la parte decimal del cálculo RAW para validar sobrantes o aplicar reglas de redondeo.',3),(762,6,'tubos_barras','dec > 0 && dec < 0.5 ? Math.floor(raw) : Math.ceil(raw)','Calcula la cantidad final de tubos o barras necesarias aplicando una regla de redondeo según el sobrante decimal del cálculo RAW.',4),(763,6,'necesita_medio_tubo','dec > 0 && dec < 0.5 ? 1 : 0','Indica si el cálculo requiere medio tubo adicional debido a un sobrante menor a 0.5.',5),(764,6,'metros_cable','cables > 0 ? Math.ceil(cables * (totalAncho / 0.93)) : 0','Calcula la cantidad total de metros de cable necesarios según la cantidad de líneas de cable y el ancho total del proyecto, considerando un factor de ajuste o tensión.',6),(765,6,'qty_taponplano','(tramos.length * 2) - ((esquinas + esqdife) * 2)','Calcula la cantidad de tapones planos necesarios según los extremos de cada tramo, descontando los que pertenecen a esquinas ya compartidas.',7),(766,6,'qty_conector','cables > 0 ? (tramos.length * 2) * cables : 0','Calcula la cantidad total de conectores necesarios según la cantidad de extremos de tramos y líneas de cable instaladas.',8),(767,6,'discoc_qty','totalAncho < 6 ? 1 : Math.ceil(totalAncho / 6)','Calcula la cantidad de discos de corte necesarios según el ancho total del proyecto, considerando un rendimiento aproximado de 6 metros por disco.',9),(768,6,'qty_union','tramos.reduce((s, x) => x > 6 ? s + Math.floor(x / 6) : s, 0)','Calcula la cantidad de uniones necesarias en los tramos que superan los 6 metros, considerando empalmes entre piezas.',10),(769,6,'desc_ubicacion','ubicacion === \'escalera\'? \'en Escalera\' : ubicacion === \'rampa\' ? \'en Rampa\' : \'en Terraza\'','Genera una descripción textual de la ubicación seleccionada según el tipo de instalación.',11),(832,7,'offset_altura','tipo === \'escalera\' ? 0.2 : 0.3','El descuento de altura varía según tipo',0),(833,7,'totalancho','tramos.reduce((s, x) => s + Number(x), 0)','Suma de todos los tramos',1),(834,7,'ancho2','totalancho / 6','Base para consumibles (discos, mascon, electrodo)',2),(835,7,'postes2_raw','tramos.reduce((acc, x) => {   x = Number(x);   const y = x / 1.2;   if (x <= 1.40) return acc + 2;   if (x <= 2.50) return acc + 3;   return acc + ((y % 1 === 0) ? y + 1 : Math.floor(y) + 2); }, 0)','Postes totales antes de descontar esquinas',3),(836,7,'c_espacios','tramos.reduce((acc, x) => {   x = Number(x);   const y = x / 1.2;   if (x <= 1.40) return acc + 1;   if (x <= 2.50) return acc + 2;   return acc + ((y % 1 === 0) ? y : Math.floor(y) + 1); }, 0)','Total de espacios entre postes (para conectores)',4),(837,7,'postes','postes2_raw - (Number(esquina) + Number(esquinasdife))','Postes reales descontando esquinas',5),(838,7,'conector2','c_espacios * 4','Conectores de vidrio',6),(839,7,'tubos_raw','(altura * postes / 6) + (totalancho / 6)','Tubos sin redondear',7),(840,7,'tubos_decimal','tubos_raw - Math.floor(tubos_raw)','Parte decimal para lógica de medio tubo',8),(841,7,'usar_medio_tubo','tubos_decimal > 0 && tubos_decimal < 0.5 ? 1 : 0','Si aplica medio tubo (decimal pequeño en cualquier tipo)',9),(842,7,'tubos','usar_medio_tubo === 1 ? Math.floor(tubos_raw) : (tubos_raw % 1 === 0 ? tubos_raw : Math.floor(tubos_raw) + 1)','Cantidad final de tubos enteros',10),(843,7,'tor','(postes * 2) + conector2','Tornillos',11),(844,7,'ancla','postes * 3',NULL,12),(845,7,'taponplano','(tramos.length * 2) - ((Number(esquina) + Number(esquinasdife)) * 2)',NULL,13),(846,7,'ct_vidrio','Math.ceil(totalancho * ((altura + 0.4) - offset_altura))','M² de vidrio',14),(847,7,'ct_union','tramos.reduce((acc, x) => {   x = Number(x);   return x > 6 ? acc + Math.floor(x / 6) : acc; }, 0)','Uniones (solo tramos mayores a 6m)',15),(848,7,'ct_consumible','Number.isInteger(ancho2) ? ancho2 : Math.ceil(ancho2)','Cantidad de discos, mascon y electrodo',16),(1014,11,'ancho_lamina','orientacion === \'horizontal\' ? 2.39 : 1.17','Dimensión horizontal de la lámina según orientación',0),(1015,11,'altura_lamina','orientacion === \'horizontal\' ? 1.17 : 2.39','Dimensión vertical de la lámina según orientación',1),(1016,11,'ancho_total','Number(anchoIzquierdo) + Number(anchoFrente) + Number(anchoDerecho)','Suma de los tres anchos',2),(1017,11,'alto_total','Number(altoFrente) + Number(altoSuperior) + Number(altoInferior)','Alto total incluyendo parte inferior',3),(1018,11,'lado_alto','Math.max(Number(altoDerecho), Number(altoIzquierdo), Number(altoFrente))','El lado con mayor altura',4),(1019,11,'m2_fascia','ancho_total * alto_total','Metros cuadrados totales',5),(1020,11,'cols_primarias','Math.max(    1,    Math.ceil(ancho_total / ancho_lamina))','Columnas de láminas primarias',6),(1021,11,'filas_primarias','lado_alto <= altura_lamina ? 1 : Math.ceil(lado_alto / altura_lamina)','Filas de láminas primarias',7),(1022,11,'modulo_ancho','Math.ceil(ancho_total / ancho_lamina)','Ancho de la modulacion',8),(1023,11,'resto_vertical','Math.max(    0,    alto_total - ((filas_primarias - 1) * altura_lamina))','Altura sobrante después de las primarias',9),(1024,11,'lam_ancho','cols_primarias <= 0 ? 0 : (ancho_total / cols_primarias)','Ancho real de cada columna',10),(1025,11,'cols_secundarias','resto_vertical === 0 ? 0 : Math.ceil(Number(anchoInferior) / lam_ancho)','Columnas en zona inferior',11),(1026,11,'modulo_alto','Math.ceil(alto_total / altura_lamina)','Total modulos alto',12),(1027,11,'filas_secundarias','resto_vertical === 0 ? 0 : (resto_vertical <= altura_lamina ? 1 : Math.ceil(resto_vertical / altura_lamina))','Filas en zona inferior',13),(1028,11,'laminas_totales','modulo_alto * modulo_ancho','Suma total de láminas',14),(1029,11,'RI_r','Math.max(    0,    Math.floor(Number(anchoIzquierdo) / lam_ancho))','Columnas ocupadas por lado izquierdo',15),(1030,11,'RD_r','Math.max(    0,    Math.floor(Number(anchoDerecho) / lam_ancho))','Columnas ocupadas por lado derecho',16),(1031,11,'RC','cols_primarias - (RI_r + RD_r)','Columnas del centro',17),(1032,11,'total_rieles','(lado_alto * (cols_primarias - 1)) + (Number(altoSuperior) * (RC - 1)) + (ancho_total * (filas_primarias - 1)) + (Number(anchoInferior) * filas_secundarias)','Metros lineales de rieles internos',18),(1033,11,'perimetro','(ancho_total * 2) + (alto_total * 2) + total_rieles','Perímetro exterior + rieles para silicón y tirro',19),(1034,11,'ct_rieles','Math.ceil(total_rieles / 6)','Tubos de riel de 6m',20),(1035,11,'ct_moldura','Math.ceil(total_rieles / 2.44)','Molduras de 2.44m',21),(1036,11,'ct_silicon','Math.ceil(((ancho_total*2)+(alto_total*2)+(ct_rieles*6))/6)','Tubos de silicón (rinde 4.8m)',22),(1037,11,'ct_tirro','Math.ceil((perimetro * 2) / 22)','Rollos de tirro de 22m (doble cara)',23),(1038,11,'base_tornillos','Math.ceil((ct_rieles * 6) / 0.30)','Tornillos para riel omega cada 0.30m usando tubos de 6m',24),(1039,11,'ct_estructura','estructura === \'si\' ? Math.ceil((total_rieles + (ancho_total * 2) + (Number(altoSuperior) > 0 ? Number(anchoInferior) : 0) + Number(altoDerecho) + Number(altoIzquierdo)) / 6) : 0','Tubos 2x1 de 6m para estructura',25),(1040,11,'ct_electrodo','estructura === \'si\' ? Math.ceil(m2_fascia / 2) : 0','Electrodos (estructura)',26),(1041,11,'ct_disco_ets','estructura === \'si\' ? Math.ceil(m2_fascia / 10) : 0','Discos de corte (estructura)',27),(1042,11,'ct_ancla','estructura === \'si\' ? 4 + (RC - 1) : 0','Anclas expansoras (estructura)',28),(1043,11,'ct_angulo','estructura === \'si\' ? Math.ceil(ct_ancla * 0.10) : 0','Ángulos (estructura)',29),(1044,11,'ct_brochas','estructura === \'si\' ? Math.ceil(m2_fascia / 45) : 0','Brochas (estructura)',30),(1045,11,'ct_pintura','estructura === \'si\' ? Math.ceil(m2_fascia / 45) : 0','Galones de pintura anticorrosiva',31),(1046,11,'ct_thinner','estructura === \'si\' ? Math.ceil(ct_pintura / 2) : 0','Thinner (estructura)',32),(1113,8,'ancho_lamina','orientacion === \'horizontal\' ? 2.39 : 1.17','Dimensión horizontal de la lámina según orientación',0),(1114,8,'altura_lamina','orientacion === \'horizontal\' ? 1.17 : 2.39','Dimensión vertical de la lámina según orientación',1),(1115,8,'ancho_total','Number(anchoIzquierdo) + Number(anchoFrente) + Number(anchoDerecho)','Suma de los tres anchos',2),(1116,8,'alto_total','Number(altoFrente) + Number(altoSuperior) + Number(altoInferior)','Alto total incluyendo parte inferior',3),(1117,8,'lado_alto','Math.max(Number(altoDerecho), Number(altoIzquierdo), Number(altoFrente))','El lado con mayor altura',4),(1118,8,'m2_fascia','ancho_total * alto_total','Metros cuadrados totales',5),(1119,8,'cols_primarias','Math.max(    1,    Math.ceil(ancho_total / ancho_lamina))','Columnas de láminas primarias',6),(1120,8,'filas_primarias','lado_alto <= altura_lamina ? 1 : Math.ceil(lado_alto / altura_lamina)','Filas de láminas primarias',7),(1121,8,'modulo_ancho','Math.ceil(ancho_total / ancho_lamina)','Ancho de la modulacion',8),(1122,8,'resto_vertical','Math.max(    0,    alto_total - ((filas_primarias - 1) * altura_lamina))','Altura sobrante después de las primarias',9),(1123,8,'lam_ancho','cols_primarias <= 0 ? 0 : (ancho_total / cols_primarias)','Ancho real de cada columna',10),(1124,8,'cols_secundarias','resto_vertical === 0 ? 0 : Math.ceil(Number(anchoInferior) / lam_ancho)','Columnas en zona inferior',11),(1125,8,'modulo_alto','Math.ceil(alto_total / altura_lamina)','Total modulos alto',12),(1126,8,'filas_secundarias','resto_vertical === 0 ? 0 : (resto_vertical <= altura_lamina ? 1 : Math.ceil(resto_vertical / altura_lamina))','Filas en zona inferior',13),(1127,8,'laminas_totales','modulo_alto * modulo_ancho','Suma total de láminas',14),(1128,8,'RI_r','Math.max(    0,    Math.floor(Number(anchoIzquierdo) / lam_ancho))','Columnas ocupadas por lado izquierdo',15),(1129,8,'RD_r','Math.max(    0,    Math.floor(Number(anchoDerecho) / lam_ancho))','Columnas ocupadas por lado derecho',16),(1130,8,'RC','cols_primarias - (RI_r + RD_r)','Columnas del centro',17),(1131,8,'total_rieles','(lado_alto * (cols_primarias - 1)) + (Number(altoSuperior) * (RC - 1)) + (ancho_total * (filas_primarias - 1)) + (Number(anchoInferior) * filas_secundarias)','Metros lineales de rieles internos',18),(1132,8,'perimetro','(ancho_total * 2) + (alto_total * 2) + total_rieles','Perímetro exterior + rieles para silicón y tirro',19),(1133,8,'ct_rieles','Math.ceil(total_rieles / 6)','Tubos de riel de 6m',20),(1134,8,'ct_moldura','Math.ceil(total_rieles / 2.44)','Molduras de 2.44m',21),(1135,8,'ct_silicon','Math.ceil(((ancho_total*2)+(alto_total*2)+(ct_rieles*6))/6)','Tubos de silicón (rinde 4.8m)',22),(1136,8,'ct_tirro','Math.ceil((perimetro * 2) / 22)','Rollos de tirro de 22m (doble cara)',23),(1137,8,'base_tornillos','Math.ceil((ct_rieles * 6) / 0.30)','Tornillos para riel omega cada 0.30m usando tubos de 6m',24),(1138,8,'ct_estructura','estructura === \'si\' ? Math.ceil((total_rieles + (ancho_total * 2) + (Number(altoSuperior) > 0 ? Number(anchoInferior) : 0) + Number(altoDerecho) + Number(altoIzquierdo)) / 6) : 0','Tubos 2x1 de 6m para estructura',25),(1139,8,'ct_electrodo','estructura === \'si\' ? Math.ceil(m2_fascia / 2) : 0','Electrodos (estructura)',26),(1140,8,'ct_disco_ets','estructura === \'si\' ? Math.ceil(m2_fascia / 10) : 0','Discos de corte (estructura)',27),(1141,8,'ct_ancla','estructura === \'si\' ? 4 + (RC - 1) : 0','Anclas expansoras (estructura)',28),(1142,8,'ct_angulo','estructura === \'si\' ? Math.ceil(ct_ancla * 0.10) : 0','Ángulos (estructura)',29),(1143,8,'ct_brochas','estructura === \'si\' ? Math.ceil(m2_fascia / 45) : 0','Brochas (estructura)',30),(1144,8,'ct_pintura','estructura === \'si\' ? Math.ceil(m2_fascia / 45) : 0','Galones de pintura anticorrosiva',31),(1145,8,'ct_thinner','estructura === \'si\' ? Math.ceil(ct_pintura / 2) : 0','Thinner (estructura)',32),(1223,12,'valor_tubo','(() => {\n    const valor = (Number(losa) || 0) / 6;\n    return (valor % 1) > 0.5 ? Math.floor(valor) + 1 : valor;\n})()',NULL,0),(1224,12,'tubo_vertical','(valor_tubo * nivel * ancho)+1',NULL,1),(1225,12,'pieza_horizontal','modulo_h * modulo_v',NULL,2),(1226,12,'tubo_horizontal','(pieza_horizontal)/5',NULL,3),(1227,12,'total_tubo','tubo_vertical + tubo_horizontal',NULL,4),(1228,12,'escuadras_v','(modulo_v+1)*4',NULL,5),(1229,12,'escuadras_h','pieza_horizontal * 2',NULL,6),(1230,12,'total_escuadras','escuadras_v + escuadras_h',NULL,7),(1231,12,'escuadra_3x3','(modulo_v+1)*2',NULL,8),(1232,12,'tornillo_2','escuadras_v * 2',NULL,9),(1233,12,'silicon','total_tubo*3',NULL,10),(1234,12,'espuma','total_tubo*6',NULL,11),(1235,12,'vidrio','alto * ancho',NULL,12),(1236,12,'tirro','Math.ceil((total_tubo * 6) / 25)',NULL,13),(1237,12,'otros','vidrio/10',NULL,14),(1238,12,'perno_ex','escuadra_3x3 / 2',NULL,15),(1239,12,'total_tornillo_a','(escuadras_v*2) + (escuadras_h*4)',NULL,16),(1240,10,'totalancho','tramos.reduce((s, x) => s + Number(x), 0)','Suma todos los anchos de los tramos ingresados por el usuario',0),(1241,10,'ancho2','totalancho / 6','Divide el ancho total entre 6 (longitud estándar del tubo)  Sirve como base para calcular consumibles',1),(1242,10,'postes2_raw','tramos.reduce((acc, x) => {   x = Number(x);   const y = x / 1.2;   if (x <= 1.40) return acc + 2;   if (x <= 2.50) return acc + 3;   return acc + ((y % 1 === 0) ? y + 1 : Math.floor(y) + 2); }, 0)','Calcula cuántos postes se necesitan por tramo según su ancho: - Tramo <= 1.40m: siempre 2 postes - Tramo <= 2.50m: siempre 3 postes- Tramo > 2.50m: divide entre 1.20m para saber cuántos espacios caben  Si el resultado es entero: espacios + 1 poste  Si no es entero: redondea hacia abajo + 2 postes',2),(1243,10,'postes','postes2_raw - ((Number(esquinas) || 0) + (Number(esquinasdife) || 0))','Resta las esquinas al total de postes  Las esquinas (90° y diferentes) ya tienen su propio accesorio  por eso no se cuentan como postes normales',3),(1244,10,'conector2','(() => {   const v = Number(varillas) || 0;   const esq = (Number(esquinas) || 0) + (Number(esquinasdife) || 0);   if (v === 0) return 0;   if (conexion === \'Conectores\') return (postes * v) + (esq * v);   return ((postes * v) + (esq * v)) * 2; })()','Calcula la cantidad de conectores o soldaduras según el tipo de conexión: - Si no hay varillas: 0 conectores - Si es Conectores: postes × varillas + esquinas × varillas (1 por lado)  - Si es Soldadura lateral o intermedia: mismo cálculo × 2 (se suelda en ambos lados)',4),(1245,10,'tubos_raw','((Number(altura) * postes) / 6) + (totalancho / 6)','Calcula el total de tubos necesarios sin redondear: - Tubos verticales: altura × postes / 6 (cuántos tubos de 6m se necesitan para todos los postes)  - Tubos horizontales: ancho total / 6 (el tubo pasamanos horizontal)',5),(1246,10,'tubos_decimal','tubos_raw - Math.floor(tubos_raw)','Extrae la parte decimal del total de tubos  Se usa para decidir si se necesita un medio tubo o un tubo entero adicional',6),(1247,10,'usar_medio_tubo','tubos_decimal > 0 && tubos_decimal < 0.5 ? 1 : 0','Si la parte decimal es mayor que 0 pero menor que 0.5, // conviene usar un medio tubo en lugar de comprar uno entero // Devuelve 1 si aplica medio tubo, 0 si no',7),(1248,10,'tubos','usar_medio_tubo === 1 ? Math.floor(tubos_raw) : (tubos_raw % 1 === 0 ? tubos_raw : Math.floor(tubos_raw) + 1)','antidad final de tubos enteros a comprar: // - Si aplica medio tubo: se queda con la parte entera (el medio tubo cubre el resto) // - Si el resultado es exacto: se usa tal cual // - Si la decimal es >= 0.5: se redondea hacia arriba (se compra un tubo entero más)',8),(1249,10,'anclas','postes * 3','// Cada poste se fija con 3 anclas expansivas al piso o pared',9),(1250,10,'tor','(postes * 2) + conector2','// Total de tornillos: // - 2 tornillos por poste (para fijar el flange) // - 1 tornillo por conector o punto de soldadura',10),(1251,10,'taponplano','2','// Tapones planos van en los extremos de cada tramo (2 por tramo) // Se descuentan 2 por cada esquina porque ahí va un accesorio diferente',11),(1252,10,'varres','(() => {   const v = Number(varillas) || 0;   const res = v * (totalancho / 6);   return Number.isInteger(res) ? res : Math.floor(res) + 1; })()','// Tubos de varilla necesarios: // Multiplica la cantidad de varillas por tramo por los tubos de 6m que ocupa el ancho total // Si el resultado no es entero, redondea hacia arriba (se compra el tubo aunque sobre)',12),(1253,10,'ct_union','tramos.reduce((acc, x) => {   x = Number(x);   return x > 6 ? acc + Math.floor(x / 6) : acc; }, 0)','// Las uniones solo aplican cuando un tramo supera 6m (largo del tubo estándar) // Por cada tramo largo, calcula cuántas uniones se necesitan para empalmar los tubos',13),(1254,10,'ct_consumible','Number.isInteger(ancho2) ? ancho2 : Math.ceil(ancho2)','// Cantidad de consumibles (discos, mascon, electrodo): // Si ancho2 es entero exacto se usa tal cual, si no se redondea hacia arriba',14),(1256,13,'m2','(() => {\n    let m2 = alto * ancho;\n\n    if (m2 < 1) {\n        m2 = 1;\n    }\n\n    return m2;\n})()',NULL,0);

INSERT INTO `paquete_material` (`id`, `id_paquete`, `id_paquete_producto`, `clave`, `formula_cantidad`, `precio_override`, `precio_manual`, `cantidad_editable`, `comentario`, `orden`) VALUES (1162,9,57,'chapetones','sistema !== \'chapetones\' ? 0 : c_accesorios',NULL,0,0,NULL,0),(1163,9,71,'clip','sistema !== \'zocalo\' ? 0 : c_accesorios',NULL,0,0,NULL,1),(1164,9,58,'zcalo','perfil_zocalo',NULL,0,0,NULL,2),(1165,9,56,'vidrio','m2_vidrio',NULL,0,0,NULL,3),(1166,9,1,'tubo15','con_tubo !== \'si\' || diametro !== \'1.5\' ? 0 : tubos_barras',NULL,0,0,NULL,4),(1167,9,4,'tubo20','con_tubo !== \'si\' || diametro !== \'2\' ? 0 : tubos_barras',NULL,0,0,NULL,5),(1168,9,3,'medio15','con_tubo !== \'si\' || diametro !== \'1.5\' ? 0 : necesita_medio',NULL,0,0,NULL,6),(1169,9,4,'medio20','con_tubo !== \'si\' || diametro !== \'2\' ? 0 : necesita_medio',NULL,0,0,NULL,7),(1170,9,5,'tapnpn15','con_tubo !== \'si\' || diametro !== \'1.5\' ? 0 : qty_taponplano',NULL,0,0,NULL,8),(1171,9,6,'tapnpn20','con_tubo !== \'si\' || diametro !== \'2\' ? 0 : qty_taponplano',NULL,0,0,NULL,9),(1172,9,14,'codoart15','con_tubo !== \'si\' || diametro !== \'1.5\' || esqdife <= 0 ? 0 : esqdife',NULL,0,0,NULL,10),(1173,9,15,'codoart20','con_tubo !== \'si\' || diametro !== \'2\' || esqdife <= 0 ? 0 : esqdife',NULL,0,0,NULL,11),(1174,9,16,'codo9015','con_tubo !== \'si\' || diametro !== \'1.5\' || esquinas <= 0 ? 0 : esquinas',NULL,0,0,NULL,12),(1175,9,17,'codo9020','con_tubo !== \'si\' || diametro !== \'2\' || esquinas <= 0 ? 0 : esquinas',NULL,0,0,NULL,13),(1176,9,72,'bracket15','diametro !== \'1.5\' ? 0 : bracket',NULL,0,0,NULL,14),(1177,9,73,'bracket20','diametro !== \'2\' ? 0 : bracket',NULL,0,0,NULL,15),(1178,9,12,'ancla','sistema !== \'chapetones\' ? 0 : c_accesorios',NULL,0,0,NULL,16),(1179,9,13,'tornillo','bracket * 2',NULL,0,0,NULL,17),(1180,9,21,'disco','discoc_qty',NULL,0,0,NULL,18),(1181,9,22,'discomil','discoc_qty',NULL,0,0,NULL,19),(1182,9,23,'electrodo','discoc_qty',NULL,0,0,NULL,20),(1183,9,24,'mascon','discoc_qty',NULL,0,0,NULL,21),(1184,9,25,'mano','resultado = altura < 1\n  ? totalAncho\n  : totalAncho * altura',NULL,1,0,NULL,22),(1185,9,26,'transporte','1',NULL,1,0,NULL,23),(1186,9,61,'imprevistos','1',NULL,1,0,NULL,24),(1187,9,78,'ancla','sistema !== \'zocalo\' ? 0 : bracket * 3',NULL,0,0,NULL,25),(1299,6,1,'tubo15','diametro !== \'1.5\' ? 0 : tubos_barras',NULL,0,0,NULL,0),(1300,6,2,'tubo20','diametro !== \'2\' ? 0 : tubos_barras',NULL,0,0,NULL,1),(1301,6,3,'mediotubo15','diametro !== \'1.5\' ? 0 : necesita_medio_tubo',NULL,0,0,NULL,2),(1302,6,4,'mediotubo20','diametro !== \'2\' ? 0 : necesita_medio_tubo',NULL,0,0,NULL,3),(1303,6,5,'taponplano15','diametro !== \'1.5\' ? 0 : qty_taponplano',NULL,0,0,NULL,4),(1304,6,6,'taponplano20','diametro !== \'2\' ? 0 : qty_taponplano',NULL,0,0,NULL,5),(1305,6,7,'taponcarg15','diametro !== \'1.5\' ? 0 : postes',NULL,0,0,NULL,6),(1306,6,8,'taponcarg20','diametro !== \'2\' ? 0 : postes',NULL,0,0,NULL,7),(1307,6,9,'flange15','diametro !== \'1.5\' ? 0 : postes',NULL,0,0,NULL,8),(1308,6,10,'flange20','diametro !== \'2\' ? 0 : postes',NULL,0,0,NULL,9),(1309,6,12,'ancla','postes * 3',NULL,0,0,NULL,10),(1310,6,14,'codoart15','diametro !== \'1.5\' || esqdife <= 0 ? 0 : esqdife',NULL,0,0,NULL,11),(1311,6,15,'codoart20','diametro !== \'2\' || esqdife <= 0 ? 0 : esqdife',NULL,0,0,NULL,12),(1312,6,16,'codo9015','diametro !== \'1.5\' || esquinas <= 0 ? 0 : esquinas',NULL,0,0,NULL,13),(1313,6,17,'codo9020','diametro !== \'2\' || esquinas <= 0 ? 0 : esquinas',NULL,0,0,NULL,14),(1314,6,18,'union15','diametro !== \'1.5\' ? 0 : qty_union',NULL,0,0,NULL,15),(1315,6,19,'union20','diametro !== \'2\' ? 0 : qty_union',NULL,0,0,NULL,16),(1316,6,11,'conector','qty_conector',NULL,0,0,NULL,17),(1317,6,20,'cable','metros_cable',NULL,0,0,NULL,18),(1318,6,21,'discoc','discoc_qty',NULL,0,0,NULL,19),(1319,6,22,'milhojas','discoc_qty',NULL,0,0,NULL,20),(1320,6,23,'electrodo','discoc_qty',NULL,0,0,NULL,21),(1321,6,24,'mascon','discoc_qty',NULL,0,0,NULL,22),(1322,6,25,'mdo','resultado = altura < 1\n  ? totalAncho\n  : totalAncho * altura',NULL,1,0,NULL,23),(1323,6,26,'transporte','1',NULL,1,0,NULL,24),(1437,7,1,'tubo15','diame === \'1.5\' ? tubos : 0',NULL,0,0,NULL,0),(1438,7,2,'tubo20','diame !== \'1.5\' ? tubos : 0',NULL,0,0,NULL,1),(1439,7,3,'mediotubo15','usar_medio_tubo === 1 && diame === \'1.5\' ? 1 : 0',NULL,0,0,NULL,2),(1440,7,7,'tapon15','diame === \'1.5\' ? postes : 0',NULL,0,0,NULL,3),(1441,7,8,'tapon20','diame !== \'1.5\' ? postes : 0',NULL,0,0,NULL,4),(1442,7,5,'plano15','diame === \'1.5\' ? taponplano : 0',NULL,0,0,NULL,5),(1443,7,6,'plano20','diame !== \'1.5\' ? taponplano : 0',NULL,0,0,NULL,6),(1444,7,9,'flange','diame === \'1.5\' ? postes : 0',NULL,0,0,NULL,7),(1445,7,10,'flange','diame !== \'1.5\' ? postes : 0',NULL,0,0,NULL,8),(1446,7,62,'conector','conector2',NULL,0,0,NULL,9),(1447,7,12,'ancla','ancla',NULL,0,0,NULL,10),(1448,7,13,'tornillo','tor',NULL,0,0,NULL,11),(1449,7,14,'codoar15','Number(esquinasdife) > 0 && diame === \'3.81\' ? Number(esquinasdife) : 0',NULL,0,0,NULL,12),(1450,7,15,'codoar20','Number(esquinasdife) > 0 && diame !== \'3.81\' ? Number(esquinasdife) : 0',NULL,0,0,NULL,13),(1451,7,16,'codo15','Number(esquina) > 0 && diame === \'3.81\' ? Number(esquina) : 0',NULL,0,0,NULL,14),(1452,7,17,'codo20','Number(esquina) > 0 && diame !== \'1.5\' ? Number(esquina) : 0',NULL,0,0,NULL,15),(1453,7,56,'vidrio','ct_vidrio',NULL,0,0,NULL,16),(1454,7,18,'union15','ct_union > 0 && diame === \'1.5\' ? ct_union : 0',NULL,0,0,NULL,17),(1455,7,19,'union20','ct_union > 0 && diame !== \'1.5\' ? ct_union : 0',NULL,0,0,NULL,18),(1456,7,21,'discocorte','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,19),(1457,7,22,'discomil','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,20),(1458,7,24,'mascon','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,21),(1459,7,23,'electrodo','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,22),(1460,7,25,'mano','resultado = altura < 1\n  ? totalancho\n  : totalancho * altura',NULL,1,0,NULL,23),(1461,7,26,'transporte','1',NULL,1,0,NULL,24),(1462,7,61,'imprevistos','1',NULL,1,0,NULL,25),(1646,11,30,'acm-plomo','color === \'plomo\' ? laminas_totales : 0',NULL,0,0,NULL,0),(1647,11,31,'acm-silver','color === \'silver\' ? laminas_totales : 0',NULL,0,0,NULL,1),(1648,11,32,'acm-amarillo','color === \'amarillo\' ? laminas_totales : 0',NULL,0,0,NULL,2),(1649,11,33,'acm-anaranjado','color === \'anaranjado\' ? laminas_totales : 0',NULL,0,0,NULL,3),(1650,11,34,'acm-azuln','color === \'azul-navy\' ? laminas_totales : 0',NULL,0,0,NULL,4),(1651,11,35,'acm-azuls','color === \'azul-sky\' ? laminas_totales : 0',NULL,0,0,NULL,5),(1652,11,36,'acm-negrom','color === \'negro-mate\' ? laminas_totales : 0',NULL,0,0,NULL,6),(1653,11,37,'acm-negrobr','color === \'negro-brillante\' ? laminas_totales : 0',NULL,0,0,NULL,7),(1654,11,38,'acm-blancom','color === \'blanco-mate\' ? laminas_totales : 0',NULL,0,0,NULL,8),(1655,11,39,'acm-blancobr','color === \'blanco-brillante\' ? laminas_totales : 0',NULL,0,0,NULL,9),(1656,11,40,'acm-rojom','color === \'rojo-mate\' ? laminas_totales : 0',NULL,0,0,NULL,10),(1657,11,41,'acm-rojobr','color === \'rojo-brillante\' ? laminas_totales : 0',NULL,0,0,NULL,11),(1658,11,42,'acm-verde','color === \'verde-puma\' ? laminas_totales : 0',NULL,0,0,NULL,12),(1659,11,43,'acm-madera','color === \'madera\' ? laminas_totales : 0',NULL,0,0,NULL,13),(1660,11,28,'riel','ct_rieles',NULL,0,0,NULL,14),(1661,11,45,'moldura','ct_moldura',NULL,0,0,NULL,15),(1662,11,51,'silicn','ct_silicon',NULL,0,0,NULL,16),(1663,11,52,'tirro','ct_tirro',NULL,0,0,NULL,17),(1664,11,46,'tornillof','base_tornillos',NULL,0,0,NULL,18),(1665,11,47,'tornillob','base_tornillos',NULL,0,0,NULL,19),(1666,11,48,'separador4','base_tornillos',NULL,0,0,NULL,20),(1667,11,49,'separador8','base_tornillos',NULL,0,0,NULL,21),(1668,11,50,'separador16','base_tornillos',NULL,0,0,NULL,22),(1669,11,64,'tubo','ct_estructura',NULL,0,0,NULL,23),(1670,11,23,'electrodo','ct_electrodo',NULL,0,0,NULL,24),(1671,11,21,'disco','ct_disco_ets',NULL,0,0,NULL,25),(1672,11,12,'ancla','ct_ancla',NULL,0,0,NULL,26),(1673,11,65,'ngulo','ct_angulo',NULL,0,0,NULL,27),(1674,11,66,'brocha','ct_brochas',NULL,0,0,NULL,28),(1675,11,67,'pintura','ct_pintura',NULL,0,0,NULL,29),(1676,11,68,'thinner','ct_thinner',NULL,0,0,NULL,30),(1677,11,69,'instalacion-es','estructura === \'si\' ? m2_fascia : 0',NULL,1,0,NULL,31),(1678,11,70,'transporte-es','estructura === \'si\' ? 1 : 0',NULL,1,0,NULL,32),(1679,11,53,'instalacionacm','estructura === \'si\' ? 0 : m2_fascia',NULL,1,0,NULL,33),(1680,11,26,'transporte','estructura === \'si\' ? 0 : 1',NULL,1,0,NULL,34),(1681,11,55,'andamio','0',NULL,0,0,NULL,35),(1682,11,81,'lmina','color === \'beige\' ? laminas_totales : 0',NULL,0,0,NULL,36),(1757,8,30,'acm-plomo','color === \'plomo\' ? laminas_totales : 0',NULL,0,0,NULL,0),(1758,8,31,'acm-silver','color === \'silver\' ? laminas_totales : 0',NULL,0,0,NULL,1),(1759,8,32,'acm-amarillo','color === \'amarillo\' ? laminas_totales : 0',NULL,0,0,NULL,2),(1760,8,33,'acm-anaranjado','color === \'anaranjado\' ? laminas_totales : 0',NULL,0,0,NULL,3),(1761,8,34,'acm-azuln','color === \'azul-navy\' ? laminas_totales : 0',NULL,0,0,NULL,4),(1762,8,35,'acm-azuls','color === \'azul-sky\' ? laminas_totales : 0',NULL,0,0,NULL,5),(1763,8,36,'acm-negrom','color === \'negro-mate\' ? laminas_totales : 0',NULL,0,0,NULL,6),(1764,8,37,'acm-negrobr','color === \'negro-brillante\' ? laminas_totales : 0',NULL,0,0,NULL,7),(1765,8,38,'acm-blancom','color === \'blanco-mate\' ? laminas_totales : 0',NULL,0,0,NULL,8),(1766,8,39,'acm-blancobr','color === \'blanco-brillante\' ? laminas_totales : 0',NULL,0,0,NULL,9),(1767,8,40,'acm-rojom','color === \'rojo-mate\' ? laminas_totales : 0',NULL,0,0,NULL,10),(1768,8,41,'acm-rojobr','color === \'rojo-brillante\' ? laminas_totales : 0',NULL,0,0,NULL,11),(1769,8,42,'acm-verde','color === \'verde-puma\' ? laminas_totales : 0',NULL,0,0,NULL,12),(1770,8,43,'acm-madera','color === \'madera\' ? laminas_totales : 0',NULL,0,0,NULL,13),(1771,8,28,'riel','ct_rieles',NULL,0,0,NULL,14),(1772,8,45,'moldura','ct_moldura',NULL,0,0,NULL,15),(1773,8,51,'silicn','ct_silicon',NULL,0,0,NULL,16),(1774,8,52,'tirro','ct_tirro',NULL,0,0,NULL,17),(1775,8,46,'tornillof','base_tornillos',NULL,0,0,NULL,18),(1776,8,47,'tornillob','base_tornillos',NULL,0,0,NULL,19),(1777,8,48,'separador4','base_tornillos',NULL,0,0,NULL,20),(1778,8,49,'separador8','base_tornillos',NULL,0,0,NULL,21),(1779,8,50,'separador16','base_tornillos',NULL,0,0,NULL,22),(1780,8,64,'tubo','ct_estructura',NULL,0,0,NULL,23),(1781,8,23,'electrodo','ct_electrodo',NULL,0,0,NULL,24),(1782,8,21,'disco','ct_disco_ets',NULL,0,0,NULL,25),(1783,8,12,'ancla','ct_ancla',NULL,0,0,NULL,26),(1784,8,65,'ngulo','ct_angulo',NULL,0,0,NULL,27),(1785,8,66,'brocha','ct_brochas',NULL,0,0,NULL,28),(1786,8,67,'pintura','ct_pintura',NULL,0,0,NULL,29),(1787,8,68,'thinner','ct_thinner',NULL,0,0,NULL,30),(1788,8,69,'instalacion-es','estructura === \'si\' ? m2_fascia : 0',NULL,1,0,NULL,31),(1789,8,70,'transporte-es','estructura === \'si\' ? 1 : 0',NULL,1,0,NULL,32),(1790,8,53,'instalacionacm','m2_fascia',NULL,1,0,NULL,33),(1791,8,26,'transporte','1',NULL,1,0,NULL,34),(1792,8,55,'andamio','1',NULL,1,0,NULL,35),(1793,8,81,'lmina','color === \'beige\' ? laminas_totales : 0',NULL,0,0,NULL,36),(1794,8,86,'acm-bronce','color === \'bronce\' ? laminas_totales : 0',NULL,0,0,NULL,37),(1858,12,91,'escuadra','total_escuadras',NULL,0,0,NULL,0),(1859,12,87,'vidrio','vidrio',NULL,0,0,NULL,1),(1860,12,96,'tornillo','tornillo_2',NULL,0,0,NULL,2),(1861,12,12,'ancla','escuadra_3x3',NULL,0,0,NULL,3),(1862,12,88,'tubo','total_tubo',NULL,0,0,NULL,4),(1863,12,94,'wipper','otros',NULL,0,0,NULL,5),(1864,12,95,'alcohol','otros',NULL,0,0,NULL,6),(1865,12,90,'silicon','silicon',NULL,0,0,NULL,7),(1866,12,92,'espuma','espuma',NULL,0,0,NULL,8),(1867,12,52,'tirro','tirro',NULL,0,0,NULL,9),(1868,12,78,'ancla','tornillo_2',NULL,0,0,NULL,10),(1869,12,103,'perno','perno_ex',NULL,0,0,NULL,11),(1870,12,13,'tornillo','total_tornillo_a',NULL,0,0,NULL,12),(1871,12,25,'mano','vidrio',NULL,1,0,NULL,13),(1872,12,61,'imprevistos','1',NULL,1,0,NULL,14),(1873,12,26,'transporte','vidrio',NULL,1,0,NULL,15),(1874,12,55,'andamio','vidrio',NULL,1,0,NULL,16),(1875,10,1,'tubo15','diame === \'1.5\' ? tubos : 0',NULL,0,0,NULL,0),(1876,10,2,'tubo20','diame !== \'1.5\' ? tubos : 0',NULL,0,0,NULL,1),(1877,10,3,'medio15','usar_medio_tubo === 1 && diame === \'1.5\' ? 1 : 0',NULL,0,0,NULL,2),(1878,10,4,'medio20','usar_medio_tubo === 1 && diame !== \'1.5\' ? 1 : 0',NULL,0,0,NULL,3),(1879,10,7,'tapn15','diame === \'1.5\' ? postes : 0',NULL,0,0,NULL,4),(1880,10,8,'tapn20','diame !== \'1.5\' ? postes : 0',NULL,0,0,NULL,5),(1881,10,5,'tapnpl15','diame === \'1.5\' ? taponplano : 0',NULL,0,0,NULL,6),(1882,10,6,'tapnpl20','diame !== \'1.5\' ? taponplano : 0',NULL,0,0,NULL,7),(1883,10,9,'flange15','diame === \'1.5\' ? postes : 0',NULL,0,0,NULL,8),(1884,10,10,'flange20','diame !== \'1.5\' ? postes : 0',NULL,0,0,NULL,9),(1885,10,74,'soldadural','conexion === \'Soldaduras lateral\' && (Number(varillas)||0) > 0 ? conector2 : 0',NULL,0,0,NULL,10),(1886,10,75,'soldadurai','conexion === \'Soldaduras intermedia\' && (Number(varillas)||0) > 0 ? conector2 : 0',NULL,0,0,NULL,11),(1887,10,12,'ancla','anclas',NULL,0,0,NULL,12),(1888,10,13,'tornillo','tor',NULL,0,0,NULL,13),(1889,10,76,'varilla','(Number(varillas) || 0) > 0 ? varres : 0',NULL,0,0,NULL,14),(1890,10,18,'unin15','ct_union > 0 && diame === \'1.5\' ? ct_union : 0',NULL,0,0,NULL,15),(1891,10,19,'unin20','ct_union > 0 && diame !== \'1.5\' ? ct_union : 0',NULL,0,0,NULL,16),(1892,10,14,'codo15','(Number(esquinasdife)||0) > 0 && diame === \'1.5\' ? (Number(esquinasdife)||0) : 0',NULL,0,0,NULL,17),(1893,10,15,'codo20','(Number(esquinasdife)||0) > 0 && diame !== \'1.5\' ? (Number(esquinasdife)||0) : 0',NULL,0,0,NULL,18),(1894,10,16,'codo9015','(Number(esquinasdife)||0) > 0 && diame == \'1.5\' ? (Number(esquinasdife)||0) : 0',NULL,0,0,NULL,19),(1895,10,17,'codo9020','(Number(esquinasdife)||0) > 0 && diame !== \'1.5\' ? (Number(esquinasdife)||0) : 0',NULL,0,0,NULL,20),(1896,10,21,'discocorte','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,21),(1897,10,24,'mascon','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,22),(1898,10,22,'discomil','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,23),(1899,10,23,'electrodo','totalancho < 6 ? 1 : ct_consumible',NULL,0,0,NULL,24),(1900,10,25,'mano','resultado = altura < 1\n  ? totalancho\n  : totalancho * altura',NULL,1,0,NULL,25),(1901,10,26,'transporte','1',NULL,1,0,NULL,26),(1902,10,61,'imprevistos','1',NULL,1,0,NULL,27),(1917,13,123,'s1400','tipo !== \'S1400 VF 6mm Negro\' ? 0 : m2',NULL,0,0,NULL,0),(1918,13,124,'s1400','tipo !== \'S1400 VF 6mm Natural\' ? 0 : m2',NULL,0,0,NULL,1),(1919,13,125,'s1400','tipo !== \'S1400 VF 6mm Blanco\' ? 0 : m2',NULL,0,0,NULL,2),(1920,13,126,'s1400','tipo !== \'S1400 proyectable 6mm Negro\' ? 0 : m2',NULL,0,0,NULL,3),(1921,13,127,'s1400','tipo !== \'S1400 proyectable 6mm Natural\' ? 0 : m2',NULL,0,0,NULL,4),(1922,13,128,'s1400','tipo !== \'S1400 proyectable 6mm Blanco\' ? 0 : m2',NULL,0,0,NULL,5),(1923,13,129,'s3600','tipo !== \'S3600 Ventana corrediza 2H2R 6mm Negro\' ? 0 : m2',NULL,0,0,NULL,6),(1924,13,130,'s4600','tipo !== \'S4600 Ventana corrediza 2H2R 6mm Negro\' ? 0 : m2',NULL,0,0,NULL,7),(1925,13,131,'s4600','tipo !== \'S4600 Puerta corrediza 2H2R 6mm Negro\' ? 0 : m2',NULL,0,0,NULL,8),(1926,13,132,'s4600','tipo !== \'S4600 Puerta corrediza 2H2R 10mm Negro\' ? 0 : m2',NULL,0,0,NULL,9),(1927,13,133,'s4600','tipo !== \'S4600 Puerta corrediza + 3 rieles 10mm Negro\' ? 0 : m2',NULL,0,0,NULL,10),(1928,13,134,'s4600','tipo !== \'S4600 Puerta corrediza + 4 rieles 10mm Negro\' ? 0 : m2',NULL,0,0,NULL,11),(1929,13,135,'s4600','tipo !== \'S4600 Puerta corrediza + 5 rieles 10mm Negro\' ? 0 : m2',NULL,0,0,NULL,12),(1930,13,136,'s4600','tipo !== \'S4600 Puerta corrediza + 6 rieles 10mm Negro\' ? 0 : m2',NULL,0,0,NULL,13),(1931,13,52,'tirro','m2',NULL,0,0,NULL,14),(1932,13,26,'transporte','1',NULL,1,0,NULL,15),(1933,13,69,'instalacin','m2',0.00,1,0,NULL,16),(1934,13,29,'silicn','m2',NULL,0,0,NULL,17);


