SET NOCOUNT ON
GO
IF OBJECT_ID('dbo.fco_centros_trabajo') IS NOT NULL
    DROP TABLE dbo.fco_centros_trabajo
GO
CREATE TABLE dbo.fco_centros_trabajo
(
    compania char(4) NOT NULL,
    centro_trabajo char(10) NOT NULL,
    descripcion varchar(60) NOT NULL,
    codigo_reporte decimal(9) NOT NULL,
    tarifa decimal(6,5) NOT NULL,
    CONSTRAINT pk_fco_centros_trabajo PRIMARY KEY NONCLUSTERED (compania, centro_trabajo)
)
GO
GRANT ALL ON dbo.fco_centros_trabajo TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_centros_trabajo') IS NOT NULL
    DROP VIEW dbo.vw_fco_centros_trabajo
GO
CREATE VIEW dbo.vw_fco_centros_trabajo
AS
SELECT rac.compania, centro_trabajo = dato, descripcion = ISNULL(ct.descripcion, dat.descripcion), 
       codigo_reporte = ISNULL(ct.codigo_reporte, dato), ct.tarifa
FROM rel_agr_companias rac
INNER JOIN datos_agr_trab dat ON rac.agrupacion = dat.agrupacion
LEFT JOIN fco_centros_trabajo ct ON rac.compania = ct.compania AND ct.centro_trabajo = dat.dato
WHERE rac.agrupacion = ISNULL(
(Select dato FROM vw_fdt_parametros x
 Where x.pais = 'COL' and x.compania = rac.compania 
   and x.parametro = 'autoliq' and secuencia = 24), 'CENTROS_TR')
GO
GRANT SELECT ON dbo.vw_fco_centros_trabajo TO PUBLIC
GO
IF OBJECT_ID('dbo.fn_fco_centro_trabajo') IS NOT NULL
    DROP FUNCTION dbo.fn_fco_centro_trabajo
GO
CREATE FUNCTION dbo.fn_fco_centro_trabajo
(
    @pch_compania char(4),
    @pch_trabajador char(10)    
)
RETURNS decimal(9)
AS
BEGIN
    DECLARE 
        @vdc_centro_tra decimal(9),
        @vch_agt_CTR char(10)     -- Centro de Trabajo

    SELECT @vch_agt_CTR = dato FROM vw_fdt_parametros 
    WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 24

    SELECT @vdc_centro_tra = codigo_reporte
    FROM vw_fco_centros_trabajo a
    INNER JOIN rel_trab_agr b ON a.compania = b.compania AND a.centro_trabajo = b.dato
    WHERE a.compania = @pch_compania
      AND b.trabajador = @pch_trabajador
      AND b.agrupacion = @vch_agt_CTR
    
    RETURN ISNULL(@vdc_centro_tra, 0)
END
GO
GRANT EXECUTE ON dbo.fn_fco_centro_trabajo TO PUBLIC
GO

IF OBJECT_ID('dbo.fn_fco_tarifa_ARP') IS NOT NULL
    DROP FUNCTION dbo.fn_fco_tarifa_ARP
GO
CREATE FUNCTION dbo.fn_fco_tarifa_ARP
(  
    @pch_compania char(4),  
    @pch_trabajador char(10)      
)  
RETURNS decimal(9,8)  
AS  
BEGIN  
    DECLARE   
        @vch_agt_CTR char(10),     -- Centro de Trabajo  
        @vdc_aux decimal(19,6),  
        @vdc_porcentaje decimal(9,8),  
        @vvc_metodo varchar(20),  
        @vti_metodo tinyint,  
        @vvc_var_tra varchar(20),  
        @vti_secuencia tinyint,  
        @vsi_impuesto smallint,  
        @vch_agr_tra char(10),  
        @vch_dato char(10)  
  
    SELECT @vch_agt_CTR = dato FROM vw_fdt_parametros   
    WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 24  
  
    SELECT @vvc_metodo = dato FROM vw_fdt_parametros  
    WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 33  
  
    SELECT @vvc_var_tra = dato FROM vw_fdt_parametros  
    WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 34  
  
    SELECT @vsi_impuesto = CONVERT(smallint, dato) FROM vw_fdt_parametros  
    WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 35  
  
    SELECT @vch_agr_tra = LEFT(LTRIM(dato), 10) FROM vw_fdt_parametros  
    WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 36  
  
    SET @vvc_metodo = ISNULL(@vvc_metodo, '1')  
    IF ISNUMERIC(LEFT(@vvc_metodo,1)) = 1  
        SET @vti_metodo = CONVERT(tinyint, LEFT(@vvc_metodo,1))  
    ELSE  
        SET @vti_metodo = 1  
  
    SET @vvc_var_tra = ISNULL(@vvc_var_tra, '00')  
    IF ISNUMERIC(LEFT(@vvc_var_tra,2)) = 1  
        SET @vti_secuencia = CONVERT(tinyint, LEFT(@vvc_var_tra,2))  
    ELSE  
        SET @vti_secuencia = 0  
  
    IF @vti_metodo = 1  -- Método Sugerido: CTR en [rel_trab_agr] y % en fco_centros_trabajo  
        SELECT @vdc_aux = a.tarifa  
        FROM vw_fco_centros_trabajo a  
        INNER JOIN rel_trab_agr b ON a.compania = b.compania AND a.centro_trabajo = b.dato  
        WHERE a.compania = @pch_compania   
          AND b.agrupacion = @vch_agt_CTR  
          AND b.trabajador = @pch_trabajador  
  
    IF @vti_metodo = 2 -- Método Coca Cola: % en variable del trabajador  
        SELECT @vdc_aux = variable_trabajador / 10  
        FROM variables_trabajador  
        WHERE compania = @pch_compania  
          AND trabajador = @pch_trabajador  
          AND secuencia = @vti_secuencia  
  
    IF @vti_metodo = 3 -- Otros clientes: Nivel en variable y % en tabla de impuestos  
    BEGIN  
        -- Nivel  
        SELECT @vdc_aux = variable_trabajador  
        FROM variables_trabajador  
        WHERE compania = @pch_compania  
          AND trabajador = @pch_trabajador  
          AND secuencia = @vti_secuencia  
  
        -- Porcentaje  
        SELECT @vdc_aux = porcentaje  / 100000  -- /100000 PARA Andina Trim JCL Junio 21/06
        FROM impuestos  
        WHERE impuesto = @vsi_impuesto  
          AND @vdc_aux BETWEEN limite_inferior AND limite_superior  
    END  
  
    IF @vti_metodo = 4 -- Método Colcafé y La Bastilla  
    BEGIN  
        -- Nivel  
        SELECT @vch_dato = dato  
        FROM rel_trab_agr  
        WHERE compania = @pch_compania  
          AND trabajador = @pch_trabajador  
          AND agrupacion = @vch_agr_tra  
  
        IF ISNUMERIC(@vch_dato) = 1 SET @vdc_aux = CONVERT(decimal, @vch_dato) ELSE SET @vdc_aux = 0  
  
        -- Porcentaje  
        SELECT @vdc_aux = porcentaje / 100000  
        FROM impuestos  
        WHERE impuesto = @vsi_impuesto  
          AND @vdc_aux BETWEEN limite_inferior AND limite_superior  
    END  
  
    IF @vdc_aux > 1 SET @vdc_aux = @vdc_aux / 100  
    IF @vdc_aux > 1 SET @vdc_aux = 0  
  
    SET @vdc_porcentaje = @vdc_aux  
  
    RETURN ISNULL(@vdc_porcentaje, 0)  
END  
GO
GRANT EXECUTE ON dbo.fn_fco_tarifa_ARP TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_cias_datos_adi') IS NOT NULL
    DROP VIEW dbo.vw_fco_cias_datos_adi
GO
CREATE VIEW dbo.vw_fco_cias_datos_adi
AS
SELECT 
    c.compania, a.tipo_id, a.fax, a.nit_ARP, a.nombre_ARP, a.clase_aportante, 
    a.sucursal_pagadora, a.nro_patronal, a.forma_presentacion, a.cod_ciudad, a.cod_dpto, 
    c.registro_fiscal, a.nombre_retenedor, a.cedula_retenedor, a.agencias, a.arp_iss, 
    a.dir_ARP, a.tel_ARP, a.nombre_SENA, a.nit_SENA, a.dir_SENA, a.tel_SENA, a.nombre_ICBF, 
    a.nit_ICBF, a.dir_ICBF, a.tel_ICBF, a.cod_admon, a.iss_redondea, a.cod_ARP
FROM companias c
LEFT JOIN fco_cias_datos_adi a ON a.compania = c.compania
GO
GRANT SELECT ON dbo.vw_fco_cias_datos_adi TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_cambio_cias_datos_adi') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_cambio_cias_datos_adi
GO
CREATE PROCEDURE dbo.sp_fco_cambio_cias_datos_adi
(
    @pch_compania char(4),
    @pch_tipo_id char(3),
    @pch_dpto char(2),
    @pch_ciudad char(3),  
    @pvc_fax varchar(20),  
    @pvc_nit_ARP varchar(11),  
    @pvc_nombre_ARP varchar(30),  
    @pch_clase_aportante char(1),  
    @pch_forma_presentacion char(1),  
    @pch_sucursal_pagadora char(10),  
    @pch_nro_patronal char(11),  
    @pvc_nombre_retenedor varchar(60),  
    @pvc_cedula_retenedor varchar(60),  
    @pvc_agencias varchar(300),  
    @pti_arp_iss  tinyint,
    --Agregado JAS, Reporte Dian Grasco
    @pvc_dir_ARP varchar(50),
    @pvc_tel_ARP varchar(20),
    @pvc_nit_SENA varchar(11),
    @pvc_nombre_SENA varchar(30),
    @pvc_dir_SENA varchar(50),
    @pvc_tel_SENA varchar(20),
    @pvc_nit_ICBF varchar(11),
    @pvc_nombre_ICBF varchar(30),
    @pvc_dir_ICBF varchar(50),
    @pvc_tel_ICBF varchar(20),
    @pvc_cod_admon varchar(40),
    @pbi_iss_redondea bit,
    @pch_cod_ARP char(6)
)
AS
BEGIN
    IF EXISTS(SELECT 1 FROM fco_cias_datos_adi WHERE compania = @pch_compania)
        UPDATE  
          fco_cias_datos_adi
        SET  
          tipo_id = @pch_tipo_id,  
          cod_dpto = @pch_dpto,  
          cod_ciudad = @pch_ciudad,  
          fax = @pvc_fax,  
          nit_ARP = @pvc_nit_ARP,  
          nombre_ARP = @pvc_nombre_ARP,  
          clase_aportante = @pch_clase_aportante,  
          forma_presentacion = @pch_forma_presentacion,  
          sucursal_pagadora = @pch_sucursal_pagadora,  
          nro_patronal = @pch_nro_patronal,  
          nombre_retenedor = @pvc_nombre_retenedor,  
          cedula_retenedor = @pvc_cedula_retenedor,  
          agencias = @pvc_agencias,  
          arp_iss = @pti_arp_iss,
          dir_ARP = @pvc_dir_ARP,
          tel_ARP = @pvc_tel_ARP,
          nit_SENA = @pvc_nit_SENA,
          nombre_SENA = @pvc_nombre_SENA,
          dir_SENA = @pvc_dir_SENA,
          tel_SENA = @pvc_tel_SENA,
          nit_ICBF = @pvc_nit_ICBF,
          nombre_ICBF = @pvc_nombre_ICBF,
          dir_ICBF = @pvc_dir_ICBF,
          tel_ICBF = @pvc_tel_ICBF,
          cod_admon = @pvc_cod_admon,
          iss_redondea = @pbi_iss_redondea,
          cod_ARP = @pch_cod_ARP
        WHERE  
          compania = @pch_compania
   ELSE
        INSERT INTO fco_cias_datos_adi
        (compania, tipo_id, cod_dpto, cod_ciudad, fax, nit_ARP, nombre_ARP, 
         clase_aportante, forma_presentacion, sucursal_pagadora, nro_patronal, 
         nombre_retenedor, cedula_retenedor, agencias, arp_iss, dir_ARP, 
         tel_ARP, nombre_SENA, nit_SENA, dir_SENA, tel_SENA, 
         nombre_ICBF, nit_ICBF, dir_ICBF, tel_ICBF, cod_admon, iss_redondea, cod_ARP)
        SELECT
        @pch_compania, @pch_tipo_id, @pch_dpto, @pch_ciudad, @pvc_fax,  @pvc_nit_ARP, @pvc_nombre_ARP, 
        @pch_clase_aportante, @pch_forma_presentacion, @pch_sucursal_pagadora, @pch_nro_patronal, 
        @pvc_nombre_retenedor, @pvc_cedula_retenedor, @pvc_agencias, @pti_arp_iss, @pvc_dir_ARP, 
        @pvc_tel_ARP, @pvc_nombre_SENA, @pvc_nit_SENA, @pvc_dir_SENA, @pvc_tel_SENA, 
        @pvc_nombre_ICBF, @pvc_nit_ICBF, @pvc_dir_ICBF, @pvc_tel_ICBF, @pvc_cod_admon, @pbi_iss_redondea, @pch_cod_ARP

END
GO
GRANT EXECUTE ON sp_fco_cambio_cias_datos_adi TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_upd_int_det_ccf') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_int_det_ccf
GO
CREATE PROCEDURE dbo.sp_fco_upd_int_det_ccf
(
    @pch_compania  char(4),
    @psi_anio  smallint,
    @pti_mes  tinyint,
    @pvc_sucursal  varchar(10),
    @pch_trabajador  char(10),
    @pch_secuencia  char(5),
    @pch_tipo_documento  char(2),
    @pvc_nro_id  varchar(16),
    @pti_tipo_cotizante  tinyint,
    @pvc_primer_apellido  varchar(20),
    @pvc_segundo_apellido  varchar(30),
    @pvc_primer_nombre  varchar(20),
    @pvc_segundo_nombre  varchar(30),
    @pch_nov_ING  char(1),
    @pch_nov_RET  char(1),
    @pch_nov_TDE  char(1),
    @pch_nov_TAE  char(1),
    @pch_nov_TDP  char(1),
    @pch_nov_TAP  char(1),
    @pch_nov_VSP  char(1),
    @pch_nov_VTE  char(1),
    @pch_nov_VST  char(1),
    @pch_nov_SLN  char(1),
    @pch_nov_IGE  char(1),
    @pch_nov_LMA  char(1),
    @pch_nov_VAC  char(1),
    @pch_nov_AVP  char(1),
    @pch_nov_VCT  char(1),
    @pch_nov_IRP  char(2),
    @pdc_salario  decimal(9, 0),
    @pvc_cod_CCF varchar(6), 
    @pti_dias_CCF tinyint,
    @pdc_IBC_CCF decimal(9 ,0), 
    @pdc_tarifa_CCF decimal(6, 5), 
    @pdc_aporte_CCF decimal(9 ,0),
    @pdc_tarifa_SENA decimal(6, 5), 
    @pdc_aporte_SENA decimal(9 ,0), 
    @pdc_tarifa_ICBF decimal(6, 5), 
    @pdc_aporte_ICBF decimal(9 ,0),
    @pdc_tarifa_ESAP decimal(6, 5), 
    @pdc_aporte_ESAP decimal(9 ,0),
    @pdc_tarifa_MEdu decimal(6, 5), 
    @pdc_aporte_MEdu decimal(9 ,0)
)
AS
BEGIN
    UPDATE fco_integrada_det
    SET 
        tipo_documento = ISNULL(@pch_tipo_documento, ''),
        nro_id = ISNULL(@pvc_nro_id, ''),
        tipo_cotizante = ISNULL(@pti_tipo_cotizante, 1),
        primer_apellido = ISNULL(@pvc_primer_apellido, ''),
        segundo_apellido = ISNULL(@pvc_segundo_apellido, ''),
        primer_nombre = ISNULL(@pvc_primer_nombre, ''),
        segundo_nombre = ISNULL(@pvc_segundo_nombre, ''),
        nov_ING = ISNULL(@pch_nov_ING, ''),
        nov_RET = ISNULL(@pch_nov_RET, ''),
        nov_TDE = ISNULL(@pch_nov_TDE, ''),
        nov_TAE = ISNULL(@pch_nov_TAE, ''),
        nov_TDP = ISNULL(@pch_nov_TDP, ''),
        nov_TAP = ISNULL(@pch_nov_TAP, ''),
        nov_VSP = ISNULL(@pch_nov_VSP, ''),
        nov_VTE = ISNULL(@pch_nov_VTE, ''),
        nov_VST = ISNULL(@pch_nov_VST, ''),
        nov_SLN = ISNULL(@pch_nov_SLN, ''),
        nov_IGE = ISNULL(@pch_nov_IGE, ''),
        nov_LMA = ISNULL(@pch_nov_LMA, ''),
        nov_VAC = ISNULL(@pch_nov_VAC, ''),
        nov_AVP =  ISNULL(@pch_nov_AVP, ''),
        nov_VCT = ISNULL(@pch_nov_VCT, ''),
        nov_IRP = ISNULL(@pch_nov_IRP, '00'),
        salario = ISNULL(@pdc_salario, 0),
        dias_CCF = ISNULL(@pti_dias_CCF, 0), 
        IBC_CCF = ISNULL(@pdc_IBC_CCF, 0),
        tarifa_CCF = ISNULL(@pdc_tarifa_CCF, 0),
        aporte_CCF = ISNULL(@pdc_aporte_CCF, 0),
        tarifa_SENA = ISNULL(@pdc_tarifa_SENA, 0),
        aporte_SENA = ISNULL(@pdc_aporte_SENA, 0),
        tarifa_ICBF = ISNULL(@pdc_tarifa_ICBF, 0),
        aporte_ICBF = ISNULL(@pdc_aporte_ICBF, 0),
        tarifa_ESAP = ISNULL(@pdc_tarifa_ESAP, 0),
        aporte_ESAP = ISNULL(@pdc_aporte_ESAP, 0),
        tarifa_MEdu = ISNULL(@pdc_tarifa_MEdu, 0),
        aporte_MEdu = ISNULL(@pdc_aporte_MEdu, 0)        
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND trabajador = @pch_trabajador

END
GO
GRANT EXECUTE ON sp_fco_upd_int_det_ccf TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_upd_int_det_afp') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_int_det_afp
GO
CREATE PROCEDURE dbo.sp_fco_upd_int_det_afp
(
    @pch_compania  char(4),
    @psi_anio  smallint,
    @pti_mes  tinyint,
    @pvc_sucursal  varchar(10),
    @pch_trabajador  char(10),
    @pch_secuencia  char(5),
    @pch_tipo_documento  char(2),
    @pvc_nro_id  varchar(16),
    @pti_tipo_cotizante  tinyint,
    @pvc_primer_apellido  varchar(20),
    @pvc_segundo_apellido  varchar(30),
    @pvc_primer_nombre  varchar(20),
    @pvc_segundo_nombre  varchar(30),
    @pch_nov_ING  char(1),
    @pch_nov_RET  char(1),
    @pch_nov_TDE  char(1),
    @pch_nov_TAE  char(1),
    @pch_nov_TDP  char(1),
    @pch_nov_TAP  char(1),
    @pch_nov_VSP  char(1),
    @pch_nov_VTE  char(1),
    @pch_nov_VST  char(1),
    @pch_nov_SLN  char(1),
    @pch_nov_IGE  char(1),
    @pch_nov_LMA  char(1),
    @pch_nov_VAC  char(1),
    @pch_nov_AVP  char(1),
    @pch_nov_VCT  char(1),
    @pch_nov_IRP  char(2),
    @pdc_salario  decimal(9, 0),
    @pvc_cod_afp  varchar(6),
    @pvc_cod_afp_Tras  varchar(6),
    @pti_dias_afp  tinyint,
    @pdc_IBC_afp  decimal(9, 0),
    @pdc_tarifa_afp  decimal(6, 5),
    @pdc_aporte_afp  decimal(9, 0),
    @pdc_voluntario_AFP decimal(9, 0),
    @pdc_voluntario_AFP_cia decimal(9, 0),
    @pdc_aporte_FSP_solidaridad decimal(9, 0), 
    @pdc_aporte_FSP_subsistencia decimal(9, 0), 
    @pdc_valor_no_retenido decimal(9, 0)
)
AS
BEGIN
    UPDATE fco_integrada_det
    SET 
        tipo_documento = ISNULL(@pch_tipo_documento, ''),
        nro_id = ISNULL(@pvc_nro_id, ''),
        tipo_cotizante = ISNULL(@pti_tipo_cotizante, 1),
        primer_apellido = ISNULL(@pvc_primer_apellido, ''),
        segundo_apellido = ISNULL(@pvc_segundo_apellido, ''),
        primer_nombre = ISNULL(@pvc_primer_nombre, ''),
        segundo_nombre = ISNULL(@pvc_segundo_nombre, ''),
        nov_ING = ISNULL(@pch_nov_ING, ''),
        nov_RET = ISNULL(@pch_nov_RET, ''),
        nov_TDE = ISNULL(@pch_nov_TDE, ''),
        nov_TAE = ISNULL(@pch_nov_TAE, ''),
        nov_TDP = ISNULL(@pch_nov_TDP, ''),
        nov_TAP = ISNULL(@pch_nov_TAP, ''),
        nov_VSP = ISNULL(@pch_nov_VSP, ''),
        nov_VTE = ISNULL(@pch_nov_VTE, ''),
        nov_VST = ISNULL(@pch_nov_VST, ''),
        nov_SLN = ISNULL(@pch_nov_SLN, ''),
        nov_IGE = ISNULL(@pch_nov_IGE, ''),
        nov_LMA = ISNULL(@pch_nov_LMA, ''),
        nov_VAC = ISNULL(@pch_nov_VAC, ''),
        nov_AVP =  ISNULL(@pch_nov_AVP, ''),
        nov_VCT = ISNULL(@pch_nov_VCT, ''),
        nov_IRP = ISNULL(@pch_nov_IRP, '00'),
        cod_afp = ISNULL(@pvc_cod_afp, ''),
        cod_afp_Tras = ISNULL(@pvc_cod_afp_Tras, ''),
        dias_afp = ISNULL(@pti_dias_afp, 0),
        salario = ISNULL(@pdc_salario, 0),
        IBC_afp = ISNULL(@pdc_IBC_afp, 0),
        tarifa_afp = ISNULL(@pdc_tarifa_afp, 0),
        aporte_afp = ISNULL(@pdc_aporte_afp, 0),
        voluntario_AFP = ISNULL(@pdc_voluntario_AFP, 0),
        voluntario_AFP_cia = ISNULL(@pdc_voluntario_AFP_cia, 0),
        aporte_FSP = ISNULL(@pdc_aporte_FSP_solidaridad, 0),
        aporte_FSP_subsistencia = ISNULL(@pdc_aporte_FSP_subsistencia, 0), 
        valor_no_retenido = ISNULL(@pdc_valor_no_retenido, 0)
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND trabajador = @pch_trabajador

END
GO
GRANT EXECUTE ON sp_fco_upd_int_det_afp TO PUBLIC
GO

IF OBJECT_ID('dbo.fco_integrada_rt03') IS NOT NULL
    DROP TABLE dbo.fco_integrada_rt03
GO
CREATE TABLE dbo.fco_integrada_rt03
-- Planilla Integrada Registro Tipo 3
-- Total Aportes del Período a Pensiones por Administradora
(
    compania char(4) NOT NULL,
    anio smallint NOT NULL,
    mes tinyint NOT NULL,
    sucursal varchar(10) NOT NULL,
    cod_AFP char(10) NOT NULL,
    secuencia smallint NOT NULL,
    nit varchar(16) NOT NULL,
    dv char(1) NOT NULL,
    suma_aportes decimal(10) NOT NULL,
    suma_voluntarios decimal(10) NOT NULL,
    suma_voluntarios_cia decimal(10) NOT NULL,
    suma_FSP decimal(10) NOT NULL,
    dias_mora smallint NOT NULL,
    int_mora_aportes decimal(10) NOT NULL,
    int_mora_FSP decimal(10) NOT NULL,
    total_pagar AS suma_aportes + suma_voluntarios + suma_voluntarios_cia + suma_FSP + int_mora_aportes + int_mora_FSP,
    total_afiliados decimal(6) NOT NULL,
    CONSTRAINT pk_fco_integrada_rt03 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, cod_AFP)
)
GO
GRANT ALL ON dbo.fco_integrada_rt03 TO PUBLIC
GO
IF OBJECT_ID('dbo.fco_integrada_rt04') IS NOT NULL
    DROP TABLE dbo.fco_integrada_rt04
GO
CREATE TABLE dbo.fco_integrada_rt04
-- Planilla Integrada Registro Tipo 4
-- Total Aportes del Período a Salud por Administradora
(
    compania char(4) NOT NULL,
    anio smallint NOT NULL,
    mes tinyint NOT NULL,
    sucursal varchar(10) NOT NULL,
    cod_EPS char(10) NOT NULL,
    secuencia smallint NOT NULL,
    nit varchar(16) NOT NULL,
    dv char(1) NOT NULL,
    suma_aportes decimal(10) NOT NULL,
    suma_UPC decimal(10) NOT NULL,
    nro_aut_IGE varchar(15) NOT NULL,
    suma_aut_IGE decimal(10) NOT NULL,
    nro_aut_LMA varchar(15) NOT NULL,
    suma_aut_LMA decimal(10) NOT NULL,
    neto_aportes AS suma_aportes - suma_aut_IGE - suma_aut_LMA,
    dias_mora smallint NOT NULL,
    int_mora_aportes decimal(10) NOT NULL,
    int_mora_UPC decimal(10) NOT NULL,
    subtotal_aportes AS suma_aportes - suma_aut_IGE - suma_aut_LMA + int_mora_aportes,
    subtotal_UPC AS suma_UPC + int_mora_UPC,
    nro_radicacion varchar(10) NOT NULL,
    saldo_favor_aportes decimal(10) NOT NULL,
    saldo_favor_UPC decimal(10) NOT NULL,
    total_aportes AS suma_aportes - suma_aut_IGE - suma_aut_LMA + int_mora_aportes - saldo_favor_aportes,
    total_UPC AS suma_UPC + int_mora_UPC - saldo_favor_UPC,
    total_pagar AS suma_aportes - suma_aut_IGE - suma_aut_LMA + int_mora_aportes - saldo_favor_aportes + 
                   suma_UPC + int_mora_UPC - saldo_favor_UPC,
    FOSYGA decimal(10) NOT NULL,
    total_afiliados decimal(6) NOT NULL,
    CONSTRAINT pk_fco_integrada_rt04 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, cod_EPS)
)
GO
GRANT ALL ON dbo.fco_integrada_rt04 TO PUBLIC
GO
IF OBJECT_ID('dbo.fco_integrada_rt06') IS NOT NULL
    DROP TABLE dbo.fco_integrada_rt06
GO
CREATE TABLE dbo.fco_integrada_rt06
-- Planilla Integrada Registro Tipo 6
-- Total Aportes del Período a Cajas de Compensación Familiar por Administradora
(
    compania char(4) NOT NULL,
    anio smallint NOT NULL,
    mes tinyint NOT NULL,
    sucursal varchar(10) NOT NULL,
    cod_CCF char(10) NOT NULL,
    secuencia smallint NOT NULL,
    nit varchar(16) NOT NULL,
    dv char(1) NOT NULL,
    suma_aportes decimal(10) NOT NULL,
    dias_mora smallint NOT NULL,
    int_mora decimal(10) NOT NULL,
    total_pagar AS suma_aportes + int_mora,
    total_afiliados decimal(6) NOT NULL,
    CONSTRAINT pk_fco_integrada_rt06 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, cod_CCF)
)
GO
GRANT ALL ON dbo.fco_integrada_rt06 TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_integrada_det') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_det
GO
CREATE VIEW dbo.vw_fco_integrada_det
AS
SELECT 
    a.compania, a.anio, a.mes, a.sucursal, a.trabajador, a.secuencia, a.tipo_documento, a.nro_id, a.digito_chequeo, 
    a.tipo_cotizante, a.subtipo_cotizante, a.extranjero_no_pension, a.residente_en_exterior, a.departamento, a.municipio, 
    a.primer_apellido, a.segundo_apellido, a.primer_nombre, a.segundo_nombre, 
    a.nov_ING, a.nov_RET, a.nov_TDE, a.nov_TAE, a.nov_TDP, a.nov_TAP, a.nov_VSP, a.nov_VTE, a.nov_VST, 
    a.nov_SLN, a.nov_IGE, a.nov_LMA, a.nov_VAC, a.nov_AVP, a.nov_VCT, a.nov_IRP, a.cod_AFP, a.cod_AFP_Tras, 
    a.cod_EPS, a.cod_EPS_Tras, a.cod_CCF, a.dias_AFP, a.dias_EPS, a.dias_ARP, a.dias_CCF, a.salario, a.integral, 
    a.IBC_AFP, a.IBC_EPS, a.IBC_ARP, a.IBC_CCF, 
    a.tarifa_AFP, a.aporte_AFP, a.voluntario_AFP, a.voluntario_AFP_cia, a.aporte_total_AFP, a.aporte_FSP, aporte_FSP_subsistencia, 
    a.valor_no_retenido, a.tarifa_EPS, a.aporte_EPS, a.UPC_adicional, a.nro_aut_IGE, a.vlr_aut_IGE, 
    a.nro_aut_LMA, a.vlr_aut_LMA, a.tarifa_ARP, a.centro_trabajo, a.aporte_ARP, 
    a.tarifa_CCF, a.aporte_CCF, a.tarifa_SENA, a.aporte_SENA, a.tarifa_ICBF, a.aporte_ICBF, 
    a.tarifa_ESAP, a.aporte_ESAP, a.tarifa_MEdu, a.aporte_MEdu, a.origen, a.eliminada,
    ISNULL(b.descripcion, '') AS tipo_cotizante_des,

    LTRIM((SELECT eps.cod_super FROM fco_administradoras eps 
                           WHERE eps.tipo = 'EPS' AND eps.codigo = a.cod_EPS)) AS eps_cod_super,
    (SELECT eps.descripcion FROM vw_fco_administradoras eps 
     WHERE eps.compania = a.compania AND eps.tipo = 'EPS' AND eps.codigo = a.cod_EPS) AS eps_nombre,

    LTRIM((SELECT afp.cod_super FROM fco_administradoras afp 
                           WHERE afp.tipo = 'AFP' AND afp.codigo = a.cod_AFP)) AS afp_cod_super,
    (SELECT afp.descripcion FROM vw_fco_administradoras afp
     WHERE afp.compania = a.compania AND afp.tipo = 'AFP' AND afp.codigo = a.cod_AFP) AS afp_nombre,

    LTRIM((SELECT ccf.cod_super FROM fco_administradoras ccf
                           WHERE ccf.tipo = 'CCF' AND ccf.codigo = a.cod_CCF)) AS ccf_cod_super,
    (SELECT ccf.descripcion FROM vw_fco_administradoras ccf
     WHERE ccf.compania = a.compania AND ccf.tipo = 'CCF' AND ccf.codigo = a.cod_CCF) AS ccf_nombre,

    LTRIM((SELECT neps.cod_super FROM fco_administradoras neps 
                           WHERE neps.tipo = 'EPS' AND neps.codigo = a.cod_EPS_Tras)) AS neps_cod_super,
    (SELECT neps.descripcion FROM vw_fco_administradoras neps 
     WHERE neps.compania = a.compania AND neps.tipo = 'EPS' AND neps.codigo = a.cod_EPS_Tras) AS neps_nombre,

    LTRIM((SELECT nafp.cod_super FROM fco_administradoras nafp 
                           WHERE nafp.tipo = 'AFP' AND nafp.codigo = a.cod_AFP_Tras)) AS nafp_cod_super,
    (SELECT nafp.descripcion FROM vw_fco_administradoras nafp
     WHERE nafp.compania = a.compania AND nafp.tipo = 'AFP' AND nafp.codigo = a.cod_AFP_Tras) AS nafp_nombre,

    (SELECT ctr.descripcion FROM vw_fco_centros_trabajo ctr
     WHERE ctr.compania = a.compania AND ctr.codigo_reporte = a.centro_trabajo) AS ctr_nombre,

    suc.descripcion AS suc_nombre

FROM fco_integrada_det a
LEFT JOIN criterios_valores_col b ON b.campo = 'tipo_cotizante' AND b.item = a.tipo_cotizante
LEFT JOIN vw_fco_sucursales suc ON suc.compania = a.compania AND suc.sucursal = a.sucursal
WHERE aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP <> 0
GO
GRANT SELECT ON dbo.vw_fco_integrada_det TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_tc_salud') IS NOT NULL
    DROP VIEW dbo.vw_fco_tc_salud
GO
CREATE VIEW dbo.vw_fco_tc_salud
AS
SELECT x.compania, x.anio, x.mes, x.sucursal, x.cod_EPS, a.descripcion AS nombre_EPS, x.nro_aut_IGE, x.suma_aut_IGE, x.nro_aut_LMA, x.suma_aut_LMA, 
x.nro_radicacion, x.saldo_favor_aportes, x.saldo_favor_UPC
FROM fco_integrada_rt04 x
LEFT JOIN vw_fco_administradoras a ON x.compania = a.compania AND x.cod_EPS = a.codigo AND a.tipo = 'EPS'
GO
GRANT SELECT ON dbo.vw_fco_tc_salud TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_tc_riesgos') IS NOT NULL
    DROP VIEW dbo.vw_fco_tc_riesgos
GO
CREATE VIEW dbo.vw_fco_tc_riesgos
AS
SELECT compania, anio, mes, sucursal, nro_aut, incapacidades, otros_riesgos, nro_radicacion, saldo_favor
FROM fco_integrada_rt05
GO
GRANT SELECT ON dbo.vw_fco_tc_riesgos TO PUBLIC
GO
