dbo.LN_demo_fidecheck_reporte

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@p_accion varchar 20
@p_cliente int 4
@p_servicio int 4
@p_user_id int 4
@p_lista_familias varchar -1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec [LN_demo_fidecheck_reporte] 'reporte', 2046807993, 47, null,'348'
exec [LN_demo_fidecheck_reporte] 'familias', 2046807993, 47 

select * from ln_familias where cliente = 2046807993
declare @p_lista_familias varchar(max) = '348,0'
select * from dbo.DelimitedSplit8K(@p_lista_familias, ',') 
*/

CREATE OR ALTER PROCEDURE dbo.LN_demo_fidecheck_reporte 
 @p_accion varchar(20), 
 @p_cliente int, 
 @p_servicio int = 47,
 @p_user_id int = 0, 
 @p_lista_familias varchar(max) = null 
AS
BEGIN
 SET NOCOUNT ON;
 if (@p_accion = 'reporte')
 begin
  set @p_lista_familias = LTRIM(RTRIM(@p_lista_familias))
  if (isnull(@p_lista_familias,'') = '')
   return
  if (@p_lista_familias like '%,') 
   set @p_lista_familias = @p_lista_familias + '0'

  select distinct LN_contrapartes.contraparte, pais_ser.country_name as pais_servicio,
    country.country_name as pais_contraparte,
    LN_familias.nombre_familia, 
    padrones.nombre_persona, identificadores.abreviatura, padrones.identificacion, 
    LN_demo_fidecheck.seccion,
    CASE
     WHEN LN_demo_fidecheck.seccion = 'S' THEN 'Socios / Accionistas'
     WHEN LN_demo_fidecheck.seccion = 'R' THEN 'Vinculaciones / Empresas relacionadas'
     WHEN LN_demo_fidecheck.seccion = 'D' THEN 'Directivos'
     WHEN LN_demo_fidecheck.seccion = 'P' THEN 'Propio'
     ELSE NULL
    END AS nombre_seccion,
    LN_demo_fidecheck.orden, 
    iif (LN_demo_fidecheck.seccion = 'P' , null, LN_demo_fidecheck.nombre) as nombre, 
    iif (LN_demo_fidecheck.seccion = 'P' , null, LN_demo_fidecheck.tax_id) as tax_id, 
    LN_demo_fidecheck.cargo, 
    LN_demo_fidecheck.porcentaje, 
    LN_demo_fidecheck.fidecheck, 
    CASE 
     WHEN LN_demo_fidecheck.fidecheck = 'N' THEN 'Negativo'
     WHEN LN_demo_fidecheck.fidecheck = 'R' THEN 'Relacioando'
     WHEN LN_demo_fidecheck.fidecheck = 'P' THEN 'Positivo'
     WHEN LN_demo_fidecheck.fidecheck = 'E' THEN 'PEP'
     WHEN LN_demo_fidecheck.fidecheck = 'S' THEN 'Sujeto Obligado'
     ELSE NULL
    END AS pep,
    LN_demo_fidecheck.detalle, 
    convert(date,iif(LN_demo_fidecheck.modified is not null, LN_demo_fidecheck.modified, LN_demo_fidecheck.created)) as fecha

   from LN_contrapartes 
   inner join LN_gestiones on 
             (LN_gestiones.contraparte = LN_contrapartes.contraparte and 
        LN_gestiones.vigente = 1 and LN_gestiones.desde <= getdate() and ln_gestiones.hasta >= getdate())
   inner join LN_demo_fidecheck on (LN_demo_fidecheck.gestion = LN_gestiones.gestion and LN_demo_fidecheck.visible = 1)
   inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
   inner join identificadores on padrones.identificador = identificadores.identificador
   inner join country on country.country_code = ln_contrapartes.country_code
   inner join country pais_ser on pais_ser.country_code = ln_contrapartes.pais_servicio
   inner join LN_contraparte_familias on LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
   inner join LN_familias on LN_familias.familia = LN_contraparte_familias.familia

   INNER JOIN dbo.DelimitedSplit8K(@p_lista_familias, ',') fam ON fam.Item = LN_contraparte_familias.familia 

   where ln_contrapartes.cliente = @p_cliente 
     and LN_contrapartes.activo = 1
     and LN_contrapartes.servicio_contratado = @p_servicio
   order by pais_ser.country_name,
      country.country_name,
         ln_familias.nombre_familia, padrones.nombre_persona, 
      LN_demo_fidecheck.seccion, LN_demo_fidecheck.orden, 
      LN_demo_fidecheck.porcentaje desc, nombre
  return
 end
 if (@p_accion = 'familias')
 begin
  select familia,nombre_familia
    from ln_familias 
   where cliente = @p_cliente and visible = 1 and subfamilia = 0 and servicio_contratado = @p_servicio 
    and familia not in (select distinct familia from usuarios_restricciones 
                         where cliente = @p_cliente and user_id = @p_user_id 
            and servicio_contratado = @p_servicio 
         and FAMILIA is not null)
   order by nombre_familia
  return
 end 

 
END 
GO

Used By

No items found