dbo.sp_comparo_domicilios_universo_paso1

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

Used By

No items found