IF OBJECT_ID('dbo.sp_fco_planilla_integrada_pens') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_planilla_integrada_pens
GO
CREATE PROCEDURE dbo.sp_fco_planilla_integrada_pens    
(    
    @pch_compania char(4),    
    @psi_anio smallint,    
    @pti_mes tinyint,    
    @pch_sucursal char(10),  -- Nunca llega NULL    
    @pbi_regenerar bit    
)    
AS    
/*************************************************************************/    
-- Modulo Fiscal Colombiano 2.0 ADAM V3    
-- Descripcion: Planilla Integrada para Pensionados
-- Autor: Juan Carlos Leguizamon    
-- Fecha: Julio 2006
-- Revisiones:    
-- Oct-04-06. Redondear Mesada 
-- Nov-07-06. Tarifa CCF en cero, cuando aporte sea cero 
-- Dic-05-06. Códigos de Traslado en la tabla deben ser los internos (y en el archivo los "super")
-- Dic-07-06. Se cambia de lugar la suma de la mesada para el valor total en el registro 1
/*************************************************************************/    
BEGIN    
    SET NOCOUNT ON    
    
    -- Declaración de Variables    
    DECLARE     
        @vch_periodo char(6),    
        @vch_agt_TDO char(10),     -- Tipo Documento    
        @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    
        @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    
        @vch_agr_SUS char(3),      -- /* Suspensión */    
        @vch_agr_AVP_T char(3),    -- /* Aporte Voluntario (al Fondo de Pensiones) - Trabajador */     
        @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_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 */    
        @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--  
  
    -- Llenado de variables generales    
    SET @vch_periodo = RTRIM(@psi_anio) + RIGHT('00' + RTRIM(@pti_mes),2)    
    
    -- 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_AVP_T = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 13    
    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_SUS = 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_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 @vch_agt_TDO = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 29      
    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 @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_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 @vch_var_CCF = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'parafiscal' AND secuencia = 9    
          
    -- 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)    
    
    -- Proceso Principal        
    IF @pbi_regenerar = 1 OR NOT EXISTS(SELECT 1 FROM fco_pi_pens_rt1    
                                        WHERE compania = @pch_compania    
                                          AND anio = @psi_anio    
                                          AND mes = @pti_mes    
                                          AND (sucursal = @pch_sucursal OR @pch_sucursal = ''))    
    BEGIN /*1*/    
        /* Borrar datos de procesos anteriores */      
        DELETE fco_pi_pens_rt2
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
  
        DELETE fco_pi_pens_rt1    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
      
        /* Registro Tipo 1. Parte 1: DATOS GENERALES DEL APORTANTE */    
        INSERT INTO fco_pi_pens_rt1   
        (compania, anio, mes, sucursal, secuencia, razon_social, tipo_documento, nro_id, dv, forma_presentacion, 
         nombre_sucursal, periodo, periodo_salud, nro_radicacion, fecha_pago, nro_pensionados, valor_nomina, tipo_pagador, operador) 
        SELECT
            @pch_compania, @psi_anio, @pti_mes, @pch_sucursal,
            ISNULL((SELECT MAX(secuencia) + 1 FROM fco_pi_pens_rt1 x
                    WHERE x.compania = @pch_compania AND x.anio = @psi_anio AND x.mes = @pti_mes), 1),
            cias.nombre_cia,
            ISNULL(LEFT(cda.tipo_id,2), ''),
            ISNULL(
                CASE WHEN LEN(ISNULL(dbo.fn_solonum(registro_fiscal), '')) = 0
                    THEN ''
                    ELSE LEFT(LEFT(dbo.fn_solonum(registro_fiscal), LEN(dbo.fn_solonum(registro_fiscal))-1), 16)
                END, ''),
            dv = ISNULL(RIGHT(dbo.fn_solonum(registro_fiscal), 1), ''),
            fp = CASE WHEN LTRIM(RTRIM(@pch_sucursal)) = '' THEN 'C' ELSE 'S' END,
            ns = ISNULL(suc.descripcion, ''),
            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(),
            np = 0, -- Todavia no se sabe
            vn = 0, -- Todavia no se sabe
            1, -- Tipo de Pagador
            operador = '00' -- Asignado por el Sistema
        FROM companias cias
        LEFT JOIN fco_cias_datos_adi cda ON cda.compania = cias.compania
        LEFT JOIN 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 */    
        /* RT2 Parte 1.  Seleccion de Trabajadores */    
        SELECT @vsi_random = FLOOR(RAND( (DATEPART(mm, GETDATE()) * 100000 )    
           + (DATEPART(ss, GETDATE()) * 1000 )    
           + DATEPART(ms, GETDATE()) ) * 32567) + 1    
      
        DELETE fco_pi_pens_temp WHERE random = @vsi_random    
    
        IF @vti_orden = 1
        BEGIN
            SELECT tg.compania, tg.trabajador, ISNULL(SUC.dato, '') sucursal, 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_pi_pens_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 = @pch_compania
              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)
              AND (SUC.dato = @pch_sucursal OR @pch_sucursal = '')
              AND EXISTS
                (SELECT 1 FROM vw_fco_tipo_cotiz tcot
                 WHERE tcot.compania = tg.compania
                   AND tcot.trabajador = tg.trabajador
                   AND tcot.tipo_cotizante = '99')
            ORDER BY CONVERT(decimal, dbo.fn_solonum(isnull(t.clave_unica, '0')))
            
            INSERT INTO fco_pi_pens_temp     
            (random, compania, trabajador, sucursal, relacion_laboral, fecha_ingreso, fecha_baja, clave_unica,    
             nombre, registro_fiscal, secuencia)  
            SELECT @vsi_random, * FROM #fco_pi_pens_temp1  
  
            DROP TABLE #fco_pi_pens_temp1  
        END  
  
        IF @vti_orden = 3    
        BEGIN  
            SELECT tg.compania, tg.trabajador, ISNULL(SUC.dato, '') sucursal, 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_pi_pens_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    
            WHERE tg.compania = @pch_compania    
              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)    
              AND (SUC.dato = @pch_sucursal OR @pch_sucursal = '')    
              AND EXISTS 
                (SELECT 1 FROM vw_fco_tipo_cotiz tcot 
                 WHERE tcot.compania = tg.compania 
                   AND tcot.trabajador = tg.trabajador 
                   AND tcot.tipo_cotizante = '99')
            ORDER BY isnull(t.clave_unica, '0')
  
            INSERT INTO fco_pi_pens_temp     
            (random, compania, trabajador, sucursal, relacion_laboral, fecha_ingreso, fecha_baja, clave_unica,    
             nombre, registro_fiscal, secuencia)  
            SELECT @vsi_random, * FROM #fco_pi_pens_temp2  
      
            DROP TABLE #fco_pi_pens_temp2  
        END  
  
        IF @vti_orden NOT IN (1,3) -- Por Nombre    
        BEGIN  
            SELECT tg.compania, tg.trabajador, ISNULL(SUC.dato, '') sucursal, 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_pi_pens_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 AND SUC.trabajador = tg.trabajador    
            WHERE tg.compania = @pch_compania    
              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)    
              AND (SUC.dato = @pch_sucursal OR @pch_sucursal = '')    
              AND EXISTS 
                (SELECT 1 FROM vw_fco_tipo_cotiz tcot 
                 WHERE tcot.compania = tg.compania 
                   AND tcot.trabajador = tg.trabajador 
                   AND tcot.tipo_cotizante = '99')
            ORDER BY t.nombre    
    
            INSERT INTO fco_pi_pens_temp  
            (random, compania, trabajador, sucursal, relacion_laboral, fecha_ingreso, fecha_baja, clave_unica,    
             nombre, registro_fiscal, secuencia)  
            SELECT @vsi_random, * FROM #fco_pi_pens_temp3  
      
            DROP TABLE #fco_pi_pens_temp3  
        END  
  
        SELECT @vsi_handicap = MIN(secuencia) FROM fco_pi_pens_temp WHERE random = @vsi_random            
        
        /* Datos Basicos por Trabajador */    
        INSERT INTO fco_pi_pens_rt2    
        (compania, anio, mes, sucursal, trabajador, secuencia, 
         pens_ape1, pens_ape2, pens_nom1, pens_nom2, pens_tdoc, pens_id, 
         tipo_pension, pension_compartida, 
         caus_ape1, caus_ape2, caus_nom1, caus_nom2, caus_tdoc, caus_id, 
         tipo_pensionado, residente_en_exterior, departamento, municipio, situa_en_exterior, 
         nov_ING, nov_RET, nov_TDE, nov_TAE, nov_TDP, nov_TAP, nov_VSP, nov_SUS, 
         cod_AFP, cod_AFP_Tras, cod_EPS, cod_EPS_Tras, cod_CCF, 
         dias_AFP, dias_FSP, dias_EPS, dias_CCF, mesada, 
         tarifa_AFP, aporte_AFP, voluntario_AFP, valor_no_retenido, aporte_FSP_sol, aporte_FSP_sub, tarifa_FSP, 
         tarifa_EPS, aporte_EPS, UPC_adicional, tarifa_CCF, aporte_CCF, origen)
        SELECT     
            @pch_compania, @psi_anio, @pti_mes, tg.sucursal, tg.trabajador, RIGHT('0000000' + RTRIM(tg.secuencia - @vsi_handicap + 1), 7),
            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),
            td = LEFT(ISNULL(td.dato, 'CC'), 2),
            CASE WHEN LEFT(ISNULL(td.dato, 'CC'), 2) = 'NI'
                 THEN CASE WHEN LEN(LTRIM(RTRIM(tg.registro_fiscal))) > 1
                           THEN LEFT(LEFT(LTRIM(RTRIM(tg.registro_fiscal)), LEN(LTRIM(RTRIM(tg.registro_fiscal))) - 1), 16)
                           ELSE ''
                 END
                 ELSE LEFT(LTRIM(IsNull(tg.clave_unica, '0')), 16)
            END,
            pen.tipo_pension, pen.compartida,
            pen.caus_ape1, pen.caus_ape2, pen.caus_nom1, pen.caus_nom2, pen.caus_tdoc, 
            case when isnull(pen.caus_id, 0) = 0 then ' ' else pen.caus_id end, 
            pen.tipo_pensionado, pen.residente_en_exterior, 
            IsNull(mun.dpto_tra, IsNull(ccf.departamento, '')), IsNull(mun.muni_tra, IsNull(ccf.municipio, '')), pen.situa_en_exterior, 
            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 = '', SUS = '', 
            cod_AFP = ISNULL(AFP.dato, ''), cod_AFP_Tras = '', cod_EPS = ISNULL(EPS.dato, ''), cod_EPS_Tras = '', cod_CCF = ISNULL(ccf.ccf, ''),     
            dias_AFP = 0, dias_FSP = 0, dias_EPS = 0, dias_CCF = 0, 
            mesada = dbo.fn_fco_salario_pens(tg.compania, tg.trabajador, @vch_periodo, pen.tipo_pension, pen.compartida),   
            @vdc_tar_AFP, aporte_AFP = 0, voluntario_AFP = 0, valor_no_retenido = 0, aporte_FSP_sol = 0, aporte_FSP_sub = 0, tarifa_FSP = 0,
            @vdc_tar_EPS, aporte_EPS = 0, UPC_Adicional = 0, @vdc_tar_CCF, aporte_CCF = 0, 1
        FROM fco_pi_pens_temp tg    
        INNER JOIN vw_fco_info_pensionados pen ON pen.compania = tg.compania AND pen.trabajador = tg.trabajador  
        INNER JOIN vw_fco_ccf_trabajador ccf ON ccf.compania = tg.compania AND ccf.trabajador = tg.trabajador    
        LEFT JOIN vw_fco_muni_tra mun ON mun.compania = tg.compania AND mun.trabajador = tg.trabajador
        LEFT JOIN rel_trab_agr td ON td.agrupacion = @vch_agt_TDO AND 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_pi_pens_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_pi_pens_rt2  
        SET departamento = dpto_tra, municipio = muni_tra  
        FROM vw_fco_muni_tra x  
        WHERE fco_pi_pens_rt2.compania = @pch_compania AND fco_pi_pens_rt2.anio = @psi_anio AND fco_pi_pens_rt2.mes = @pti_mes   
          AND (fco_pi_pens_rt2.sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND fco_pi_pens_rt2.compania = x.compania  
          AND fco_pi_pens_rt2.trabajador = x.trabajador            
  
        /* RT2 Parte 3. 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_pi_pens_rt2    
        SET nov_RET = 'X'    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND EXISTS (SELECT 1 FROM historial_laboral x     
                      WHERE x.compania = fco_pi_pens_rt2.compania    
                        AND x.trabajador = fco_pi_pens_rt2.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_pi_pens_rt2    
        SET nov_TDE = 'X'    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND nov_ING <> 'X'    
          AND EXISTS (SELECT 1 FROM vw_fco_hist_traslados_eps x    
                      WHERE x.compania = fco_pi_pens_rt2.compania    
                        AND x.trabajador = fco_pi_pens_rt2.trabajador    
                        AND CONVERT(char(6), x.fecha_alta, 112) = @vch_periodo)    
    
        /* Novedad TAE. RETIRO DE ESTA EPS (TRASLADO A OTRA EPS) */    
        UPDATE fco_pi_pens_rt2    
        SET nov_TAE = 'X'    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND EXISTS (SELECT 1 FROM fco_traslados_EPS x    
                      WHERE x.compania = fco_pi_pens_rt2.compania    
                        AND x.trabajador = fco_pi_pens_rt2.trabajador    
                        AND CONVERT(char(6), x.fecha_cambio, 112) = @vch_periodo)    
            
        /* Novedad TDP. INGRESO A ESTA AFP (TRASLADO DESDE OTRA AFP) */    
        UPDATE fco_pi_pens_rt2    
        SET nov_TDP = 'X'    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND nov_ING <> 'X'    
          AND EXISTS (SELECT 1 FROM vw_fco_hist_traslados_fpo x    
                      WHERE x.compania = fco_pi_pens_rt2.compania    
                        AND x.trabajador = fco_pi_pens_rt2.trabajador    
                        AND CONVERT(char(6), x.fecha_alta, 112) = @vch_periodo)    
    
        /* Novedad TAP. RETIRO DE ESTA AFP (TRASLADO A OTRA AFP) */    
        UPDATE fco_pi_pens_rt2    
        SET nov_TAP = 'X'    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND EXISTS (SELECT 1 FROM fco_traslados_FPO x    
                      WHERE x.compania = fco_pi_pens_rt2.compania    
                        AND x.trabajador = fco_pi_pens_rt2.trabajador    
                        AND CONVERT(char(6), x.fecha_cambio, 112) = @vch_periodo)    
    
        /* Novedad VSP. VARIACION PERMANENTE DE SALARIO */    
        UPDATE fco_pi_pens_rt2    
        SET nov_VSP = 'X'    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND nov_ING <> 'X'    
          AND EXISTS (SELECT 1 FROM vw_fco_sueldos x    
                      WHERE x.compania = fco_pi_pens_rt2.compania    
                        AND x.trabajador = fco_pi_pens_rt2.trabajador    
                        AND CONVERT(char(6), x.fecha, 112) = @vch_periodo)    
                    
        /* Novedad SUS. SUSPENSIÓN TEMPORAL CONTRATO Y LICENCIA NO REMUNERADA */    
        UPDATE fco_pi_pens_rt2    
        SET nov_SUS = 'X'    
        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_agr_SUS, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.tiempo <> 0)    
    
        /* Nueva AFP (Fondo de Pensiones al cual se traslada) */    -- Dic-05-06
        UPDATE fco_pi_pens_rt2    
        SET cod_AFP_Tras = t.FPO_nueva
        FROM fco_traslados_fpo t 
        WHERE fco_pi_pens_rt2.compania = t.compania    
          AND fco_pi_pens_rt2.trabajador = t.trabajador    
          AND fco_pi_pens_rt2.compania = @pch_compania    
          AND fco_pi_pens_rt2.anio = @psi_anio     
          AND fco_pi_pens_rt2.mes = @pti_mes     
          AND (fco_pi_pens_rt2.sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND CONVERT(char(6), t.fecha_cambio, 112) = @vch_periodo    
    
        /* Nueva EPS (EPS al cual se traslada) */  -- Dic-05-06
        UPDATE fco_pi_pens_rt2    
        SET cod_EPS_Tras = t.EPS_nueva
        FROM fco_traslados_eps t 
        WHERE fco_pi_pens_rt2.compania = t.compania    
          AND fco_pi_pens_rt2.trabajador = t.trabajador    
          AND fco_pi_pens_rt2.compania = @pch_compania    
          AND fco_pi_pens_rt2.anio = @psi_anio     
          AND fco_pi_pens_rt2.mes = @pti_mes     
          AND (fco_pi_pens_rt2.sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND CONVERT(char(6), t.fecha_cambio, 112) = @vch_periodo    
            
        /* Días cotizados a pensión e IBC */    
        UPDATE fco_pi_pens_rt2    
        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_pi_pens_rt2.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_agr_AFP_IBC, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
            
        /* Días cotizados a salud e IBC */    
        UPDATE fco_pi_pens_rt2    
        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_pi_pens_rt2.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_agr_EPS_IBC, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
           
        /* IBC caja de compensación */    
        IF ISNULL(@vti_tipo_IBC_CCF, 2) <> 0  
            UPDATE fco_pi_pens_rt2    
            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_pi_pens_rt2.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_agr_CCF_IBC, @psi_anio, @pti_mes) x    
                          WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
        ELSE  
            UPDATE fco_pi_pens_rt2    
            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_pi_pens_rt2.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, @vsi_IBC_CCF, @psi_anio, @pti_mes) x    
                          WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
            
        /* Aporte o Cotización Obligatoria a Pensión */    
        UPDATE fco_pi_pens_rt2    
        SET aporte_AFP =     
            (SELECT Round((importe - 1)/100,0)*100 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_AFP_Cot, @psi_anio, @pti_mes) x    
              WHERE x.trabajador = fco_pi_pens_rt2.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_agr_AFP_Cot, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
            
        /* Aporte Voluntario del Trabajador a Pensión */    
        UPDATE fco_pi_pens_rt2    
        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_pi_pens_rt2.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_agr_AVP_T, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
              
        /* Aporte Fondo de Solidaridad Pensional */  
        /* 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_pi_pens_rt2    
                SET aporte_FSP_sol =   
                        (SELECT SUM(importe) FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_FSP_Sol, @psi_anio, @pti_mes) x    
                         WHERE x.trabajador = fco_pi_pens_rt2.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_FSP_Sol, @psi_anio, @pti_mes) x    
                              WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
        END
        ELSE --Es una Agrupación de Conceptos
            UPDATE fco_pi_pens_rt2    
            SET aporte_FSP_sol =     
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_FSP_Sol, @psi_anio, @pti_mes) x    
                  WHERE x.trabajador = fco_pi_pens_rt2.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_FSP_Sol, @psi_anio, @pti_mes) x    
                          WHERE x.trabajador = fco_pi_pens_rt2.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_pi_pens_rt2    
                SET aporte_FSP_sub =   
                        (SELECT SUM(importe) FROM dbo.fntb_acum_mes_cnc(@pch_compania, @vch_FSP_Sub, @psi_anio, @pti_mes) x    
                         WHERE x.trabajador = fco_pi_pens_rt2.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_FSP_Sub, @psi_anio, @pti_mes) x    
                              WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
        END
        ELSE --Es una Agrupación de Conceptos
            UPDATE fco_pi_pens_rt2    
            SET aporte_FSP_sub =     
                (SELECT importe FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_FSP_Sub, @psi_anio, @pti_mes) x    
                  WHERE x.trabajador = fco_pi_pens_rt2.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_FSP_Sub, @psi_anio, @pti_mes) x    
                          WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
          
        /* Tarifa de FSP */
        UPDATE fco_pi_pens_rt2
        SET tarifa_FSP = dbo.fn_fco_tarifa_FSP(compania, trabajador, @psi_anio, @pti_mes, mesada, 1)
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
          AND aporte_FSP_sol + aporte_FSP_sub + mesada > 0

        /* Valor no retenido por aportes voluntarios */    
        UPDATE fco_pi_pens_rt2    
        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_pi_pens_rt2.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_agr_VNR, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
    
        /* Aporte o Cotización Obligatoria a Salud */    
        UPDATE fco_pi_pens_rt2    
        SET aporte_EPS =     
            (SELECT Round((importe - 1)/100,0)*100 FROM dbo.fntb_acum_mes_agr(@pch_compania, @vch_agr_EPS_Cot, @psi_anio, @pti_mes) x    
              WHERE x.trabajador = fco_pi_pens_rt2.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_agr_EPS_Cot, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
    
        /* UPC Adicional */    
        UPDATE fco_pi_pens_rt2    
        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_pi_pens_rt2.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_agr_UPC, @psi_anio, @pti_mes) x    
                      WHERE x.trabajador = fco_pi_pens_rt2.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_pi_pens_rt2    
                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_pi_pens_rt2.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_CCF_Cot, @psi_anio, @pti_mes) x    
                              WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
        END    
        ELSE    
            UPDATE fco_pi_pens_rt2    
            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_pi_pens_rt2.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_CCF_Cot, @psi_anio, @pti_mes) x    
                          WHERE x.trabajador = fco_pi_pens_rt2.trabajador AND x.importe <> 0)    
    
        /* Redondeos (IBC al múltiplo de mil más cercano, Aportes al múltiplo de cien más cercano) */    
        UPDATE fco_pi_pens_rt2    
        SET aporte_AFP = Round((aporte_AFP - 1)/100,0)*100,    
            voluntario_AFP = Round((voluntario_AFP - 1)/100,0)*100,    
            aporte_FSP_sol = Round((aporte_FSP_sol - 1)/100,0)*100,    
            aporte_FSP_sub = Round((aporte_FSP_sub - 1)/100,0)*100,    
            aporte_EPS = Round((aporte_EPS - 1)/100,0)*100,
			mesada = Round((mesada - 1)/1000,0)*1000
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
                
        UPDATE fco_pi_pens_rt2    
        SET tarifa_ccf = 0
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
          AND aporte_CCF = 0

        UPDATE fco_pi_pens_rt2    
        SET tarifa_AFP = 0, dias_AFP = 0, aporte_AFP = 0
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
          AND tipo_pension not in (4, 7, 11, 14)               

        DELETE fco_pi_pens_rt2  
        WHERE compania = @pch_compania  
          AND anio = @psi_anio  
          AND mes = @pti_mes  
          AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  
          AND aporte_EPS + aporte_AFP + aporte_CCF = 0  

        /* TOTAL DE LA NOMINA */    
        SELECT @vdc_nomina = SUM(IsNull(mesada, 0))  
        FROM fco_pi_pens_rt2  
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')  

        UPDATE fco_pi_pens_rt1    
        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 = '')                  
                          
        /* TOTAL DE EMPLEADOS */    
        SELECT @vsi_empleados = COUNT(*)    
        FROM fco_pi_pens_rt2    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
    
        UPDATE fco_pi_pens_rt1    
        SET nro_pensionados = ISNULL(@vsi_empleados, 0)    
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
    
        /* RENUMERACION DE LA SECUENCIA */   
        SELECT compania cia, trabajador tra, IDENTITY(smallint, 1, 1) sec  
        INTO #renumera  
        FROM fco_pi_pens_rt2  
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
        ORDER BY secuencia  
  
        UPDATE fco_pi_pens_rt2  
        SET secuencia = RIGHT('0000000' + RTRIM(sec), 7)  
        FROM #renumera  
        WHERE compania = @pch_compania AND anio = @psi_anio AND mes = @pti_mes AND (sucursal = @pch_sucursal OR @pch_sucursal = '')    
          AND compania = cia  
          AND trabajador = tra  
  
        DROP TABLE #renumera  
            
    END /*1*/    
END    
GO
GRANT EXECUTE ON dbo.sp_fco_planilla_integrada_pens TO PUBLIC
GO

