IF OBJECT_ID('dbo.vw_fco_pi_pens_det') IS NOT NULL
    DROP VIEW dbo.vw_fco_pi_pens_det
GO
CREATE VIEW dbo.vw_fco_pi_pens_det
AS
SELECT 
    a.compania, a.anio, a.mes, a.sucursal, a.trabajador, a.secuencia, 
    a.pens_ape1, a.pens_ape2, a.pens_nom1, a.pens_nom2, a.pens_tdoc, a.pens_id, 
    a.tipo_pension, 
    tipo_pension_des = IsNull((Select x.descripcion From criterios_valores_col x Where x.campo = 'tipo_pension' AND x.item = a.tipo_pension), ''),
    a.pension_compartida, 
    a.caus_ape1, a.caus_ape2, a.caus_nom1, a.caus_nom2, a.caus_tdoc, a.caus_id, 
    a.tipo_pensionado, 
    tipo_pensionado_des = IsNull((Select x.descripcion From criterios_valores_col x Where x.campo = 'tipo_pensionado' AND x.item = a.tipo_pensionado), ''),
    a.residente_en_exterior, 
    a.departamento,
    departamento_des = IsNull((Select x.nombre From fco_departamentos x Where x.codigo = a.departamento), ''),
    a.municipio, 
    municipio_des = IsNull((Select x.nombre From fco_ciudades x Where x.cod_dpto = a.departamento and x.codigo = a.municipio), ''),
    a.situa_en_exterior, 
    a.nov_ING, a.nov_RET, a.nov_TDE, a.nov_TAE, a.nov_TDP, a.nov_TAP, a.nov_VSP, a.nov_SUS, 
    a.mesada, 

    a.cod_EPS, 
    LTRIM((SELECT eps.cod_super FROM fco_administradoras eps 
                           WHERE eps.tipo = 'EPS' AND eps.codigo = a.cod_EPS)) AS eps_cod_super,
    (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,

    a.cod_EPS_Tras, 
    LTRIM((SELECT neps.cod_super FROM fco_administradoras neps 
                           WHERE neps.tipo = 'EPS' AND neps.codigo = a.cod_EPS_Tras)) AS neps_cod_super,
    (SELECT neps.descripcion FROM vw_fco_administradoras neps 
     WHERE neps.compania = a.compania AND neps.tipo = 'EPS' AND neps.codigo = a.cod_EPS_Tras) AS neps_nombre,

    a.dias_EPS, a.tarifa_EPS, a.aporte_EPS, a.UPC_adicional, 

    a.cod_AFP, 
    LTRIM((SELECT afp.cod_super FROM fco_administradoras afp 
                           WHERE afp.tipo = 'AFP' AND afp.codigo = a.cod_AFP)) AS afp_cod_super,
    (SELECT afp.descripcion FROM vw_fco_administradoras afp
     WHERE afp.compania = a.compania AND afp.tipo = 'AFP' AND afp.codigo = a.cod_AFP) AS afp_nombre,

    a.cod_AFP_Tras, 
    LTRIM((SELECT nafp.cod_super FROM fco_administradoras nafp 
                           WHERE nafp.tipo = 'AFP' AND nafp.codigo = a.cod_AFP_Tras)) AS nafp_cod_super,
    (SELECT nafp.descripcion FROM vw_fco_administradoras nafp
     WHERE nafp.compania = a.compania AND nafp.tipo = 'AFP' AND nafp.codigo = a.cod_AFP_Tras) AS nafp_nombre,

    a.dias_AFP, a.tarifa_AFP, a.aporte_AFP, a.voluntario_AFP, a.aporte_total_AFP, a.valor_no_retenido, 
    a.dias_FSP, a.aporte_FSP_sol, a.aporte_FSP_sub, a.tarifa_FSP, 

    a.cod_CCF, 
    LTRIM((SELECT ccf.cod_super FROM fco_administradoras ccf
                           WHERE ccf.tipo = 'CCF' AND ccf.codigo = a.cod_CCF)) AS ccf_cod_super,
    (SELECT ccf.descripcion FROM vw_fco_administradoras ccf
     WHERE ccf.compania = a.compania AND ccf.tipo = 'CCF' AND ccf.codigo = a.cod_CCF) AS ccf_nombre,

    a.dias_CCF, a.tarifa_CCF, a.aporte_CCF, a.origen, a.eliminada,    

    suc_nombre = (Select suc.descripcion From vw_fco_sucursales suc Where suc.compania = a.compania AND suc.sucursal = a.sucursal)

FROM fco_pi_pens_rt2 a
WHERE aporte_EPS + aporte_AFP + aporte_CCF <> 0
-- CONDICIONES DE SEGURIDAD
AND EXISTS (SELECT 1 FROM aut_companias x WHERE x.compania = a.compania AND x.usuario = SYSTEM_USER)
AND EXISTS (SELECT 1 FROM trabajadores_grales tg INNER JOIN rel_usu_clase_nom cn ON tg.clase_nomina = cn.clase_nomina
            WHERE tg.compania = a.compania AND tg.trabajador = a.trabajador AND cn.usuario = SYSTEM_USER)
AND NOT EXISTS (SELECT 1 FROM rel_trab_agr rta INNER JOIN rel_usu_agr_trab x ON rta.agrupacion = x.agrupacion AND rta.dato = x.dato
                WHERE rta.compania = a.compania AND rta.trabajador = a.trabajador AND x.usuario = SYSTEM_USER)
GO
GRANT SELECT ON dbo.vw_fco_pi_pens_det TO PUBLIC
GO
