dbo.buscar_en_padron_con_domicilios

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@p_identificacion varchar 40
@p_nombre_persona varchar 100

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

-- [buscar_en_padron_con_domicilios] '"*31443248*"',null

CREATE OR ALTER PROCEDURE dbo.buscar_en_padron_con_domicilios 
@p_identificacion varchar(40),
@p_nombre_persona varchar(100)
AS
BEGIN

DECLARE @identificacion varchar(20),
        @pre_clave varchar(10), 
  @suf_clave varchar(10), 
  @cuerpo_clave varchar(20),
  @nombre_persona varchar(200),
  @identificador varchar(20),
  @id_padron int,
  @p_identificador char(10),
  @domicilios varchar(1000),
  @domicilios_todos varchar(max)

  declare @resultados table (
  identificacion varchar(20),
        pre_clave varchar(10), 
  suf_clave varchar(10), 
  cuerpo_clave varchar(20),
  nombre_persona varchar(200),
  identificador varchar(20),
  id_padron int,
  p_identificador char(10),
  domicilios varchar(max))
  

IF (@p_nombre_persona IS NOT NULL) AND (LEN(@p_nombre_persona) > 0)
 begin
 DECLARE cur_pad CURSOR
    FOR
     SELECT top 20  identificacion,pre_clave, suf_clave,cuerpo_clave,nombre_persona,padrones.identificador,id_padron,identificadores.identificador  
     from dbo.padrones  
     inner join identificadores on
     identificadores.identificador = padrones.identificador
     WHERE CONTAINS(padrones.*,@p_nombre_persona) 
     and habilitado = 1
 end
 ELSE 
 begin 
 IF (@p_identificacion IS NOT NULL) AND (LEN(@p_identificacion) > 0)
  begin
   DECLARE cur_pad CURSOR
   FOR
    SELECT top 20  identificacion,pre_clave, suf_clave,cuerpo_clave,nombre_persona,padrones.identificador,id_padron,identificadores.identificador  
    from dbo.padrones  
    inner join identificadores on
    identificadores.identificador = padrones.identificador
    WHERE CONTAINS(padrones.*,@p_identificacion) 
    and habilitado = 1
  end 
 end 
 

-- Arranca el cursor 
    OPEN cur_pad
    Fetch next from cur_pad INTO
            @identificacion ,
            @pre_clave,
            @suf_clave,
            @cuerpo_clave,
            @nombre_persona,
            @identificador,
            @id_padron,
            @p_identificador

    WHILE (@@FETCH_STATUS <> -1 )
    BEGIN 
       set @domicilios_todos =''
       DECLARE cur_dom CURSOR FOR
          select distinct isnull(d.domicilio,'') + iif(isnull(d.loc_nombre,'')!='', ', '+d.loc_nombre, '') 
           +  iif(isnull(d.prv_nombre,'')!='', ', '+d.prv_nombre, '') 
           +  iif(isnull(d.pai_nombre,'')!='', ', '+d.pai_nombre, '') 
           from domicilios_todos d where d.cuit = @identificacion
           and not exists (select * from domicilios_todos e 
                where e.cuit = d.cuit 
                and e.domicilio = d.domicilio
                and e.id_domicilio < d.id_domicilio)

       OPEN cur_dom    
       Fetch next from cur_dom INTO @domicilios
       WHILE (@@FETCH_STATUS <> -1 )
       BEGIN 
        set @domicilios_todos = @domicilios_todos + @domicilios + '<br>'
        Fetch next from cur_dom INTO @domicilios
       END 
       CLOSE cur_dom
       DEALLOCATE cur_dom
       insert into @resultados
       select @identificacion as identificacion,
            @pre_clave as pre_clave,
            @suf_clave as suf_clave,
            @cuerpo_clave as cuerpo_clave,
            @nombre_persona as nombre_persona,
            @identificador as identificador,
            @id_padron as id_padron,
            @p_identificador as identificador,
            @domicilios_todos as domicilios
       Fetch next from cur_pad INTO
            @identificacion ,
            @pre_clave,
            @suf_clave,
            @cuerpo_clave,
            @nombre_persona,
            @identificador,
            @id_padron,
            @p_identificador

    END
    CLOSE cur_pad
    DEALLOCATE cur_pad


    select * from @resultados
END 

GO

Used By

No items found