IF OBJECT_ID('dbo.fco_fantasmas') IS NOT NULL
begin
    declare @vbi_existia bit, @vbi_vieja bit, @vvc_sql varchar(3000)
    set @vbi_existia = 1
    select * into ##tf from fco_fantasmas
    if exists(select 1 from syscolumns where name = 'extranjero' and id = (select id from sysobjects where name = 'fco_fantasmas'))
        set @vbi_vieja = 0
    else
        set @vbi_vieja = 1
    DROP TABLE dbo.fco_fantasmas
end
CREATE TABLE dbo.fco_fantasmas
(
    compania    char(4) NOT NULL,
    trabajador  char(10) NOT NULL,
    anio        smallint NOT NULL,
    mes         tinyint NOT NULL,
    sucursal    char(10) NOT NULL,
    tipo_planilla char(1) NOT NULL DEFAULT 'E',
    tipo_id     char(2) NOT NULL,
    nro_id      varchar(16) NOT NULL,
    tipo_cotizante tinyint NULL,
    primer_apellido varchar(20) NOT NULL,
    segundo_apellido varchar(30) NOT NULL,
    primer_nombre varchar(20) NOT NULL,
    segundo_nombre varchar(30) NOT NULL,
    AFP         char(10) NOT NULL,
    EPS         char(10) NOT NULL,
    CCF         char(10) NOT NULL,
    CTR         char(10) NOT NULL,    
    dias_AFP    tinyint NOT NULL,
    dias_EPS    tinyint NOT NULL,
    dias_ARP    tinyint NOT NULL,
    dias_CCF    tinyint NOT NULL,
    salario     decimal(9,0) NOT NULL,
    IBC_AFP     decimal(9,0) NOT NULL,
    IBC_EPS     decimal(9,0) NOT NULL,
    IBC_ARP     decimal(9,0) NOT NULL,
    IBC_CCF     decimal(9,0) NOT NULL,
    aporte_AFP  decimal(9,0) NOT NULL,
    aporte_FSP_sol  decimal(9,0) NOT NULL,
    aporte_FSP_sub  decimal(9,0) NOT NULL,
    aporte_EPS  decimal(9,0) NOT NULL,
    UPC_adicional decimal(9,0) NOT NULL,
    tarifa_ARP decimal(9,8) NOT NULL,
    aporte_ARP  decimal(9,0) NOT NULL,
    aporte_CCF	decimal(9,0) NOT NULL,
    aporte_SENA	decimal(9,0) NOT NULL,
    aporte_ICBF	decimal(9,0) NOT NULL,
    aporte_ESAP	decimal(9,0) NOT NULL,
    aporte_MEdu	decimal(9,0) NOT NULL,
    extranjero char(1) NOT NULL,
    residente_exterior char(1) NOT NULL,
    departamento char(2) NOT NULL,
    municipio char(3) NOT NULL,
    planilla_pens bit NOT NULL,
    CONSTRAINT PK_fco_Fantasmas PRIMARY KEY NONCLUSTERED (compania, trabajador)
)
if @vbi_existia = 1
begin
    if @vbi_vieja = 1
        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 
         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_AFP, salario, IBC_AFP, IBC_EPS, IBC_ARP, IBC_CCF, aporte_AFP, aporte_FSP, 
         aporte_FSP,     aporte_EPS, UPC_adicional, tarifa_ARP, aporte_ARP, aporte_CCF, aporte_SENA, aporte_ICBF, aporte_ESAP, aporte_MEdu,
         0, 0, '', '', 0
        from ##tf
    else
    begin
        set @vvc_sql = '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' +
        ' 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' +
        ' from ##tf'
        exec (@vvc_sql)
    end
    drop table ##tf
end
GO
GRANT ALL ON fco_Fantasmas TO PUBLIC
GO
IF OBJECT_ID('dbo.fco_fantasmas_aux') IS NOT NULL
    DROP TABLE dbo.fco_fantasmas_aux
GO
CREATE TABLE dbo.fco_fantasmas_aux
(
    random smallint NOT NULL,
    AFP_Aporte decimal(9) NOT NULL,
    FSP_Aporte_sol decimal(9) NOT NULL,
    FSP_Aporte_sub decimal(9) NOT NULL,
    EPS_Aporte decimal(9) NOT NULL,
    ARP_Aporte decimal(9) NOT NULL,
    CCF_Aporte decimal(9) NOT NULL,
    SENA_Aporte decimal(9) NOT NULL,
    ICBF_Aporte decimal(9) NOT NULL,
    CONSTRAINT pk_fco_fantasmas_aux PRIMARY KEY (random)
)
GO
GRANT ALL ON dbo.fco_fantasmas_aux TO PUBLIC
GO


IF OBJECT_ID('dbo.vw_fco_fantasmas') IS NOT NULL
    DROP VIEW dbo.vw_fco_fantasmas
GO
CREATE VIEW dbo.vw_fco_fantasmas
AS
SELECT 
    compania, trabajador, 
    nombre = primer_apellido + ' ' + segundo_apellido + ' ' + primer_nombre + ' ' + segundo_nombre
FROM fco_fantasmas
GO
GRANT SELECT ON vw_fco_Fantasmas TO PUBLIC
GO


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
IF OBJECT_ID('dbo.sp_fco_baja_fantasmas') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_baja_fantasmas
GO
CREATE PROCEDURE dbo.sp_fco_baja_fantasmas
(
    @pch_compania char(4), 
    @pch_trabajador char(10)
)
AS
BEGIN
    IF NOT EXISTS (SELECT 1 FROM fco_fantasmas
               WHERE compania = @pch_compania
                 AND RTRIM(LTRIM(trabajador)) = RTRIM(LTRIM(@pch_trabajador)))
    BEGIN
        RAISERROR ('El registro a eliminar en [fco_fantasmas] no existe', 16, 1)
        RETURN
    END

    DELETE fco_fantasmas
    WHERE compania = @pch_compania
     AND RTRIM(LTRIM(trabajador)) = RTRIM(LTRIM(@pch_trabajador))
END
GO
GRANT EXECUTE ON dbo.sp_fco_baja_fantasmas TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_calcula_aportes') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_calcula_aportes
GO
CREATE PROCEDURE dbo.sp_fco_calcula_aportes  
(  
    @psi_random smallint,  
    @pch_compania char(4),  
    @pdc_AFP_IBC decimal(9),  
    @pti_AFP_dias tinyint,  
    @pdc_EPS_IBC decimal(9),  
    @pti_EPS_dias tinyint,  
    @pdc_ARP_IBC decimal(9),  
    @pti_ARP_dias tinyint,  
    @pdc_ARP_tarifa decimal(9,8),  
    @pdc_CCF_IBC decimal(9),
    @pti_CCF_dias tinyint
  
)  
/*************************************************************************/  
-- Modulo Fiscal Colombiano 2.0 ADAM V3  
-- Descripcion: Calcula los aportes en la sesión Aportantes por Fuera de Nómina  
--              (fantasmas) según los parámetros indicados por el usuario  
--              y teniendo en cuenta los porcentajes definidos en ADAM  
-- Autor: Juan Carlos Leguizamon  
-- Fecha: Junio 2005  
-- Revisiones:  Julio 24/2006 Calculo del FSP por subcuenta, inclusion dias CCF
/*************************************************************************/  
AS  
BEGIN  
    DECLARE  
        @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_FSP char(2),      -- Variable Aporte FSP  
        @vch_var_FSP_Tope char(2), -- Variable Aporte FSP  
        @vch_var_CCF char(2),      -- Variable Aporte CCF  
        @vch_var_SENA char(2),     -- Variable Aporte SENA  
        @vch_var_ICBF char(2),     -- Variable Aporte ICBF  
        @vdc_tar_EPS decimal(6,5), -- Tarifa Salud  
        @vdc_tar_AFP decimal(6,5), -- Tarifa Pensión  
        @vdc_tar_FSP decimal(6,5), -- Tarifa Fondo de Solidaridad Pensional  
        @vdc_tar_FSP_Tope decimal(6,5), -- Tope Salarios para FSP  
        @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_sal_min decimal(19,6) -- Salario Mínimo  
  
    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_var_FSP = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 39  
    SELECT @vch_var_FSP_Tope = dato FROM vw_fdt_parametros WHERE pais = 'COL' AND compania = @pch_compania AND parametro = 'autoliq' AND secuencia = 38  
    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 @vdc_sal_min = real FROM parametros_rh WHERE compania = @pch_compania AND parametro_rh = 'Sal_Minimo' AND secuencia_parametro = 1     
  
    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.15)  
    SET @vdc_tar_FSP = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_FSP, 0), 0.01)  
  
    SET @vdc_tar_FSP_Tope = ISNULL(dbo.fn_fco_var_nom(@pch_compania, @vch_var_FSP_Tope, 1), 4)  
    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)  
  
    DELETE fco_fantasmas_aux WHERE random = @psi_random  
    INSERT INTO fco_fantasmas_aux   
    (random, AFP_Aporte, FSP_Aporte_sol, FSP_Aporte_sub, EPS_Aporte, ARP_Aporte, CCF_Aporte, SENA_Aporte, ICBF_Aporte)  
    SELECT  
    @psi_random,  
    Round((@pdc_AFP_IBC * @vdc_tar_AFP * (@pti_AFP_dias/30.00000) - 1)/100,0) * 100,  
    CASE WHEN @pdc_AFP_IBC >= (@vdc_sal_min * @vdc_tar_FSP_Tope) THEN 
        Round((@pdc_AFP_IBC * 0.5 * (@pti_AFP_dias/30.00000) - 1)/100,0) * 100 ELSE 0 END,  
    CASE WHEN @pdc_AFP_IBC >= (@vdc_sal_min * @vdc_tar_FSP_Tope) THEN 
        Round((@pdc_AFP_IBC * 0.5 * (@pti_AFP_dias/30.00000) - 1)/100,0) * 100 ELSE 0 END,  
    Round((@pdc_EPS_IBC * @vdc_tar_EPS * (@pti_EPS_dias/30.00000) - 1)/100,0) * 100,  
    Round((@pdc_ARP_IBC * @pdc_ARP_tarifa * (@pti_ARP_dias/30.00000) - 1)/100,0) * 100,  
    Round((@pdc_CCF_IBC * @vdc_tar_CCF * (@pti_CCF_dias/30.00000) - 1)/100,0) * 100,  
    Round((@pdc_CCF_IBC * @vdc_tar_SENA * (@pti_CCF_dias/30.00000) - 1)/100,0) * 100,  
    Round((@pdc_CCF_IBC * @vdc_tar_ICBF * (@pti_CCF_dias/30.00000) - 1)/100,0) * 100  
END  
GO
GRANT EXECUTE ON dbo.sp_fco_calcula_aportes TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_cambio_fantasmas') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_cambio_fantasmas
GO
CREATE PROCEDURE dbo.sp_fco_cambio_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 NOT EXISTS (SELECT 1 FROM fco_fantasmas
               WHERE compania = @pch_compania
                 AND RTRIM(LTRIM(trabajador)) = RTRIM(LTRIM(@pch_trabajador)))
    BEGIN
        RAISERROR ('El registro a modificar en [fco_fantasmas] no existe', 16, 1)
        RETURN
    END

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