dbo.LN_control_etica_por_cuit

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@p_cliente int 4
@p_cuit varchar 20
@p_pais varchar 10

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
select * from LN_control_screening where cliente = 5546348 and visible = 1
exec [LN_control_etica_por_cuit] 5546348, '30716500329', 'ar'
exec [LN_control_etica_por_cuit] 5546348, '1006730', 'PY'


*/

CREATE OR ALTER PROCEDURE dbo.LN_control_etica_por_cuit 
@p_cliente int, 
@p_cuit    varchar(20), 
@p_pais    varchar(10)  = null 
AS
BEGIN
    SET NOCOUNT ON;
 /* 31/05/2022: Se agrego el control de que el numero de tax-id sea del mismo pais 
  Antes de esa fecha se hacia asi:
 
  select distinct socios.c01_cuit_soc as cuit, padrones2.nombre_persona as nombre, car_nombre as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre
    from padrones  
    inner join socios on socios.c01_cuit = padrones.identificacion 
    inner join padrones padrones2 on padrones2.identificacion = socios.c01_cuit_soc and padrones2.habilitado = 1 
    inner join LN_control_screening on LN_control_screening.identificacion = socios.c01_cuit_soc 
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
    left join cargos on cargos.car_codigo = socios.car_codigo 
   where padrones.identificacion = @p_cuit
     and socios.visible = 1
     and isnull(socios.c04_ultimo,'') != 'N'
     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente
 
    union all 
 
    select distinct padrones.identificacion as cuit, padrones.nombre_persona as nombre, '' as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre  
    from padrones 
    inner join LN_control_screening on LN_control_screening.identificacion = padrones.identificacion
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
   where padrones.identificacion = @p_cuit
     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente
 
 
  */

 declare @nrodoc varchar(8) = ''
 declare @nrodoc2 varchar(8) = ''


 /*if (@p_pais = 'AR' and len(@p_cuit) <= 8) */
 if (len(@p_cuit) <= 8)
 begin
  set @nrodoc = right('00000000'+@p_cuit,8)
  set @p_cuit = convert(bigint,@p_cuit)
  set @nrodoc2 = @p_cuit

 end

 if (@p_pais is null)
 begin
  -- Buscamos los socios del cuit consultado, y vemos si alguno está en la lista de screening PERO QUE SEA DEL MISMO PAIS 

  /* 21/12/2023: agregamos accionistas */

  select distinct  accionistas.cuit_acc as cuit, padrones2.nombre_persona as nombre, 'ACCIONISTA' as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre
    from padrones  
    inner join accionistas on accionistas.cuit_sociedad = padrones.identificacion 
    inner join padrones padrones2 on padrones2.identificacion = accionistas.cuit_acc and padrones2.habilitado = 1 
      inner join identificadores on identificadores.identificador = padrones2.identificador  -- para ver el pais de ese socio
    inner join LN_control_screening on  ((LN_control_screening.identificacion = padrones2.identificacion  or 
            LN_control_screening.identificacion = padrones2.cuerpo_clave) and 
               LN_control_screening.country_code = identificadores.country_code)
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
   where (padrones.tipo_persona = 'J' and padrones.identificacion = @p_cuit)
     and accionistas.visible = 1
     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente
  
  union
  /**/
  select distinct  socios.c01_cuit_soc as cuit, padrones2.nombre_persona as nombre, car_nombre as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre
    from padrones  
    inner join socios on socios.c01_cuit = padrones.identificacion 
    inner join padrones padrones2 on padrones2.identificacion = socios.c01_cuit_soc and padrones2.habilitado = 1 
      inner join identificadores on identificadores.identificador = padrones2.identificador  -- para ver el pais de ese socio
    inner join LN_control_screening on  ((LN_control_screening.identificacion = padrones2.identificacion  or 
            LN_control_screening.identificacion = padrones2.cuerpo_clave) and 
               LN_control_screening.country_code = identificadores.country_code)
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
    left join cargos on cargos.car_codigo = socios.car_codigo 
   where (padrones.tipo_persona = 'J' and padrones.identificacion = @p_cuit)
     and socios.visible = 1
     and isnull(socios.c04_ultimo,'') != 'N'
     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente
     
    /*union  
    
       select distinct  LN_control_screening.identificacion as cuit, padrones.nombre_persona as nombre, '' as cargo, 
       isnull(LN_control_screening.relacion,'') as relacion, 
       LN_control_screening.empleado as empleado_cuit, 
       padrones3.nombre_persona as empleado_nombre  
      from padrones 
       inner join identificadores on identificadores.identificador = padrones.identificador 
       inner join LN_control_screening on (LN_control_screening.identificacion = padrones.identificacion and
                                           LN_control_screening.country_code = identificadores.country_code)
       left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
          
      where (LN_control_screening.identificacion = @p_cuit or (SUBSTRING(LN_control_screening.identificacion, 3, 8) = @nrodoc and LN_control_screening.country_code = 'AR'))
    
        and LN_control_screening.visible = 1
        and LN_control_screening.cliente = @p_cliente*/

     

   union  

    select distinct  LN_control_screening.identificacion as cuit, padrones.nombre_persona as nombre, '' as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre  
    from LN_control_screening
    left join padrones on (padrones.identificacion = LN_control_screening.identificacion and padrones.habilitado = 1 
                           and padrones.identificador in (select identificador 
                                          from identificadores 
                 where country_code = LN_control_screening.country_code))
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
       
   where (LN_control_screening.identificacion = @p_cuit or (SUBSTRING(LN_control_screening.identificacion, 3, 8) = @nrodoc and LN_control_screening.country_code = 'AR'))

     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente
 end 
 else 
 begin 
 -- Buscamos los socios del cuit consultado, y vemos si alguno está en la lista de screening 

  /* 21/12/2023: agregamos accionistas */
  select distinct accionistas.cuit_acc as cuit, padrones2.nombre_persona as nombre, 'ACCIONISTA' as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre
    from padrones  
    inner join accionistas on accionistas.cuit_sociedad = padrones.identificacion 
    inner join padrones padrones2 on padrones2.identificacion = accionistas.cuit_acc and padrones2.habilitado = 1 
      inner join identificadores on identificadores.identificador = padrones2.identificador  -- para ver el pais de ese socio
    inner join LN_control_screening on  ((LN_control_screening.identificacion = padrones2.identificacion  or 
            LN_control_screening.identificacion = padrones2.cuerpo_clave) and 
               LN_control_screening.country_code = identificadores.country_code)
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
   where (padrones.tipo_persona = 'J' and padrones.identificacion = @p_cuit)
     and accionistas.visible = 1
     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente

     and identificadores.country_code = @p_pais

  union 
  /**/
  select distinct socios.c01_cuit_soc as cuit, padrones2.nombre_persona as nombre, car_nombre as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre
    from padrones  
    inner join socios on socios.c01_cuit = padrones.identificacion 
    inner join padrones padrones2 on padrones2.identificacion = socios.c01_cuit_soc and padrones2.habilitado = 1 
      inner join identificadores on identificadores.identificador = padrones2.identificador  -- para ver el pais de ese socio
    inner join LN_control_screening on  ((LN_control_screening.identificacion = padrones2.identificacion  or 
            LN_control_screening.identificacion = padrones2.cuerpo_clave) and 
               LN_control_screening.country_code = identificadores.country_code)
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
    left join cargos on cargos.car_codigo = socios.car_codigo 
   where (padrones.tipo_persona = 'J' and padrones.identificacion = @p_cuit)

     and socios.visible = 1
     and isnull(socios.c04_ultimo,'') != 'N'
     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente

     and identificadores.country_code = @p_pais
     
    /*union  
    
       select distinct LN_control_screening.identificacion as cuit, padrones.nombre_persona as nombre, '' as cargo, 
       isnull(LN_control_screening.relacion,'') as relacion, 
       LN_control_screening.empleado as empleado_cuit, 
       padrones3.nombre_persona as empleado_nombre  
      from padrones 
       inner join identificadores on identificadores.identificador = padrones.identificador 
       inner join LN_control_screening on (LN_control_screening.identificacion = padrones.identificacion and
                                           LN_control_screening.country_code = identificadores.country_code)
    
    
       left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
          
      where (LN_control_screening.identificacion = @p_cuit or (SUBSTRING(LN_control_screening.identificacion, 3, 8) = @nrodoc and LN_control_screening.country_code = 'AR'))
        and LN_control_screening.visible = 1
        and LN_control_screening.cliente = @p_cliente
        and identificadores.country_code = @p_pais*/



   union  

    select distinct LN_control_screening.identificacion as cuit, padrones.nombre_persona as nombre, '' as cargo, 
    isnull(LN_control_screening.relacion,'') as relacion, 
    LN_control_screening.empleado as empleado_cuit, 
    padrones3.nombre_persona as empleado_nombre  
    from LN_control_screening
    left join padrones on (padrones.identificacion = LN_control_screening.identificacion and padrones.habilitado = 1 
                           and padrones.identificador in (select identificador 
                                          from identificadores 
                 where country_code = LN_control_screening.country_code))
    left join padrones padrones3 on (padrones3.identificacion = LN_control_screening.empleado and padrones3.habilitado = 1)
       
   where (LN_control_screening.identificacion = @p_cuit or (SUBSTRING(LN_control_screening.identificacion, 3, 8) = @nrodoc and LN_control_screening.country_code = 'AR'))

     and LN_control_screening.visible = 1
     and LN_control_screening.cliente = @p_cliente
     and LN_control_screening.country_code = @p_pais
 end 
END 
/*
select * from LN_control_screening where visible = 1 and country_code ='PY'
*/

GO

Used By

No items found