dbo.sp_domicilios_buscar_vecinos_ant

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

Used By

No items found