Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
1| Name | Data Type | Length | Description |
|---|---|---|---|
| @cuit | varchar | 20 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
[sp_domicilios_buscar_vecinos_ant] '20127410977'
*/
/* Dado un CUIT busca su domicilio principal y todos los vecinos que viven en el mismo domicilio */
CREATE OR ALTER PROCEDURE dbo.sp_domicilios_buscar_vecinos_ant
@cuit varchar(20)
AS
BEGIN
SET NOCOUNT ON;
declare @domicilios table (id int, domicilio varchar(200), pai_nombre varchar(50), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
declare @domicilio varchar(200),
@localidad varchar(100),
@provincia varchar(100),
@codpos varchar(10) ,
@tipo_domicilio varchar(10)
DECLARE @busqueda_domicilio varchar(800),
@busqueda_provincia varchar(2),
@busqueda_tipo_domicilio varchar(100)
insert into @domicilios
exec sp_obtener_domicilios @cuit, 1
if ((select count(*) from @domicilios where isnull(domicilio,'') != '') = 0)
begin
-- Si no encontro domicilios de AFIP busca otros
insert into @domicilios
exec sp_obtener_domicilios @cuit, 0
end
-- Toma uno, si tenemos el fiscal (F), sino el legal (L), sino el real (D), sino el electoral (E), sino otro...
SELECT top 1
@domicilio =
isnull(d.domicilio,''),
@localidad =
isnull(d.loc_nombre,''),
@provincia =
isnull(d.prv_nombre,''),
@codpos =
isnull(d.codpos,''),
@tipo_domicilio = isnull(d.tipo_domicilio,'')
from @domicilios d
where
d.domicilio not like 'RESIDE EN'
--and d.domicilio not like '%ZONA RURAL%'
--and d.domicilio not like '%SIN NOMBRE%'
and d.domicilio not like 'DOMICILIADA EN'
order by (case
when (d.tipo_domicilio LIKE '%F%' and isnull(d.codpos,'') != '') then '1'
when (d.tipo_domicilio LIKE '%F%' and isnull(d.codpos,'') = '') then '2'
when (d.tipo_domicilio LIKE '%L%' and isnull(d.codpos,'') != '') then '3'
when (d.tipo_domicilio LIKE '%L%' and isnull(d.codpos,'') = '') then '4'
when (d.tipo_domicilio LIKE '%D%' and isnull(d.codpos,'') != '') then '5'
WHEN (d.tipo_domicilio LIKE '%O%' and isnull(d.codpos,'') != '') then '6'
WHEN (d.tipo_domicilio LIKE '%E%' and isnull(d.codpos,'') != '') then '7'
when (d.tipo_domicilio LIKE '%D%' and isnull(d.codpos,'') = '') then '8'
WHEN (d.tipo_domicilio LIKE '%O%' and isnull(d.codpos,'') = '') then '9'
WHEN (d.tipo_domicilio LIKE '%E%' and isnull(d.codpos,'') = '') then '10'
else '11'
end)
delete from @domicilios
declare @prv_codigo char(2) = null
select @prv_codigo = codigo_afip from provincias where country_code = 'AR' and prv_nombre = @provincia
if (@prv_codigo is null)
if (@provincia like 'CIUDAD%BUENOS%AIRES' or
@provincia like 'CIUDAD%BS%AS' or
@provincia = 'CABA' or
@provincia = 'C.A.B.A.') set @prv_codigo = '0'
exec [sp_domicilios_calle_altura] @domicilio, @prv_codigo, 'L,F,D',
@busqueda_domicilio output,
@busqueda_provincia output,
@busqueda_tipo_domicilio output
set @busqueda_domicilio = ltrim(rtrim(@busqueda_domicilio))
--select @busqueda_domicilio, @prv_codigo
if (isnull(@busqueda_domicilio,'') != '')
begin
declare @vecinos table(id int identity,
cuit varchar(20),
nombre varchar(200),
domicilio varchar(200),
prv_nombre varchar(100),
loc_nombre varchar(100),
codpos varchar(10),
tipo_domicilio varchar(10))
insert into @vecinos (cuit,
nombre,
domicilio,
prv_nombre,
loc_nombre,
codpos,
tipo_domicilio)
select domicilios_todos.cuit, padrones.nombre_persona,
domicilio, prv_nombre, loc_nombre, codpos, tipo_domicilio
from domicilios_todos
INNER JOIN dbo.DelimitedSplit8K(@busqueda_tipo_domicilio, ',') lista ON lista.item = domicilios_todos.tipo_domicilio
INNER JOIN Padrones on (padrones.identificacion = domicilios_todos.cuit and habilitado = 1)
where cuit != @cuit
and prv_codigo = @busqueda_provincia
and contains(domicilio,@busqueda_domicilio)
and (isnull(codpos,'') = @codpos)
and visible = 1
order by (case
when (tipo_domicilio LIKE '%F%' and isnull(codpos,'') != '') then '1'
when (tipo_domicilio LIKE '%F%' and isnull(codpos,'') = '') then '2'
when (tipo_domicilio LIKE '%L%' and isnull(codpos,'') != '') then '3'
when (tipo_domicilio LIKE '%L%' and isnull(codpos,'') = '') then '4'
when (tipo_domicilio LIKE '%D%' and isnull(codpos,'') != '') then '5'
WHEN (tipo_domicilio LIKE '%O%' and isnull(codpos,'') != '') then '6'
WHEN (tipo_domicilio LIKE '%E%' and isnull(codpos,'') != '') then '7'
when (tipo_domicilio LIKE '%D%' and isnull(codpos,'') = '') then '8'
WHEN (tipo_domicilio LIKE '%O%' and isnull(codpos,'') = '') then '9'
WHEN (tipo_domicilio LIKE '%E%' and isnull(codpos,'') = '') then '10'
else '11'
end)
end
declare @nombre varchar(200)
select top 1 @nombre = nombre_persona from padrones where identificacion = @cuit and habilitado=1
if (select count(*) from @vecinos) = 0
select @cuit as cuit_buscado,
@nombre as nombre_buscado,
@domicilio as domicilio,
@provincia as provincia,
@localidad as localidad,
@codpos as codpos,
@tipo_domicilio as tipo_domicilio,
null as cuit_vecino,
null as nombre_vecino,
null as domicilio_vecino,
null as provincia_vecino,
null as localidad_vecino,
null as codpos_vecino,
null as tipo_domicilio_vecino
else
select @cuit as cuit_buscado,
@nombre as nombre_buscado,
@domicilio as domicilio,
@provincia as provincia,
@localidad as localidad,
@codpos as codpos,
@tipo_domicilio as tipo_domicilio,
cuit as cuit_vecino,
nombre as nombre_vecino,
domicilio as domicilio_vecino,
prv_nombre as provincia_vecino,
loc_nombre as localidad_vecino,
codpos as codpos_vecino,
tipo_domicilio as tipo_domicilio_vecino
from @vecinos a
where a.id = (select min(id) from @vecinos b where b.cuit = a.cuit)
END
GO
GO
/*
[sp_domicilios_buscar_vecinos_ant] '20127410977'
*/
/* Dado un CUIT busca su domicilio principal y todos los vecinos que viven en el mismo domicilio */
CREATE OR ALTER PROCEDURE dbo.sp_domicilios_buscar_vecinos_ant
@cuit varchar(20)
AS
BEGIN
SET NOCOUNT ON;
declare @domicilios table (id int, domicilio varchar(200), pai_nombre varchar(50), prv_nombre varchar(100), loc_nombre varchar(100), codpos varchar(10), tipo_domicilio varchar(10), created datetime)
declare @domicilio varchar(200),
@localidad varchar(100),
@provincia varchar(100),
@codpos varchar(10) ,
@tipo_domicilio varchar(10)
DECLARE @busqueda_domicilio varchar(800),
@busqueda_provincia varchar(2),
@busqueda_tipo_domicilio varchar(100)
insert into @domicilios
exec sp_obtener_domicilios @cuit, 1
if ((select count(*) from @domicilios where isnull(domicilio,'') != '') = 0)
begin
-- Si no encontro domicilios de AFIP busca otros
insert into @domicilios
exec sp_obtener_domicilios @cuit, 0
end
-- Toma uno, si tenemos el fiscal (F), sino el legal (L), sino el real (D), sino el electoral (E), sino otro...
SELECT top 1
@domicilio =
isnull(d.domicilio,''),
@localidad =
isnull(d.loc_nombre,''),
@provincia =
isnull(d.prv_nombre,''),
@codpos =
isnull(d.codpos,''),
@tipo_domicilio = isnull(d.tipo_domicilio,'')
from @domicilios d
where
d.domicilio not like 'RESIDE EN'
--and d.domicilio not like '%ZONA RURAL%'
--and d.domicilio not like '%SIN NOMBRE%'
and d.domicilio not like 'DOMICILIADA EN'
order by (case
when (d.tipo_domicilio LIKE '%F%' and isnull(d.codpos,'') != '') then '1'
when (d.tipo_domicilio LIKE '%F%' and isnull(d.codpos,'') = '') then '2'
when (d.tipo_domicilio LIKE '%L%' and isnull(d.codpos,'') != '') then '3'
when (d.tipo_domicilio LIKE '%L%' and isnull(d.codpos,'') = '') then '4'
when (d.tipo_domicilio LIKE '%D%' and isnull(d.codpos,'') != '') then '5'
WHEN (d.tipo_domicilio LIKE '%O%' and isnull(d.codpos,'') != '') then '6'
WHEN (d.tipo_domicilio LIKE '%E%' and isnull(d.codpos,'') != '') then '7'
when (d.tipo_domicilio LIKE '%D%' and isnull(d.codpos,'') = '') then '8'
WHEN (d.tipo_domicilio LIKE '%O%' and isnull(d.codpos,'') = '') then '9'
WHEN (d.tipo_domicilio LIKE '%E%' and isnull(d.codpos,'') = '') then '10'
else '11'
end)
delete from @domicilios
declare @prv_codigo char(2) = null
select @prv_codigo = codigo_afip from provincias where country_code = 'AR' and prv_nombre = @provincia
if (@prv_codigo is null)
if (@provincia like 'CIUDAD%BUENOS%AIRES' or
@provincia like 'CIUDAD%BS%AS' or
@provincia = 'CABA' or
@provincia = 'C.A.B.A.') set @prv_codigo = '0'
exec [sp_domicilios_calle_altura] @domicilio, @prv_codigo, 'L,F,D',
@busqueda_domicilio output,
@busqueda_provincia output,
@busqueda_tipo_domicilio output
set @busqueda_domicilio = ltrim(rtrim(@busqueda_domicilio))
--select @busqueda_domicilio, @prv_codigo
if (isnull(@busqueda_domicilio,'') != '')
begin
declare @vecinos table(id int identity,
cuit varchar(20),
nombre varchar(200),
domicilio varchar(200),
prv_nombre varchar(100),
loc_nombre varchar(100),
codpos varchar(10),
tipo_domicilio varchar(10))
insert into @vecinos (cuit,
nombre,
domicilio,
prv_nombre,
loc_nombre,
codpos,
tipo_domicilio)
select domicilios_todos.cuit, padrones.nombre_persona,
domicilio, prv_nombre, loc_nombre, codpos, tipo_domicilio
from domicilios_todos
INNER JOIN dbo.DelimitedSplit8K(@busqueda_tipo_domicilio, ',') lista ON lista.item = domicilios_todos.tipo_domicilio
INNER JOIN Padrones on (padrones.identificacion = domicilios_todos.cuit and habilitado = 1)
where cuit != @cuit
and prv_codigo = @busqueda_provincia
and contains(domicilio,@busqueda_domicilio)
and (isnull(codpos,'') = @codpos)
and visible = 1
order by (case
when (tipo_domicilio LIKE '%F%' and isnull(codpos,'') != '') then '1'
when (tipo_domicilio LIKE '%F%' and isnull(codpos,'') = '') then '2'
when (tipo_domicilio LIKE '%L%' and isnull(codpos,'') != '') then '3'
when (tipo_domicilio LIKE '%L%' and isnull(codpos,'') = '') then '4'
when (tipo_domicilio LIKE '%D%' and isnull(codpos,'') != '') then '5'
WHEN (tipo_domicilio LIKE '%O%' and isnull(codpos,'') != '') then '6'
WHEN (tipo_domicilio LIKE '%E%' and isnull(codpos,'') != '') then '7'
when (tipo_domicilio LIKE '%D%' and isnull(codpos,'') = '') then '8'
WHEN (tipo_domicilio LIKE '%O%' and isnull(codpos,'') = '') then '9'
WHEN (tipo_domicilio LIKE '%E%' and isnull(codpos,'') = '') then '10'
else '11'
end)
end
declare @nombre varchar(200)
select top 1 @nombre = nombre_persona from padrones where identificacion = @cuit and habilitado=1
if (select count(*) from @vecinos) = 0
select @cuit as cuit_buscado,
@nombre as nombre_buscado,
@domicilio as domicilio,
@provincia as provincia,
@localidad as localidad,
@codpos as codpos,
@tipo_domicilio as tipo_domicilio,
null as cuit_vecino,
null as nombre_vecino,
null as domicilio_vecino,
null as provincia_vecino,
null as localidad_vecino,
null as codpos_vecino,
null as tipo_domicilio_vecino
else
select @cuit as cuit_buscado,
@nombre as nombre_buscado,
@domicilio as domicilio,
@provincia as provincia,
@localidad as localidad,
@codpos as codpos,
@tipo_domicilio as tipo_domicilio,
cuit as cuit_vecino,
nombre as nombre_vecino,
domicilio as domicilio_vecino,
prv_nombre as provincia_vecino,
loc_nombre as localidad_vecino,
codpos as codpos_vecino,
tipo_domicilio as tipo_domicilio_vecino
from @vecinos a
where a.id = (select min(id) from @vecinos b where b.cuit = a.cuit)
END
GO
Depends On
6Used By
No items found