-- ************************************************************************************************ --
-- Operación FCO5016 Archivo Planilla Integrada para Pensionados
-- ************************************************************************************************ --
DELETE rel_oper_menus WHERE ejecuta_operacion = 'FCO5016';
DELETE rel_oper_modulos WHERE operacion = 'FCO5016';
DELETE operaciones WHERE operacion = 'FCO5016';
DELETE aut_operaciones WHERE operacion = 'FCO5016';

INSERT INTO operaciones (operacion, descripcion_ope, icono, tipo_operacion) 
VALUES ('FCO5016', 'Generar Archivo Planilla Integrada (Pensionados)', 7, 1);

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

INSERT INTO rel_oper_modulos (operacion, modulo)  VALUES ('FCO5016','F1');
INSERT INTO aut_operaciones (usuario, operacion, nivel_seguridad) VALUES ('ADAM','FCO5016',4);
INSERT INTO aut_operaciones (usuario, operacion, nivel_seguridad)
SELECT usuario, 'FCO5016', nivel_seguridad FROM aut_operaciones  WHERE usuario <> 'ADAM' AND operacion = 'MF3020'
go

IF OBJECT_ID('dbo.fco_integrada_rt03') IS NOT NULL
    DROP TABLE dbo.fco_integrada_rt03
GO
CREATE TABLE dbo.fco_integrada_rt03
-- Planilla Integrada Registro Tipo 3
-- Total Aportes del Período a Pensiones por Administradora
(
    compania char(4) NOT NULL,
    anio smallint NOT NULL,
    mes tinyint NOT NULL,
    sucursal varchar(10) NOT NULL,
    cod_AFP char(10) NOT NULL,
    secuencia smallint NOT NULL,
    nit varchar(16) NOT NULL,
    dv char(1) NOT NULL,
    suma_aportes decimal(10) NOT NULL,
    suma_voluntarios decimal(10) NOT NULL,
    suma_voluntarios_cia decimal(10) NOT NULL,
    suma_FSP_sol decimal(10) NOT NULL,
    suma_FSP_sub decimal(10) NOT NULL,
    dias_mora smallint NOT NULL,
    int_mora_aportes decimal(10) NOT NULL,
    int_mora_FSP_sol decimal(10) NOT NULL,
    int_mora_FSP_sub decimal(10) NOT NULL,
    total_pagar AS suma_aportes + suma_voluntarios + suma_voluntarios_cia + suma_FSP_sol + suma_FSP_sub + int_mora_aportes + int_mora_FSP_sol + int_mora_FSP_sub,
    total_afiliados decimal(6) NOT NULL,
    CONSTRAINT pk_fco_integrada_rt03 PRIMARY KEY NONCLUSTERED (compania, anio, mes, sucursal, cod_AFP)
)
GO
GRANT ALL ON dbo.fco_integrada_rt03 TO PUBLIC
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:
/*************************************************************************/
SELECT
    compania, anio, mes, sucursal, secuencia, 
    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

-- ************************************************************************************************ --
-- Operación FCO2096 Control Planilla Integrada Pensionados
-- ************************************************************************************************ --
DELETE rel_oper_menus WHERE ejecuta_operacion = 'FCO2096';
DELETE rel_oper_modulos WHERE operacion = 'FCO2096';
DELETE operaciones WHERE operacion = 'FCO2096';
DELETE aut_operaciones WHERE operacion = 'FCO2096';

INSERT INTO operaciones (operacion, descripcion_ope, icono, tipo_operacion)  
VALUES ('FCO2096', 'Control Planilla Integrada Pensionados', 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, 'FCO2096' from rel_oper_menus WHERE modulo='F1' and menu = 20;

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

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

go

alter table criterios_valores_col alter column descripcion varchar(100) not null
go

IF OBJECT_ID('dbo.fn_fco_var_nom') IS NOT NULL
    DROP FUNCTION dbo.fn_fco_var_nom
GO
CREATE FUNCTION dbo.fn_fco_var_nom
(
    @pch_compania char(4),
    @pch_var_nro char(2),
    @pbi_porcentaje bit = 0
)
RETURNS decimal(16,6)
-- JCL. Junio 22/05.
-- Retorna un valor de variables que contienen porcentaje
-- El valor devuelto va entre cero y uno, o NULL
AS
BEGIN
    DECLARE
        @vdc_tar_Aux decimal(16,6) -- Variable Auxiliar para interpretar tarifas

    SET @vdc_tar_Aux = NULL

    SELECT @vdc_tar_Aux = real FROM parametros_rh
    WHERE compania = @pch_compania AND parametro_rh = 'var_nom_' + @pch_var_nro

    IF @pbi_porcentaje = 0
    BEGIN
        IF @vdc_tar_Aux >= 1000 SET @vdc_tar_Aux = @vdc_tar_Aux / 100000
        IF @vdc_tar_Aux >= 1 SET @vdc_tar_Aux = @vdc_tar_Aux / 100
        IF @vdc_tar_Aux > 1 SET @vdc_tar_Aux = NULL
    END

    RETURN @vdc_tar_Aux
END
GO
GRANT EXECUTE ON dbo.fn_fco_var_nom TO PUBLIC
GO

