IF OBJECT_ID('dbo.sp_fco_upd_pi_pens_det_afp') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_pi_pens_det_afp
GO
CREATE PROCEDURE dbo.sp_fco_upd_pi_pens_det_afp
-- JCL FEB-05-07 Revision de los IsNull(, '') en campos numéricos, se cambian a IsNull(, 0)
(
    @pch_compania char(4), 
    @psi_anio smallint, 
    @pti_mes tinyint, 
    @pvc_sucursal varchar(10), 
    @pch_trabajador char(10), 
    @pvc_pens_ape1 varchar(20), 
    @pvc_pens_ape2 varchar(30), 
    @pvc_pens_nom1 varchar(20), 
    @pvc_pens_nom2 varchar(30), 
    @pch_pens_tdoc char(2), 
    @pvc_pens_id varchar(16), 
    @pti_tipo_pension tinyint, 
    @pch_pension_compartida char(1), 
    @pvc_caus_ape1 varchar(20), 
    @pvc_caus_ape2 varchar(30), 
    @pvc_caus_nom1 varchar(20), 
    @pvc_caus_nom2 varchar(30), 
    @pch_caus_tdoc char(2), 
    @pvc_caus_id varchar(16), 
    @pch_tipo_pensionado char(1), 
    @pch_residente_en_exterior char(1), 
    @pch_departamento char(2), 
    @pch_municipio char(3), 
    @pch_situa_en_exterior char(1), 
    @pch_nov_ING char(1), 
    @pch_nov_RET char(1), 
    @pch_nov_TDE char(1), 
    @pch_nov_TAE char(1), 
    @pch_nov_TDP char(1), 
    @pch_nov_TAP char(1), 
    @pch_nov_VSP char(1), 
    @pch_nov_SUS char(1), 
    @pch_cod_AFP char(10),
    @pvc_cod_AFP_Tras varchar(6), 
    @pti_dias_AFP tinyint, 
    @pti_dias_FSP tinyint, 
    @pdc_mesada decimal(9), 
    @pdc_tarifa_AFP decimal(6,5),
    @pdc_aporte_AFP decimal(9),
    @pdc_voluntario_AFP decimal(9),
    @pdc_valor_no_retenido decimal(9),
    @pdc_aporte_FSP_sol decimal(9),
    @pdc_aporte_FSP_sub decimal(9),
    @pdc_tarifa_FSP decimal(6,5)
)
AS
BEGIN
    UPDATE fco_pi_pens_rt2
    SET pens_ape1 = IsNull(@pvc_pens_ape1, ''), 
        pens_ape2 = IsNull(@pvc_pens_ape2, ''),
        pens_nom1 = IsNull(@pvc_pens_nom1, ''),
        pens_nom2 = IsNull(@pvc_pens_nom2, ''),
        pens_tdoc = IsNull(@pch_pens_tdoc, ''),
        pens_id = IsNull(@pvc_pens_id, ''),
        tipo_pension = IsNull(@pti_tipo_pension, 1),
        pension_compartida = IsNull(@pch_pension_compartida, ''),
        caus_ape1 = IsNull(@pvc_caus_ape1, ''),
        caus_ape2 = IsNull(@pvc_caus_ape2, ''),
        caus_nom1 = IsNull(@pvc_caus_nom1, ''),
        caus_nom2 = IsNull(@pvc_caus_nom2, ''),
        caus_tdoc = IsNull(@pch_caus_tdoc, ''),
        caus_id = IsNull(@pvc_caus_id, ''),
        tipo_pensionado = IsNull(@pch_tipo_pensionado, ''),
        residente_en_exterior = IsNull(@pch_residente_en_exterior, ''),
        departamento = IsNull(@pch_departamento, ''),
        municipio = IsNull(@pch_municipio, ''),
        situa_en_exterior = IsNull(@pch_situa_en_exterior, ''),
        nov_ING = IsNull(@pch_nov_ING, ''),
        nov_RET = IsNull(@pch_nov_RET, ''),
        nov_TDE = IsNull(@pch_nov_TDE, ''),
        nov_TAE = IsNull(@pch_nov_TAE, ''),
        nov_TDP = IsNull(@pch_nov_TDP, ''),
        nov_TAP = IsNull(@pch_nov_TAP, ''),
        nov_VSP = IsNull(@pch_nov_VSP, ''),
        nov_SUS = IsNull(@pch_nov_SUS, ''),
        cod_AFP = IsNull(@pch_cod_AFP, ''),
        cod_AFP_Tras = IsNull(@pvc_cod_AFP_Tras, ''),
        dias_AFP = IsNull(@pti_dias_AFP, 0),
        dias_FSP = IsNull(@pti_dias_FSP, 0),
        mesada = IsNull(@pdc_mesada, 0),
        tarifa_AFP = IsNull(@pdc_tarifa_AFP, 0),
        aporte_AFP = IsNull(@pdc_aporte_AFP, 0),
        voluntario_AFP = IsNull(@pdc_voluntario_AFP, 0),
        valor_no_retenido = IsNull(@pdc_valor_no_retenido, 0),
        aporte_FSP_sol = IsNull(@pdc_aporte_FSP_sol, 0),
        aporte_FSP_sub = IsNull(@pdc_aporte_FSP_sub, 0),
        tarifa_FSP = IsNull(@pdc_tarifa_FSP, 0)
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND trabajador = @pch_trabajador
END
GO
GRANT EXECUTE ON dbo.sp_fco_upd_pi_pens_det_afp TO PUBLIC
GO
