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
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
Depends On
17- dbo.Subcontratistas_enriquecer_
- dbo.Eliminar_omitidos_sinonimos
- dbo.clientes
- dbo.clientes_enriquecer_socios
- dbo.clientes_productos
- dbo.country
- dbo.domicilios_todos
- dbo.identificadores
- dbo.LN_contraparte_familias
- dbo.LN_contrapartes
- dbo.LN_familias
- dbo.padrones
- dbo.procesos_cuit
- dbo.provincias
- dbo.sociedades_constituciones
- dbo.socios
- dbo.ultima_revision_socios
Used By
No items found