Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| @cliente | int | 4 | |
| @fecha | date | 3 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [sp_comparo_domicilios_universo_paso1] '431136419', '2024-10-24'
delete from sp_comparo_domicilios_universo
*/
CREATE OR ALTER PROCEDURE dbo.sp_comparo_domicilios_universo_paso1
@cliente int,
@fecha date
AS
BEGIN
SET NOCOUNT ON;
declare @cuit varchar(20)
declare @nombre varchar(200)
declare @domicilios_uno table (id int, domicilio varchar(200), pai_nombre varchar(20), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
declare @domicilios_dos table (id int, domicilio varchar(200), pai_nombre varchar(20), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
declare @domicilio varchar(500) = null
declare @provincia varchar(200) = null, @localidad varchar(200) = null,
@codpos varchar(10) = null, @tipo_domicilio varchar(10) = null
declare @resultados_cuit table (cuit varchar(20), nombre varchar(200), buscar varchar(100), altura int)
declare @resultados table (cuit varchar(20), nombre varchar(200), domicilio varchar(200), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10))
declare @cuit_encontrado varchar(20), @nombre_encontrado varchar(200), @buscar varchar(100), @altura int
DECLARE C_busqueda CURSOR FOR
select distinct a.cuit, p.nombre_persona
from procesos_cuit a
inner join padrones p on p.identificacion = a.cuit and p.habilitado = 1 and p.identificador in (select identificador from identificadores where country_code = 'AR')
where a.cliente = @cliente
and a.fecha = @fecha
--and a.cuit = '20226344145'
and not exists (select * from sp_comparo_domicilios_universo r
where r.cliente = @cliente and r.fecha_proceso = @fecha and r.cuit = a.cuit)
order by a.cuit
OPEN C_busqueda
FETCH NEXT FROM C_busqueda INTO @cuit, @nombre
WHILE @@fetch_status = 0
BEGIN
delete from @domicilios_uno
insert into @domicilios_uno exec sp_obtener_domicilios @cuit
DECLARE C_DOM CURSOR FOR
select distinct upper(domicilio),
upper(prv_nombre),
upper(loc_nombre),
codpos,
tipo_domicilio
from @domicilios_uno d
where isnull(domicilio,'') != ''
and d.domicilio not like 'RESIDE EN'
and d.domicilio not like 'DOMICILIADA EN'
OPEN C_DOM
FETCH NEXT FROM C_DOM INTO @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio
WHILE @@fetch_status = 0
BEGIN
delete from @resultados_cuit
if (isnull(@domicilio,'') != '' and isnull(@provincia,'') != '')
begin
insert into @resultados_cuit
exec sp_comparo_domicilios_universo_ @domicilio, @provincia, @cuit
end
if (select count(*) from @resultados_cuit r) = 0
begin
insert into sp_comparo_domicilios_universo(
[cliente],
[fecha_proceso],
[cuit],
[nombre],
[domicilio],
[prv_nombre],
[loc_nombre],
[codpos],
[tipo_domicilio])
values (@cliente, @fecha, @cuit, @nombre, @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio)
end
else
begin
DECLARE C_padron_empresa CURSOR FOR
select distinct cuit,nombre,buscar,altura
from @resultados_cuit
OPEN C_padron_empresa
FETCH NEXT FROM C_padron_empresa INTO @cuit_encontrado, @nombre_encontrado, @buscar, @altura
WHILE @@fetch_status = 0
BEGIN
delete from @domicilios_dos
insert into @domicilios_dos exec sp_obtener_domicilios @cuit_encontrado
if (@provincia like 'CIUDAD%BUENOS AIRES')
set @provincia = 'CIUDAD%BUENOS AIRES'
insert into sp_comparo_domicilios_universo(
[cliente],
[fecha_proceso],
[cuit],
[nombre],
[domicilio],
[prv_nombre],
[loc_nombre],
[codpos],
[tipo_domicilio],
[cuit_empresa],
[nombre_empresa],
[domicilio_empresa],
[prv_nombre_empresa],
[loc_nombre_empresa],
[codpos_empresa],
[tipo_domicilio_empresa])
select @cliente, @fecha, @cuit, @nombre, @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio,
@cuit_encontrado, @nombre_encontrado,
d.domicilio, d.prv_nombre, d.loc_nombre, d.codpos, d.tipo_domicilio
from @domicilios_dos d
where prv_nombre like + '%' + @provincia + '%'
and domicilio like + '%' + @buscar + ' %' + iif(@altura is not null,cast(@altura as varchar)+'%','')
FETCH NEXT FROM C_padron_empresa INTO @cuit_encontrado, @nombre_encontrado, @buscar, @altura
END
CLOSE C_padron_empresa
DEALLOCATE C_padron_empresa
end
FETCH NEXT FROM C_DOM INTO @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio
end
CLOSE C_dom
DEALLOCATE C_dom
FETCH NEXT FROM C_busqueda INTO @cuit, @nombre
END
CLOSE C_busqueda
DEALLOCATE C_busqueda
END
GO
GO
/*
exec [sp_comparo_domicilios_universo_paso1] '431136419', '2024-10-24'
delete from sp_comparo_domicilios_universo
*/
CREATE OR ALTER PROCEDURE dbo.sp_comparo_domicilios_universo_paso1
@cliente int,
@fecha date
AS
BEGIN
SET NOCOUNT ON;
declare @cuit varchar(20)
declare @nombre varchar(200)
declare @domicilios_uno table (id int, domicilio varchar(200), pai_nombre varchar(20), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
declare @domicilios_dos table (id int, domicilio varchar(200), pai_nombre varchar(20), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
declare @domicilio varchar(500) = null
declare @provincia varchar(200) = null, @localidad varchar(200) = null,
@codpos varchar(10) = null, @tipo_domicilio varchar(10) = null
declare @resultados_cuit table (cuit varchar(20), nombre varchar(200), buscar varchar(100), altura int)
declare @resultados table (cuit varchar(20), nombre varchar(200), domicilio varchar(200), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10))
declare @cuit_encontrado varchar(20), @nombre_encontrado varchar(200), @buscar varchar(100), @altura int
DECLARE C_busqueda CURSOR FOR
select distinct a.cuit, p.nombre_persona
from procesos_cuit a
inner join padrones p on p.identificacion = a.cuit and p.habilitado = 1 and p.identificador in (select identificador from identificadores where country_code = 'AR')
where a.cliente = @cliente
and a.fecha = @fecha
--and a.cuit = '20226344145'
and not exists (select * from sp_comparo_domicilios_universo r
where r.cliente = @cliente and r.fecha_proceso = @fecha and r.cuit = a.cuit)
order by a.cuit
OPEN C_busqueda
FETCH NEXT FROM C_busqueda INTO @cuit, @nombre
WHILE @@fetch_status = 0
BEGIN
delete from @domicilios_uno
insert into @domicilios_uno exec sp_obtener_domicilios @cuit
DECLARE C_DOM CURSOR FOR
select distinct upper(domicilio),
upper(prv_nombre),
upper(loc_nombre),
codpos,
tipo_domicilio
from @domicilios_uno d
where isnull(domicilio,'') != ''
and d.domicilio not like 'RESIDE EN'
and d.domicilio not like 'DOMICILIADA EN'
OPEN C_DOM
FETCH NEXT FROM C_DOM INTO @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio
WHILE @@fetch_status = 0
BEGIN
delete from @resultados_cuit
if (isnull(@domicilio,'') != '' and isnull(@provincia,'') != '')
begin
insert into @resultados_cuit
exec sp_comparo_domicilios_universo_ @domicilio, @provincia, @cuit
end
if (select count(*) from @resultados_cuit r) = 0
begin
insert into sp_comparo_domicilios_universo(
[cliente],
[fecha_proceso],
[cuit],
[nombre],
[domicilio],
[prv_nombre],
[loc_nombre],
[codpos],
[tipo_domicilio])
values (@cliente, @fecha, @cuit, @nombre, @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio)
end
else
begin
DECLARE C_padron_empresa CURSOR FOR
select distinct cuit,nombre,buscar,altura
from @resultados_cuit
OPEN C_padron_empresa
FETCH NEXT FROM C_padron_empresa INTO @cuit_encontrado, @nombre_encontrado, @buscar, @altura
WHILE @@fetch_status = 0
BEGIN
delete from @domicilios_dos
insert into @domicilios_dos exec sp_obtener_domicilios @cuit_encontrado
if (@provincia like 'CIUDAD%BUENOS AIRES')
set @provincia = 'CIUDAD%BUENOS AIRES'
insert into sp_comparo_domicilios_universo(
[cliente],
[fecha_proceso],
[cuit],
[nombre],
[domicilio],
[prv_nombre],
[loc_nombre],
[codpos],
[tipo_domicilio],
[cuit_empresa],
[nombre_empresa],
[domicilio_empresa],
[prv_nombre_empresa],
[loc_nombre_empresa],
[codpos_empresa],
[tipo_domicilio_empresa])
select @cliente, @fecha, @cuit, @nombre, @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio,
@cuit_encontrado, @nombre_encontrado,
d.domicilio, d.prv_nombre, d.loc_nombre, d.codpos, d.tipo_domicilio
from @domicilios_dos d
where prv_nombre like + '%' + @provincia + '%'
and domicilio like + '%' + @buscar + ' %' + iif(@altura is not null,cast(@altura as varchar)+'%','')
FETCH NEXT FROM C_padron_empresa INTO @cuit_encontrado, @nombre_encontrado, @buscar, @altura
END
CLOSE C_padron_empresa
DEALLOCATE C_padron_empresa
end
FETCH NEXT FROM C_DOM INTO @domicilio, @provincia, @localidad, @codpos, @tipo_domicilio
end
CLOSE C_dom
DEALLOCATE C_dom
FETCH NEXT FROM C_busqueda INTO @cuit, @nombre
END
CLOSE C_busqueda
DEALLOCATE C_busqueda
END
GO
Depends On
6Used By
No items found