alter PROCEDURE dbo.sp_fco_planilla_integrada -- VERSION TSEN          
(              
    @pch_compania char(4),              
    @psi_anio smallint,              
    @pti_mes tinyint,              
    @pch_sucursal char(10),  
    @pbi_regenerar bit,  
    @pch_tipo_planilla char(1) = 'E'  
)              
AS              
/*************************************************************************/              
-- Modulo Fiscal Colombiano 2.0 ADAM V3              
-- Descripcion: Crea tabla base para autoliquidacion de aportes              
--              y genera archivo I Información del Formulario Integrado              
--              según formato de la Resolución 001303 de 2005 (Mayo 11).              
--             Si la tabla está llena se respetan los datos a menos que               
--             se indique lo contrario en el parámetro regenerar.              
-- Autor: Juan Carlos Leguizamon              
-- Fecha: Junio 2005              
-- Revisiones:              
-- Abr.16/06 - Ajustes según Resolución 0634 de Mar-06-06            
-- Jun.02/06 - Ajustes según Resolución 1317 de Abr-25-06             
-- Julio /06 - Ajustes varios según pruebas con operador          
-- Agosto 8/06. Revisión nombre sucursal (se usaba fco_sucursales en lugar de vw_fco_sucursales)          
-- Agosto 28/06. Ajuste para obtener valor correcto de incapacidades por riesgos profesionales          
-- Sept-05-06. Ajuste porque se estaban perdiendo los valores de autorizaciones de incapacidades digitados          
-- Sep-17-06. Se incluye nueva vista vw_fco_tdo_trabajador que interpreta el tipo documento segun lo que haya definido en cada cliente          
--            Simplificacion del nro id del empleado y su dv (= 0)          
-- Sep-17-06 - Incluir trabajadores de la compañía TSEN          
-- Sep-22-06 - Se omite condición de fecha de baja a solicitud de GRASCO/DERSA          
-- Sep-22-06 - Que en cod_afp_tras y cod_eps_tras deje el codigo interno y no el codigo super          
-- Oct-03-06 - Para colombianos residentes fuera del pais el % de aporte a salud es diferente (1% y no 12%)        
-- Oct-03-06 - Control para que tarifa de pension sea cero si el subtipo de cotizante es 1 o 2        
-- Oct-26-06 - Corregir tarifa pension = 0 para quienes no aportan a pension      
-- Oct-26-06 - Cuando un aprendiz del SENA pasa de etapa lectiva a productiva debe marcarse novedad ING (según SCN y SCA)      
-- Nov-16-06 - Merck: Tarifas de aporte a SENA y a ICBF deben quedar en cero para aprendices      
-- Nov-17-06 - Incorporación correcta de incapacidades reportadas por la opcion de autorizaciones (casos presentados en Sudameris y Finca)      
-- Nov-17-06 - Cuando se digita autorización ARP por detalle y luego se agrega cotizacion a otros riesgos, duplica el valor de la autorización      
-- Feb-01-07 - Ajuste por culpa de Grupo Grasco, si la compañía es JABC no debe incluir TSEN      
-- Oct-25-07 - Incluir autorizaciones de EG, LM y AT del SENA    
-- Nov-21-07 - Inclusión de campo tipo_planilla  
/*************************************************************************/              
BEGIN              
    SET NOCOUNT ON              
              
    -- Declaración de Variables              
    DECLARE               
        @vch_periodo char(6),              
        @vch_agt_AFP char(10),     -- Fondo de Pensiones              
        @vch_agt_EPS char(10),     -- EPS              
        @vch_var_SaT char(2),      -- Variable Salud Trabajador              
        @vch_var_SaE char(2),      -- Variable Salud Empleador              
        @vch_var_PeT char(2),      -- Variable Pensión Trabajador              
        @vch_var_PeE char(2),      -- Variable Pensión Empleador              
        @vch_var_CCF char(2),      -- Variable Aporte CCF              
        @vch_var_SENA char(2),     -- Variable Aporte SENA              
        @vch_var_ICBF char(2),     -- Variable Aporte ICBF              
        @vch_var_ESAP char(2),     -- Variable Aporte ESAP           
        @vch_var_MEdu char(2),     -- Variable Aporte MinEducación     
        @vdc_tar_EPS decimal(6,5), -- Tarifa Salud              
        @vdc_tar_AFP decimal(6,5), -- Tarifa Pensión              
        @vdc_tar_CCF decimal(6,5), -- Tarifa Cajas de Compensación              
        @vdc_tar_SENA decimal(6,5),-- Tarifa SENA              
        @vdc_tar_ICBF decimal(6,5),-- Tarifa ICBF              
        @vdc_tar_ESAP decimal(6,5),-- Tarifa ESAP              
        @vdc_tar_MEdu decimal(6,5),-- Tarifa MinEducación              
        @vch_agr_VST char(3),      -- /* Variación Transitoria del Salario (Ingresos o Aporte Sin Sueldo Basico)*/                      
        @vch_agr_SLN char(3),      -- /* Suspensión temporal del contrato de trabajo y Licencias No Remuneradas */              
        @vch_agr_IGE char(3),      -- /* Incapacidad General */               
        @vch_agr_LMA char(3),      -- /* Licencia Materna */               
        @vch_agr_VAC char(3),      -- /* Vacaciones */               
        @vch_agr_AVP_T char(3),    -- /* Aporte Voluntario (al Fondo de Pensiones) - Trabajador */               
        @vch_agr_AVP_E char(3),    -- /* Aporte Voluntario (al Fondo de Pensiones) - Empleador */               
        @vch_agr_IRP char(3),      -- /* Incapacidad por Accidente de Trabajo */               
        @vch_agr_AFP_IBC char(3),  -- /* IBC Pensión */               
        @vch_agr_AFP_Cot char(3),  -- /* Cotización a Pensión */              
        @vch_agr_FSP char(3),      -- /* Fondo de Solidaridad Pensional */              
        @vch_agr_VNR char(3),      -- /* Valor No Retenido por Aportes Voluntarios */              
        @vch_agr_EPS_IBC char(3),  -- /* IBC Salud */               
        @vch_agr_EPS_Cot char(3),  -- /* Cotización a Salud */              
        @vch_agr_UPC char(3),      -- /* UPC Adicional */              
        @vch_agr_ARP_IBC char(3),  -- /* IBC Riesgos Profesionales */               
        @vch_agr_ARP_Cot char(3),  -- /* Cotización a Riesgos Profesionales */              
        @vch_agr_CCF_IBC char(3),  -- /* IBC Cajas de Compensación */               
        @vti_CCF_tipo tinyint,     -- /* Tipo de Dato Cotizacion CCF */              
        @vch_CCF_Cot char(5),      -- /* Cotización a la Caja de Compensación Familiar */              
        @vti_SENA_tipo tinyint,    -- /* Tipo de Dato Cotizacion SENA */              
        @vch_SENA_Cot char(5),     -- /* Cotización al SENA */                      
        @vti_ICBF_tipo tinyint,    -- /* Tipo de Dato Cotizacion ICBF */              
        @vch_ICBF_Cot char(5),     -- /* Cotización al ICBF */              
        @vti_ESAP_tipo tinyint,    -- /* Tipo de Dato Cotizacion ESAP */              
        @vch_ESAP_Cot char(5),     -- /* Cotización al ESAP */              
        @vti_MEdu_tipo tinyint,    -- /* Tipo de Dato Cotizacion MinEducación */              
        @vch_Medu_Cot char(5),     -- /* Cotización al MinEducación */              
        @vsi_empleados smallint,   -- /* Total de Empleados */              
        @vdc_nomina decimal(12),   -- /* Total Nómina */              
        @vti_orden tinyint,        -- /* Orden de los Trabajadores en el medio */              
        @vsi_random smallint,      -- /* Valor randómico para manejo de procesos simultáneos */              
        @vsi_handicap smallint,    -- /* Por si se suceden procesos simultáneos */              
        @vsi_secuencia smallint,   -- /* Se utiliza en la parte "fantasmal" */              
        @vti_tipo_IBC_CCF tinyint, -- /* Tipo de dato que almacena el IBC de la CCF, concepto o agrupación */             
        @vsi_IBC_CCF smallint,     -- /* Concepto que guarda el IBC para la CCF */            
        @vti_FSP_Sol_tipo tinyint, -- /* Tipo de parametro para la subcuenta de solidaridad del FSP */ --JCL.Jul.18/06--          
        @vch_FSP_Sol char(5),      -- /* Concepto para la subcuenta de solidaridad del FSP */  --JCL.Jun.02/06--            
        @vti_FSP_Sub_tipo tinyint, -- /* Tipo de parametro para la subcuenta de subsistencia del FSP */ --JCL.Jul.18/06--          
        @vch_FSP_Sub char(5),      -- /* Concepto para la subcuenta de subsistencia del FSP */  --JCL.Jun.02/06--            
        @vch_var_CRE char(2),      -- /* Variable para la tarifa de salud de Colombianos Residentes en el Exterior */ -- JCL.Oct-03-06--        
        @vdc_tar_CRE decimal(6,5), -- /* Tarifa de salud para Colombianos Residentes en el Exterior */ -- JCL.Oct-03-06--        
        @vti_respetar_tot tinyint, -- /* Indica que no se deben borrar los totales de aportes a salud, el usuario los editó */      
        @vti_resp_tot_arp tinyint, -- /* Indica que no se deben borrar los totales de aportes a riesgos, el usuario los editó */      
        @vch_cia_TSEN char(4)      -- /* Código de la compañía TSEN */ --JCL FEB-01-07      
      
    -- Llenado de variables generales              
    SET @vch_periodo = RTRIM(@psi_anio) + RIGHT('00' + RTRIM(@pti_mes),2)          
      
    IF @pch_compania = 'JABC'       
        SET @vch_cia_TSEN = 'X'      
    ELSE      
        SET @vch_cia_TSEN = 'TSEN'      
              
    -- Recuperación de Parámetros          
    SELECT @vch_agr_AFP_IBC = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 02          
    SELECT @vch_agr_AFP_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 03              
    SELECT @vch_agr_FSP = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 04              
    SELECT @vch_agr_EPS_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 05              
    SELECT @vch_agr_VAC = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 08              
    SELECT @vch_agr_ARP_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 09              
    SELECT @vch_agr_LMA = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 10              
    SELECT @vch_agr_IGE = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 11              
    SELECT @vch_agr_IRP = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 12              
    SELECT @vch_agr_AVP_T = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 13              
    SELECT @vch_agr_AVP_E = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 14              
    SELECT @vch_agr_UPC = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 15              
    SELECT @vch_agr_EPS_IBC = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 16              
    SELECT @vch_agr_ARP_IBC = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 17              
    SELECT @vch_agr_SLN = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 18                  
    SELECT @vch_agr_VNR = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 19              
    SELECT @vch_agr_VST = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 20   
    SELECT @vch_agt_EPS = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 21              
    SELECT @vch_agt_AFP = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 22                    
    SELECT @vch_var_SaT = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 25              
    SELECT @vch_var_SaE = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 26              
    SELECT @vch_var_PeT = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 27              
    SELECT @vch_var_PeE = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 28                  
    SELECT @vti_orden = CASE WHEN ISNUMERIC(dato) = 1 THEN dato ELSE 2 END FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 37              
    SET @vti_orden = ISNULL(@vti_orden, 2)              
            
    SELECT @vti_FSP_Sol_tipo = tipo, @vch_FSP_Sol = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 45 --JCL.Jul.18/06--          
    SELECT @vti_FSP_Sub_tipo = tipo, @vch_FSP_Sub = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 46 --JCL.Jul.18/06--          
        
    SELECT @vch_var_CRE = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 48 -- JCL.Oct-03-06              
            
    SELECT @vti_CCF_tipo = tipo, @vch_CCF_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 2              
    SELECT @vti_SENA_tipo = tipo, @vch_SENA_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 3              
    SELECT @vti_ICBF_tipo= tipo, @vch_ICBF_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 4              
    SELECT @vti_tipo_IBC_CCF = tipo FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 06              
    IF ISNULL(@vti_tipo_IBC_CCF, 2) <> 0            
        SELECT @vch_agr_CCF_IBC = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 06              
    ELSE            
        SELECT @vsi_IBC_CCF = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 06              
    SELECT @vti_ESAP_tipo = tipo, @vch_ESAP_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 7              
    SELECT @vti_MEdu_tipo = tipo, @vch_MEdu_Cot = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 8              
    SELECT @vch_var_CCF = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 9              
    SELECT @vch_var_SENA = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 10              
    SELECT @vch_var_ICBF = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 11              
    SELECT @vch_var_ESAP = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 12              
    SELECT @vch_var_MEdu = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 13                  
                    
    -- Recuperación de Tarifas o Porcentajes              
    SET @vdc_tar_EPS = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_SaT, 0) + dbo.fn_fco_var_nom(@pch_compania, @vch_var_SaE, 0), 0.12)             
    SET @vdc_tar_AFP = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_PeT, 0) + dbo.fn_fco_var_nom(@pch_compania, @vch_var_PeE, 0), 0.155)              
    SET @vdc_tar_CCF = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_CCF, 0), 0.04)              
    SET @vdc_tar_SENA = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_SENA, 0), 0.02)              
    SET @vdc_tar_ICBF = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_ICBF, 0), 0.03)              
    SET @vdc_tar_ESAP = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_ESAP, 0), 0)              
    SET @vdc_tar_MEdu = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_MEdu, 0), 0)          
    SET @vdc_tar_CRE = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_CRE, 0), 0.01)        
      
    IF EXISTS (SELECT 1 FROM fco_integrada_rt04       
               WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')        
                AND tipo_planilla = @pch_tipo_planilla AND origen = 1)  
        SET @vti_respetar_tot = 1      
    ELSE      
        SET @vti_respetar_tot = 0       
      
    IF @pbi_regenerar = 1 SET @vti_respetar_tot = 0  
      
    IF EXISTS (SELECT 1 FROM fco_integrada_rt05      
               WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')        
                AND tipo_planilla = @pch_tipo_planilla AND origen = 1)  
        SET @vti_resp_tot_arp = 1      
    ELSE      
        SET @vti_resp_tot_arp = 0       
      
    IF @pbi_regenerar = 1 SET @vti_resp_tot_arp = 0  
      
    /* Borrar datos de procesos anteriores */              
    IF @vti_respetar_tot = 0       
        DELETE fco_integrada_rt04            
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
        And tipo_planilla = @pch_tipo_planilla  
      
    IF @vti_resp_tot_arp = 0      
        DELETE fco_integrada_rt05            
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
        And tipo_planilla = @pch_tipo_planilla  
          
    -- Proceso Principal                  
    IF @pbi_regenerar = 1 OR NOT EXISTS(SELECT 1 FROM fco_integrada_cab              
                                        WHERE compania = @pch_compania              
                                          AND anio = @psi_anio              
                                          AND mes = @pti_mes              
                                          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
                                          And tipo_planilla = @pch_tipo_planilla)  
    BEGIN /*1*/                        
        DELETE fco_integrada_det              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
        And tipo_planilla = @pch_tipo_planilla  
            
        DELETE fco_integrada_cab              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
        And tipo_planilla = @pch_tipo_planilla  
                
        /* Registro Tipo 1. DATOS GENERALES DEL APORTANTE */              
        INSERT INTO fco_integrada_cab              
        (compania, anio, mes, sucursal, tipo_planilla, secuencia, razon_social, tipo_documento, nro_id, dv, forma_presentacion,               
         nombre_sucursal, nueva_ARP, periodo, periodo_salud, nro_radicacion, fecha_pago, nro_empleados, valor_nomina, operador)              
        SELECT               
            @pch_compania, @psi_anio, @pti_mes, @pch_sucursal, @pch_tipo_planilla, 1, cias.nombre_cia,               
            ISNULL(LEFT(cda.tipo_id,2), 'NI'),               
            ISNULL(CASE WHEN LEN(ISNULL(dbo.fn_solonum(cias.registro_fiscal), '')) = 0 THEN ''              
                        ELSE LEFT(LEFT(dbo.fn_solonum(cias.registro_fiscal), LEN(dbo.fn_solonum(cias.registro_fiscal))-1), 16) END, ''),              
            dv = ISNULL(RIGHT(dbo.fn_solonum(cias.registro_fiscal), 1), ''),              
            fp = CASE WHEN LTRIM(RTRIM(@pch_sucursal)) = '' THEN 'C' ELSE 'S' END,              
            ns = ISNULL(suc.descripcion, ''),              
            narp = ISNULL(cda.cod_ARP, ''),            
            RTRIM(@psi_anio) + RIGHT('00' + RTRIM(@pti_mes), 2),              
            CASE WHEN @pti_mes = 12               
                 THEN RTRIM(@psi_anio + 1) + '01'              
                 ELSE RTRIM(@psi_anio) + RIGHT('00' + RTRIM(@pti_mes + 1), 2)              
            END,              
            nr = '',              
            fecha = GETDATE(),              
            ne = 0, -- Todavia no se sabe              
            vn = 0, -- Todavia no se sabe              
            operador = '00' -- Asignado por el Sistema              
        FROM companias cias              
        LEFT JOIN vw_fco_cias_datos_adi cda ON cda.compania = cias.compania              
        LEFT JOIN vw_fco_sucursales suc ON suc.compania  = cias.compania AND suc.sucursal = @pch_sucursal            
        WHERE cias.compania = @pch_compania              
              
        /* Registro Tipo 2: LIQUIDACION DETALLADA DE APORTES */              
        /* Seleccion de Trabajadores */              
        SELECT @vsi_random = FLOOR(RAND( (DATEPART(mm, GETDATE()) * 100000 )              
           + (DATEPART(ss, GETDATE()) * 1000 )              
           + DATEPART(ms, GETDATE()) ) * 32567) + 1              
                        
        DELETE fco_integrada_temp WHERE random = @vsi_random              
              
        IF @vti_orden = 1              
        BEGIN            
            SELECT           
                tg.compania, tg.trabajador,           
                sucursal = CASE WHEN @pch_sucursal = '' THEN '' ELSE ISNULL(SUC.dato, '') END,  
                tg.relacion_laboral, tg.fecha_ingreso, tg.fecha_baja,               
                isnull(t.clave_unica, '0') clave_unica, t.nombre, t.registro_fiscal, IDENTITY(smallint, 1, 1) secuencia            
            INTO #fco_integrada_temp1            
            FROM trabajadores_grales tg WITH (NOLOCK)            
            INNER JOIN trabajadores t ON tg.trabajador = t.trabajador              
            INNER JOIN vw_fco_div_trabajador SUC ON SUC.compania = tg.compania AND SUC.trabajador = tg.trabajador  
            WHERE tg.compania IN (@pch_compania, @vch_cia_TSEN)          
              AND CONVERT(char(6), tg.fecha_ingreso, 112) <= @vch_periodo              
--              AND (tg.fecha_baja IS NULL OR CONVERT(char(6), tg.fecha_baja, 112) >= @vch_periodo)   /* Sep-22-06    *//*REACTIVADO PARA MERCK EN MAR-07-07 POR JCL */      
              -- JCL 25-ABR-07      
              AND (((tg.fecha_baja IS NULL OR CONVERT(char(6), tg.fecha_baja, 112) >= @vch_periodo) AND @pch_compania = 'MCSA') OR (@pch_compania <> 'MCSA'))      
              AND (SUC.dato = @pch_sucursal OR @pch_sucursal = '')          
              AND EXISTS           
                (SELECT 1 FROM vw_fco_tipo_cotiz tcot           
                 WHERE tcot.compania IN (tg.compania, @vch_cia_TSEN)          
                   AND tcot.trabajador = tg.trabajador           
                   AND tcot.tipo_cotizante NOT IN ('00','99')  
                   AND (  (tcot.tipo_cotizante = '03' and @pch_tipo_planilla = 'Y')  
                      OR(tcot.tipo_cotizante <> '03' and @pch_tipo_planilla = 'E')  
                       )  
                )          
            ORDER BY CONVERT(decimal, dbo.fn_solonum(isnull(t.clave_unica, '0')))              
            
            INSERT INTO fco_integrada_temp               
            (random, compania, trabajador, sucursal, relacion_laboral, fecha_ingreso, fecha_baja, clave_unica,              
             nombre, registro_fiscal, secuencia)            
            SELECT @vsi_random, * FROM #fco_integrada_temp1            
            
            DROP TABLE #fco_integrada_temp1            
        END            
            
        IF @vti_orden = 3              
        BEGIN            
            SELECT           
                tg.compania, tg.trabajador,           
                sucursal = CASE WHEN @pch_sucursal = '' THEN '' ELSE ISNULL(SUC.dato, '') END,  -- JCL. Sept-05-06          
                tg.relacion_laboral, tg.fecha_ingreso, tg.fecha_baja,               
                isnull(t.clave_unica, '0') clave_unica, t.nombre, t.registro_fiscal, IDENTITY(smallint, 1, 1) secuencia       
            INTO #fco_integrada_temp2            
            FROM trabajadores_grales tg WITH (NOLOCK)          
            INNER JOIN trabajadores t ON tg.trabajador = t.trabajador              
            INNER JOIN vw_fco_div_trabajador SUC ON SUC.compania = tg.compania AND SUC.trabajador = tg.trabajador        /* Corrección para MERCK S.A. MAR-08-07 */      
            WHERE tg.compania IN (@pch_compania, @vch_cia_TSEN)          
              AND CONVERT(char(6), tg.fecha_ingreso, 112) <= @vch_periodo              
--              AND (tg.fecha_baja IS NULL OR CONVERT(char(6), tg.fecha_baja, 112) >= @vch_periodo)   /* Sep-22-06    *//*REACTIVADO PARA MERCK EN MAR-07-07 POR JCL */      
              -- JCL 25-ABR-07      
              AND (((tg.fecha_baja IS NULL OR CONVERT(char(6), tg.fecha_baja, 112) >= @vch_periodo) AND @pch_compania = 'MCSA') OR (@pch_compania <> 'MCSA'))      
              AND (SUC.dato = @pch_sucursal OR @pch_sucursal = '')              
              AND EXISTS           
                (SELECT 1 FROM vw_fco_tipo_cotiz tcot           
                 WHERE tcot.compania IN (tg.compania, @vch_cia_TSEN)          
                   AND tcot.trabajador = tg.trabajador           
                   AND tcot.tipo_cotizante NOT IN ('00','99')  
                   AND (  (tcot.tipo_cotizante = '03' and @pch_tipo_planilla = 'Y')  
                        OR(tcot.tipo_cotizante <> '03' and @pch_tipo_planilla = 'E')  
                       )  
                )  
            ORDER BY isnull(t.clave_unica, '0')          
            
            INSERT INTO fco_integrada_temp               
            (random, compania, trabajador, sucursal, relacion_laboral, fecha_ingreso, fecha_baja, clave_unica,              
             nombre, registro_fiscal, secuencia)            
            SELECT @vsi_random, * FROM #fco_integrada_temp2            
                
            DROP TABLE #fco_integrada_temp2            
        END            
            
        IF @vti_orden NOT IN (1,3) -- Por Nombre              
        BEGIN            
            SELECT           
                tg.compania, tg.trabajador,           
                sucursal = CASE WHEN @pch_sucursal = '' THEN '' ELSE ISNULL(SUC.dato, '') END,  -- JCL. Sept-05-06          
                tg.relacion_laboral, tg.fecha_ingreso, tg.fecha_baja,               
             isnull(t.clave_unica, '0') clave_unica, t.nombre, t.registro_fiscal, IDENTITY(smallint, 1, 1) secuencia            
            INTO #fco_integrada_temp3            
            FROM trabajadores_grales tg WITH (NOLOCK)             
            INNER JOIN trabajadores t ON tg.trabajador = t.trabajador              
            INNER JOIN vw_fco_div_trabajador SUC ON SUC.compania = tg.compania /*IN (tg.compania, @vch_cia_TSEN)*/ AND SUC.trabajador = tg.trabajador        /* Corrección para MERCK S.A. MAR-08-07 */      
            WHERE tg.compania IN (@pch_compania, @vch_cia_TSEN)          
              AND CONVERT(char(6), tg.fecha_ingreso, 112) <= @vch_periodo              
--              AND (tg.fecha_baja IS NULL OR CONVERT(char(6), tg.fecha_baja, 112) >= @vch_periodo)   /* Sep-22-06    *//*REACTIVADO PARA MERCK EN MAR-07-07 POR JCL */      
              -- JCL 25-ABR-07      
              AND (((tg.fecha_baja IS NULL OR CONVERT(char(6), tg.fecha_baja, 112) >= @vch_periodo) AND @pch_compania = 'MCSA') OR (@pch_compania <> 'MCSA'))      
              AND (SUC.dato = @pch_sucursal OR @pch_sucursal = '')              
              AND EXISTS           
                (SELECT 1 FROM vw_fco_tipo_cotiz tcot           
                 WHERE tcot.compania IN (tg.compania, @vch_cia_TSEN)          
                   AND tcot.trabajador = tg.trabajador           
                   AND tcot.tipo_cotizante NOT IN ('00','99')  
                   AND (  (tcot.tipo_cotizante = '03' and @pch_tipo_planilla = 'Y')  
                        OR(tcot.tipo_cotizante <> '03' and @pch_tipo_planilla = 'E')  
                       )  
                )  
            ORDER BY t.nombre              
              
            INSERT INTO fco_integrada_temp            
            (random, compania, trabajador, sucursal, relacion_laboral, fecha_ingreso, fecha_baja, clave_unica,              
             nombre, registro_fiscal, secuencia)            
            SELECT @vsi_random, * FROM #fco_integrada_temp3            
                
            DROP TABLE #fco_integrada_temp3            
        END            
            
        SELECT @vsi_handicap = MIN(secuencia) FROM fco_integrada_temp WHERE random = @vsi_random                      
                  
        /* Datos Basicos por Trabajador */              
        INSERT INTO fco_integrada_det              
        (compania, anio, mes, sucursal, tipo_planilla, trabajador, consecutivo, secuencia, tipo_documento, nro_id, digito_chequeo, tipo_cotizante,               
         subtipo_cotizante, extranjero_no_pension, residente_en_exterior, departamento, municipio,            
         primer_apellido, segundo_apellido, primer_nombre, segundo_nombre, nov_ING, nov_RET, nov_TDE, nov_TAE, nov_TDP,               
         nov_TAP, nov_VSP, nov_VTE, nov_VST, nov_SLN, nov_IGE, nov_LMA, nov_VAC, nov_AVP, nov_VCT, nov_IRP, cod_AFP,               
         cod_AFP_Tras, cod_EPS, cod_EPS_Tras, cod_CCF, dias_AFP, dias_EPS, dias_ARP, dias_CCF, salario, integral, IBC_AFP, IBC_EPS, IBC_ARP,              
         IBC_CCF, tarifa_AFP, aporte_AFP, voluntario_AFP, voluntario_AFP_cia,               
         aporte_FSP, aporte_FSP_subsistencia, valor_no_retenido, tarifa_EPS, aporte_EPS, UPC_adicional, nro_aut_IGE, vlr_aut_IGE, nro_aut_LMA,               
         vlr_aut_LMA, tarifa_ARP, centro_trabajo, aporte_ARP, tarifa_CCF, aporte_CCF, tarifa_SENA, aporte_SENA,               
         tarifa_ICBF, aporte_ICBF, tarifa_ESAP, aporte_ESAP, tarifa_MEdu, aporte_MEdu, origen)              
        SELECT               
            @pch_compania, @psi_anio, @pti_mes, @pch_sucursal, @pch_tipo_planilla, tg.trabajador, 1,  
            RIGHT('00000' + RTRIM(tg.secuencia - @vsi_handicap + 1), 5),               
            td = LEFT(ISNULL(td.dato, 'CC'), 2), LEFT(LTRIM(IsNull(tg.clave_unica, '0')), 16), '0',              
            tcot.tipo_cotizante,            
            subtipo_cotizante = dbo.fn_fco_subtipo_cotizante(tg.compania, tg.trabajador),            
            extranjero_no_pension = enp.extranjero,            
            residente_en_exterior = ree.res_ext,            
            ccf.departamento, ccf.municipio,            
            LEFT(dbo.fn_ape1(tg.nombre), 20), LEFT(dbo.fn_ape2(tg.nombre), 30),              
            LEFT(dbo.fn_nom1(tg.nombre), 20), LEFT(dbo.fn_nom2(tg.nombre), 30),              
            ING = CASE WHEN CONVERT(char(6), tg.fecha_ingreso, 112) = @vch_periodo THEN 'X' ELSE '' END,             
            RET = CASE WHEN CONVERT(char(6), tg.fecha_baja, 112)   <= @vch_periodo THEN 'X' ELSE '' END,              
            TDE = '', TAE = '', TDP = '', TAP = '', VSP = '', VTE = '', VST = '', SLN = '', IGE = '', LMA = '', VAC = '',              
            AVP = '', VCT = '', IRP = '00',               
            cod_AFP = ISNULL(AFP.dato, ''), cod_AFP_Tras = '',              
            cod_EPS = ISNULL(EPS.dato, ''), cod_EPS_Tras = '',              
            cod_CCF = ISNULL(ccf.ccf, ''),               
            0, 0, 0, 0, salario = dbo.fn_fco_salario(tg.compania, tg.trabajador, @vch_periodo),             
            dbo.fn_fco_salario_integral(tg.compania, tg.trabajador),            
            0, 0, 0, 0,               
            @vdc_tar_AFP, aporte_AFP=0, voluntario_AFP=0, voluntario_AFP_cia=0, aporte_FSP=0,             
            aporte_FSP_subsistencia=0, valor_no_retenido=0, @vdc_tar_EPS, 0, 0, '', 0, '', 0, 0, 0, 0,               
            @vdc_tar_CCF, 0, @vdc_tar_SENA, 0, @vdc_tar_ICBF, 0, @vdc_tar_ESAP, 0, @vdc_tar_MEdu, 0, 1              
        FROM fco_integrada_temp tg              
        INNER JOIN vw_fco_tipo_cotiz tcot ON tcot.compania = tg.compania AND tcot.trabajador = tg.trabajador            
        INNER JOIN vw_fco_extranjero_no_pension enp ON enp.compania = tg.compania AND enp.trabajador = tg.trabajador            
        INNER JOIN vw_fco_residente_en_exterior ree ON ree.compania = tg.compania AND ree.trabajador = tg.trabajador            
        INNER JOIN vw_fco_ccf_trabajador ccf ON ccf.compania = tg.compania AND ccf.trabajador = tg.trabajador              
        LEFT JOIN vw_fco_tdo_trabajador td ON td.compania = tg.compania AND td.trabajador = tg.trabajador              
        LEFT JOIN rel_trab_agr AFP ON AFP.agrupacion = @vch_agt_AFP AND AFP.compania = tg.compania AND AFP.trabajador = tg.trabajador              
        LEFT JOIN rel_trab_agr EPS ON EPS.agrupacion = @vch_agt_EPS AND EPS.compania = tg.compania AND EPS.trabajador = tg.trabajador              
        WHERE random = @vsi_random          
              
        DELETE fco_integrada_temp WHERE random = @vsi_random              
            
        /* Corregir el departamento y el municipio - prevalece la agrupación de trabajador sobre el dato de la CCF */            
        UPDATE fco_integrada_det            
        SET departamento = dpto_tra, municipio = muni_tra            
        FROM vw_fco_muni_tra x            
        WHERE fco_integrada_det.compania = @pch_compania AND fco_integrada_det.anio = @psi_anio AND fco_integrada_det.mes = @pti_mes             
          AND (fco_integrada_det.sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND fco_integrada_det.tipo_planilla = @pch_tipo_planilla  
          AND x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
          AND fco_integrada_det.trabajador = x.trabajador                      
          AND departamento = ''          
            
        /* Novedad ING. Cuando un aprendiz del SENA pasa de Etapa Lectiva a Productiva */   
        UPDATE fco_integrada_det      
        SET nov_ING = 'X'      
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')        
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM vw_fco_hist_traslados_sena x      
                      WHERE x.compania = fco_integrada_det.compania      
                        AND x.trabajador = fco_integrada_det.trabajador      
                        AND x.anio = fco_integrada_det.anio      
                        AND x.mes = fco_integrada_det.mes)      
      
        /* Novedad RET. El caso normal esta contemplado en el Insert anterior */              
        /*** RET: Retiros en el mismo periodo de ingreso. SOLO PASA EN AVIDESA ***/              
        UPDATE fco_integrada_det              
        SET nov_RET = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM historial_laboral x               
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND x.codigo_incidencia = '0000000002'              
                        AND CONVERT(char(6), x.valor_03, 112) = @vch_periodo)              
              
        /* Novedad TDE. INGRESO A ESTA EPS (TRASLADO DESDE OTRA EPS) */              
        UPDATE fco_integrada_det              
        SET nov_TDE = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND nov_ING <> 'X'              
          AND EXISTS (SELECT 1 FROM vw_fco_hist_traslados_eps x              
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND CONVERT(char(6), x.fecha_alta, 112) = @vch_periodo)              
              
        /* Novedad TAE. RETIRO DE ESTA EPS (TRASLADO A OTRA EPS) */              
        UPDATE fco_integrada_det              
        SET nov_TAE = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM fco_traslados_EPS x              
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND CONVERT(char(6), x.fecha_cambio, 112) = @vch_periodo)              
                      
        /* Novedad TDP. INGRESO A ESTA AFP (TRASLADO DESDE OTRA AFP) */              
        UPDATE fco_integrada_det              
        SET nov_TDP = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND nov_ING <> 'X'              
          AND EXISTS (SELECT 1 FROM vw_fco_hist_traslados_fpo x              
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND CONVERT(char(6), x.fecha_alta, 112) = @vch_periodo)              
              
        /* Novedad TAP. RETIRO DE ESTA AFP (TRASLADO A OTRA AFP) */              
        UPDATE fco_integrada_det              
        SET nov_TAP = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM fco_traslados_FPO x              
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND CONVERT(char(6), x.fecha_cambio, 112) = @vch_periodo)              
              
        /* Novedad VSP. VARIACION PERMANENTE DE SALARIO */              
        UPDATE fco_integrada_det              
        SET nov_VSP = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND nov_ING <> 'X'              
          AND EXISTS (SELECT 1 FROM vw_fco_sueldos x              
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND CONVERT(char(6), x.fecha, 112) = @vch_periodo)              
                              
        /* Novedad VTE. CAMBIO TARIFA ESPECIAL */              
        -- Pendiente              
              
        /* Novedad VST. VARIACION TRANSITORIA DEL SALARIO */              
        UPDATE fco_integrada_det              
        SET nov_VST = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_VST, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Novedad SLN. SUSPENSIÓN TEMPORAL CONTRATO Y LICENCIA NO REMUNERADA */              
        UPDATE fco_integrada_det              
        SET nov_SLN = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_SLN, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.tiempo <> 0)              
              
        /* Novedad IGE. INCAPACIDAD GENERAL */              
        UPDATE fco_integrada_det              
        SET nov_IGE = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_IGE, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Novedad LMA. LICENCIA MATERNA */              
        UPDATE fco_integrada_det              
        SET nov_LMA = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_LMA, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Novedad VAC. VACACIONES */              
        UPDATE fco_integrada_det              
        SET nov_VAC = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')          
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_VAC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Novedad AVP. APORTE VOLUNTARIO */              
        UPDATE fco_integrada_det              
        SET nov_AVP = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AVP_T, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Novedad AVP. APORTE VOLUNTARIO (Empleador) */              
        UPDATE fco_integrada_det              
        SET nov_AVP = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND nov_AVP = ''              
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AVP_E, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Novedad VCT. VARIACION DEL CENTRO DE TRABAJO */              
        UPDATE fco_integrada_det              
        SET nov_VCT = 'X'              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND nov_ING <> 'X'              
          AND EXISTS (SELECT 1 FROM vw_fco_hist_traslados_ctr x              
                      WHERE x.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
                        AND x.trabajador = fco_integrada_det.trabajador              
                        AND CONVERT(char(6), x.fecha_alta, 112) = @vch_periodo)              
                      
        /* Novedad IRP. INCAPACIDAD POR ACCIDENTE DE TRABAJO O ENF.PROFESIONAL -EN DIAS- */              
        UPDATE fco_integrada_det              
        SET nov_IRP = (SELECT CASE WHEN tiempo > 99 THEN '99' ELSE CASE WHEN tiempo < 0 THEN '00' ELSE RIGHT('00' + RTRIM(FLOOR(tiempo)), 2) END END              
                       FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_IRP, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.tiempo <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_IRP, @psi_anio, @pti_mes) x              
                WHERE x.trabajador = fco_integrada_det.trabajador AND x.tiempo <> 0)          
              
        /* Nueva AFP (Fondo de Pensiones al cual se traslada) */  
        UPDATE fco_integrada_det              
        SET cod_AFP_Tras = FPO_nueva          
        FROM fco_traslados_fpo t           
        WHERE t.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
          AND fco_integrada_det.trabajador = t.trabajador              
          AND fco_integrada_det.compania = @pch_compania              
          AND fco_integrada_det.anio = @psi_anio               
          AND fco_integrada_det.mes = @pti_mes               
          AND (fco_integrada_det.sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND fco_integrada_det.tipo_planilla = @pch_tipo_planilla  
          AND CONVERT(char(6), t.fecha_cambio, 112) = @vch_periodo              
              
        /* Nueva EPS (EPS al cual se traslada) */              
        UPDATE fco_integrada_det              
        SET cod_EPS_Tras = t.EPS_nueva          
        FROM fco_traslados_eps t           
        WHERE t.compania IN (fco_integrada_det.compania, @vch_cia_TSEN)          
          AND fco_integrada_det.trabajador = t.trabajador          
          AND fco_integrada_det.compania = @pch_compania          
          AND fco_integrada_det.anio = @psi_anio          
          AND fco_integrada_det.mes = @pti_mes          
          AND (fco_integrada_det.sucursal = @pch_sucursal OR @pch_sucursal = '')          
          AND fco_integrada_det.tipo_planilla = @pch_tipo_planilla  
          AND CONVERT(char(6), t.fecha_cambio, 112) = @vch_periodo          
                  
        /* Días cotizados a pensión e IBC */              
        UPDATE fco_integrada_det              
        SET dias_AFP = (SELECT CASE WHEN tiempo > 30 THEN 30 ELSE CASE WHEN tiempo < 0 THEN 0 ELSE tiempo END END              
                       FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AFP_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0),              
            IBC_AFP = (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AFP_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AFP_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                      
        /* Días cotizados a salud e IBC */              
        UPDATE fco_integrada_det              
        SET dias_EPS = (SELECT CASE WHEN tiempo > 30 THEN 30 ELSE CASE WHEN tiempo < 0 THEN 0 ELSE tiempo END END          
                      FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_EPS_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0),              
            IBC_EPS = (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_EPS_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_EPS_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            
              
        /* Días cotizados a riesgos profesionales e IBC */              
        UPDATE fco_integrada_det              
        SET dias_ARP = (SELECT CASE WHEN tiempo > 30 THEN 30 ELSE CASE WHEN tiempo < 0 THEN 0 ELSE tiempo END END          
                      FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_ARP_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0),              
            IBC_ARP = (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_ARP_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_ARP_IBC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                      
        /* IBC caja de compensación */              
        IF ISNULL(@vti_tipo_IBC_CCF, 2) <> 0            
            UPDATE fco_integrada_det              
            SET dias_CCF = (SELECT CASE WHEN tiempo > 30 THEN 30 ELSE CASE WHEN tiempo < 0 THEN 0 ELSE tiempo END END          
                        FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_CCF_IBC, @psi_anio, @pti_mes) x              
      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0),              
                IBC_CCF = (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_CCF_IBC, @psi_anio, @pti_mes) x              
            WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_CCF_IBC, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        ELSE            
            UPDATE fco_integrada_det              
            SET dias_CCF = (SELECT CASE WHEN tiempo > 30 THEN 30 ELSE CASE WHEN tiempo < 0 THEN 0 ELSE tiempo END END          
                           FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vsi_IBC_CCF, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0),            
                IBC_CCF = (SELECT importe FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vsi_IBC_CCF, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vsi_IBC_CCF, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                          
        /* Aporte o Cotización Obligatoria a Pensión */              
        UPDATE fco_integrada_det              
        SET aporte_AFP =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AFP_Cot, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AFP_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                      
        /* Aporte Voluntario del Trabajador a Pensión */              
        UPDATE fco_integrada_det              
        SET voluntario_AFP =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AVP_T, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AVP_T, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            
        /* Aporte Voluntario del Empleador a Pensión */              
        UPDATE fco_integrada_det              
        SET voluntario_AFP_cia =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AVP_E, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AVP_E, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Aporte Fondo de Solidaridad Pensional subcuenta de Solidaridad */  --JCL.Jul.18/06--            
        IF @vti_FSP_Sol_tipo = 0  --Es un concepto          
        BEGIN          
            IF ISNUMERIC(@vch_FSP_Sol) = 1          
                UPDATE fco_integrada_det              
                SET aporte_FSP =             
                        (SELECT SUM(importe) FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_FSP_Sol, @psi_anio, @pti_mes) x              
                         WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
                  AND tipo_planilla = @pch_tipo_planilla  
                  AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_FSP_Sol, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        END          
        ELSE --Es una Agrupación de Conceptos          
            UPDATE fco_integrada_det              
            SET aporte_FSP =               
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_FSP_Sol, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_FSP_Sol, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
          
        /* Aporte Fondo de Solidaridad Pensional subcuenta de Subsistencia */  --JCL.Jul.18/06--              
        IF @vti_FSP_Sub_tipo = 0  --Es un concepto          
        BEGIN          
            IF ISNUMERIC(@vch_FSP_Sub) = 1          
                UPDATE fco_integrada_det              
                SET aporte_FSP_Subsistencia =             
                        (SELECT SUM(importe) FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_FSP_Sub, @psi_anio, @pti_mes) x              
                         WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
                  AND tipo_planilla = @pch_tipo_planilla  
                  AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_FSP_Sub, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        END          
        ELSE --Es una Agrupación de Conceptos          
            UPDATE fco_integrada_det              
            SET aporte_FSP_Subsistencia =               
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_FSP_Sub, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_FSP_Sub, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
          
        UPDATE fco_integrada_det              
       SET aporte_FSP_Subsistencia = aporte_FSP          
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND aporte_FSP_Subsistencia = 0          
          AND aporte_FSP > 0          
                  
        /* Valor no retenido por aportes voluntarios */              
        UPDATE fco_integrada_det              
        SET valor_no_retenido =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_VNR, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')          
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_VNR, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Aporte o Cotización Obligatoria a Salud */              
        UPDATE fco_integrada_det              
        SET aporte_EPS =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_EPS_Cot, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_EPS_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)     
              
        /* UPC Adicional */              
        UPDATE fco_integrada_det              
        SET UPC_adicional =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_UPC, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_UPC, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* NOV-17-06 Autorizaciones de incapacidades por EG y LM */          
        EXEC sp_fco_pi_autorizaciones @pch_compania, @psi_anio, @pti_mes, @pch_sucursal, @pch_tipo_planilla  
              
        /* Tarifa del Centro de Trabajo */              
        UPDATE fco_integrada_det              
        SET tarifa_ARP = dbo.fn_fco_tarifa_ARP(compania, trabajador),              
            centro_trabajo = dbo.fn_fco_centro_trabajo(compania, trabajador)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
              
        /* Aporte o Cotización Obligatoria a Riesgos Profesionales */              
        UPDATE fco_integrada_det              
        SET aporte_ARP =               
            (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_ARP_Cot, @psi_anio, @pti_mes) x              
              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_ARP_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Aporte o Cotización Obligatoria a la Caja de Compensación Familiar */              
        IF @vti_CCF_tipo = 0              
        BEGIN              
            IF ISNUMERIC(@vch_CCF_Cot) = 1              
                UPDATE fco_integrada_det              
                SET aporte_CCF =               
                    (SELECT importe FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_CCF_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
                  AND tipo_planilla = @pch_tipo_planilla  
                  AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_CCF_Cot, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        END              
        ELSE              
            UPDATE fco_integrada_det              
            SET aporte_CCF =               
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_CCF_Cot, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_CCF_Cot, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Aporte o Cotización Obligatoria al SENA */              
        IF @vti_SENA_tipo = 0              
        BEGIN              
            IF ISNUMERIC(@vch_SENA_Cot) = 1              
                UPDATE fco_integrada_det              
               SET aporte_SENA =               
                    (SELECT importe FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_SENA_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
                  AND tipo_planilla = @pch_tipo_planilla  
                  AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_SENA_Cot, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        END              
        ELSE              
            UPDATE fco_integrada_det              
            SET aporte_SENA =               
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_SENA_Cot, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_SENA_Cot, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Aporte o Cotización Obligatoria al ICBF */              
        IF @vti_ICBF_tipo = 0              
        BEGIN              
            IF ISNUMERIC(@vch_ICBF_Cot) = 1              
                UPDATE fco_integrada_det              
                SET aporte_ICBF =       
                    (SELECT importe FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_ICBF_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
                  AND tipo_planilla = @pch_tipo_planilla  
                  AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_ICBF_Cot, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        END              
        ELSE              
            UPDATE fco_integrada_det              
            SET aporte_ICBF =               
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_ICBF_Cot, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND tipo_planilla = @pch_tipo_planilla  
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_ICBF_Cot, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
              
        /* Aporte o Cotización Obligatoria a ESAP */              
/*  
        IF @vti_ESAP_tipo = 0              
        BEGIN              
            IF ISNUMERIC(@vch_ESAP_Cot) = 1              
                UPDATE fco_integrada_det              
                SET aporte_ESAP =               
                    (SELECT importe FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_ESAP_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
               AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_ESAP_Cot, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
     END              
        ELSE              
            UPDATE fco_integrada_det              
            SET aporte_ESAP =               
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_ESAP_Cot, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_ESAP_Cot, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
*/              
        /* Aporte o Cotización Obligatoria al Ministerio de Educación */              
/*  
        IF @vti_MEdu_tipo = 0              
        BEGIN              
            IF ISNUMERIC(@vch_MEdu_Cot) = 1              
                UPDATE fco_integrada_det              
                SET aporte_MEdu =               
                    (SELECT importe FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_MEdu_Cot, @psi_anio, @pti_mes) x              
                      WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)             
                WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
                  AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_MEdu_Cot, @psi_anio, @pti_mes) x              
                              WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
        END              
        ELSE              
            UPDATE fco_integrada_det              
            SET aporte_MEdu =               
    (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_MEdu_Cot, @psi_anio, @pti_mes) x              
                  WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND EXISTS (SELECT 1 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_MEdu_Cot, @psi_anio, @pti_mes) x              
                          WHERE x.trabajador = fco_integrada_det.trabajador AND x.importe <> 0)              
*/  
                
        /* Porcentaje de aporte a salud para Colombianos Residentes en el Exterior */ --JCL.Oct-03-06        
        UPDATE fco_integrada_det        
        SET tarifa_EPS = @vdc_tar_CRE        
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND residente_en_exterior = 'X'        
            
        /* Control para que tarifa de pension sea cero si el subtipo de cotizante es uno o dos */        
        UPDATE fco_integrada_det        
        SET tarifa_AFP = 0        
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          AND subtipo_cotizante > 0        
          
        /* corregir tarifa pension para quienes no aportan a pension */      
        UPDATE fco_integrada_det             
        SET  tarifa_AFP = 0            
        WHERE tipo_cotizante IN (12, 17, 19)      
          and compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          and aporte_AFP = 0      
          
        /* Corregir tarifas parafiscales para quienes no aportan al parafiscales*/      
        UPDATE fco_integrada_det      
        SET tarifa_CCF = 0      
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          and aporte_CCF = 0      
    
        UPDATE fco_integrada_det      
        SET tarifa_SENA = 0      
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          and aporte_SENA = 0      
  
        UPDATE fco_integrada_det      
        SET tarifa_ICBF = 0      
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
          AND tipo_planilla = @pch_tipo_planilla  
          and aporte_ICBF = 0      
               
        /* Inclusión de Empleados por Fuera de Nómina (Fantasmas) */              
        IF OBJECT_ID('dbo.fco_fantasmas') IS NOT NULL              
        BEGIN -- Estos siempre quedan al final del archivo hasta el día que alguien chille              
            SELECT @vsi_secuencia = MAX(secuencia) FROM fco_integrada_det              
            WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')                                
            SELECT trabajador, IDENTITY(smallint, 1, 1) AS secuencia              
            INTO #fco_fantasmas_temp              
            FROM fco_fantasmas a              
            WHERE a.compania = @pch_compania              
            AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
            AND tipo_planilla = @pch_tipo_planilla  
            AND ISNULL(EPS, '') + ISNULL(AFP, '') <> ''              
            AND ((anio-2000)*12 + mes) >= ((@psi_anio-2000)*12 + @pti_mes)                  
            AND IsNull(a.planilla_pens, 0) = 0 -- JCL ABR-18-07 Nos dimos cuenta por Rohm And Haas  
            AND NOT EXISTS (SELECT 1 FROM fco_integrada_det x              
                            WHERE a.compania = x.compania AND a.sucursal = x.sucursal AND a.tipo_planilla = x.tipo_planilla  
                              AND a.anio = x.anio AND a.mes = x.mes              
                              AND RTRIM(LTRIM(a.trabajador)) = RTRIM(LTRIM(x.trabajador)))              
              
            
            INSERT INTO fco_integrada_det              
            (compania, anio, mes, sucursal, tipo_planilla, trabajador, consecutivo, secuencia, tipo_documento, nro_id, digito_chequeo, tipo_cotizante,               
            subtipo_cotizante, extranjero_no_pension, residente_en_exterior, departamento, municipio,            
            primer_apellido, segundo_apellido, primer_nombre, segundo_nombre, nov_ING, nov_RET, nov_TDE, nov_TAE, nov_TDP,               
            nov_TAP, nov_VSP, nov_VTE, nov_VST, nov_SLN, nov_IGE, nov_LMA, nov_VAC, nov_AVP, nov_VCT, nov_IRP, cod_AFP,               
            cod_AFP_Tras, cod_EPS, cod_EPS_Tras, cod_CCF, dias_AFP, dias_EPS, dias_ARP, dias_CCF, salario, integral, IBC_AFP, IBC_EPS, IBC_ARP,              
            IBC_CCF, tarifa_AFP, aporte_AFP, voluntario_AFP, voluntario_AFP_cia,               
            aporte_FSP, aporte_FSP_subsistencia, valor_no_retenido, tarifa_EPS, aporte_EPS, UPC_adicional, nro_aut_IGE, vlr_aut_IGE, nro_aut_LMA,               
            vlr_aut_LMA, tarifa_ARP, centro_trabajo, aporte_ARP, tarifa_CCF, aporte_CCF, tarifa_SENA, aporte_SENA,               
            tarifa_ICBF, aporte_ICBF, tarifa_ESAP, aporte_ESAP, tarifa_MEdu, aporte_MEdu, origen)              
            SELECT @pch_compania, @psi_anio, @pti_mes, @pch_sucursal, @pch_tipo_planilla, a.trabajador, 1,      
            b.secuencia + RIGHT('00000' + RTRIM(ISNULL(@vsi_secuencia, 0)), 5),            
            tipo_id, nro_id, '0' dc, tipo_cotizante,                         
            subtipo_cotizante = 0, extranjero_no_pension = ' ', residente_en_exterior = ' ',            
            IsNull(ccf.departamento,''),  IsNull(ccf.municipio, ''),                      
            primer_apellido, segundo_apellido, primer_nombre, segundo_nombre,               
            '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',              
            ISNULL(AFP, ''), '', ISNULL(EPS, ''), '',               
            ISNULL(CCF, ''), dias_AFP, dias_EPS, dias_ARP, dias_CCF=dias_AFP, salario, ' ', IBC_AFP, IBC_EPS, IBC_ARP,              
            IBC_CCF, @vdc_tar_AFP, aporte_AFP, 0, 0,               
            aporte_FSP_sol, aporte_FSP_sub, 0, @vdc_tar_EPS, aporte_EPS, UPC_adicional, '', 0, '', 0,               
            tarifa_ARP, CASE WHEN ISNUMERIC(CTR) = 1 THEN CTR ELSE 0 END, aporte_ARP, @vdc_tar_CCF, aporte_CCF, @vdc_tar_SENA, aporte_SENA,               
            @vdc_tar_ICBF, aporte_ICBF, @vdc_tar_ESAP, aporte_ESAP, @vdc_tar_MEdu, aporte_MEdu, 2              
            FROM fco_fantasmas a              
            INNER JOIN #fco_fantasmas_temp b ON a.trabajador = b.trabajador              
            LEFT JOIN fco_administradoras ccf ON ccf.tipo = 'CCF' AND ccf.codigo = a.CCF            
            WHERE a.compania = @pch_compania              
              AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
              AND a.tipo_planilla = @pch_tipo_planilla  
              AND ISNULL(EPS, '') + ISNULL(AFP, '') <> ''              
              AND ((anio-2000)*12 + mes) >= ((@psi_anio-2000)*12 + @pti_mes)                  
        END              
              
        /* Redondeos (IBC al múltiplo de mil más cercano, Aportes al múltiplo de cien más cercano) */              
      /*  UPDATE fco_integrada_det              
        SET IBC_AFP = Round((IBC_AFP - 1)/1000,0)*1000,              
            IBC_EPS = Round((IBC_EPS - 1)/1000,0)*1000,              
            IBC_ARP = Round((IBC_ARP - 1)/1000,0)*1000,              
            IBC_CCF = Round((IBC_CCF - 1)/1000,0)*1000,              
            aporte_AFP = Round((aporte_AFP - 1)/100,0)*100,              
            voluntario_AFP = Round((voluntario_AFP - 1)/100,0)*100,              
            voluntario_AFP_cia = Round((voluntario_AFP_cia - 1)/100,0)*100,              
            aporte_FSP = Round((aporte_FSP - 1)/100,0)*100,              
            aporte_EPS = Round((aporte_EPS - 1)/100,0)*100,              
            aporte_ARP = Round((aporte_ARP - 1)/100,0)*100              
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')                  
          AND tipo_planilla = @pch_tipo_planilla  */
                        
        DELETE fco_integrada_det            
        WHERE compania = @pch_compania            
          AND anio = @psi_anio            
          AND mes = @pti_mes            
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          AND aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP = 0            
                                  
    END /*1*/              
          
    -- Desde Agosto 30/06 siempre se recalculan los totales por si el usuario cambio valores por control de planilla          
    /* TOTAL DE LA NOMINA */              
    SELECT @vdc_nomina = SUM(IsNull(IBC_CCF, 0))            
    FROM fco_integrada_det            
    WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
      AND tipo_planilla = @pch_tipo_planilla  
          
    UPDATE fco_integrada_cab              
    SET valor_nomina = ISNULL(@vdc_nomina, 0)              
    WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')                            
      AND tipo_planilla = @pch_tipo_planilla  
          
    /* TOTAL DE EMPLEADOS */              
    SELECT @vsi_empleados = COUNT(*)              
    FROM fco_integrada_det              
    WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
      AND tipo_planilla = @pch_tipo_planilla  
          
    UPDATE fco_integrada_cab              
    SET nro_empleados = ISNULL(@vsi_empleados, 0)              
    WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')                
      AND tipo_planilla = @pch_tipo_planilla  
          
    /* RENUMERACION DE LA SECUENCIA */             
    SELECT compania cia, trabajador tra, IDENTITY(smallint, 1, 1) sec            
    INTO #renumera            
    FROM fco_integrada_det            
    WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
      AND tipo_planilla = @pch_tipo_planilla  
    ORDER BY secuencia            
          
    UPDATE fco_integrada_det            
    SET secuencia = RIGHT('00000' + RTRIM(sec), 5)            
    FROM #renumera            
    WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')              
      AND tipo_planilla = @pch_tipo_planilla  
      AND compania = cia            
      AND trabajador = tra            
          
    DROP TABLE #renumera            
                          
    /* RT04. TOTAL APORTES DEL PERIODO A SALUD */        
    IF @vti_respetar_tot = 0       
    Begin      
        SELECT compania, anio, mes, @pch_sucursal sucursal, cod_EPS, identity(int, 1, 1) as secuencia,        
               SUM(ISNULL(aporte_EPS, 0)) aportes,         
               SUM(ISNULL(UPC_adicional, 0)) UPC,         
               MAX(ISNULL(nro_aut_IGE, 0)) nro_aut_IGE,         
               SUM(ISNULL(vlr_aut_IGE, 0)) suma_aut_IGE,         
               MAX(ISNULL(nro_aut_LMA, 0)) nro_aut_LMA,        
               SUM(ISNULL(vlr_aut_LMA, 0)) suma_aut_LMA,        
               SUM(ISNULL(IBC_EPS, 0)) * 0.01 Fosyga,        
               COUNT(*) afiliados        
        INTO #fco_rt04        
        FROM fco_integrada_det d        
        WHERE compania = @pch_compania        
          AND anio = @psi_anio        
          AND mes = @pti_mes        
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')        
          AND tipo_planilla = @pch_tipo_planilla  
        GROUP BY compania, anio, mes, cod_EPS        
          
        INSERT INTO fco_integrada_rt04        
        (compania, anio, mes, sucursal, tipo_planilla, cod_EPS, secuencia, nit, dv,         
         suma_aportes, suma_UPC, nro_aut_IGE, suma_aut_IGE, nro_aut_LMA, suma_aut_LMA,         
         dias_mora, int_mora_aportes, int_mora_UPC,         
         nro_radicacion, saldo_favor_aportes, saldo_favor_UPC,         
         FOSYGA, total_afiliados)        
        SELECT         
            a.compania, a.anio, a.mes, a.sucursal, @pch_tipo_planilla, a.cod_EPS, a.secuencia,         
            ISNULL(b.registro_fiscal, ''), ISNULL(b.digito_verificacion, 0),          
            a.aportes, a.UPC, a.nro_aut_IGE, a.suma_aut_IGE, a.nro_aut_LMA, a.suma_aut_LMA,         
            0, 0, 0, '', 0, 0, Fosyga, afiliados        
        FROM #fco_rt04 a        
        INNER JOIN vw_fco_administradoras b ON a.compania = b.compania AND b.tipo = 'EPS' AND a.cod_EPS = b.codigo        
                
        DROP TABLE #fco_rt04        
          
        -- Llenando la tabla origen de los totales tipo 4 o totales para Salud      
        -- Lo que se puede mostrar detalladamente      
        UPDATE fco_integrada_rt04      
        SET nro_aut_IGE = IsNull(n_IGE, ''),      
            suma_aut_IGE = IsNull(v_IGE, 0),      
            nro_aut_LMA = IsNull(n_LMA, ''),      
            suma_aut_LMA = IsNull(v_LMA, 0)      
        FROM (SELECT a.cod_EPS EPS, MAX(nro_aut_IGE) n_IGE, SUM(vlr_aut_IGE) v_IGE, MAX(nro_aut_LMA) n_LMA, SUM(vlr_aut_LMA) v_LMA      
              FROM fco_integrada_det a      
              WHERE a.compania = @pch_compania        
                AND a.anio = @psi_anio        
                AND a.mes = @pti_mes        
                AND (a.sucursal = @pch_sucursal OR @pch_sucursal = '')        
                AND a.tipo_planilla = @pch_tipo_planilla  
              GROUP BY a.cod_EPS) as x      
        WHERE cod_EPS = EPS      
          AND compania = @pch_compania      
          AND anio = @psi_anio       
          AND mes = @pti_mes      
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          
        -- Lo que no se puede mostrar detalladamente (EG)      
        UPDATE fco_integrada_rt04      
        SET nro_aut_IGE = left(nro_aut_IGE + '/' + IsNull(n_IGE, ''), 15),      
            suma_aut_IGE = suma_aut_IGE + IsNull(v_IGE, 0)      
        FROM (SELECT a.cod_EPS EPS, MAX(numero) n_IGE, SUM(valor) v_IGE      
              FROM fco_autorizaciones_ext a      
              WHERE a.compania = @pch_compania        
                AND a.anio = @psi_anio        
                AND a.mes = @pti_mes        
                AND (a.sucursal = @pch_sucursal OR @pch_sucursal = '')        
                AND a.tipo_planilla = @pch_tipo_planilla  
       AND a.tipo = 0      
              GROUP BY a.cod_EPS) as x      
        WHERE cod_EPS = EPS      
          AND compania = @pch_compania      
          AND anio = @psi_anio       
          AND mes = @pti_mes      
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
          
        -- Lo que no se puede mostrar detalladamente (LM)      
        UPDATE fco_integrada_rt04      
        SET nro_aut_LMA = left(nro_aut_LMA + '/' + IsNull(n_LMA, ''), 15),      
            suma_aut_LMA = suma_aut_LMA + IsNull(v_LMA, 0)      
        FROM (SELECT a.cod_EPS EPS, MAX(numero) n_LMA, SUM(valor) v_LMA      
              FROM fco_autorizaciones_ext a      
              WHERE a.compania = @pch_compania        
                AND a.anio = @psi_anio        
                AND a.mes = @pti_mes        
                AND (a.sucursal = @pch_sucursal OR @pch_sucursal = '')        
                AND a.tipo_planilla = @pch_tipo_planilla  
                AND a.tipo = 1      
              GROUP BY a.cod_EPS) as x      
        WHERE cod_EPS = EPS      
          AND compania = @pch_compania      
          AND anio = @psi_anio       
          AND mes = @pti_mes      
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
    End  
          
    /* RT05. TOTAL APORTES DEL PERIODO A RIESGOS PROFESIONALES */            
    IF @vti_resp_tot_arp = 0      
    Begin      
        INSERT INTO fco_integrada_rt05            
        (compania, anio, mes, sucursal, tipo_planilla, cod_ARP, secuencia, nit, dv,             
         suma_aportes, nro_aut, incapacidades, otros_riesgos,             
         dias_mora, int_mora, nro_radicacion,             
         saldo_favor, FSRP, total_afiliados)            
        SELECT             
            cab.compania, cab.anio, cab.mes, cab.sucursal, cab.tipo_planilla, cab.nueva_ARP, 1,             
            LEFT(adi.nit_ARP, 9), RIGHT(RTRIM(adi.nit_ARP), 1),            
            SUM(ISNULL(aporte_ARP, 0)), '', 0, 0,             
            0, 0, '', 0, SUM(aporte_ARP)*0.01, COUNT(*)            
        FROM fco_integrada_cab cab            
        INNER JOIN fco_integrada_det det ON cab.compania = det.compania AND cab.anio = det.anio AND cab.mes = det.mes   
            AND (cab.sucursal = det.sucursal OR @pch_sucursal = '') AND cab.tipo_planilla = det.tipo_planilla  
        LEFT JOIN fco_cias_datos_adi adi ON cab.compania = adi.compania            
        WHERE cab.compania = @pch_compania            
          AND cab.anio = @psi_anio            
          AND cab.mes = @pti_mes            
          AND (cab.sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND cab.tipo_planilla = @pch_tipo_planilla  
        GROUP BY cab.compania, cab.anio, cab.mes, cab.sucursal, cab.tipo_planilla, cab.nueva_arp, adi.nit_ARP            
              
        SELECT MAX(ISNULL(aut.numero, '')) nro, SUM(ISNULL(aut.valor_total, 0)) vlr          
        INTO #pi_inc_arp          
        FROM vw_fco_autorizaciones aut -- SOLO VERSION TSEN (EN LA NORMAL ES UNA TABLA)  
        WHERE aut.compania = @pch_compania          
          AND (aut.sucursal = @pch_sucursal OR @pch_sucursal = '')          
          AND aut.periodo = @vch_periodo           
          AND aut.tipo_planilla = @pch_tipo_planilla  
          AND aut.tipo_entidad = 1            
              
        UPDATE fco_integrada_rt05          
        SET nro_aut = ISNULL(nro, ''), incapacidades = ISNULL(vlr, 0)          
        FROM #pi_inc_arp          
        WHERE compania = @pch_compania            
          AND anio = @psi_anio            
          AND mes = @pti_mes            
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')            
          AND tipo_planilla = @pch_tipo_planilla  
              
        DROP TABLE #pi_inc_arp                      
    End      
              
END              
