set nocount on
go
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_cab') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_cab ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
Go
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_cab') and name = 'nro_planilla')
    ALTER TABLE fco_integrada_cab ADD nro_planilla char(10) NULL
Go
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_cab') and name = 'fecha_pago_real')
    ALTER TABLE fco_integrada_cab ADD fecha_pago_real smalldatetime NULL
GO
ALTER TABLE fco_integrada_cab DROP CONSTRAINT pk_fco_integrada_cab
GO
ALTER TABLE fco_integrada_cab ADD CONSTRAINT pk_fco_integrada_cab PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla)

GO
If Object_Id('dbo.sp_fco_upd_integrada_cab') Is Not Null
    Drop Procedure dbo.sp_fco_upd_integrada_cab
Go
Create Procedure dbo.sp_fco_upd_integrada_cab
(
    @pch_compania char(4),
    @psi_anio smallint,
    @pti_mes tinyint,
    @pvc_sucursal varchar(10),
    @pch_tipo_planilla char(1),
    @pch_nro_planilla char(10),
    @pdt_fecha_pago smalldatetime
)
As
Begin
    Update fco_integrada_cab
    Set nro_planilla = @pch_nro_planilla,
        fecha_pago_real = @pdt_fecha_pago
    Where compania = @pch_compania
      And anio = @psi_anio
      And mes = @pti_mes
      And sucursal = IsNull(@pvc_sucursal, '')
      And tipo_planilla = @pch_tipo_planilla
End
Go
Grant Execute On dbo.sp_fco_upd_integrada_cab To Public
Go
-- ************************************************************************************************ --
-- Operación FCO2098 Asignación de Números de Planilla
-- ************************************************************************************************ --
DELETE rel_oper_menus WHERE ejecuta_operacion = 'FCO2098';
DELETE rel_oper_modulos WHERE operacion = 'FCO2098';
DELETE operaciones WHERE operacion = 'FCO2098';
DELETE aut_operaciones WHERE operacion = 'FCO2098';

INSERT INTO operaciones (operacion, descripcion_ope, icono, tipo_operacion)  
VALUES ('FCO2098', 'Asignación de Números de Planilla', 2, 1);

INSERT INTO rel_oper_menus (modulo, menu, secuencia, tipo_llamada, ejecuta_menu, ejecuta_operacion) 
SELECT 'F1', 20, IsNull(max(secuencia),0) + 1, 2, null, 'FCO2098' from rel_oper_menus WHERE modulo='F1' and menu = 20;

INSERT INTO rel_oper_modulos (operacion, modulo)  VALUES ('FCO2098','F1');

INSERT INTO aut_operaciones (usuario, operacion, nivel_seguridad) VALUES ('ADAM','FCO2098',4);
INSERT INTO aut_operaciones (usuario, operacion, nivel_seguridad)
SELECT usuario, 'FCO2098', nivel_seguridad FROM aut_operaciones  WHERE usuario <> 'ADAM' AND operacion = 'FCO2095'

go
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_procesos_pi') and name = 'tipo_planilla')
    ALTER TABLE fco_procesos_pi ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_procesos_pi DROP CONSTRAINT pk_fco_procesos_pi 
GO
ALTER TABLE fco_procesos_pi ADD CONSTRAINT pk_fco_procesos_pi PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla)
GO

IF OBJECT_ID('dbo.sp_fco_ins_procesos_pi') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_ins_procesos_pi 
GO
CREATE PROCEDURE dbo.sp_fco_ins_procesos_pi
(
    @pch_compania char(4),
    @psi_anio smallint,
    @pti_mes tinyint,
    @pch_sucursal char(10), /* '0'. Todas, ''. Consolidado */
    @pch_tipo_planilla char(1) = 'E' /* E Activos, Y Independientes */
)
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Alta de Procesos de Planilla Integrada
-- Autor: Juan Carlos Leguizamon
-- Fecha: Julio 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
BEGIN
    IF @pch_sucursal = '0'
    BEGIN
        INSERT INTO fco_procesos_pi (compania, anio, mes, sucursal, procesar, tipo_planilla)
        SELECT @pch_compania, @psi_anio, @pti_mes, s.sucursal, 0, @pch_tipo_planilla
        FROM vw_fco_sucursales s
        WHERE compania = @pch_compania
          AND ISNULL(s.autoliquida, 1) = 1
          AND NOT EXISTS
            (SELECT 1 FROM fco_procesos_pi x 
             WHERE x.compania = @pch_compania AND x.anio = @psi_anio AND x.mes = @pti_mes 
               AND x.sucursal = s.sucursal)
    END
    ELSE
    BEGIN
        IF NOT EXISTS(SELECT 1 FROM fco_procesos_pi 
                  WHERE compania = @pch_compania AND anio = @psi_anio 
                    AND mes = @pti_mes AND sucursal = @pch_sucursal and tipo_planilla = @pch_tipo_planilla)
            INSERT INTO fco_procesos_pi (compania, anio, mes, sucursal, procesar, tipo_planilla)
            SELECT @pch_compania, @psi_anio, @pti_mes, @pch_sucursal, 0, @pch_tipo_planilla
    END
END
GO
GRANT EXECUTE ON dbo.sp_fco_ins_procesos_pi TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_procesos_pi') IS NOT NULL
    DROP VIEW dbo.vw_fco_procesos_pi
GO
CREATE VIEW dbo.vw_fco_procesos_pi  
AS  
SELECT a.compania, a.anio, a.mes, a.sucursal,   
CASE WHEN a.sucursal = '' THEN '(Consolidado)' ELSE ISNULL(rtrim(a.sucursal) + '-' + rtrim(suc.descripcion), '(Consolidado)') END suc_des,   
CONVERT(tinyint,procesar) procesar, sit_periodo =   
ISNULL((SELECT MAX(sit_periodo) FROM fco_integrada_cab x  
        WHERE x.compania = a.compania AND x.anio = a.anio AND x.mes = a.mes), 1),
a.tipo_planilla
FROM fco_procesos_pi a  
LEFT JOIN vw_fco_sucursales suc ON suc.compania = a.compania AND suc.sucursal = a.sucursal  
AND  
(   (a.sucursal = '')   
 OR (a.sucursal IN   
     (SELECT sucursal FROM vw_fco_sucursales_cia   
      WHERE (   (clase_nomina = '--')  
             OR (clase_nomina IN (SELECT clase_nomina FROM rel_usu_clase_nom  
                                  WHERE usuario = SYSTEM_USER))  
            )   
      )  
     )  
)  
GO
GRANT SELECT ON dbo.vw_fco_procesos_pi TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_del_procesos_pi') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_del_procesos_pi 
GO
CREATE PROCEDURE dbo.sp_fco_del_procesos_pi
(
    @pch_compania char(4),
    @psi_anio smallint,
    @pti_mes tinyint,
    @pch_sucursal char(10),
    @pch_tipo_planilla char(1) = 'E'
)
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Baja de Procesos de Planilla Integrada
-- Autor: Juan Carlos Leguizamon
-- Fecha: Junio 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo tipo de planilla
/*************************************************************************/
BEGIN
    DELETE fco_procesos_pi
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pch_sucursal, '')
      AND tipo_planilla = @pch_tipo_planilla
END
GO
GRANT EXECUTE ON dbo.sp_fco_del_procesos_pi TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_upd_procesos_pi') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_procesos_pi 
GO
CREATE PROCEDURE dbo.sp_fco_upd_procesos_pi
(
    @pch_compania char(4),
    @psi_anio smallint,
    @pti_mes tinyint,
    @pch_sucursal char(10),
    @pbi_procesar bit,
    @pch_tipo_planilla char(1) = 'E'
)
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Cambio de Procesos de Planilla Integrada
-- Autor: Juan Carlos Leguizamon
-- Fecha: Junio 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
BEGIN
    UPDATE fco_procesos_pi
    SET procesar = @pbi_procesar
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = @pch_sucursal
      AND tipo_planilla = @pch_tipo_planilla
END
GO
GRANT EXECUTE ON dbo.sp_fco_upd_procesos_pi TO PUBLIC
GO
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_det') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_det ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_det') and name = 'consecutivo')
    ALTER TABLE fco_integrada_det ADD consecutivo tinyint NOT NULL DEFAULT 1 -- Consecutivo por trabajador
GO
ALTER TABLE fco_integrada_det DROP CONSTRAINT pk_fco_integrada_det
GO
ALTER TABLE fco_integrada_det ADD CONSTRAINT pk_fco_integrada_det PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla, trabajador, consecutivo)
GO
IF OBJECT_ID('dbo.vw_fco_integrada_rt02') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt02
GO
CREATE VIEW dbo.vw_fco_integrada_rt02
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 2
-- Autor: Juan Carlos Leguizamon
-- Fecha: Junio 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, trabajador, secuencia, tipo_planilla,
    registro2 =
    '02' + secuencia + tipo_documento + CONVERT(char(16), nro_id) + 
    RIGHT('00' + RTRIM(tipo_cotizante), 2) + 
    RIGHT('00' + RTRIM(subtipo_cotizante), 2) + 
    extranjero_no_pension + residente_en_exterior + departamento + municipio +
    dbo.fn_fco_valida_nombre(CONVERT(char(20), LTRIM(REPLACE(primer_apellido, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    dbo.fn_fco_valida_nombre(CONVERT(char(30), LTRIM(REPLACE(segundo_apellido, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    dbo.fn_fco_valida_nombre(CONVERT(char(20), LTRIM(REPLACE(primer_nombre, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    dbo.fn_fco_valida_nombre(CONVERT(char(30), LTRIM(REPLACE(segundo_nombre, '  ', ' ')))) + -- JCL Ajuste Junio 21/06
    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 + 
    RIGHT('00' + ltrim(rtrim(nov_IRP)), 2) +
    dbo.fn_fco_cod_super('AFP', cod_AFP) + 
    dbo.fn_fco_cod_super('AFP', cod_AFP_Tras) + -- JCL Ajuste Oct-09-06
    dbo.fn_fco_cod_super('EPS', cod_EPS) + 
    dbo.fn_fco_cod_super('EPS', cod_EPS_Tras) + -- JCL Ajuste Oct-09-06
    dbo.fn_fco_cod_super('CCF', cod_CCF) + 
    RIGHT('00' + RTRIM(dias_AFP), 2) + 
    RIGHT('00' + RTRIM(dias_EPS), 2) + 
    RIGHT('00' + RTRIM(dias_ARP), 2) + 
    RIGHT('00' + RTRIM(dias_CCF), 2) + 
    RIGHT('000000000' + RTRIM(salario), 9) + integral + 
    RIGHT('000000000' + RTRIM(IBC_AFP), 9) +
    RIGHT('000000000' + RTRIM(IBC_EPS), 9) +
    RIGHT('000000000' + RTRIM(IBC_ARP), 9) +
    RIGHT('000000000' + RTRIM(IBC_CCF), 9) +
    LEFT(RTRIM(tarifa_AFP) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_AFP), 9) + 
    RIGHT('000000000' + RTRIM(voluntario_AFP), 9) + 
    RIGHT('000000000' + RTRIM(voluntario_AFP_cia), 9) + 
    RIGHT('000000000' + RTRIM(aporte_total_AFP), 9) + 
    RIGHT('000000000' + RTRIM(aporte_FSP), 9) + 
    RIGHT('000000000' + RTRIM(aporte_FSP_subsistencia), 9) + 
    RIGHT('000000000' + RTRIM(valor_no_retenido), 9) + 
    LEFT(RTRIM(tarifa_EPS) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_EPS), 9) + 
    RIGHT('000000000' + RTRIM(UPC_adicional), 9) + 
    CONVERT(char(15), nro_aut_IGE) + 
    RIGHT('000000000' + RTRIM(vlr_aut_IGE), 9) + 
    CONVERT(char(15), nro_aut_LMA) +
    RIGHT('000000000' + RTRIM(vlr_aut_LMA), 9) + 
    LEFT(RTRIM(tarifa_ARP) + '000000000', 9) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(centro_trabajo), 9) +  + 
    RIGHT('000000000' + RTRIM(aporte_ARP), 9) + 
    LEFT(RTRIM(tarifa_CCF) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_CCF), 9) + 
    LEFT(RTRIM(tarifa_SENA) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_SENA), 9) + 
    LEFT(RTRIM(tarifa_ICBF) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_ICBF), 9) + 
    LEFT(RTRIM(tarifa_ESAP) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_ESAP), 9) + 
    LEFT(RTRIM(tarifa_MEdu) + '0000000', 7) + -- JCL Ajuste Junio 21/06
    RIGHT('000000000' + RTRIM(aporte_MEdu), 9)
FROM fco_integrada_det
WHERE eliminada = 0
AND aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP <> 0
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt02 TO PUBLIC
GO

IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_rt03') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_rt03 ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_integrada_rt03 DROP CONSTRAINT pk_fco_integrada_rt03
GO
ALTER TABLE fco_integrada_rt03 ADD CONSTRAINT pk_fco_integrada_rt03 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla, cod_AFP)
GO
IF OBJECT_ID('dbo.vw_fco_integrada_rt03') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt03
GO
CREATE VIEW dbo.vw_fco_integrada_rt03
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 3
-- Autor: Juan Carlos Leguizamon
-- Fecha: Diciembre 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, tipo_planilla,
    registro =
    '03' + RIGHT('00000' + RTRIM(secuencia), 5) + dbo.fn_fco_cod_super('AFP', cod_AFP) +
    RIGHT('0000000000000000' + nit, 16) + dv + 
    RIGHT('0000000000' + RTRIM(suma_aportes), 10) +
    RIGHT('0000000000' + RTRIM(suma_voluntarios), 10) +
    RIGHT('0000000000' + RTRIM(suma_voluntarios_cia), 10) +
    RIGHT('0000000000' + RTRIM(suma_FSP_sol), 10) +
    RIGHT('0000000000' + RTRIM(suma_FSP_sub), 10) +
    RIGHT('0000' + RTRIM(dias_mora), 4) +
    RIGHT('0000000000' + RTRIM(int_mora_aportes), 10) +
    RIGHT('0000000000' + RTRIM(int_mora_FSP_sol), 10) +
    RIGHT('0000000000' + RTRIM(int_mora_FSP_sub), 10) +
    RIGHT('0000000000' + RTRIM(total_pagar), 10) +
    RIGHT('000000' + RTRIM(total_afiliados), 6)
FROM fco_integrada_rt03
WHERE 1  =  0 -- Este registro no debe ser enviado
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt03 TO PUBLIC
GO


IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_rt04') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_rt04 ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_integrada_rt04 DROP CONSTRAINT pk_fco_integrada_rt04
GO
ALTER TABLE fco_integrada_rt04 ADD CONSTRAINT pk_fco_integrada_rt04 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla, cod_EPS)
GO

IF OBJECT_ID('dbo.vw_fco_integrada_rt04') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt04
GO
CREATE VIEW dbo.vw_fco_integrada_rt04
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 4
-- Autor: Juan Carlos Leguizamon
-- Fecha: Diciembre 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, tipo_planilla, 
    registro =
    '04' + RIGHT('00000' + RTRIM(secuencia), 5) + dbo.fn_fco_cod_super('EPS', cod_EPS) +
    RIGHT('0000000000000000' + nit, 16) + dv + 
    RIGHT('0000000000' + RTRIM(suma_aportes), 10) +
    RIGHT('0000000000' + RTRIM(suma_UPC), 10) +
    CONVERT(char(15), nro_aut_IGE) +
    RIGHT('0000000000' + RTRIM(suma_aut_IGE), 10) +
    CONVERT(char(15), nro_aut_LMA) +
    RIGHT('0000000000' + RTRIM(suma_aut_LMA), 10) +
    RIGHT('0000000000' + RTRIM(neto_aportes), 10) +
    RIGHT('0000' + RTRIM(dias_mora), 4) +
    RIGHT('0000000000' + RTRIM(int_mora_aportes), 10) + 
    RIGHT('0000000000' + RTRIM(int_mora_UPC), 10) + 
    RIGHT('0000000000' + RTRIM(subtotal_aportes), 10) + 
    RIGHT('0000000000' + RTRIM(subtotal_UPC), 10) + 
    RIGHT('0000000000' + RTRIM(nro_radicacion), 10) + 
    RIGHT('0000000000' + RTRIM(saldo_favor_aportes), 10) + 
    RIGHT('0000000000' + RTRIM(saldo_favor_UPC), 10) + 
    RIGHT('0000000000' + RTRIM(total_aportes), 10) + 
    RIGHT('0000000000' + RTRIM(total_UPC), 10) + 
    RIGHT('0000000000' + RTRIM(total_pagar), 10) +
    RIGHT('0000000000' + RTRIM(FOSYGA), 10) + 
    RIGHT('000000' + RTRIM(total_afiliados), 6)
FROM fco_integrada_rt04
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt04 TO PUBLIC
GO


IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_rt05') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_rt05 ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_integrada_rt05 DROP CONSTRAINT pk_fco_integrada_rt05
GO
ALTER TABLE fco_integrada_rt05 ADD CONSTRAINT pk_fco_integrada_rt05 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla, cod_ARP)
GO

IF OBJECT_ID('dbo.vw_fco_integrada_rt05') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt05
GO
CREATE VIEW dbo.vw_fco_integrada_rt05
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 5
-- Autor: Juan Carlos Leguizamon
-- Fecha: Diciembre 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, tipo_planilla, 
    registro =
    '05' + RIGHT('00000' + RTRIM(secuencia), 5) + CONVERT(char(6), cod_ARP) +
    RIGHT('0000000000000000' + nit, 16) + dv + 
    RIGHT('0000000000' + RTRIM(suma_aportes), 10) +
    CONVERT(char(15), nro_aut) +
    RIGHT('0000000000' + RTRIM(incapacidades), 10) +
    RIGHT('0000000000' + RTRIM(otros_riesgos), 10) +
    RIGHT('0000000000' + RTRIM(neto_aportes), 10) +
    RIGHT('0000' + RTRIM(dias_mora), 4) +
    RIGHT('0000000000' + RTRIM(int_mora), 10) + 
    RIGHT('0000000000' + RTRIM(subtotal_aportes), 10) + 
    RIGHT('0000000000' + RTRIM(nro_radicacion), 10) + 
    RIGHT('0000000000' + RTRIM(saldo_favor), 10) + 
    RIGHT('0000000000' + RTRIM(total_pagar), 10) +
    RIGHT('0000000000' + RTRIM(FSRP), 10) + 
    RIGHT('000000' + RTRIM(total_afiliados), 6)
FROM fco_integrada_rt05
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt05 TO PUBLIC
GO

IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_rt06') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_rt06 ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_integrada_rt06 DROP CONSTRAINT pk_fco_integrada_rt06
GO
ALTER TABLE fco_integrada_rt06 ADD CONSTRAINT pk_fco_integrada_rt06 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla, cod_CCF)
GO
IF OBJECT_ID('dbo.vw_fco_integrada_rt06') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt06
GO
CREATE VIEW dbo.vw_fco_integrada_rt06
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 6
-- Autor: Juan Carlos Leguizamon
-- Fecha: Diciembre 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, tipo_planilla, 
    registro =
    '06' + RIGHT('00000' + RTRIM(secuencia), 5) + dbo.fn_fco_cod_super('CCF', cod_CCF) +
    RIGHT('0000000000000000' + nit, 16) + dv + 
    RIGHT('0000000000' + RTRIM(suma_aportes), 10) +
    RIGHT('0000' + RTRIM(dias_mora), 4) +
    RIGHT('0000000000' + RTRIM(int_mora), 10) + 
    RIGHT('0000000000' + RTRIM(total_pagar), 10) +
    RIGHT('000000' + RTRIM(total_afiliados), 6)
FROM fco_integrada_rt06
WHERE 1  =  0 -- Este registro no debe ser enviado
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt06 TO PUBLIC
GO


IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_rt07') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_rt07 ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_integrada_rt07 DROP CONSTRAINT pk_fco_integrada_rt07
GO
ALTER TABLE fco_integrada_rt07 ADD CONSTRAINT pk_fco_integrada_rt07 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla)
GO
IF OBJECT_ID('dbo.vw_fco_integrada_rt07') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt07
GO
CREATE VIEW dbo.vw_fco_integrada_rt07
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 7 - SENA
-- Autor: Juan Carlos Leguizamon
-- Fecha: Diciembre 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, tipo_planilla, 
    registro =
    '07' + RIGHT('00000' + RTRIM(secuencia), 5) +
    RIGHT('0000000000000000' + nit, 16) + dv + 
    RIGHT('0000000000' + RTRIM(valor), 10) +
    RIGHT('0000' + RTRIM(dias_mora), 4) +
    RIGHT('0000000000' + RTRIM(int_mora), 10) + 
    RIGHT('0000000000' + RTRIM(total_pagar), 10) +
    RIGHT('000000' + RTRIM(nro_personas), 6)
FROM fco_integrada_rt07
WHERE 1=0
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt07 TO PUBLIC
GO


IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_integrada_rt08') and name = 'tipo_planilla')
    ALTER TABLE fco_integrada_rt08 ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
GO
ALTER TABLE fco_integrada_rt08 DROP CONSTRAINT pk_fco_integrada_rt08
GO
ALTER TABLE fco_integrada_rt08 ADD CONSTRAINT pk_fco_integrada_rt08 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, tipo_planilla)
GO
IF OBJECT_ID('dbo.vw_fco_integrada_rt08') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt08
GO
CREATE VIEW dbo.vw_fco_integrada_rt08
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 8 - ICBF
-- Autor: Juan Carlos Leguizamon
-- Fecha: Diciembre 2005
-- Revisiones:
-- JCL 25-AGO-07 Inclusión del campo Tipo de Planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, tipo_planilla, 
    registro =
    '08' + RIGHT('00000' + RTRIM(secuencia), 5) +
    RIGHT('0000000000000000' + nit, 16) + dv + 
    RIGHT('0000000000' + RTRIM(valor), 10) +
    RIGHT('0000' + RTRIM(dias_mora), 4) +
    RIGHT('0000000000' + RTRIM(int_mora), 10) + 
    RIGHT('0000000000' + RTRIM(total_pagar), 10) +
    RIGHT('000000' + RTRIM(nro_personas), 6)
FROM fco_integrada_rt08
WHERE 1=0
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt08 TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_integrada_res_sal') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_res_sal
GO
CREATE VIEW dbo.vw_fco_integrada_res_sal
AS    
SELECT     
    a.compania, a.anio, a.mes, a.sucursal, a.tipo_planilla, 
    a.cod_EPS,   
    IBC_EPS = isnull(SUM(a.IBC_EPS), 0),
    aporte_EPS = isnull(SUM(a.aporte_EPS), 0),
    UPC_adicional = isnull(SUM(a.UPC_adicional), 0),
    nro_aut_IGE = 
    (SELECT ts.nro_aut_IGE FROM fco_integrada_rt04 ts WHERE ts.compania = a.compania AND ts.anio = a.anio AND ts.mes = a.mes AND ts.sucursal = a.sucursal AND ts.tipo_planilla = a.tipo_planilla AND ts.cod_EPS = a.cod_EPS), 
    vlr_aut_IGE = 
    isnull((SELECT ts.suma_aut_IGE FROM fco_integrada_rt04 ts WHERE ts.compania = a.compania AND ts.anio = a.anio AND ts.mes = a.mes AND ts.sucursal = a.sucursal AND ts.tipo_planilla = a.tipo_planilla AND ts.cod_EPS = a.cod_EPS), 0),
    nro_aut_LMA = 
    (SELECT ts.nro_aut_LMA FROM fco_integrada_rt04 ts WHERE ts.compania = a.compania AND ts.anio = a.anio AND ts.mes = a.mes AND ts.sucursal = a.sucursal AND ts.tipo_planilla = a.tipo_planilla AND ts.cod_EPS = a.cod_EPS),   
    vlr_aut_LMA = 
    isnull((SELECT ts.suma_aut_LMA FROM fco_integrada_rt04 ts WHERE ts.compania = a.compania AND ts.anio = a.anio AND ts.mes = a.mes AND ts.sucursal = a.sucursal AND ts.tipo_planilla = a.tipo_planilla AND ts.cod_EPS = a.cod_EPS), 0),
    
    (SELECT eps.descripcion FROM vw_fco_administradoras eps     
     WHERE eps.compania = a.compania AND eps.tipo = 'EPS'     
       AND eps.codigo = a.cod_EPS) AS eps_nombre,    
  
    MAX(suc.descripcion) AS suc_nombre,
    afiliados = COUNT(DISTINCT a.trabajador)
FROM fco_integrada_det a    
LEFT JOIN vw_fco_sucursales suc     
ON suc.compania = a.compania AND suc.sucursal = a.sucursal    
WHERE aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP <> 0    
GROUP BY a.compania, a.anio, a.mes, a.sucursal, a.tipo_planilla, a.cod_EPS
GO
GRANT SELECT ON dbo.vw_fco_integrada_res_sal TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_integrada_res_arp') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_res_arp
GO
CREATE VIEW dbo.vw_fco_integrada_res_arp
AS    
SELECT     
    a.compania, a.anio, a.mes, a.sucursal, a.tipo_planilla, 
    a.centro_trabajo,
    IBC_ARP = isnull(SUM(a.IBC_ARP), 0),
    aporte_ARP = isnull(SUM(a.aporte_ARP), 0),
    nro_aut = 
    (SELECT ta.nro_aut FROM fco_integrada_rt05 ta WHERE ta.compania = a.compania AND ta.anio = a.anio AND ta.mes = a.mes AND ta.sucursal = a.sucursal AND ta.tipo_planilla = a.tipo_planilla),   
    vlr_aut = 
    isnull((SELECT ta.incapacidades FROM fco_integrada_rt05 ta WHERE ta.compania = a.compania AND ta.anio = a.anio AND ta.mes = a.mes AND ta.sucursal = a.sucursal AND ta.tipo_planilla = a.tipo_planilla), 0),
    (SELECT ctr.descripcion FROM vw_fco_centros_trabajo ctr  
     WHERE ctr.compania = a.compania AND ctr.codigo_reporte = a.centro_trabajo) AS ctr_nombre,    
    MAX(suc.descripcion) AS suc_nombre,
    afiliados = COUNT(DISTINCT a.trabajador)
FROM fco_integrada_det a    
LEFT JOIN vw_fco_sucursales suc     
ON suc.compania = a.compania AND suc.sucursal = a.sucursal    
WHERE aporte_EPS + aporte_AFP + aporte_CCF + aporte_ARP <> 0    
GROUP BY a.compania, a.anio, a.mes, a.sucursal, a.tipo_planilla, a.centro_trabajo
GO
GRANT SELECT ON dbo.vw_fco_integrada_res_arp TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_tc_riesgos') IS NOT NULL
    DROP VIEW dbo.vw_fco_tc_riesgos
GO
CREATE VIEW dbo.vw_fco_tc_riesgos
AS
SELECT compania, anio, mes, sucursal, tipo_planilla, nro_aut, incapacidades, otros_riesgos, nro_radicacion, saldo_favor
FROM fco_integrada_rt05
GO
GRANT SELECT ON dbo.vw_fco_tc_riesgos TO PUBLIC
GO
IF OBJECT_ID('dbo.vw_fco_tc_salud') IS NOT NULL
    DROP VIEW dbo.vw_fco_tc_salud
GO
CREATE VIEW dbo.vw_fco_tc_salud
AS
SELECT x.compania, x.anio, x.mes, x.sucursal, x.tipo_planilla, 
x.cod_EPS, a.descripcion AS nombre_EPS, x.nro_aut_IGE, x.suma_aut_IGE, x.nro_aut_LMA, x.suma_aut_LMA, 
x.nro_radicacion, x.saldo_favor_aportes, x.saldo_favor_UPC
FROM fco_integrada_rt04 x
LEFT JOIN vw_fco_administradoras a ON x.compania = a.compania AND x.cod_EPS = a.codigo AND a.tipo = 'EPS'
GO
GRANT SELECT ON dbo.vw_fco_tc_salud TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_upd_tc_salud') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_tc_salud
GO
CREATE PROCEDURE dbo.sp_fco_upd_tc_salud
(  
    @pch_compania char(4),  
    @psi_anio smallint,  
    @pti_mes tinyint,  
    @pvc_sucursal varchar(10),  
    @pch_tipo_planilla char(1),
    @pch_cod_EPS char(10),  
    @pvc_nro_aut_IGE varchar(15),  
    @pdc_vlr_aut_IGE decimal(9),  
    @pvc_nro_aut_LMA varchar(15),  
    @pdc_vlr_aut_LMA decimal(9),  
    @pvc_nro_radicacion varchar(10),  
    @pdc_sf_aportes decimal(9),  
    @pdc_sf_UPC decimal(9)  
)  
AS  
BEGIN  
    UPDATE fco_integrada_rt04  
    SET nro_aut_IGE = IsNull(@pvc_nro_aut_IGE, ''),  
        suma_aut_IGE = IsNull(@pdc_vlr_aut_IGE, 0),  
        nro_aut_LMA = IsNull(@pvc_nro_aut_LMA, ''),  
        suma_aut_LMA = IsNull(@pdc_vlr_aut_LMA, 0),   
        nro_radicacion = IsNull(@pvc_nro_radicacion, ''),  
        saldo_favor_aportes = IsNull(@pdc_sf_aportes, 0),  
        saldo_favor_UPC = IsNull(@pdc_sf_UPC, 0),
        origen = 1
    WHERE compania = @pch_compania  
      AND anio = @psi_anio  
      AND mes = @pti_mes  
      AND sucursal = IsNull(@pvc_sucursal, '')  
      AND tipo_planilla = @pch_tipo_planilla
      AND cod_EPS =@pch_cod_EPS  
END  
GO
GRANT EXECUTE ON dbo.sp_fco_upd_tc_salud TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_upd_tc_riesgos') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_tc_riesgos
GO
CREATE PROCEDURE dbo.sp_fco_upd_tc_riesgos
(
    @pch_compania char(4),
    @psi_anio smallint,
    @pti_mes tinyint,
    @pvc_sucursal varchar(10),
    @pch_tipo_planilla char(1),
    @pvc_nro_aut varchar(15),
    @pdc_vlr_aut decimal(9),
    @pvc_vlr_otros decimal(9),
    @pvc_nro_radicacion varchar(10),
    @pdc_saldo_favor decimal(9)
)
AS
BEGIN
    UPDATE fco_integrada_rt05
    SET nro_aut = IsNull(@pvc_nro_aut, ''),
        incapacidades = IsNull(@pdc_vlr_aut, 0),
        otros_riesgos = IsNull(@pvc_vlr_otros, 0),
        nro_radicacion = IsNull(@pvc_nro_radicacion, ''),
        saldo_favor = IsNull(@pdc_saldo_favor, 0),
        origen = 1
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = IsNull(@pvc_sucursal, '')
      AND tipo_planilla = @pch_tipo_planilla
END
GO
GRANT EXECUTE ON dbo.sp_fco_upd_tc_riesgos TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_del_int_det') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_del_int_det
GO
CREATE PROCEDURE dbo.sp_fco_del_int_det
(
    @pch_compania   char(4),
    @psi_anio       smallint,
    @pti_mes        tinyint,
    @pvc_sucursal   varchar(10),
    @pch_tipo_planilla char(1),
    @pch_trabajador char(10)
)
AS
BEGIN
    DECLARE @vsi_sec smallint

    select @vsi_sec = convert(smallint, secuencia)
    from fco_integrada_det
    where compania = @pch_compania
    and anio = @psi_anio
    and mes = @pti_mes
    and (sucursal = @pvc_sucursal or @pvc_sucursal is null or @pvc_sucursal = '')
    and tipo_planilla = @pch_tipo_planilla
    and trabajador = @pch_trabajador

    delete fco_integrada_det
    where compania = @pch_compania
    and anio = @psi_anio
    and mes = @pti_mes
    and (sucursal = @pvc_sucursal or @pvc_sucursal is null or @pvc_sucursal = '')
    and tipo_planilla = @pch_tipo_planilla
    and trabajador = @pch_trabajador
    
    update fco_integrada_det
    set secuencia = right('00000' + rtrim(convert(smallint, secuencia) - 1), 5)
    where compania = @pch_compania
    and anio = @psi_anio
    and mes = @pti_mes
    and (sucursal = @pvc_sucursal or @pvc_sucursal is null or @pvc_sucursal = '')
    and tipo_planilla = @pch_tipo_planilla
    and convert(smallint, secuencia) > @vsi_sec
        
END
GO
GRANT EXECUTE ON dbo.sp_fco_del_int_det TO PUBLIC
GO
IF OBJECT_ID('dbo.sp_fco_upd_int_det_afp') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_int_det_afp
GO
CREATE PROCEDURE dbo.sp_fco_upd_int_det_afp
(
    @pch_compania  char(4),
    @psi_anio  smallint,
    @pti_mes  tinyint,
    @pvc_sucursal  varchar(10),
    @pch_tipo_planilla char(1),
    @pch_trabajador  char(10),
    @pch_secuencia  char(5),
    @pch_tipo_documento  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_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_VTE  char(1),
    @pch_nov_VST  char(1),
    @pch_nov_SLN  char(1),
    @pch_nov_IGE  char(1),
    @pch_nov_LMA  char(1),
    @pch_nov_VAC  char(1),
    @pch_nov_AVP  char(1),
    @pch_nov_VCT  char(1),
    @pch_nov_IRP  char(2),
    @pdc_salario  decimal(9, 0),
    @pch_cod_afp  char(10),
    @pch_cod_afp_Tras  char(10),
    @pti_dias_afp  tinyint,
    @pdc_IBC_afp  decimal(9, 0),
    @pdc_tarifa_afp  decimal(6, 5),
    @pdc_aporte_afp  decimal(9, 0),
    @pdc_voluntario_AFP decimal(9, 0),
    @pdc_voluntario_AFP_cia decimal(9, 0),
    @pdc_aporte_FSP_solidaridad decimal(9, 0), 
    @pdc_aporte_FSP_subsistencia decimal(9, 0), 
    @pdc_valor_no_retenido decimal(9, 0)
)
AS
BEGIN
    UPDATE fco_integrada_det
    SET 
        tipo_documento = ISNULL(@pch_tipo_documento, ''),
        nro_id = ISNULL(@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, ''),
        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_VTE = ISNULL(@pch_nov_VTE, ''),
        nov_VST = ISNULL(@pch_nov_VST, ''),
        nov_SLN = ISNULL(@pch_nov_SLN, ''),
        nov_IGE = ISNULL(@pch_nov_IGE, ''),
        nov_LMA = ISNULL(@pch_nov_LMA, ''),
        nov_VAC = ISNULL(@pch_nov_VAC, ''),
        nov_AVP =  ISNULL(@pch_nov_AVP, ''),
        nov_VCT = ISNULL(@pch_nov_VCT, ''),
        nov_IRP = ISNULL(@pch_nov_IRP, '00'),
        cod_afp = ISNULL(@pch_cod_afp, ''),
        cod_afp_Tras = ISNULL(@pch_cod_afp_Tras, ''),
        dias_afp = ISNULL(@pti_dias_afp, 0),
        salario = ISNULL(@pdc_salario, 0),
        IBC_afp = ISNULL(@pdc_IBC_afp, 0),
        tarifa_afp = ISNULL(@pdc_tarifa_afp, 0),
        aporte_afp = ISNULL(@pdc_aporte_afp, 0),
        voluntario_AFP = ISNULL(@pdc_voluntario_AFP, 0),
        voluntario_AFP_cia = ISNULL(@pdc_voluntario_AFP_cia, 0),
        aporte_FSP = ISNULL(@pdc_aporte_FSP_solidaridad, 0),
        aporte_FSP_subsistencia = ISNULL(@pdc_aporte_FSP_subsistencia, 0), 
        valor_no_retenido = ISNULL(@pdc_valor_no_retenido, 0)
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND tipo_planilla = @pch_tipo_planilla
      AND trabajador = @pch_trabajador

END
GO
GRANT EXECUTE ON sp_fco_upd_int_det_afp TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_upd_int_det_arp') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_int_det_arp
GO
CREATE PROCEDURE dbo.sp_fco_upd_int_det_arp
(
    @pch_compania  char(4),
    @psi_anio  smallint,
    @pti_mes  tinyint,
    @pvc_sucursal  varchar(10),
    @pch_tipo_planilla char(1),
    @pch_trabajador  char(10),
    @pch_secuencia  char(5),
    @pch_tipo_documento  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_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_VTE  char(1),
    @pch_nov_VST  char(1),
    @pch_nov_SLN  char(1),
    @pch_nov_IGE  char(1),
    @pch_nov_LMA  char(1),
    @pch_nov_VAC  char(1),
    @pch_nov_AVP  char(1),
    @pch_nov_VCT  char(1),
    @pch_nov_IRP  char(2),
    @pdc_salario  decimal(9, 0),
    @pti_dias_arp  tinyint,
    @pdc_IBC_arp  decimal(9, 0),
    @pdc_tarifa_arp  decimal(6, 5),
    @pdc_centro_trabajo decimal(9, 0),
    @pdc_aporte_arp  decimal(9, 0)
)
AS
BEGIN
    UPDATE fco_integrada_det
    SET 
        tipo_documento = ISNULL(@pch_tipo_documento, ''),
        nro_id = ISNULL(@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, ''),
        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_VTE = ISNULL(@pch_nov_VTE, ''),
        nov_VST = ISNULL(@pch_nov_VST, ''),
        nov_SLN = ISNULL(@pch_nov_SLN, ''),
        nov_IGE = ISNULL(@pch_nov_IGE, ''),
        nov_LMA = ISNULL(@pch_nov_LMA, ''),
        nov_VAC = ISNULL(@pch_nov_VAC, ''),
        nov_AVP =  ISNULL(@pch_nov_AVP, ''),
        nov_VCT = ISNULL(@pch_nov_VCT, ''),
        nov_IRP = ISNULL(@pch_nov_IRP, '00'),
        dias_arp = ISNULL(@pti_dias_arp, 0),
        salario = ISNULL(@pdc_salario, 0),
        IBC_arp = ISNULL(@pdc_IBC_arp, 0),
        tarifa_arp = ISNULL(@pdc_tarifa_arp, 0),
        centro_trabajo = ISNULL(@pdc_centro_trabajo, 0),
        aporte_arp = ISNULL(@pdc_aporte_arp, 0) 
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND tipo_planilla = @pch_tipo_planilla
      AND trabajador = @pch_trabajador

END
GO
GRANT EXECUTE ON sp_fco_upd_int_det_arp TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_upd_int_det_ccf') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_int_det_ccf
GO
CREATE PROCEDURE dbo.sp_fco_upd_int_det_ccf
(
    @pch_compania  char(4),
    @psi_anio  smallint,
    @pti_mes  tinyint,
    @pvc_sucursal  varchar(10),
    @pch_tipo_planilla char(1),
    @pch_trabajador  char(10),
    @pch_secuencia  char(5),
    @pch_tipo_documento  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_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_VTE  char(1),
    @pch_nov_VST  char(1),
    @pch_nov_SLN  char(1),
    @pch_nov_IGE  char(1),
    @pch_nov_LMA  char(1),
    @pch_nov_VAC  char(1),
    @pch_nov_AVP  char(1),
    @pch_nov_VCT  char(1),
    @pch_nov_IRP  char(2),
    @pdc_salario  decimal(9, 0),
    @pch_cod_CCF  char(10), 
    @pti_dias_CCF tinyint,
    @pdc_IBC_CCF decimal(9 ,0), 
    @pdc_tarifa_CCF decimal(6, 5), 
    @pdc_aporte_CCF decimal(9 ,0),
    @pdc_tarifa_SENA decimal(6, 5), 
    @pdc_aporte_SENA decimal(9 ,0), 
    @pdc_tarifa_ICBF decimal(6, 5), 
    @pdc_aporte_ICBF decimal(9 ,0),
    @pdc_tarifa_ESAP decimal(6, 5), 
    @pdc_aporte_ESAP decimal(9 ,0),
    @pdc_tarifa_MEdu decimal(6, 5), 
    @pdc_aporte_MEdu decimal(9 ,0)
)
AS
BEGIN
    UPDATE fco_integrada_det
    SET 
        tipo_documento = ISNULL(@pch_tipo_documento, ''),
        nro_id = ISNULL(@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, ''),
        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_VTE = ISNULL(@pch_nov_VTE, ''),
        nov_VST = ISNULL(@pch_nov_VST, ''),
        nov_SLN = ISNULL(@pch_nov_SLN, ''),
        nov_IGE = ISNULL(@pch_nov_IGE, ''),
        nov_LMA = ISNULL(@pch_nov_LMA, ''),
        nov_VAC = ISNULL(@pch_nov_VAC, ''),
        nov_AVP =  ISNULL(@pch_nov_AVP, ''),
        nov_VCT = ISNULL(@pch_nov_VCT, ''),
        nov_IRP = ISNULL(@pch_nov_IRP, '00'),
        salario = ISNULL(@pdc_salario, 0),
        dias_CCF = ISNULL(@pti_dias_CCF, 0), 
        IBC_CCF = ISNULL(@pdc_IBC_CCF, 0),
        tarifa_CCF = ISNULL(@pdc_tarifa_CCF, 0),
        aporte_CCF = ISNULL(@pdc_aporte_CCF, 0),
        tarifa_SENA = ISNULL(@pdc_tarifa_SENA, 0),
        aporte_SENA = ISNULL(@pdc_aporte_SENA, 0),
        tarifa_ICBF = ISNULL(@pdc_tarifa_ICBF, 0),
        aporte_ICBF = ISNULL(@pdc_aporte_ICBF, 0),
        tarifa_ESAP = ISNULL(@pdc_tarifa_ESAP, 0),
        aporte_ESAP = ISNULL(@pdc_aporte_ESAP, 0),
        tarifa_MEdu = ISNULL(@pdc_tarifa_MEdu, 0),
        aporte_MEdu = ISNULL(@pdc_aporte_MEdu, 0),
        cod_CCF = ISNULL(@pch_cod_CCF, '')
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND tipo_planilla = @pch_tipo_planilla
      AND trabajador = @pch_trabajador

END
GO
GRANT EXECUTE ON sp_fco_upd_int_det_ccf TO PUBLIC
GO

IF OBJECT_ID('dbo.sp_fco_upd_int_det_eps') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_upd_int_det_eps
GO
CREATE PROCEDURE dbo.sp_fco_upd_int_det_eps
(
    @pch_compania  char(4),
    @psi_anio  smallint,
    @pti_mes  tinyint,
    @pvc_sucursal  varchar(10),
    @pch_tipo_planilla char(1),
    @pch_trabajador  char(10),
    @pch_secuencia  char(5),
    @pch_tipo_documento  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_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_VTE  char(1),
    @pch_nov_VST  char(1),
    @pch_nov_SLN  char(1),
    @pch_nov_IGE  char(1),
    @pch_nov_LMA  char(1),
    @pch_nov_VAC  char(1),
    @pch_nov_AVP  char(1),
    @pch_nov_VCT  char(1),
    @pch_nov_IRP  char(2),
    @pdc_salario  decimal(9, 0),
    @pch_cod_EPS  char(10),
    @pch_cod_EPS_Tras  char(10),
    @pti_dias_EPS  tinyint,
    @pdc_IBC_EPS  decimal(9, 0),
    @pdc_tarifa_EPS  decimal(6, 5),
    @pdc_aporte_EPS  decimal(9, 0),
    @pdc_UPC_adicional  decimal(9, 0),
    @pvc_nro_aut_IGE  varchar(15),
    @pdc_vlr_aut_IGE  decimal(9, 0),
    @pvc_nro_aut_LMA  varchar(15),
    @pdc_vlr_aut_LMA  decimal(9, 0)
)
AS
BEGIN
    UPDATE fco_integrada_det
    SET 
        tipo_documento = ISNULL(@pch_tipo_documento, ''),
        nro_id = ISNULL(@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, ''),
        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_VTE = ISNULL(@pch_nov_VTE, ''),
        nov_VST = ISNULL(@pch_nov_VST, ''),
        nov_SLN = ISNULL(@pch_nov_SLN, ''),
        nov_IGE = ISNULL(@pch_nov_IGE, ''),
        nov_LMA = ISNULL(@pch_nov_LMA, ''),
        nov_VAC = ISNULL(@pch_nov_VAC, ''),
        nov_AVP =  ISNULL(@pch_nov_AVP, ''),
        nov_VCT = ISNULL(@pch_nov_VCT, ''),
        nov_IRP = ISNULL(@pch_nov_IRP, '00'),
        cod_EPS = ISNULL(@pch_cod_EPS, ''),
        cod_EPS_Tras = ISNULL(@pch_cod_EPS_Tras, ''),
        dias_EPS = ISNULL(@pti_dias_EPS, 0),
        salario = ISNULL(@pdc_salario, 0),
        IBC_EPS = ISNULL(@pdc_IBC_EPS, 0),
        tarifa_EPS = ISNULL(@pdc_tarifa_EPS, 0),
        aporte_EPS = ISNULL(@pdc_aporte_EPS, 0),
        UPC_adicional = ISNULL(@pdc_UPC_adicional, 0),
        nro_aut_IGE = ISNULL(@pvc_nro_aut_IGE, ''),
        vlr_aut_IGE = ISNULL(@pdc_vlr_aut_IGE, 0),
        nro_aut_LMA = ISNULL(@pvc_nro_aut_LMA, ''),
        vlr_aut_LMA = ISNULL(@pdc_vlr_aut_LMA, 0)
    WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND sucursal = ISNULL(@pvc_sucursal, '')
      AND tipo_planilla = @pch_tipo_planilla
      AND trabajador = @pch_trabajador


    -- JCL NOV-17-06
    -- Si se modifican números o valores de autorización entonces la próxima vez recalcular totales tipo 4
    IF ISNULL(@pvc_nro_aut_IGE, '') <> '' OR ISNULL(@pdc_vlr_aut_IGE, 0) > 0 OR ISNULL(@pvc_nro_aut_LMA, '') <> '' OR ISNULL(@pdc_vlr_aut_LMA, 0) > 0
        UPDATE fco_integrada_rt04
        SET origen = 0
        WHERE compania = @pch_compania
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND (sucursal = ISNULL(@pvc_sucursal, '') OR @pvc_sucursal = '')
      AND tipo_planilla = @pch_tipo_planilla
END
GO
GRANT EXECUTE ON sp_fco_upd_int_det_eps TO PUBLIC
GO

IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_fantasmas') and name = 'tipo_planilla')
    ALTER TABLE fco_fantasmas ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
go
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_autorizaciones') and name = 'tipo_planilla')
    ALTER TABLE fco_autorizaciones ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
go
IF NOT EXISTS (SELECT 1 FROM syscolumns WHERE id = (select id from sysobjects where name = 'fco_autorizaciones_ext') and name = 'tipo_planilla')
    ALTER TABLE fco_autorizaciones_ext ADD tipo_planilla char(1) NOT NULL DEFAULT 'E'
go
ALTER TABLE fco_autorizaciones_ext DROP CONSTRAINT pk_fco_autorizaciones_ext 
go
ALTER TABLE fco_autorizaciones_ext 
ADD CONSTRAINT pk_fco_autorizaciones_ext PRIMARY KEY (compania, sucursal, tipo_planilla, cod_EPS, anio, mes, tipo, trabajador, numero)
GO
IF OBJECT_ID('dbo.sp_fco_pi_autorizaciones') IS NOT NULL
    DROP PROCEDURE dbo.sp_fco_pi_autorizaciones
GO
CREATE PROCEDURE dbo.sp_fco_pi_autorizaciones
(
    @pch_compania char(4),    
    @psi_anio smallint,    
    @pti_mes tinyint,    
    @pch_sucursal char(10),
    @pch_tipo_planilla char(1) = 'E' -- JCL 27-AGO-07
)
AS
BEGIN
    /***********************************************************************/
    /* Autorizaciones por Enfermedad General (Nro. y Valor por Trabajador) */    
    /***********************************************************************/
    -- Autorizaciones donde el trabajador continua activo y en la misma EPS (se pueden mostrar a nivel de trabajadores en la planilla)
    -- Además la autorización se reportó detallada
    UPDATE fco_integrada_det
    SET nro_aut_IGE = x.numero, vlr_aut_IGE = x.valor
    FROM
    (SELECT a.compania, a.sucursal, a.tipo_planilla, a.cod_entidad, b.trabajador, 
     Convert(smallint, Left(a.periodo, 4)) anio, Convert(tinyint, Right(a.periodo, 2)) mes,
     MAX(a.numero) numero, SUM(b.valor) valor
     FROM fco_autorizaciones a
     INNER JOIN fco_autorizaciones_det b ON a.compania = b.compania AND a.autorizacion = b.autorizacion
     WHERE a.tipo_incapacidad = 0
     GROUP BY a.compania, a.sucursal, a.tipo_planilla, a.cod_entidad, b.trabajador, a.periodo) x
    WHERE fco_integrada_det.compania = x.compania 
      AND (fco_integrada_det.sucursal = x.sucursal OR @pch_sucursal = '')
      AND fco_integrada_det.tipo_planilla = x.tipo_planilla
      AND fco_integrada_det.cod_EPS = x.cod_entidad
      AND fco_integrada_det.trabajador = x.trabajador
      AND fco_integrada_det.anio = x.anio 
      AND fco_integrada_det.mes = x.mes
      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

    DELETE fco_autorizaciones_ext
    WHERE compania = @pch_compania
      AND (sucursal = @pch_sucursal OR @pch_sucursal = '')
      AND tipo_planilla = @pch_tipo_planilla
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND tipo = 0

    -- Autorizaciones donde el trabajador está retirado o en otra EPS (no se pueden mostrar a nivel de trabajadores en la planilla)
    INSERT INTO fco_autorizaciones_ext
    (compania, sucursal, tipo_planilla, cod_EPS, anio, mes, tipo, trabajador, numero, valor)
    SELECT @pch_compania, @pch_sucursal, @pch_tipo_planilla, cod_entidad, 
           Convert(smallint, Left(a.periodo, 4)) anio, Convert(tinyint, Right(a.periodo, 2)) mes,
           tipo_incapacidad, b.trabajador, MAX(a.numero), SUM(b.valor)
    FROM fco_autorizaciones a
    INNER JOIN fco_autorizaciones_det b ON a.compania = b.compania AND a.autorizacion = b.autorizacion
    WHERE a.compania = @pch_compania
      AND a.periodo = RTrim(@psi_anio) + Right('00' + RTrim(@pti_mes), 2)
      AND a.tipo_incapacidad = 0
      AND (a.sucursal = @pch_sucursal OR @pch_sucursal = '')
      AND a.tipo_planilla = @pch_tipo_planilla
      AND NOT EXISTS
        (SELECT 1 FROM fco_integrada_det x
         WHERE x.compania = a.compania 
           AND (x.sucursal = a.sucursal OR @pch_sucursal = '')
           AND x.tipo_planilla = a.tipo_planilla
           AND x.cod_EPS = a.cod_entidad
           AND x.trabajador = b.trabajador
           AND RTrim(x.anio) + Right('00' + RTrim(x.mes), 2) = a.periodo
        )
    GROUP BY a.cod_entidad, a.periodo, a.tipo_incapacidad, b.trabajador
    
    -- Autorizaciones que no se reportaron detalladamente
    INSERT INTO fco_autorizaciones_ext
    (compania, sucursal, tipo_planilla, cod_EPS, anio, mes, tipo, trabajador, numero, valor)
    SELECT @pch_compania, @pch_sucursal, @pch_tipo_planilla, cod_entidad, Convert(smallint, Left(a.periodo, 4)) anio, Convert(tinyint, Right(a.periodo, 2)) mes,
           tipo_incapacidad, '', MAX(numero), SUM(valor_total)
    FROM fco_autorizaciones a
    WHERE compania = @pch_compania
      AND periodo = RTrim(@psi_anio) + Right('00' + RTrim(@pti_mes), 2)
      AND tipo_incapacidad = 0
      AND (sucursal = @pch_sucursal OR @pch_sucursal = '')
      AND tipo_planilla = @pch_tipo_planilla
      AND NOT EXISTS
        (SELECT 1 FROM fco_autorizaciones_det b
         WHERE a.compania = b.compania AND a.autorizacion = b.autorizacion
        )
    GROUP BY a.cod_entidad, a.periodo, a.tipo_incapacidad

    /***********************************************************************/
    /* Autorizaciones por Licencia de Maternidad (Nro. y Valor por Trabajador) */    
    /***********************************************************************/
    -- Autorizaciones donde el trabajador continua activo y en la misma EPS (se pueden mostrar a nivel de trabajadores en la planilla)
    -- Además la autorización se reportó detallada
    UPDATE fco_integrada_det
    SET nro_aut_LMA = x.numero, vlr_aut_LMA = x.valor
    FROM
    (SELECT a.compania, a.sucursal, a.tipo_planilla, a.cod_entidad, b.trabajador, 
     Convert(smallint, Left(a.periodo, 4)) anio, Convert(tinyint, Right(a.periodo, 2)) mes,
     MAX(a.numero) numero, SUM(b.valor) valor
     FROM fco_autorizaciones a
     INNER JOIN fco_autorizaciones_det b ON a.compania = b.compania AND a.autorizacion = b.autorizacion
     WHERE a.tipo_incapacidad = 1
     GROUP BY a.compania, a.sucursal, a.tipo_planilla, a.cod_entidad, b.trabajador, a.periodo) x
    WHERE fco_integrada_det.compania = x.compania 
      AND (fco_integrada_det.sucursal = x.sucursal OR @pch_sucursal = '')
      AND fco_integrada_det.tipo_planilla = x.tipo_planilla
      AND fco_integrada_det.cod_EPS = x.cod_entidad
      AND fco_integrada_det.trabajador = x.trabajador
      AND fco_integrada_det.anio = x.anio 
      AND fco_integrada_det.mes = x.mes
      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

    DELETE fco_autorizaciones_ext
    WHERE compania = @pch_compania
      AND (sucursal = @pch_sucursal OR @pch_sucursal = '')
      AND tipo_planilla = @pch_tipo_planilla
      AND anio = @psi_anio
      AND mes = @pti_mes
      AND tipo = 1

    -- Autorizaciones donde el trabajador está retirado o en otra EPS (no se pueden mostrar a nivel de trabajadores en la planilla)
    INSERT INTO fco_autorizaciones_ext
    (compania, sucursal, tipo_planilla, cod_EPS, anio, mes, tipo, trabajador, numero, valor)
    SELECT @pch_compania, @pch_sucursal, @pch_tipo_planilla, cod_entidad, 
           Convert(smallint, Left(a.periodo, 4)) anio, Convert(tinyint, Right(a.periodo, 2)) mes,
           tipo_incapacidad, b.trabajador, MAX(a.numero), SUM(b.valor)
    FROM fco_autorizaciones a
    INNER JOIN fco_autorizaciones_det b ON a.compania = b.compania AND a.autorizacion = b.autorizacion
    WHERE a.compania = @pch_compania
      AND a.periodo = RTrim(@psi_anio) + Right('00' + RTrim(@pti_mes), 2)
      AND a.tipo_incapacidad = 1
      AND (a.sucursal = @pch_sucursal OR @pch_sucursal = '')
      AND a.tipo_planilla = @pch_tipo_planilla
      AND NOT EXISTS
        (SELECT 1 FROM fco_integrada_det x
         WHERE x.compania = a.compania 
           AND (x.sucursal = a.sucursal OR @pch_sucursal = '')
           AND x.tipo_planilla = a.tipo_planilla
           AND x.cod_EPS = a.cod_entidad
           AND x.trabajador = b.trabajador
           AND RTrim(x.anio) + Right('00' + RTrim(x.mes), 2) = a.periodo
        )
    GROUP BY a.cod_entidad, a.periodo, a.tipo_incapacidad, b.trabajador
    
    -- Autorizaciones que no se reportaron detalladamente
    INSERT INTO fco_autorizaciones_ext
    (compania, sucursal, tipo_planilla, cod_EPS, anio, mes, tipo, trabajador, numero, valor)
    SELECT @pch_compania, @pch_sucursal, @pch_tipo_planilla, cod_entidad, Convert(smallint, Left(a.periodo, 4)) anio, Convert(tinyint, Right(a.periodo, 2)) mes,
           tipo_incapacidad, '', MAX(numero), SUM(valor_total)
    FROM fco_autorizaciones a
    WHERE compania = @pch_compania
      AND periodo = RTrim(@psi_anio) + Right('00' + RTrim(@pti_mes), 2)
      AND tipo_incapacidad = 1
      AND (sucursal = @pch_sucursal OR @pch_sucursal = '')
      AND tipo_planilla = @pch_tipo_planilla
      AND NOT EXISTS
        (SELECT 1 FROM fco_autorizaciones_det b
         WHERE a.compania = b.compania AND a.autorizacion = b.autorizacion
        )
    GROUP BY a.cod_entidad, a.periodo, a.tipo_incapacidad

END
GO
GRANT EXECUTE ON dbo.sp_fco_pi_autorizaciones TO PUBLIC
GO

delete criterios_valores_col where campo = 'tipo_planilla'
go
insert into criterios_valores_col (campo, item, descripcion) select 'tipo_planilla', 1, 'E.Activos'
insert into criterios_valores_col (campo, item, descripcion) select 'tipo_planilla', 2, 'Y.Independientes'
go
IF OBJECT_ID('dbo.vw_fco_integrada_rt01') IS NOT NULL
    DROP VIEW dbo.vw_fco_integrada_rt01
GO
CREATE VIEW dbo.vw_fco_integrada_rt01
AS
/*************************************************************************/
-- Modulo Fiscal Colombiano 2.0 ADAM V3
-- Descripcion: Archivo Plano Planilla Integrada Registro Tipo 1
-- Autor: Juan Carlos Leguizamon
-- Fecha: Junio 2005
-- Revisiones:
-- JCL 27-AGO-07 Inclusión del campo tipo_planilla
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, tipo_planilla,
    '01' + RIGHT('00000' + RTRIM(secuencia), 5) + CONVERT(char(200), razon_social) +
    tipo_documento + CONVERT(char(16), nro_id) + dv + tipo_planilla + 
    '0000000000' + -- JCL Ajuste de junio 21/06
    Space(10) +
    ISNULL((select forma_presentacion from vw_fco_companias x where x.compania = a.compania), 'C') + -- JCL Ajuste Oct-30-06
    sucursal + CONVERT(char(40), nombre_sucursal) + 
    CONVERT(char(6), nueva_ARP) + 
    Left(periodo, 4) + '-' + Right(periodo, 2) + -- JCL Ajuste de junio 21/06
    Left(periodo_salud, 4) + '-' + Right(periodo_salud, 2) + -- JCL Ajuste de junio 21/06
    CONVERT(char(10), nro_radicacion) + 
    Convert(char(10), getdate(), 120) + -- JCL Ajuste de junio 21/06
    RIGHT('00000' + RTRIM(nro_empleados), 5) + 
    RIGHT('000000000000' + RTRIM(valor_nomina), 12) + '1' +
    operador AS registro1
FROM fco_integrada_cab a
WHERE tipo_planilla <> 'Y'
UNION
SELECT
    a.compania, a.anio, a.mes, a.sucursal, a.tipo_planilla,
    '01' + RIGHT('00000' + RTRIM(a.secuencia), 5) + CONVERT(char(200), a.razon_social) +
    a.tipo_documento + CONVERT(char(16), a.nro_id) + a.dv + a.tipo_planilla + 
    Right('0000000000' + LTRIM(RTRIM(IsNull(b.nro_planilla, '0'))), 10) + 
    IsNull(Convert(char(10), b.fecha_pago_real, 120), Space(10)) +
    ISNULL((select forma_presentacion from vw_fco_companias x where x.compania = a.compania), 'C') + -- JCL Ajuste Oct-30-06
    a.sucursal + CONVERT(char(40), a.nombre_sucursal) + 
    CONVERT(char(6), a.nueva_ARP) + 
    Left(a.periodo_salud, 4) + '-' + Right(a.periodo_salud, 2) + -- JCL Ajuste de junio 21/06
    Left(a.periodo_salud, 4) + '-' + Right(a.periodo_salud, 2) + -- JCL Ajuste de junio 21/06
    CONVERT(char(10), a.nro_radicacion) + 
    Convert(char(10), getdate(), 120) + -- JCL Ajuste de junio 21/06
    RIGHT('00000' + RTRIM(a.nro_empleados), 5) + 
    RIGHT('000000000000' + RTRIM(a.valor_nomina), 12) + '1' +
    a.operador AS registro1
FROM fco_integrada_cab a
LEFT JOIN fco_integrada_cab b ON a.compania = b.compania And a.anio = b.anio And a.mes = b.mes And a.sucursal = b.sucursal
  And b.tipo_planilla = 'E'
WHERE a.tipo_planilla = 'Y'
GO
GRANT SELECT ON dbo.vw_fco_integrada_rt01 TO PUBLIC
GO



