dbo.sp_procesos_cuit_enrichment_personas_relacionadas

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

11
Name Data Type Length Description
@cliente int 4
@fecha date 3
@socios char 1
@ex_socios char 1
@incluir_edictos char 1
@accionistas char 1
@empleados char 1
@parientes char 1
@firmantes char 1
@empleados_de char 1
@socios_relacionados char 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
Proceso que usamos para CCU (Chile) 
*/

/*
exec sp_procesos_cuit_enrichment_personas_relacionadas
8907, 
'2024-12-23',
'S',  -- socios
'S',  -- ex_socios 
'N',  -- incluir_edictos 
'S',  -- accionistas 
'S',  -- empleados
'S',  -- parientes
'S',  -- firmantes 
'S'   -- empleado de 



select distinct cuit as 'CUIT empleado', nombre as 'Nombre empleado', cargo as 'Relación', cuit_relacionado as 'CUIT Proveedor', nombre_relacionado as 'Nombre Proveedor'
from procesos_cuit_enrichment_datos_simples_socios a
where a.fecha_proceso = '2023-05-15' and a.cliente = 2046807993
and a.cuit_relacionado in (select cuit from procesos_cuit where cliente = 2046807993 and fecha in ( '2023-05-16' ,'2023-05-17' ))
order by cuit_relacionado, cuit



select * from empleados where cuil = '20422011480' and cuit = '33658043779' order by periodo desc

select * from procesos_cuit_enrichment_datos_simples_socios
where cliente = 2046807993
and fecha_proceso = '2023-05-15'
and cuit = '23365989559'

MRD - PEP Relacionadas:
select p.cuit as 'Cuit', p.nombre as 'Nombre', 
       cargo as 'Vinculación', 
   cuit_relacionado as 'Cuit persona vinculada', 
   nombre_relacionado as 'Nombre persona vinculada',
   case f.fidecheck
   when null then ''
   when 'N' then 'NEGATIVE'
   when 'P' then 'POSITIVE'
   when 'E' then 'PEP'
   when 'R' then 'RELATED'
   end 
   as PEP,
   f.detalle as 'Detalle' 
from procesos_cuit_enrichment_datos_simples_socios p
left join fidecheck_cuits f on f.fecha = '2020-06-03' and f.cuit = p.cuit_relacionado
where p.cliente = 2870143
and p.fecha_proceso = '2020-06-01'


los empleados  cliente = 2046807993 fecha = '2024-03-02'

exec [sp_procesos_cuit_enrichment_personas_relacionadas]   
2046807993,
'2024-03-02',
'N', 
'N', 
'N', 
'N',
'N',
'N', 
'N', 
'N', 
'S'







select distinct cuit, 
a.nombre_persona as nombre, 
        cuit_relacionado, 
        b.nombre_persona as nombre_relacionado, 
cargo, desde, hasta, relacionado_pariente 
from 
procesos_cuit_enrichment_datos_simples_socios 
left join padrones a on a.identificacion = procesos_cuit_enrichment_datos_simples_socios.cuit and a.habilitado = 1
left join padrones b on b.identificacion = procesos_cuit_enrichment_datos_simples_socios.cuit_relacionado and b.habilitado = 1
where cliente = 2046807993 
  and fecha_proceso =  '2024-03-02' 
  and cuit != cuit_relacionado and relacionado_pariente = 'S'
order by cuit, cuit_relacionado


insert into procesos_cuit (fecha, cliente, cuit)
select  
distinct   '2024-03-04'  , 2046807993, E.cuit_relacionado
from procesos_cuit_enrichment_datos_simples_socios E
where E.cliente = 2046807993 and E.fecha_proceso =  '2024-03-02'
and E.relacionado_pariente = 'S'
and E.cuit != E.cuit_relacionado


exec sp_procesos_cuit_enrichment_personas_relacionadas
2046807993,
 '2024-03-04', 
'S',  -- socios
'S',  -- ex_socios
'N',  -- incluir_edictos
'S',  -- accionistas
'N',  -- empleados
'S',  -- parientes
'S',  -- firmantes
'S'   -- empleado de




*/
 

CREATE OR ALTER PROCEDURE dbo.sp_procesos_cuit_enrichment_personas_relacionadas   
/*
1) Se cargan los cuits en la tabla procesos_cuit (cliente, fecha,cuit)

1.1) Para buscar las relacionadas
EXEC [dbo].[sp_procesos_cuit_enrichment_personas_relacionadas]   
con estos parámetros
@cliente int = CLIENTE,
@fecha   date = FECHA QUE CARGAMOS en la tabla procesos_cuit
@socios char(1) = 'S',
@ex_socios char(1) = 'S',
@incluir_edictos char(1) = 'N',
@accionistas char(1) = 'S',
@empleados char(1) = 'N',
@parientes char(1) = 'N',
@firmantes char(1) = 'S'

2) cargamos los cuits resultantes como CUITS RELACIONADOS (valores unicos) en la tabla procesos_cuit (cliente, FECHA pornerle una mayor que la que pusimos en el paso 1, cuit)
insert into procesos_cuit
select 5999321, '2019-11-13', 
cuit_relacionado 
from procesos_cuit_enrichment_datos_simples_socios a
where a.cliente = 5999321
  and a.fecha_proceso = '2019-11-11'
  and not exists (select * from procesos_cuit b where b.cliente = 5999321 and b.fecha = '2019-11-11' and b.cuit = a.cuit_relacionado) 



2.2)  Para buscar las relacionadas con las relacionadas
Volvemos a ejecutar el mismo Stored, pero en el parámetro fecha se mandará la nueva fecha de proceso con la que cargamos los cuits relacionados.
*/


/*
los cuits a procesar se cargar en la tabla procesos_cuit (para distinguir Fisicas y Juridicas, si se quiere, se pueden guardar con dos fechas distintas)
- Se obtienen las personas relacionadas, que pueden ser

Para empresas:
Socios / directivos
ex-Socios / directivos
edictos
Accionistas
Empleados

Para personas físicas:
Parientes (según Obras Sociales) 

*/

@cliente int = 1,
@fecha   date = '2019-10-14',
@socios char(1) = 'S', 
@ex_socios char(1) = 'S', 
@incluir_edictos char(1) = 'N', 
@accionistas char(1) = 'S',
@empleados char(1) = 'N',
@parientes char(1) = 'N', 
@firmantes char(1) = 'S', 
@empleados_de char(1) = 'S', 
@socios_relacionados char(1) = 'N'


AS 
BEGIN
    SET NOCOUNT ON;
 
 delete from procesos_cuit_enrichment_datos_simples_socios 
    where cliente = @cliente 
   and fecha_proceso = @fecha 
   
   
/* Tabla socios */
if (@socios = 'S' ) 
begin
 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, 
             nombre, cuit_relacionado, nombre_relacionado, cargo, desde, hasta, relacionado_pariente) 
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    c01_cuit as cuit, b.nombre_persona as sociedad, 
    c01_cuit_soc as cuit_relacionado, a.nombre_persona as nombre_relacionado, c.car_nombre as cargo, 
    c04_periodo_desde, c04_periodo_hasta, 'R'
    from  socios 
    inner join cargos c on c.car_codigo = socios.car_codigo 
     inner join padrones a on a.identificacion = c01_cuit_soc and a.habilitado = 1
     inner join padrones b on b.identificacion = c01_cuit and b.habilitado = 1
    where socios.c01_cuit
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )
    and c04_ultimo = 'S'
    and socios.visible = 1 
    and isnull(c01_cuit_soc,'') != ''
    and isnull(c01_cuit_soc,'') not like '3%'

  /* socio de */
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, 
             nombre, cuit_relacionado, nombre_relacionado, cargo, desde, hasta, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    c01_cuit_soc as cuit, a.nombre_persona as nombre, 
    c01_cuit as cuit_relacionado, b.nombre_persona as nombre_relacionado, 
    c.car_nombre + ' DE' as cargo, 
    c04_periodo_desde, c04_periodo_hasta, 'R'
    from  socios 
    inner join cargos c on c.car_codigo = socios.car_codigo 
     inner join padrones a on a.identificacion = c01_cuit_soc and a.habilitado = 1
     inner join padrones b on b.identificacion = c01_cuit and b.habilitado = 1
    where socios.c01_cuit_soc
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
    and c04_ultimo = 'S'
    and socios.visible = 1 
    and isnull(c01_cuit_soc,'') != ''
    and isnull(c01_cuit_soc,'') not like '3%'



end 



if (@socios_relacionados = 'S' ) 
begin
 declare @cuit_persona varchar(20), @nombre_persona varchar(200) 
 DECLARE p_cuits1 CURSOR FOR
   select cuit, p.nombre_persona
   from procesos_cuit 
   inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 
   where cliente = @cliente and fecha = @fecha and isnull(cuit,'') != '' and isnull(cuit,'') not like '3%'       
 OPEN p_cuits1
 FETCH NEXT FROM p_cuits1 INTO @cuit_persona, @nombre_persona


 WHILE @@fetch_status = 0
 BEGIN 
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, 
            nombre, cuit_relacionado, nombre_relacionado, cargo, desde, hasta, relacionado_pariente) 
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    @cuit_persona as cuit, @nombre_persona as nombre, 
    c01_cuit_soc as cuit_relacionado, socio.nombre_persona as nombre_relacionado, empresa.nombre_persona as cargo, 
    c04_periodo_desde, c04_periodo_hasta, 'S'
    from  socios 
    inner join cargos c on c.car_codigo = socios.car_codigo 
     inner join padrones socio on (socio.identificacion = c01_cuit_soc and socio.habilitado = 1 and socio.identificador in ('CUIT','CUIL'))
     inner join padrones empresa on (empresa.identificacion = c01_cuit and empresa.habilitado = 1 and empresa.identificador in ('CUIT','CUIL'))
    where socios.c04_ultimo = 'S' and socios.visible = 1 and socios.c01_cuit_soc != @cuit_persona
    and socios.c01_cuit in 
      (select distinct c01_cuit
       from  socios socios2
       where socios2.c01_cuit_soc = @cuit_persona
       and socios2.c04_ultimo = 'S'
       and socios2.visible = 1)


  FETCH NEXT FROM p_cuits1 INTO @cuit_persona, @nombre_persona
 END 
 CLOSE p_cuits1
 DEALLOCATE p_cuits1

end 





/* Tabla socios (ANTERIORES) */
if (@ex_socios = 'S') 
begin
 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo , relacionado_pariente) 
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    c01_cuit as cuit, b.nombre_persona as sociedad, 
    c01_cuit_soc as cuit_relacionado, a.nombre_persona as nombre_relacionado, 'EX-'+c.car_nombre as cargo, 'R'
    from  socios 
    inner join cargos c on c.car_codigo = socios.car_codigo 
     inner join padrones a on a.identificacion = c01_cuit_soc and a.habilitado = 1
     inner join padrones b on b.identificacion = c01_cuit and b.habilitado = 1
    where socios.c01_cuit
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )    and c04_ultimo = 'N'
    and socios.visible = 1 
    and isnull(c01_cuit_soc,'') != ''
    and isnull(c01_cuit_soc,'') not like '3%'
    and not exists (select * from socios s where s.c01_cuit = socios.c01_cuit and s.c01_cuit_soc = socios.c01_cuit_soc and s.c04_ultimo = 'S' and s.visible = 1 )
     
  /* socio de */
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    c01_cuit_soc as cuit, a.nombre_persona as nombre, 
    c01_cuit as cuit_relacionado, b.nombre_persona as nombre_relacionado, 
    'EX-'+c.car_nombre+ ' DE' as cargo, 'R'
    from  socios 
    inner join cargos c on c.car_codigo = socios.car_codigo 
     inner join padrones a on a.identificacion = c01_cuit_soc and a.habilitado = 1
     inner join padrones b on b.identificacion = c01_cuit and b.habilitado = 1
    where socios.c01_cuit_soc 
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )    and c04_ultimo = 'N'
    and socios.visible = 1 
    and isnull(c01_cuit_soc,'') != ''
    and isnull(c01_cuit_soc,'') not like '3%'
    and not exists (select * from socios s where s.c01_cuit = socios.c01_cuit and s.c01_cuit_soc = socios.c01_cuit_soc and s.c04_ultimo = 'S' and s.visible = 1 )
end 


/* Tabla Accionistas */
if (@accionistas = 'S') 
begin
 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuit_sociedad as cuit, b.nombre_persona as sociedad, 
    cuit_acc as cuit_relacionado, a.nombre_persona as nombre_relacionado, 'ACCIONISTA' as cargo, 'R'
    from  accionistas 
     inner join padrones a on a.identificacion = cuit_acc and a.habilitado = 1
     inner join padrones b on b.identificacion = cuit_sociedad and b.habilitado = 1
    where accionistas.cuit_sociedad
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )    
       and isnull(cuit_acc,'') != ''
    and accionistas.visible = 1 

  /* accionista de*/
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuit_acc as cuit, a.nombre_persona as nombre, 
    cuit_sociedad as cuit_relacionado, b.nombre_persona as nombre_relacionado, 
    'ACCIONISTA DE' as cargo, 'R'
    from  accionistas 
     inner join padrones a on a.identificacion = cuit_acc and a.habilitado = 1
     inner join padrones b on b.identificacion = cuit_sociedad and b.habilitado = 1
    where accionistas.cuit_acc
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )    
       and isnull(cuit_acc,'') != ''
    and accionistas.visible = 1 
end 

if (@incluir_edictos='S')
begin
/* Tabla Sociedades_Constituciones */
 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
   @cliente as cliente, @fecha as fecha_proceso, 
   documento_soc as cuit,  b.nombre_persona as nombre, 
   iif(isnull(cuit_int,'')!='',cuit_int, cuit_integrante) as cuit_relacionado, 
   a.nombre_persona as nombre_relacionado, 
   iif(isnull(sociedades_constituciones.cargo,'')='',cargos_grupo_jurad.cargo,sociedades_constituciones.cargo) as cargo, 'R'
   from  sociedades_constituciones 
   left join cargos_grupo_jurad on codigo = cargo_int 
   inner join padrones a on a.identificacion = iif(isnull(cuit_int,'')!='',cuit_int, cuit_integrante) and a.habilitado = 1
   inner join padrones b on b.identificacion = documento_soc and b.habilitado = 1
   where sociedades_constituciones.documento_soc 
   in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )
   and (ISNULL(cuit_int,'') != '' or ISNULL(cuit_integrante,'') != '')
   and (ISNULL(cuit_int,'') not like '3%' and  ISNULL(cuit_integrante,'') not like '3%')

   and not exists (select * from procesos_cuit_enrichment_datos_simples_socios a
   where a.cliente = @cliente 
   and a.fecha_proceso = @fecha 
   and a.cuit  = documento_soc
   and a.cuit_relacionado = iif(isnull(cuit_int,'')!='',cuit_int, cuit_relacionado)) 

  union 

     select distinct 
   @cliente as cliente, @fecha as fecha_proceso, 
      documento_soc as cuit, b.nombre_persona as nombre, 
   documento_integrante as cuit_relacionado, 
   nombre_integrante as nombre_relacionado, 
   iif(isnull(sociedades_constituciones.cargo,'')='',cargos_grupo_jurad.cargo,sociedades_constituciones.cargo) as cargo, 'R'
   from  sociedades_constituciones 
   left join cargos_grupo_jurad on codigo = cargo_int 
   inner join padrones b on b.identificacion = documento_soc and b.habilitado = 1
   where sociedades_constituciones.documento_soc 
   in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )
   and ISNULL(documento_integrante,'') != ''
   and (ISNULL(cuit_int,'') = '' and ISNULL(cuit_integrante,'') = '')
   and not exists (select * from procesos_cuit_enrichment_datos_simples_socios a
    where a.cliente = @cliente 
    and a.fecha_proceso = @fecha 
    and a.cuit  = documento_soc
    and a.cuit_relacionado = documento_integrante) 

   
/* Tabla Sociedades_Constituciones (de) */
 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
   @cliente as cliente, @fecha as fecha_proceso, 
   iif(isnull(cuit_int,'')!='',cuit_int, cuit_integrante) as cuit, 
   a.nombre_persona as nombre, 
   documento_soc as cuit_relacionado,  b.nombre_persona as nombre_relacionado, 
   iif(isnull(sociedades_constituciones.cargo,'')='',cargos_grupo_jurad.cargo,sociedades_constituciones.cargo)+' de' as cargo, 'R'
   from  sociedades_constituciones 
   left join cargos_grupo_jurad on codigo = cargo_int 
   inner join padrones a on a.identificacion = iif(isnull(cuit_int,'')!='',cuit_int, cuit_integrante) and a.habilitado = 1
   inner join padrones b on b.identificacion = documento_soc and b.habilitado = 1
   where (sociedades_constituciones.cuit_int 
         in (select cuit from procesos_cuit where cliente = @cliente and fecha = @fecha)
     or sociedades_constituciones.cuit_integrante 
        in (select cuit from procesos_cuit where cliente = @cliente and fecha = @fecha))
   and (ISNULL(documento_soc ,'') != '')
   and not exists (select * from procesos_cuit_enrichment_datos_simples_socios a
   where a.cliente = @cliente 
   and a.fecha_proceso = @fecha 
   and a.cuit  = iif(isnull(cuit_int,'')!='',cuit_int, cuit_integrante) 
   and a.cuit_relacionado = documento_soc )

  
/* Tabla Edictos */
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
  @cliente as cliente, @fecha as fecha_proceso, 
  cuit_sociedad as cuit,  b.nombre_persona as sociedad, 
  cuit_integrante, a.nombre_persona as nombre_relacionado, 'INTEGRANTE' as cargo, 'R'
   from  edictos
   inner join padrones a on a.identificacion = cuit_integrante and a.habilitado = 1
   inner join padrones b on b.identificacion = cuit_sociedad and b.habilitado = 1
   where edictos.cuit_sociedad 
   in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )
  and isnull(cuit_integrante,'') != ''
  and isnull(cuit_integrante,'') not like '3%'
  and not exists (select * from procesos_cuit_enrichment_datos_simples_socios a
    where a.cliente = @cliente 
    and a.fecha_proceso = @fecha 
    and a.cuit  = cuit_sociedad
    and a.cuit_relacionado = edictos.cuit_integrante)

 /* Tabla Edictos (de) */
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
  @cliente as cliente, @fecha as fecha_proceso, 
  cuit_integrante as cuit,  a.nombre_persona as nombre, 
  cuit_sociedad as cuit_relacionado, b.nombre_persona as nombre_relacionado, 'INTEGRANTE DE' as cargo, 'R'
   from  edictos
   inner join padrones a on a.identificacion = cuit_integrante and a.habilitado = 1
   inner join padrones b on b.identificacion = cuit_sociedad and b.habilitado = 1
   where edictos.cuit_integrante
   in (select cuit from procesos_cuit where cliente = @cliente and fecha = @fecha)
  and isnull(cuit_sociedad,'') != ''
  and not exists (select * from procesos_cuit_enrichment_datos_simples_socios a
    where a.cliente = @cliente 
    and a.fecha_proceso = @fecha 
    and a.cuit  = edictos.cuit_integrante
    and a.cuit_relacionado = cuit_sociedad)
end 

/* firmantes */
if (@firmantes = 'S' ) 
begin
 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuit_relacionado as cuit, b.nombre_persona as sociedad, 
    cuit_firmante as cuit_relacionado, a.nombre_persona as nombre_relacionado, 'FIRMANTE' as cargo, 'R'
    from  ChequesBCRA 
     inner join padrones a on a.identificacion = cuit_firmante    and a.habilitado = 1
     inner join padrones b on b.identificacion = cuit_relacionado and b.habilitado = 1
    where Cuit_relacionado
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'J'
       where cliente = @cliente and fecha = @fecha 
         )
    and ChequesBCRA.visible = 1 

 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuit_firmante as cuit, a.nombre_persona as nombre, 
    cuit_relacionado as cuit_relacionado, b.nombre_persona as nombre_relacionado, 
    'FIRMANTE DE' as cargo, 'R'
    from  ChequesBCRA 
     inner join padrones a on a.identificacion = cuit_firmante    and a.habilitado = 1
     inner join padrones b on b.identificacion = cuit_relacionado and b.habilitado = 1
    where cuit_firmante 
    in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
    and ChequesBCRA.visible = 1 
end 






 declare @cuit varchar(20), @periodo int, @cantidad bigint, @ultimo_mes_empleados date,
   @mes_empleados date,
   @periodo_empleados_desde  int,
   @periodo_empleados_hasta int
 set @ultimo_mes_empleados = (select max(fuentes_procesadas.fecha_informacion) from fuentes_procesadas where fuente = 'empleados')
 set @mes_empleados = DATEADD(M,-24,@ultimo_mes_empleados) 
 --set @mes_empleados = DATEADD(M,-2,@ultimo_mes_empleados)  -- para que tome lo mismo del obtener_empleados
 set @periodo_empleados_desde = convert(int,substring(convert(char,@mes_empleados),3,2)+substring(convert(char,@mes_empleados),6,2))
 set @periodo_empleados_hasta = convert(int,substring(convert(char,@ultimo_mes_empleados),3,2)+substring(convert(char,@ultimo_mes_empleados),6,2))
 select @periodo_empleados_desde as empleados_desde, @periodo_empleados_hasta as empleados_hasta 
/* Empleados */
if (@empleados = 'S') 
begin
 DECLARE p_cuits CURSOR FOR
   select cuit 
   from procesos_cuit 
   inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 
   --and p.tipo_persona = 'J'
   where cliente = @cliente and fecha = @fecha         
 OPEN p_cuits
 FETCH NEXT FROM p_cuits INTO @cuit
 WHILE @@fetch_status = 0
 BEGIN 
  select top 1 @periodo = periodo, @cantidad = COUNT(distinct cuil) 
    from empleados 
   where empleados.cuit = @cuit
     and periodo between @periodo_empleados_desde and @periodo_empleados_hasta
     and visible = 1
     group by periodo
     order by 2 desc, 1 desc

  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuit as cuit, b.nombre_persona as sociedad, 
    cuil as cuit_relacionado, a.nombre_persona as nombre_relacionado, 'EMPLEADO' as cargo, 'R'
    from  empleados  
    inner join padrones a on a.identificacion = cuil and a.habilitado = 1
     inner join padrones b on b.identificacion = cuit and b.habilitado = 1
    where empleados.cuit = @cuit
    and empleados.periodo = @periodo
    and empleados.visible = 1 
  FETCH NEXT FROM p_cuits INTO @cuit
 END 
 CLOSE p_cuits
 DEALLOCATE p_cuits
END 
/* Empleados de */
if (@empleados_de = 'S') 
begin
 DECLARE p_cuils CURSOR FOR
   select cuit 
   from procesos_cuit 
   inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1-- and p.tipo_persona = 'F'
   where cliente = @cliente and fecha = @fecha         
 OPEN p_cuils
 FETCH NEXT FROM p_cuils INTO @cuit
 WHILE @@fetch_status = 0
 BEGIN 
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, hasta, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuil as cuit, a.nombre_persona as sociedad, 
    cuit as cuit_relacionado, b.nombre_persona as nombre_relacionado, 'EMPLEADO DE' as cargo, max(periodo) as hasta, 'R' as r
    from  empleados  
    inner join padrones a on a.identificacion = cuil and a.habilitado = 1
     inner join padrones b on b.identificacion = cuit and b.habilitado = 1
    where empleados.cuil = @cuit
    and periodo between @periodo_empleados_desde and @periodo_empleados_hasta
    /*and periodo = (select max(periodo) from empleados b
                       where b.cuil = @cuit 
         and b.visible = 1 
                         and b.periodo between @periodo_empleados_desde and @periodo_empleados_hasta)*/

    and empleados.visible = 1 
    group by  
    cuil, a.nombre_persona, 
    cuit, b.nombre_persona 

  FETCH NEXT FROM p_cuils INTO @cuit
 END 
 CLOSE p_cuils
 DEALLOCATE p_cuils
end 

if (@parientes = 'S') 
begin

 insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuil_Activo as cuit, b.nombre_persona as sociedad, 
    cuilrelacionado as cuit_relacionado, a.nombre_persona as nombre_relacionado, 
    case ltrim(rtrim(descrelacion))
     when null then 'FAMILIAR'
     when ''   then 'FAMILIAR'
     when 'HIJO/A' then 'PADRE/HIJO'
     else ltrim(rtrim(descrelacion))
    end as cargo, 'P'
    from  obrasSociales os
     inner join padrones a on a.identificacion = cuilrelacionado and a.habilitado = 1
     inner join padrones b on b.identificacion = cuil_Activo and b.habilitado = 1

    where os.cuil_Activo != os.cuilrelacionado and 
     os.cuil_Activo  
     in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
       and not exists (select * from procesos_cuit_enrichment_datos_simples_socios z
    where z.cliente = @cliente 
    and z.fecha_proceso = @fecha 
    and z.cuit  = cuil_Activo
    and z.cuit_relacionado = cuilrelacionado) 


  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuilrelacionado  as cuit, a.nombre_persona as sociedad, 
    cuil_Activo as cuit_relacionado, b.nombre_persona as nombre_relacionado, 
    case ltrim(rtrim(descrelacion))
     when null then 'FAMILIAR'
     when ''   then 'FAMILIAR'
     when 'HIJO/A' then 'PADRE/HIJO'
     else ltrim(rtrim(descrelacion))
    end as cargo, 'P'
    from  obrasSociales os
     inner join padrones a on a.identificacion = cuilrelacionado and a.habilitado = 1
     inner join padrones b on b.identificacion = cuil_Activo and b.habilitado = 1

    where os.cuil_Activo != os.cuilrelacionado and 
     os.cuilrelacionado  
     in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
       and not exists (select * from procesos_cuit_enrichment_datos_simples_socios z
    where z.cliente = @cliente 
    and z.fecha_proceso = @fecha 
    and z.cuit  = cuilrelacionado 
    and z.cuit_relacionado = cuil_Activo) 


  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuilti as cuit, b.nombre_persona as sociedad, 
    c.identificacion as cuit_relacionado, c.nombre_persona as nombre_relacionado, 'FAMILIAR' as cargo, 'P'
    from  obras_sociales_beneficiarios os
     inner join padrones b on b.identificacion = cuilti and b.habilitado = 1
     inner join padrones c on c.identificacion = NRODOC and b.habilitado = 1
    where os.cuilti != c.identificacion and 
     os.cuilti  
     in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
   and LEN(nrodoc) = 11
   and not exists (select * from procesos_cuit_enrichment_datos_simples_socios z
    where z.cliente = @cliente 
    and z.fecha_proceso = @fecha 
    and z.cuit  = cuilti
    and z.cuit_relacionado = c.identificacion) 

      
  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    cuilti as cuit, b.nombre_persona as sociedad, 
    c.identificacion as cuit_relacionado, c.nombre_persona as nombre_relacionado, 'FAMILIAR' as cargo, 'P'
    from  obras_sociales_beneficiarios os
     inner join padrones b on b.identificacion = cuilti and b.habilitado = 1
     inner join padrones c on (c.cuerpo_clave = NRODOC and b.habilitado = 1 and not exists (select * from padrones d where d.cuerpo_clave = NRODOC and d.habilitado = 1 and d.identificacion != c.identificacion))
    where os.cuilti != c.identificacion and 
     os.cuilti 
     in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
   and LEN(nrodoc) < 11
   and not exists (select * from procesos_cuit_enrichment_datos_simples_socios z
    where z.cliente = @cliente 
    and z.fecha_proceso = @fecha 
    and z.cuit  = cuilti
    and z.cuit_relacionado = c.identificacion) 

  insert into procesos_cuit_enrichment_datos_simples_socios(cliente, fecha_proceso, cuit, nombre, cuit_relacionado, nombre_relacionado, cargo, relacionado_pariente)
  select distinct 
    @cliente as cliente, @fecha as fecha_proceso, 
    NRODOC  as cuit, a.nombre_persona as sociedad, 
    cuilti  as cuit_relacionado, b.nombre_persona as nombre_relacionado, 'FAMILIAR' as cargo, 'P'
    from  obras_sociales_beneficiarios os
    inner join padrones a on a.identificacion = NRODOC and a.habilitado = 1
     inner join padrones b on b.identificacion = cuilti and b.habilitado = 1    
    where os.cuilti != os.nrodoc and 
     os.nrodoc   
     in (select cuit 
          from procesos_cuit 
       inner join padrones p on p.identificacion = procesos_cuit.cuit and p.habilitado = 1 and p.tipo_persona = 'F'
       where cliente = @cliente and fecha = @fecha 
         )
   and not exists (select * from procesos_cuit_enrichment_datos_simples_socios z
    where z.cliente = @cliente 
    and z.fecha_proceso = @fecha 
    and z.cuit  = NRODOC
    and z.cuit_relacionado = cuilti) 


  
end 



/* Final 

select cuit as 'CUIT/CUIL', 
       nombre as 'Razón Social / Nombre', 
       cuit_relacionado as 'CUIT/CUIL relacionada', 
   nombre_relacionado as 'Razón Social / Nombre relacionada' , 
   cargo as 'Relación', 
   isnull(desde,'') as 'desde'/*, 
   isnull(hasta,'') as 'hasta'*/

    from procesos_cuit_enrichment_datos_simples_socios a
where a.cliente = @cliente 
  and a.fecha_proceso = @fecha 
  -- Este no exists, es por si salio en el primer proceso de las relaciones
  -- donde esta persona salio ya como relacionado con la misma empresa 
  AND not exists (select * from procesos_cuit_enrichment_datos_simples_socios b 
  where b.cuit = a.cuit_relacionado and b.cuit_relacionado = a.cuit and b.fecha_proceso < a.fecha_proceso) 

order by nombre, nombre_relacionado
*/

 

 /* -- proceso CCU (Chile) --> Devuelve "SIN DATOS" lo que no se encontró nada
  select c.cuit as 'CUIT/CUIL', 
         p.nombre_persona as 'Razón Social / Nombre', 
         isnull(e.cuit_relacionado, 'SIN DATOS') as 'CUIT/CUIL relacionada', 
     isnull(e.nombre_relacionado, 'SIN DATOS') as 'Razón Social / Nombre relacionada' , 
     isnull(e.cargo, 'SIN DATOS') as 'Relación', 
     isnull(e.desde, '') as 'desde'/*, 
     isnull(e.hasta,'') as 'hasta'*/

     from procesos_cuit c
     inner join padrones p on p.identificacion = c.cuit and p.habilitado = 1 
     left join procesos_cuit_enrichment_datos_simples_socios e 
               on e.cliente = c.cliente and e.fecha_proceso = c.fecha and e.cuit = c.cuit
   -- Estos not exists, es por si salio en el primer proceso de las relaciones
       -- la misma relacion de la persona con la empresa, o la empresa con la persona
   AND not exists (select * from procesos_cuit_enrichment_datos_simples_socios b 
                           where b.cuit = e.cuit_relacionado and b.cuit_relacionado = e.cuit and b.fecha_proceso < e.fecha_proceso) 
   AND not exists (select * from procesos_cuit_enrichment_datos_simples_socios b2 
                           where b2.cuit_relacionado = e.cuit_relacionado and b2.cuit = e.cuit and b2.fecha_proceso < e.fecha_proceso) 
  where c.cliente = @cliente 
    and c.fecha = @fecha 
 
  order by p.nombre_persona, e.nombre_relacionado
  */

 -- Devuelve todo lo que tiene datos 
 select distinct cuit, 
   a.nombre_persona as nombre, 
         cuit_relacionado, 
         b.nombre_persona as nombre_relacionado, 
   cargo, desde, hasta, relacionado_pariente 
   from 
   procesos_cuit_enrichment_datos_simples_socios 
   left join padrones a on a.identificacion = procesos_cuit_enrichment_datos_simples_socios.cuit and a.habilitado = 1
   left join padrones b on b.identificacion = procesos_cuit_enrichment_datos_simples_socios.cuit_relacionado and b.habilitado = 1
   where cliente = @cliente 
     and fecha_proceso = @fecha 
     and cuit != cuit_relacionado
  order by cuit, cuit_relacionado


END 

/*
Actuacion Empleados 

select distinct a.cuit as CUIT, a.nombre as Nombre, cargo as 'Relación', 
                cuit_relacionado as 'CUIT relacionado', nombre_relacionado as 'Nombre relacionado'
,iif(b.cuit is not null,'VENDOR','') as 'Vendor?'
from 
procesos_cuit_enrichment_datos_simples_socios a
left outer join procesos_cuit b on (b.Cuit = a.cuit_relacionado
and b.cliente = 5999321
  and b.fecha = '2019-11-12')
where a.cliente = 5999321
  and a.fecha_proceso = '2019-11-11'

*/


/*
Actuacion Parientes Empleados 

select distinct a.cuit as CUIT, a.nombre as Nombre, cargo as 'Relación', 
                cuit_relacionado as 'CUIT relacionado', nombre_relacionado as 'Nombre relacionado'
,iif(b.cuit is not null,'VENDOR','') as 'Vendor?'
from 
procesos_cuit_enrichment_datos_simples_socios a
left outer join procesos_cuit b on (b.Cuit = a.cuit_relacionado
and b.cliente = 5999321
  and b.fecha = '2019-11-12')
where a.cliente = 5999321
  and a.fecha_proceso = '2019-11-13'

*/

GO

Used By

No items found