Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
3| Name | Data Type | Length | Description |
|---|---|---|---|
| @cliente | int | 4 | |
| @fecha1 | date | 3 | |
| @fecha2 | date | 3 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec sp_procesos_cuit_cruce_domicilios 2046807993, '2022-06-20', '2022-06-24'
*/
CREATE OR ALTER PROCEDURE dbo.sp_procesos_cuit_cruce_domicilios
@cliente int,
@fecha1 date,
@fecha2 date
AS
BEGIN
declare @cuit varchar(20)
declare @domicilio_fiscal varchar(200)
declare @pai_fiscal varchar(20)
declare @prv_fiscal varchar(100)
declare @loc_fiscal varchar(100)
declare @codpos_fiscal varchar(10)
declare @domicilio_legal varchar(200)
declare @pai_legal varchar(20)
declare @prv_legal varchar(100)
declare @loc_legal varchar(100)
declare @codpos_legal varchar(10)
declare @domicilio_real varchar(200)
declare @pai_real varchar(20)
declare @prv_real varchar(100)
declare @loc_real varchar(100)
declare @codpos_real varchar(10)
declare @domicilio_otro varchar(200)
declare @pai_otro varchar(20)
declare @prv_otro varchar(100)
declare @loc_otro varchar(100)
declare @codpos_otro varchar(10)
declare @cuit_2 varchar(20)
declare @domicilio_fiscal_2 varchar(200)
declare @pai_fiscal_2 varchar(20)
declare @prv_fiscal_2 varchar(100)
declare @loc_fiscal_2 varchar(100)
declare @codpos_fiscal_2 varchar(10)
declare @domicilio_legal_2 varchar(200)
declare @pai_legal_2 varchar(20)
declare @prv_legal_2 varchar(100)
declare @loc_legal_2 varchar(100)
declare @codpos_legal_2 varchar(10)
declare @domicilio_real_2 varchar(200)
declare @pai_real_2 varchar(20)
declare @prv_real_2 varchar(100)
declare @loc_real_2 varchar(100)
declare @codpos_real_2 varchar(10)
declare @domicilio_otro_2 varchar(200)
declare @pai_otro_2 varchar(20)
declare @prv_otro_2 varchar(100)
declare @loc_otro_2 varchar(100)
declare @codpos_otro_2 varchar(10)
declare @resp int, @vez int, @vez_2 int
declare @domicilio_1 varchar(200)
declare @pai_1 varchar(20)
declare @prv_1 varchar(100)
declare @loc_1 varchar(100)
declare @codpos_1 varchar(10)
declare @domicilio_2 varchar(200)
declare @pai_2 varchar(20)
declare @prv_2 varchar(100)
declare @loc_2 varchar(100)
declare @codpos_2 varchar(10)
declare wc_1 cursor for
select /*top 1*/ cuit,
domicilio_fiscal, pai_fiscal, prv_fiscal, loc_fiscal, codpos_fiscal,
domicilio_legal, pai_legal, prv_legal, loc_legal, codpos_legal,
domicilio_real, pai_real, prv_real, loc_real, codpos_real,
domicilio_otro, pai_otro, prv_otro, loc_otro, codpos_otro
from procesos_cuit_enrichment_domicilios_por_tipo
where cliente = @cliente
and fecha = @fecha1
and cuit >= (select isnull(max(cuit),'0') from procesos_cuit_cruce_domicilios_control where cliente = @cliente and fecha = @fecha1)
order by cuit
open wc_1
Fetch next from wc_1 INTO @cuit,
@domicilio_fiscal,
@pai_fiscal,
@prv_fiscal,
@loc_fiscal,
@codpos_fiscal,
@domicilio_legal,
@pai_legal,
@prv_legal,
@loc_legal,
@codpos_legal,
@domicilio_real,
@pai_real,
@prv_real,
@loc_real,
@codpos_real,
@domicilio_otro,
@pai_otro,
@prv_otro,
@loc_otro,
@codpos_otro
WHILE (@@FETCH_STATUS <> -1 )
BEGIN -- Primer Cursor
set @vez = 0
insert into procesos_cuit_cruce_domicilios_control (cliente,fecha,cuit) values ( @cliente, @fecha1, @cuit)
WHILE (@vez < 4)
BEGIN -- Domicilios cuit 1
set @vez = @vez + 1
if (@vez = 1)
begin
set @domicilio_1 = @domicilio_fiscal
set @pai_1 = @pai_fiscal
set @prv_1 = @prv_fiscal
set @loc_1 = @loc_fiscal
set @codpos_1 = @codpos_fiscal
end
if (@vez = 2)
begin
set @domicilio_1 = @domicilio_legal
set @pai_1 = @pai_legal
set @prv_1 = @prv_legal
set @loc_1 = @loc_legal
set @codpos_1 = @codpos_legal
end
if (@vez = 3)
begin
set @domicilio_1 = @domicilio_real
set @pai_1 = @pai_real
set @prv_1 = @prv_real
set @loc_1 = @loc_real
set @codpos_1 = @codpos_real
end
if (@vez = 4)
begin
set @domicilio_1 = @domicilio_otro
set @pai_1 = @pai_otro
set @prv_1 = @prv_otro
set @loc_1 = @loc_otro
set @codpos_1 = @codpos_otro
end
declare wc_2 cursor for
select /*top 1*/ cuit,
domicilio_fiscal, pai_fiscal, prv_fiscal, loc_fiscal, codpos_fiscal,
domicilio_legal, pai_legal, prv_legal, loc_legal, codpos_legal,
domicilio_real, pai_real, prv_real, loc_real, codpos_real,
domicilio_otro, pai_otro, prv_otro, loc_otro, codpos_otro
from procesos_cuit_enrichment_domicilios_por_tipo
where cliente = @cliente
and fecha = @fecha2
open wc_2
Fetch next from wc_2 INTO @cuit_2,
@domicilio_fiscal_2,
@pai_fiscal_2,
@prv_fiscal_2,
@loc_fiscal_2,
@codpos_fiscal_2,
@domicilio_legal_2,
@pai_legal_2,
@prv_legal_2,
@loc_legal_2,
@codpos_legal_2,
@domicilio_real_2,
@pai_real_2,
@prv_real_2,
@loc_real_2,
@codpos_real_2,
@domicilio_otro_2,
@pai_otro_2,
@prv_otro_2,
@loc_otro_2,
@codpos_otro_2
WHILE (@@FETCH_STATUS <> -1 )
BEGIN -- Segundo Cursor
set @vez_2 = 0
WHILE (@vez_2 < 4)
BEGIN -- Domicilios cuit 2
set @vez_2 = @vez_2 + 1
if (@vez_2 = 1)
begin
set @domicilio_2 = @domicilio_fiscal_2
set @pai_2 = @pai_fiscal_2
set @prv_2 = @prv_fiscal_2
set @loc_2 = @loc_fiscal_2
set @codpos_2 = @codpos_fiscal_2
end
if (@vez_2 = 2)
begin
set @domicilio_2 = @domicilio_legal_2
set @pai_2 = @pai_legal_2
set @prv_2 = @prv_legal_2
set @loc_2 = @loc_legal_2
set @codpos_2 = @codpos_legal_2
end
if (@vez_2 = 3)
begin
set @domicilio_2 = @domicilio_real_2
set @pai_2 = @pai_real_2
set @prv_2 = @prv_real_2
set @loc_2 = @loc_real_2
set @codpos_2 = @codpos_real_2
end
if (@vez_2 = 4)
begin
set @domicilio_2 = @domicilio_otro_2
set @pai_2 = @pai_otro_2
set @prv_2 = @prv_otro_2
set @loc_2 = @loc_otro_2
set @codpos_2 = @codpos_otro_2
end
set @resp = 0
--select @cuit cuit, @vez vez_1, @domicilio_1 domicilio_1, @cuit_2 cuit_2, @vez_2 vez_2, @domicilio_2 domicilio_2
exec @resp = [sp_comparo_domicilios] @domicilio_1, @domicilio_2
if (@resp = 1) -- son iguales
begin
insert into procesos_cuit_cruce_domicilios (cliente,
fecha,
cuit,
domicilio,
pai,
prv,
loc,
codpos,
fecha_2,
cuit_2,
domicilio_2,
pai_2,
prv_2,
loc_2,
codpos_2)
values ( @cliente, @fecha1, @cuit,
@domicilio_1,
@pai_1,
@prv_1,
@loc_1,
@codpos_1,
@fecha2,
@cuit_2,
@domicilio_2,
@pai_2,
@prv_2,
@loc_2,
@codpos_2)
end
END -- Domicilios cuit 2
Fetch next from wc_2 INTO @cuit_2,
@domicilio_fiscal_2,
@pai_fiscal_2,
@prv_fiscal_2,
@loc_fiscal_2,
@codpos_fiscal_2,
@domicilio_legal_2,
@pai_legal_2,
@prv_legal_2,
@loc_legal_2,
@codpos_legal_2,
@domicilio_real_2,
@pai_real_2,
@prv_real_2,
@loc_real_2,
@codpos_real_2,
@domicilio_otro_2,
@pai_otro_2,
@prv_otro_2,
@loc_otro_2,
@codpos_otro_2
END -- Cursor 2
CLOSE wc_2
DEALLOCATE wc_2
END -- Domicilios cuit 1
Fetch next from wc_1 INTO @cuit,
@domicilio_fiscal,
@pai_fiscal,
@prv_fiscal,
@loc_fiscal,
@codpos_fiscal,
@domicilio_legal,
@pai_legal,
@prv_legal,
@loc_legal,
@codpos_legal,
@domicilio_real,
@pai_real,
@prv_real,
@loc_real,
@codpos_real,
@domicilio_otro,
@pai_otro,
@prv_otro,
@loc_otro,
@codpos_otro
END -- Primer Cursor
CLOSE wc_1
DEALLOCATE wc_1
END
GO
GO
/*
exec sp_procesos_cuit_cruce_domicilios 2046807993, '2022-06-20', '2022-06-24'
*/
CREATE OR ALTER PROCEDURE dbo.sp_procesos_cuit_cruce_domicilios
@cliente int,
@fecha1 date,
@fecha2 date
AS
BEGIN
declare @cuit varchar(20)
declare @domicilio_fiscal varchar(200)
declare @pai_fiscal varchar(20)
declare @prv_fiscal varchar(100)
declare @loc_fiscal varchar(100)
declare @codpos_fiscal varchar(10)
declare @domicilio_legal varchar(200)
declare @pai_legal varchar(20)
declare @prv_legal varchar(100)
declare @loc_legal varchar(100)
declare @codpos_legal varchar(10)
declare @domicilio_real varchar(200)
declare @pai_real varchar(20)
declare @prv_real varchar(100)
declare @loc_real varchar(100)
declare @codpos_real varchar(10)
declare @domicilio_otro varchar(200)
declare @pai_otro varchar(20)
declare @prv_otro varchar(100)
declare @loc_otro varchar(100)
declare @codpos_otro varchar(10)
declare @cuit_2 varchar(20)
declare @domicilio_fiscal_2 varchar(200)
declare @pai_fiscal_2 varchar(20)
declare @prv_fiscal_2 varchar(100)
declare @loc_fiscal_2 varchar(100)
declare @codpos_fiscal_2 varchar(10)
declare @domicilio_legal_2 varchar(200)
declare @pai_legal_2 varchar(20)
declare @prv_legal_2 varchar(100)
declare @loc_legal_2 varchar(100)
declare @codpos_legal_2 varchar(10)
declare @domicilio_real_2 varchar(200)
declare @pai_real_2 varchar(20)
declare @prv_real_2 varchar(100)
declare @loc_real_2 varchar(100)
declare @codpos_real_2 varchar(10)
declare @domicilio_otro_2 varchar(200)
declare @pai_otro_2 varchar(20)
declare @prv_otro_2 varchar(100)
declare @loc_otro_2 varchar(100)
declare @codpos_otro_2 varchar(10)
declare @resp int, @vez int, @vez_2 int
declare @domicilio_1 varchar(200)
declare @pai_1 varchar(20)
declare @prv_1 varchar(100)
declare @loc_1 varchar(100)
declare @codpos_1 varchar(10)
declare @domicilio_2 varchar(200)
declare @pai_2 varchar(20)
declare @prv_2 varchar(100)
declare @loc_2 varchar(100)
declare @codpos_2 varchar(10)
declare wc_1 cursor for
select /*top 1*/ cuit,
domicilio_fiscal, pai_fiscal, prv_fiscal, loc_fiscal, codpos_fiscal,
domicilio_legal, pai_legal, prv_legal, loc_legal, codpos_legal,
domicilio_real, pai_real, prv_real, loc_real, codpos_real,
domicilio_otro, pai_otro, prv_otro, loc_otro, codpos_otro
from procesos_cuit_enrichment_domicilios_por_tipo
where cliente = @cliente
and fecha = @fecha1
and cuit >= (select isnull(max(cuit),'0') from procesos_cuit_cruce_domicilios_control where cliente = @cliente and fecha = @fecha1)
order by cuit
open wc_1
Fetch next from wc_1 INTO @cuit,
@domicilio_fiscal,
@pai_fiscal,
@prv_fiscal,
@loc_fiscal,
@codpos_fiscal,
@domicilio_legal,
@pai_legal,
@prv_legal,
@loc_legal,
@codpos_legal,
@domicilio_real,
@pai_real,
@prv_real,
@loc_real,
@codpos_real,
@domicilio_otro,
@pai_otro,
@prv_otro,
@loc_otro,
@codpos_otro
WHILE (@@FETCH_STATUS <> -1 )
BEGIN -- Primer Cursor
set @vez = 0
insert into procesos_cuit_cruce_domicilios_control (cliente,fecha,cuit) values ( @cliente, @fecha1, @cuit)
WHILE (@vez < 4)
BEGIN -- Domicilios cuit 1
set @vez = @vez + 1
if (@vez = 1)
begin
set @domicilio_1 = @domicilio_fiscal
set @pai_1 = @pai_fiscal
set @prv_1 = @prv_fiscal
set @loc_1 = @loc_fiscal
set @codpos_1 = @codpos_fiscal
end
if (@vez = 2)
begin
set @domicilio_1 = @domicilio_legal
set @pai_1 = @pai_legal
set @prv_1 = @prv_legal
set @loc_1 = @loc_legal
set @codpos_1 = @codpos_legal
end
if (@vez = 3)
begin
set @domicilio_1 = @domicilio_real
set @pai_1 = @pai_real
set @prv_1 = @prv_real
set @loc_1 = @loc_real
set @codpos_1 = @codpos_real
end
if (@vez = 4)
begin
set @domicilio_1 = @domicilio_otro
set @pai_1 = @pai_otro
set @prv_1 = @prv_otro
set @loc_1 = @loc_otro
set @codpos_1 = @codpos_otro
end
declare wc_2 cursor for
select /*top 1*/ cuit,
domicilio_fiscal, pai_fiscal, prv_fiscal, loc_fiscal, codpos_fiscal,
domicilio_legal, pai_legal, prv_legal, loc_legal, codpos_legal,
domicilio_real, pai_real, prv_real, loc_real, codpos_real,
domicilio_otro, pai_otro, prv_otro, loc_otro, codpos_otro
from procesos_cuit_enrichment_domicilios_por_tipo
where cliente = @cliente
and fecha = @fecha2
open wc_2
Fetch next from wc_2 INTO @cuit_2,
@domicilio_fiscal_2,
@pai_fiscal_2,
@prv_fiscal_2,
@loc_fiscal_2,
@codpos_fiscal_2,
@domicilio_legal_2,
@pai_legal_2,
@prv_legal_2,
@loc_legal_2,
@codpos_legal_2,
@domicilio_real_2,
@pai_real_2,
@prv_real_2,
@loc_real_2,
@codpos_real_2,
@domicilio_otro_2,
@pai_otro_2,
@prv_otro_2,
@loc_otro_2,
@codpos_otro_2
WHILE (@@FETCH_STATUS <> -1 )
BEGIN -- Segundo Cursor
set @vez_2 = 0
WHILE (@vez_2 < 4)
BEGIN -- Domicilios cuit 2
set @vez_2 = @vez_2 + 1
if (@vez_2 = 1)
begin
set @domicilio_2 = @domicilio_fiscal_2
set @pai_2 = @pai_fiscal_2
set @prv_2 = @prv_fiscal_2
set @loc_2 = @loc_fiscal_2
set @codpos_2 = @codpos_fiscal_2
end
if (@vez_2 = 2)
begin
set @domicilio_2 = @domicilio_legal_2
set @pai_2 = @pai_legal_2
set @prv_2 = @prv_legal_2
set @loc_2 = @loc_legal_2
set @codpos_2 = @codpos_legal_2
end
if (@vez_2 = 3)
begin
set @domicilio_2 = @domicilio_real_2
set @pai_2 = @pai_real_2
set @prv_2 = @prv_real_2
set @loc_2 = @loc_real_2
set @codpos_2 = @codpos_real_2
end
if (@vez_2 = 4)
begin
set @domicilio_2 = @domicilio_otro_2
set @pai_2 = @pai_otro_2
set @prv_2 = @prv_otro_2
set @loc_2 = @loc_otro_2
set @codpos_2 = @codpos_otro_2
end
set @resp = 0
--select @cuit cuit, @vez vez_1, @domicilio_1 domicilio_1, @cuit_2 cuit_2, @vez_2 vez_2, @domicilio_2 domicilio_2
exec @resp = [sp_comparo_domicilios] @domicilio_1, @domicilio_2
if (@resp = 1) -- son iguales
begin
insert into procesos_cuit_cruce_domicilios (cliente,
fecha,
cuit,
domicilio,
pai,
prv,
loc,
codpos,
fecha_2,
cuit_2,
domicilio_2,
pai_2,
prv_2,
loc_2,
codpos_2)
values ( @cliente, @fecha1, @cuit,
@domicilio_1,
@pai_1,
@prv_1,
@loc_1,
@codpos_1,
@fecha2,
@cuit_2,
@domicilio_2,
@pai_2,
@prv_2,
@loc_2,
@codpos_2)
end
END -- Domicilios cuit 2
Fetch next from wc_2 INTO @cuit_2,
@domicilio_fiscal_2,
@pai_fiscal_2,
@prv_fiscal_2,
@loc_fiscal_2,
@codpos_fiscal_2,
@domicilio_legal_2,
@pai_legal_2,
@prv_legal_2,
@loc_legal_2,
@codpos_legal_2,
@domicilio_real_2,
@pai_real_2,
@prv_real_2,
@loc_real_2,
@codpos_real_2,
@domicilio_otro_2,
@pai_otro_2,
@prv_otro_2,
@loc_otro_2,
@codpos_otro_2
END -- Cursor 2
CLOSE wc_2
DEALLOCATE wc_2
END -- Domicilios cuit 1
Fetch next from wc_1 INTO @cuit,
@domicilio_fiscal,
@pai_fiscal,
@prv_fiscal,
@loc_fiscal,
@codpos_fiscal,
@domicilio_legal,
@pai_legal,
@prv_legal,
@loc_legal,
@codpos_legal,
@domicilio_real,
@pai_real,
@prv_real,
@loc_real,
@codpos_real,
@domicilio_otro,
@pai_otro,
@prv_otro,
@loc_otro,
@codpos_otro
END -- Primer Cursor
CLOSE wc_1
DEALLOCATE wc_1
END
GO
Depends On
3Used By
No items found