dbo.socios_enriquecer_08082024

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@accion varchar 50
@cliente int 4
@dias int 4
@p_fecha date 3
@todo_filtrado char 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
insert into clientes_enriquecer_socios values (5546348) 
select * from socios where c01_cuit = '800847903'
exec [socios_enriquecer] 'clientes_enriquecer_socios_asignados'
exec [socios_enriquecer] 'clientes_enriquecer_socios_disponibles'
exec [socios_enriquecer] 'fechas', 2046807993,150,'2024-03-01'
exec [socios_enriquecer] 'cuits', 431136419,150,'2024-05-23','F'
exec [socios_enriquecer] 'cuits', 2046807993,150,'2024-03-05','F'
exec [socios_enriquecer] 'select', 2046807993,150,NULL,'T'
exec [socios_enriquecer] 'select', 2046807993,150,NULL,'F'


select * from clientes where cli_codigo = 2000

select ln_contrapartes.id_padron, identificacion, nombre_persona, ln_contrapartes.contraparte, ln_contrapartes.country_code
from ln_contrapartes
inner join ln_gestiones on (ln_gestiones.contraparte = LN_contrapartes.contraparte and vigente = 1)
inner join padrones on padrones.id_padron = ln_contrapartes.id_padron
 where ln_contrapartes.cliente = 431136419 and ln_contrapartes.activo = 1 and ln_contrapartes.country_code = 'AR'


select * from socios where c01_cuit = '30708006080'

select * from clientes where cli_codigo = 97 

--select distinct cliente from procesos_cuit where fecha in ( '2023-05-16' , '2023-05-17') 

obtener_edictos_homonimos_conid '"TRIBIOLOGIA"'

selct 

*/


/*

@accion = 'select_TODOS' 
El excel con TODAS las contrapartes del @cliente que son empresas de Argentina. (si no se manda el @cliente, toma todos los clientes de la tabla clientes_enriquecer_socios)
Todas, sin filtros si fueron actualizadas en los últimos @dias dias.

@accion = 'select_anterior' 
El excel con las contrapartes del @cliente que son empresas de Argentina.  (si no se manda el @cliente, toma todos los clientes de la tabla clientes_enriquecer_socios)
CON filtros si fueron actualizadas en los últimos @dias dias.

@accion = 'cuits'
Se usa para procesos de Screening. 
Este si se definieron muchos filtros:
- que no haya sido actualizado en los últimos 45 días
- que la fecha del ultimo boletin sea posterior a la ultima actualizacion de directorios 
-     ó que la fecha de ultimo boletin este vacia 
-     ó que la fecha de ultima actualizacion de directorio este vacia 
--> Pero si se manda el parámetro @
todo_filtrado como 'F': 
----     Eliminamos todos los que no tienen Boletin, ni Boletín ni por Homonimia
----  y si son 'CIUDAD AUTONOMA BUENOS AIRES','BUENOS AIRES','CORDOBA','MENDOZA','SANTA FE' tambien los eliminamos porque se supone que estan procesados


*/

CREATE OR ALTER PROCEDURE dbo.socios_enriquecer_08082024
@accion varchar(50) = 'select',
@cliente int = null, 
@dias int = 150 , 
@p_fecha date = null,
@todo_filtrado char(1) = 'F' -- Si se quiere sin Filtrar los que no tienen Homonimia mandar 'T', si se quiere filtrado 'F'
AS


BEGIN
 SET NOCOUNT ON;

 declare @resultado table (id int IDENTITY(1,1), COD_CLIENTE int, CLIENTE varchar(500), CLI_CODIGO int,  CUIT varchar(20), 
                           CONTRAPARTE varchar(500), country_code char(3), pais varchar(100), 
         nombre_familia varchar(200), provincia varchar(200), ultima_actualizacion date, boletin_ultima_fecha date, boletin_provincia varchar(200))

 DECLARE @ID int = NULL 
 DECLARE @COD_CLIENTE int = NULL 
 DECLARE @CLI_NOMBRE varchar(500) = NULL 
 DECLARE @CLI_CODIGO int = NULL 
 DECLARE @CUIT varchar(20) = NULL 
 DECLARE @CONTRAPARTE varchar(500) = NULL 
 DECLARE @country_code char(3) = NULL 
 DECLARE @pais varchar(100) = NULL 
 DECLARE @nombre_familia varchar(200) = NULL 
 DECLARE @provincia varchar(200) = NULL 
 DECLARE @ultima_actualizacion date = NULL 
 DECLARE @boletin_ultima_fecha date = NULL 
 DECLARE @boletin_provincia varchar(200) = NULL 

 if (@accion = 'fechas') begin

  select procesos_cuit.cliente, clientes.nombre_cliente, fecha, count(distinct procesos_cuit.cuit) as cantidad 
   from procesos_cuit 
   inner join padrones on (padrones.identificacion = procesos_cuit.cuit and padrones.tipo_persona = 'J' and padrones.habilitado = 1) 
   left join identificadores on identificadores.identificador = padrones.identificador 
   left join clientes on clientes.cliente = procesos_cuit.cliente
   where procesos_cuit.cliente = @cliente and fecha > getdate() - @dias
   and identificadores.country_code = 'AR'


  group by procesos_cuit.cliente, clientes.nombre_cliente, fecha
  order by procesos_cuit.cliente, fecha desc

 end 


 if (@accion = 'clientes_enriquecer_socios_disponibles') begin
 
   select c.cliente, c.nombre_cliente, c.cli_codigo 
   from clientes_productos p
   inner join clientes c on c.cliente = p.cliente 
   where p.id_producto = 47 and p.cliente = c.cliente and p.activo = 1
   and c.estado_cliente = 'A'
   and not exists (select * from clientes_enriquecer_socios a where a.cliente = c.cliente)  
   order by nombre_cliente

 end

 if (@accion = 'clientes_enriquecer_socios_asignados') begin
   select c.cliente, c.nombre_cliente, c.cli_codigo 
   from clientes_productos p
   inner join clientes c on c.cliente = p.cliente 
   where p.id_producto = 47 and p.cliente = c.cliente and p.activo = 1
   and c.estado_cliente = 'A'
   and exists (select * from clientes_enriquecer_socios a where a.cliente = c.cliente)  
   order by nombre_cliente
 end

 if (@accion = 'agregar') begin

  insert into clientes_enriquecer_socios 
   select cliente
   from clientes  
   where cliente = @cliente
   and not exists (select * from clientes_enriquecer_socios where cliente = @cliente) 

 end

 if (@accion = 'sacar') begin
  delete from clientes_enriquecer_socios 
   where cliente = @cliente
 end
 
 declare @fecha date = dateadd(day,@dias*(-1),getdate())
 declare @clientes table (cliente int)
 if (@cliente is not null) 
 begin
  insert into @clientes values (@cliente)
 end 
 else
 begin
  insert into @clientes select cliente from clientes_enriquecer_socios
 end 

 if (@accion = 'select_anterior') begin


  select distinct ln_contrapartes.cliente as COD_CLIENTE, clientes.nombre_cliente as CLIENTE, clientes.cli_codigo as CLI_CODIGO,
  padrones.identificacion CUIT, padrones.nombre_persona as CONTRAPARTE, ln_contrapartes.country_code, upper(country.country_name) as pais, ln_familias.nombre_familia, 
-- 22/02/2024 agregamos provincia (prioritariamente Fiscal, sino Legal) 
     (select top 1 prv_nombre 
   from domicilios_todos 
     where cuit = padrones.identificacion 
    and visible = 1 
    and domicilio not like '-[0-9][0-9],%'
    and domicilio not like 'RESIDE EN' 
    and domicilio not like 'DOMICILIADA EN%'
    and domicilio not like 'SIN DOMICILIO%'
    and (tipo_domicilio = 'L' or tipo_domicilio = 'F') and len(prv_nombre) > 2
     order by tipo_domicilio, created desc) as provincia,

     (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)
    
  as ultima_actualizacion , 

  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) as boletin_ultima_fecha, 
  (select top 1 IIF(provincias.prv_nombre is null, sociedades_constituciones.provincia_sociedad, provincias.prv_nombre)
    from sociedades_constituciones
      left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54

   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
         and fuente is not null 
      and fecha_publicacion = (select MAX(fecha_publicacion) 
            from sociedades_constituciones
           where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
           )
   ) as boletin_provincia 

  from ln_contrapartes
  left join country on (country.country_code = ln_contrapartes.country_code)
  inner join clientes on (clientes.cliente = ln_contrapartes.cliente and clientes.estado_cliente = 'A')
  inner join ln_contraparte_familias on (ln_contraparte_familias.contraparte = ln_contrapartes.contraparte and LN_contraparte_familias.activo = 1) 
  inner join ln_familias on (ln_familias.familia = ln_contraparte_familias.familia and LN_familias.visible = 1 and LN_familias.servicio_contratado = 47)  
  inner join padrones on (padrones.id_padron = ln_contrapartes.id_padron and padrones.tipo_persona = 'J') 
  
  where ln_contrapartes.cliente in (select cliente from @clientes) 
  and ln_contrapartes.activo = 1 
  and ln_contrapartes.subcontratista = 0 
  and 
  (
  not exists (select * from socios where socios.c01_cuit = padrones.identificacion and visible = 1)
  or 
  (
   (select MAX(isnull(socios.created, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
   and 
   (select MAX(isnull(socios.modified, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
  )
  )
  and 
  (
  not exists (select * from ultima_revision_socios where cuit = padrones.identificacion)
  or (select fecha from ultima_revision_socios where cuit = padrones.identificacion) < @fecha
  )

  and ln_contrapartes.country_code = 'AR'
  --and padrones.identificacion = '30709151041'
  order by clientes.nombre_cliente, padrones.nombre_persona
 end 


 if (@accion = 'select_TODOS') begin
  select distinct ln_contrapartes.cliente as COD_CLIENTE, clientes.nombre_cliente as CLIENTE, clientes.cli_codigo as CLI_CODIGO,
  padrones.identificacion CUIT, padrones.nombre_persona as CONTRAPARTE, ln_contrapartes.country_code, upper(country.country_name) as pais, ln_familias.nombre_familia, 
-- 22/02/2024 agregamos provincia (prioritariamente Fiscal, sino Legal) 
     (select top 1 prv_nombre 
   from domicilios_todos 
     where cuit = padrones.identificacion 
    and visible = 1 
    and domicilio not like '-[0-9][0-9],%'
    and domicilio not like 'RESIDE EN' 
    and domicilio not like 'DOMICILIADA EN%'
    and domicilio not like 'SIN DOMICILIO%'
    and (tipo_domicilio = 'L' or tipo_domicilio = 'F') and len(prv_nombre) > 2
     order by tipo_domicilio, created desc) as provincia,

     (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)
    
  as ultima_actualizacion , 

  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) as boletin_ultima_fecha, 
  (select top 1 IIF(provincias.prv_nombre is null, sociedades_constituciones.provincia_sociedad, provincias.prv_nombre)
    from sociedades_constituciones
      left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54

   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
         and fuente is not null 
      and fecha_publicacion = (select MAX(fecha_publicacion) 
            from sociedades_constituciones
           where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
           )
   ) as boletin_provincia 

  from ln_contrapartes
  left join country on (country.country_code = ln_contrapartes.country_code)
  inner join clientes on (clientes.cliente = ln_contrapartes.cliente and clientes.estado_cliente = 'A')
  inner join ln_contraparte_familias on (ln_contraparte_familias.contraparte = ln_contrapartes.contraparte and LN_contraparte_familias.activo = 1) 
  inner join ln_familias on (ln_familias.familia = ln_contraparte_familias.familia and LN_familias.visible = 1 and LN_familias.servicio_contratado = 47)  
  inner join padrones on (padrones.id_padron = ln_contrapartes.id_padron and padrones.tipo_persona = 'J') 
  
  where ln_contrapartes.cliente in (select cliente from @clientes) 
  and ln_contrapartes.activo = 1 
  and ln_contrapartes.subcontratista = 0 
  /*
   and 
   (
   not exists (select * from socios where socios.c01_cuit = padrones.identificacion and visible = 1)
   or 
   (
   (select MAX(isnull(socios.created, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
   and 
   (select MAX(isnull(socios.modified, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
   )
   )
   and 
   (
   not exists (select * from ultima_revision_socios where cuit = padrones.identificacion)
   or (select fecha from ultima_revision_socios where cuit = padrones.identificacion) < @fecha
   )
   */

  and ln_contrapartes.country_code = 'AR'
  --and padrones.identificacion = '30709151041'
  order by clientes.nombre_cliente, padrones.nombre_persona
 end 






 if (@accion = 'select') begin

  insert into @resultado (COD_CLIENTE,CLIENTE,CLI_CODIGO,CUIT, 
                             CONTRAPARTE,country_code,pais,
           nombre_familia,provincia,ultima_actualizacion,boletin_ultima_fecha,boletin_provincia)


   select distinct /*ln_contrapartes.cliente as COD_CLIENTE,*/LN_contrapartes.contraparte, clientes.nombre_cliente as CLIENTE, clientes.cli_codigo as CLI_CODIGO,
  padrones.identificacion CUIT, padrones.nombre_persona as CONTRAPARTE, ln_contrapartes.country_code, upper(country.country_name) as pais, ln_familias.nombre_familia, 
-- 22/02/2024 agregamos provincia (prioritariamente Fiscal, sino Legal) 
     (select top 1 prv_nombre 
   from domicilios_todos 
     where cuit = padrones.identificacion 
    and visible = 1 
    and domicilio not like '-[0-9][0-9],%'
    and domicilio not like 'RESIDE EN' 
    and domicilio not like 'DOMICILIADA EN%'
    and domicilio not like 'SIN DOMICILIO%'
    and (tipo_domicilio = 'L' or tipo_domicilio = 'F') and len(prv_nombre) > 2
     order by tipo_domicilio, created desc) as provincia,

     (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)
    
  as ultima_actualizacion , 

  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) as boletin_ultima_fecha, 
  (select top 1 IIF(provincias.prv_nombre is null, sociedades_constituciones.provincia_sociedad, provincias.prv_nombre)
    from sociedades_constituciones
      left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54

   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
         and fuente is not null 
      and fecha_publicacion = (select MAX(fecha_publicacion) 
            from sociedades_constituciones
           where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
           )
   ) as boletin_provincia 

  from ln_contrapartes
  left join country on (country.country_code = ln_contrapartes.country_code)
  inner join clientes on (clientes.cliente = ln_contrapartes.cliente and clientes.estado_cliente = 'A')
  inner join ln_contraparte_familias on (ln_contraparte_familias.contraparte = ln_contrapartes.contraparte and LN_contraparte_familias.activo = 1) 
  inner join ln_familias on (ln_familias.familia = ln_contraparte_familias.familia and LN_familias.visible = 1 and LN_familias.servicio_contratado = 47)  
  inner join padrones on (padrones.id_padron = ln_contrapartes.id_padron and padrones.tipo_persona = 'J') 
  
  where ln_contrapartes.cliente in (select cliente from clientes_enriquecer_socios) 
  and ln_contrapartes.activo = 1 
  and ln_contrapartes.subcontratista = 0 
  and 
  (
  not exists (select * from socios where socios.c01_cuit = padrones.identificacion and visible = 1)
  or 
  (
   (select MAX(isnull(socios.created, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
   and 
   (select MAX(isnull(socios.modified, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
  )
  )
  and 
  (
  not exists (select * from ultima_revision_socios where cuit = padrones.identificacion)
  or (select fecha from ultima_revision_socios where cuit = padrones.identificacion) < @fecha
  )

  and ln_contrapartes.country_code = 'AR'
  --and padrones.identificacion = '30709151041'

  -- Si tiene tilde de menos de 45 dias quedan afuera 
  -- (definido por Alejandro el 28/03/2024 porque felix decia que si tiene tilde ya esta, ya se reviso, queda afuera, no se entiende que puede estar revisado por un screening anterior)
  and 
  (
  (select max(fecha) from ultima_revision_socios where cuit = padrones.identificacion) is null 
  or 
  (select max(fecha) from ultima_revision_socios where cuit = padrones.identificacion) < getdate() - 45
  ) 
  --
  

  and 
  
  -- Que la fecha del ultimo boletin sea posterior a la ultima actualizacion de directorios 
  (
  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) 
   
   >   

  (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)

/* ESTO */

  or  
  -- que la fecha de ultimo boletin este vacia 
  (
  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) is null 
  )

  or 
  -- que la fecha de ultima actualizacion de directorio este vacia 
  (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc) is null


  ) 
  
  order by clientes.nombre_cliente, padrones.nombre_persona


 end 

 declare @procesos_cuit table (cliente int, cuit varchar(20))
 if (@accion = 'subcontratistas') 
 begin
  insert into @procesos_cuit 
   exec [Subcontratistas_enriquecer_] 'PROCESAR', @cliente 
 end 
 
 if (@accion = 'cuits') 
 begin
  insert into @procesos_cuit 
   select cliente, cuit from procesos_cuit
    where procesos_cuit.cliente = @cliente and procesos_cuit.fecha = @p_fecha  
 end 
 
 if (@accion = 'cuits' or @accion = 'subcontratistas') begin

   
  insert into @resultado (COD_CLIENTE,CLIENTE,CLI_CODIGO,CUIT, 
                             CONTRAPARTE,country_code,pais,
           nombre_familia,provincia,ultima_actualizacion,boletin_ultima_fecha,boletin_provincia)

  select distinct clientes.cliente as COD_CLIENTE, clientes.nombre_cliente as CLIENTE, clientes.cli_codigo as CLI_CODIGO,
  padrones.identificacion CUIT, padrones.nombre_persona as CONTRAPARTE, identificadores.country_code, upper(country.country_name) as pais, 'SCREENING' as nombre_familia, 
  -- 22/02/2024 agregamos provincia (prioritariamente Fiscal, sino Legal) 
     (select top 1 prv_nombre 
   from domicilios_todos 
     where cuit = padrones.identificacion 
    and visible = 1 
    and domicilio not like '-[0-9][0-9],%'
    and domicilio not like 'RESIDE EN' 
    and domicilio not like 'DOMICILIADA EN%'
    and domicilio not like 'SIN DOMICILIO%'
    and (tipo_domicilio = 'L' or tipo_domicilio = 'F') and len(prv_nombre) > 2
     order by tipo_domicilio, created desc) as provincia,
     (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)
    
  as ultima_actualizacion , 

  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) as boletin_ultima_fecha, 
  (select top 1 IIF(provincias.prv_nombre is null, sociedades_constituciones.provincia_sociedad, provincias.prv_nombre)
    from sociedades_constituciones
      left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54

   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
         and fuente is not null 
      and fecha_publicacion = (select MAX(fecha_publicacion) 
            from sociedades_constituciones
           where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
           )
   ) as boletin_provincia

  from @procesos_cuit procesos_cuit 
  inner join padrones on (padrones.identificacion = procesos_cuit.cuit and padrones.tipo_persona = 'J' and padrones.habilitado = 1) 
  left join identificadores on identificadores.identificador = padrones.identificador 
  left join country on (country.country_code = identificadores.country_code)
  inner join clientes on (clientes.cliente = procesos_cuit.cliente)
  
  where
  /*
   -- lo sacamos porque en @procesos_cuit ya esta ese filtro 
   procesos_cuit.cliente = @cliente and procesos_cuit.fecha = @p_fecha  
   and 
   */


  /*
   and 
   (
   not exists (select * from socios where socios.c01_cuit = padrones.identificacion and visible = 1)
   or 
   (
   (select MAX(isnull(socios.created, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
   and 
   (select MAX(isnull(socios.modified, '1900-01-01')) from socios where socios.c01_cuit = padrones.identificacion and visible = 1) < @fecha
   )
   )
   and 
   (
   not exists (select * from ultima_revision_socios where cuit = padrones.identificacion)
   or (select fecha from ultima_revision_socios where cuit = padrones.identificacion) < @fecha
   )
   */

  
  identificadores.country_code = 'AR'
  --and padrones.identificacion = '30709151041'
  
  -- Si tiene tilde de menos de 45 dias quedan afuera 
  -- (definido por Alejandro el 28/03/2024 porque felix decia que si tiene tilde ya esta, ya se reviso, queda afuera, no se entiende que puede estar revisado por un screening anterior)
  and 
  (
  (select max(fecha) from ultima_revision_socios where cuit = padrones.identificacion) is null 
  or 
  (select max(fecha) from ultima_revision_socios where cuit = padrones.identificacion) < getdate() - 45
  ) 
  --
  

  and 
  
  -- Que la fecha del ultimo boletin sea posterior a la ultima actualizacion de directorios 
  (
  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) 
   
   >   

  (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)

/* ESTO */

  or  
  -- que la fecha de ultimo boletin este vacia 
  (
  (select MAX(fecha_publicacion) 
    from sociedades_constituciones
   where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
   ) is null 
  )

  or 
  -- que la fecha de ultima actualizacion de directorio este vacia 
  (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
     iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
     ,convert(date,MAX(socios.created)),
     convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc) is null


  ) 
  
  order by clientes.nombre_cliente, padrones.nombre_persona

end


if (@accion = 'cuits' or @accion = 'subcontratistas' or @accion = 'select') begin
  -- Eliminamos todos los que no tienen Boletin ni por Homonimia, si se quiere dejar como estaba antes, sacar este Cursor 

  if @todo_filtrado = 'F'
  begin
   DECLARE Buscar CURSOR FOR
   select * from @resultado

   Open Buscar
   Fetch next from Buscar into @ID,
          @COD_CLIENTE,
          @CLI_NOMBRE,
          @CLI_CODIGO,
          @CUIT,
          @CONTRAPARTE,
          @country_code,
          @pais,
          @nombre_familia,
          @provincia,
          @ultima_actualizacion,
          @boletin_ultima_fecha,
          @boletin_provincia
  
   declare @nombre varchar(500) = NULL 
  
   WHILE @@FETCH_STATUS = 0 
   BEGIN
     if 2=1 --(@provincia in ('CIUDAD AUTONOMA BUENOS AIRES','BUENOS AIRES','CORDOBA','MENDOZA','SANTA FE'/*,'CATAMARCA','RIO NEGRO','SALTA'*/) and @boletin_ultima_fecha is null)
     begin
      DELETE FROM @resultado where id = @ID
     end
     else 
     begin
      if (@boletin_ultima_fecha is null)
      BEGIN
       select @nombre = [dbo].[Eliminar_omitidos_sinonimos](@CONTRAPARTE)
       if (@nombre is not null)
       begin
        set @nombre = '"' + LTRIM(rtrim(@nombre)) + '"'
        if (
         (select COUNT(*) 
         from sociedades_constituciones  
         where (documento_soc is null or documento_soc = '') and (contains(razon_social,@nombre)) and sociedades_constituciones.visible = 1) = 0
         and 
         (select COUNT(*) 
         from sociedades_constituciones  
         where (documento_soc is null or documento_soc = '') and (contains(contenido_archivo,@nombre)) and sociedades_constituciones.visible = 1) = 0
         )
        begin
         -- se paso aca abajo
         if (@provincia in ('CIUDAD AUTONOMA BUENOS AIRES','BUENOS AIRES','CORDOBA','MENDOZA','SANTA FE'/*,'CATAMARCA','RIO NEGRO','SALTA'*/))
         begin 
          DELETE FROM @resultado where id = @ID
         end
        end 
       end 
      end
     end 
     
     Fetch next from Buscar into @ID,
            @COD_CLIENTE,
            @CLI_NOMBRE,
            @CLI_CODIGO,
            @CUIT,
            @CONTRAPARTE,
            @country_code,
            @pais,
            @nombre_familia,
            @provincia,
            @ultima_actualizacion,
            @boletin_ultima_fecha,
            @boletin_provincia


   END 
   CLOSE Buscar
   DEALLOCATE Buscar
  
  end
  SELECT * FROM @resultado


 end
 /*
 
 
  if (@accion = 'listas') begin
 
  insert into @resultado (COD_CLIENTE,CLIENTE,CLI_CODIGO,CUIT,
                              CONTRAPARTE,country_code,pais,
      nombre_familia,provincia,ultima_actualizacion,boletin_ultima_fecha,boletin_provincia)
 
 
  select distinct ln_contrapartes.cliente as COD_CLIENTE,LN_contrapartes.contraparte, clientes.nombre_cliente as CLIENTE, clientes.cli_codigo as CLI_CODIGO,
  padrones.identificacion CUIT, padrones.nombre_persona as CONTRAPARTE, ln_contrapartes.country_code, upper(country.country_name) as pais, ln_familias.nombre_familia, 
 -- 22/02/2024 agregamos provincia (prioritariamente Fiscal, sino Legal) 
      (select top 1 prv_nombre 
  from domicilios_todos 
     where cuit = padrones.identificacion 
   and visible = 1 
   and domicilio not like '-[0-9][0-9],%'
  and domicilio not like 'RESIDE EN' 
  and domicilio not like 'DOMICILIADA EN%'
  and domicilio not like 'SIN DOMICILIO%'
   and (tipo_domicilio = 'L' or tipo_domicilio = 'F') and len(prv_nombre) > 2
     order by tipo_domicilio, created desc) as provincia,
 
      (select top 1 tabla.fecha from 
  (select iif(max(socios.created) is null and max(socios.modified) is null, MAX(convert(date,c04_fecha_act)), 
  iif(MAX(isnull(socios.created, '1900-01-01')) > MAX(isnull(socios.modified, '1900-01-01'))
  ,convert(date,MAX(socios.created)),
  convert(date,MAX(socios.modified)))) as fecha 
  from socios where socios.c01_cuit = padrones.identificacion
  union 
  select fecha from ultima_revision_socios where cuit = padrones.identificacion) tabla 
  order by fecha desc)
 
  as ultima_actualizacion , 
 
  (select MAX(fecha_publicacion) 
   from sociedades_constituciones
  where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
  ) as boletin_ultima_fecha, 
  (select top 1 IIF(provincias.prv_nombre is null, sociedades_constituciones.provincia_sociedad, provincias.prv_nombre)
   from sociedades_constituciones
      left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54
 
  where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
        and fuente is not null 
    and fecha_publicacion = (select MAX(fecha_publicacion) 
   from sociedades_constituciones
  where (documento_soc = padrones.identificacion or cuit_int = padrones.identificacion)
  )
  ) as boletin_provincia 
 
  from ln_contrapartes
  left join country on (country.country_code = ln_contrapartes.country_code)
  inner join clientes on (clientes.cliente = ln_contrapartes.cliente and clientes.estado_cliente = 'A')
  inner join ln_contraparte_familias on (ln_contraparte_familias.contraparte = ln_contrapartes.contraparte and LN_contraparte_familias.activo = 1) 
  inner join ln_familias on (ln_familias.familia = ln_contraparte_familias.familia and LN_familias.visible = 1 and LN_familias.servicio_contratado = 47)  
  inner join padrones on (padrones.id_padron = ln_contrapartes.id_padron and padrones.tipo_persona = 'J') 
 
  where ln_contrapartes.cliente = 2046807993 
  and ln_contrapartes.activo = 1 
  and ln_contrapartes.subcontratista = 0 
  and ln_contraparte_familias.familia = 348
  order by clientes.nombre_cliente, padrones.nombre_persona
 
 
  end 
  */


END 

GO

Used By

No items found