IF OBJECT_ID('dbo.sp_fco_alta_fantasmas') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_alta_fantasmas
GO
CREATE PROCEDURE dbo.sp_fco_alta_fantasmas
(
    @pch_compania char(4), 
    @pch_trabajador char(10),
    @psi_anio smallint,
    @pti_mes tinyint,
    @pch_sucursal char(10),
    @pch_tipo_id char(2),
    @pvc_nro_id varchar(16),
    @pti_tipo_cotizante tinyint,
    @pvc_primer_apellido varchar(20), 
    @pvc_segundo_apellido varchar(30), 
    @pvc_primer_nombre varchar(20), 
    @pvc_segundo_nombre varchar(30), 
    @pch_AFP char(10),
    @pch_EPS char(10),
    @pch_CCF char(10),
    @pch_CTR char(10),
    @pti_dias_AFP tinyint,
    @pti_dias_EPS tinyint,
    @pti_dias_ARP tinyint,
    @pti_dias_CCF tinyint,
    @pdc_salario decimal(9),
    @pdc_IBC_AFP decimal(9),
    @pdc_IBC_EPS decimal(9),
    @pdc_IBC_ARP decimal(9),
    @pdc_IBC_CCF decimal(9),
    @pdc_aporte_AFP decimal(9),
    @pdc_aporte_FSP_sol decimal(9),
    @pdc_aporte_FSP_sub decimal(9),
    @pdc_aporte_EPS decimal(9),
    @pdc_UPC_adicional decimal(9),
    @pdc_tarifa_ARP decimal(9,8),
    @pdc_aporte_ARP decimal(9),
    @pdc_aporte_CCF decimal(9),
    @pdc_aporte_SENA decimal(9),
    @pdc_aporte_ICBF decimal(9),
    @pdc_aporte_ESAP decimal(9),
    @pdc_aporte_MEdu decimal(9),
    @pch_extranjero char(1) = 'N',
    @pch_reside_ext char(1) = 'N',
    @pch_departamento char(2) = '',
    @pch_municipio char(3) = '',
    @pbi_planilla_pens bit = 0
)
AS
BEGIN
    IF EXISTS (SELECT 1 FROM fco_fantasmas
               WHERE compania = @pch_compania
                 AND RTRIM(LTRIM(trabajador)) = RTRIM(LTRIM(@pch_trabajador)))
    BEGIN
        RAISERROR ('El registro a insertar ya existe en [fco_fantasmas]', 16, 1)
        RETURN
    END

    INSERT INTO fco_fantasmas
    (compania, trabajador, anio, mes, sucursal, tipo_id, nro_id, tipo_cotizante, primer_apellido, segundo_apellido, 
     primer_nombre, segundo_nombre, AFP, EPS, CCF, CTR, dias_AFP, dias_EPS, dias_ARP, dias_CCF, salario, IBC_AFP, IBC_EPS, 
     IBC_ARP, IBC_CCF, aporte_AFP, aporte_FSP_sol, aporte_FSP_sub, aporte_EPS, UPC_adicional, tarifa_ARP, aporte_ARP, 
     aporte_CCF, aporte_SENA, aporte_ICBF, aporte_ESAP, aporte_MEdu, extranjero, residente_exterior, departamento, municipio, planilla_pens)
    SELECT 
     @pch_compania, @pch_trabajador, ISNULL(@psi_anio, 0), ISNULL(@pti_mes, 12), 
     @pch_sucursal, @pch_tipo_id, @pvc_nro_id, ISNULL(@pti_tipo_cotizante, 1), 
     @pvc_primer_apellido, @pvc_segundo_apellido, @pvc_primer_nombre, @pvc_segundo_nombre, 
     @pch_AFP, @pch_EPS, @pch_CCF, @pch_CTR, 
     ISNULL(@pti_dias_AFP, 0), ISNULL(@pti_dias_EPS, 0), ISNULL(@pti_dias_ARP, 0), ISNULL(@pti_dias_CCF, 0),
     ISNULL(@pdc_salario, 0), ISNULL(@pdc_IBC_AFP, 0), ISNULL(@pdc_IBC_EPS, 0), ISNULL(@pdc_IBC_ARP, 0), 
     ISNULL(@pdc_IBC_CCF, 0), ISNULL(@pdc_aporte_AFP, 0), ISNULL(@pdc_aporte_FSP_sol, 0), ISNULL(@pdc_aporte_FSP_sub, 0),
     ISNULL(@pdc_aporte_EPS, 0), ISNULL(@pdc_UPC_adicional, 0), ISNULL(@pdc_tarifa_ARP, 0), ISNULL(@pdc_aporte_ARP, 0), 
     ISNULL(@pdc_aporte_CCF, 0), ISNULL(@pdc_aporte_SENA, 0), ISNULL(@pdc_aporte_ICBF, 0), 
     ISNULL(@pdc_aporte_ESAP, 0), ISNULL(@pdc_aporte_MEdu, 0), @pch_extranjero, @pch_reside_ext, @pch_departamento, @pch_municipio, @pbi_planilla_pens
END
GO
GRANT EXECUTE ON dbo.sp_fco_alta_fantasmas TO PUBLIC
GO
