-- ============================================================= -- LIS 05 — Motor de precios y convenios -- Crea: lab_tarifas_id, lab_tarifas, lab_empresas, -- lab_empresa_subgrupos, lab_examenes_empresa -- ============================================================= -- ----------------------------------------------------------- -- Catálogo de tarifas -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_tarifas_id ( id INT NOT NULL, nombre VARCHAR(150) NOT NULL, tarifa_origen INT DEFAULT NULL COMMENT 'Si != NULL, esta tarifa = tarifa_origen * (1 + porcentaje/100)', porcentaje DECIMAL(8,4) NOT NULL DEFAULT 0 COMMENT '0 = precios fijos, >0 = derivada porcentualmente', PRIMARY KEY (id), KEY idx_origen (tarifa_origen) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Catálogo de tarifas — replica TARIFAID Firebird'; -- ----------------------------------------------------------- -- Precios por examen y tarifa -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_tarifas ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, cod_examen_legacy VARCHAR(20) NOT NULL COMMENT 'CODIGO original Firebird para trazabilidad', exam_tipo_id INT UNSIGNED DEFAULT NULL, tarifa_id INT NOT NULL, valor DECIMAL(12,2) NOT NULL, recargo_urg DECIMAL(12,2) NOT NULL DEFAULT 0, recargo_fes DECIMAL(12,2) NOT NULL DEFAULT 0, recargo_esp DECIMAL(12,2) NOT NULL DEFAULT 0, PRIMARY KEY (id), UNIQUE KEY uq_examen_tarifa (exam_tipo_id, tarifa_id), KEY idx_legacy (cod_examen_legacy), KEY idx_tarifa (tarifa_id), CONSTRAINT fk_tar_tarifa FOREIGN KEY (tarifa_id) REFERENCES lab_tarifas_id (id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Precios por examen y tarifa — replica TARIFA Firebird'; -- ----------------------------------------------------------- -- Empresas / convenios -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_empresas ( nit VARCHAR(20) NOT NULL, nombre VARCHAR(200) NOT NULL, razon_social VARCHAR(200) DEFAULT NULL, tarifa_id INT DEFAULT NULL, descuento_pct DECIMAL(8,4) NOT NULL DEFAULT 0, codigo_eps VARCHAR(20) DEFAULT NULL, tipo_usuario VARCHAR(10) DEFAULT NULL COMMENT 'Tipo usuario para facturación', tipo_usuario_sispro VARCHAR(10) DEFAULT NULL, cod_contrato VARCHAR(50) DEFAULT NULL, cod_tercero VARCHAR(50) DEFAULT NULL, centro_costo VARCHAR(50) DEFAULT NULL, req_autoriza TINYINT(1) NOT NULL DEFAULT 0 COMMENT '1 = exige número de autorización en recepción', activa TINYINT(1) NOT NULL DEFAULT 1, PRIMARY KEY (nit), KEY idx_tarifa (tarifa_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Empresas y convenios — replica EMPRESA Firebird'; -- ----------------------------------------------------------- -- Subgrupos de empresa -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_empresa_subgrupos ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, nit_empresa VARCHAR(20) NOT NULL, subgrupo VARCHAR(100) NOT NULL, tarifa_id INT DEFAULT NULL, ref_subgrupo VARCHAR(50) DEFAULT NULL, cod_contrato VARCHAR(50) DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY uq_empresa_sub (nit_empresa, subgrupo), KEY idx_tarifa (tarifa_id), CONSTRAINT fk_esub_empresa FOREIGN KEY (nit_empresa) REFERENCES lab_empresas (nit) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Subgrupos por empresa — replica EMPRESA_SUB Firebird'; -- ----------------------------------------------------------- -- Códigos de examen alternos por empresa (para interfaces) -- ----------------------------------------------------------- CREATE TABLE IF NOT EXISTS lab_examenes_empresa ( nit_empresa VARCHAR(20) NOT NULL, cod_examen_legacy VARCHAR(20) NOT NULL, exam_tipo_id INT UNSIGNED DEFAULT NULL, codigo_empresa VARCHAR(50) NOT NULL, PRIMARY KEY (nit_empresa, cod_examen_legacy), KEY idx_exam (exam_tipo_id), CONSTRAINT fk_ee_empresa FOREIGN KEY (nit_empresa) REFERENCES lab_empresas (nit) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Códigos alternos por empresa — replica EXAMEN_EMP Firebird';