dbo.validar_gbg_nombre

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@dni varchar 8
@cuit varchar 11
@nombre varchar 200
@apellido varchar 200
@fecha_nac date 3

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [validar_gbg_nombre] '46715747','20467157478'

select * from padrones where identificacion='20467157478'
select * from domicilios_todos where cuit='20467157478'
select * from datos_personas where c01_cuit='20467157478'

--delete datos_personas where id_dato_persona = 48324909


,'diego','barrera','2001-08-16'
exec [api_validacion_dni_cuit] '20000591441','PUGLIESE JOSE', '"PUBLIESE*" NEAR "JOSE*"'
exec [validar_gbg_nombre] '','','FACUNDO JAVIER','HERRERA',

sp_procesos_cuit_enrichment_api_datos 1,'27043648948'
exec [validar_gbg_nombre] '36501055'
*/

CREATE OR ALTER PROCEDURE dbo.validar_gbg_nombre
@dni varchar(8) = '',
@cuit varchar(11) = '', 
@nombre varchar(200) = '', 
@apellido varchar(200) = '', 
@fecha_nac date = '' 

AS

begin

 if(@cuit != '')
 begin
   select upper(padrones.nombre_persona) as nombre_persona, 
   --padrones.nombres,
   --padrones.apellidos, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(SUBSTRING(padrones.nombre_persona,1,(select CHARINDEX(' ',padrones.nombre_persona))-1)),upper(padrones.apellidos)) as apellidos, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(rtrim(SUBSTRING(padrones.nombre_persona,(select CHARINDEX(' ',padrones.nombre_persona)+1),1000))), upper(padrones.nombres)) as nombres,  
   cuerpo_clave as dni,identificacion as cuit,c02_fecha_nac as fecha_nacimiento,sexo,isnull(convert(varchar,fecha_defuncion),'') as fecha_fallecimiento from padrones 
  left join DATOS_PERSONAS on padrones.identificacion = datos_personas.c01_cuit
  where identificacion = @cuit and habilitado = 1

  /*  select * from datos_personas where c01_cuit='20467157478'*/





  return 
 end
 if(@dni != '')
 begin
  -- 06/04/2021: agregado porque a veces en padrones el cuerpo clave tiene los ceros a la izquieda y a veces no
  declare @numero  varchar(8)  = @dni
  declare @numero2 varchar(8)  = @dni
  if (select ISNUMERIC(@dni)) = 1
   set @numero = convert(int,@dni)
  if (len(@dni) < 8) set @numero2 =  RIGHT('00000000'+@dni,8)

  select upper(padrones.nombre_persona) as nombre_persona, 
  --padrones.nombres,
  --padrones.apellidos, 
  iif(isnull(padrones.nombres,'') = '', 
   upper(SUBSTRING(padrones.nombre_persona,1,(select CHARINDEX(' ',padrones.nombre_persona))-1)),upper(padrones.apellidos)) as apellidos, 
  iif(isnull(padrones.nombres,'') = '', 
   upper(rtrim(SUBSTRING(padrones.nombre_persona,(select CHARINDEX(' ',padrones.nombre_persona)+1),1000))), upper(padrones.nombres)) as nombres,  
  cuerpo_clave as dni,identificacion as cuit,c02_fecha_nac as fecha_nacimiento,sexo,isnull(convert(varchar,fecha_defuncion),'') as fecha_fallecimiento from padrones 
  left join DATOS_PERSONAS on padrones.identificacion = datos_personas.c01_cuit
  --where cuerpo_clave = @dni 
  where (cuerpo_clave = @numero or cuerpo_clave = @numero2)
    and habilitado = 1
  return 
 end

 if(@nombre != '' and @apellido != '')
 begin
 -- Se fija primero los que tengan misma fecha nac, si no encuentra le manda los primeros 20 que encuentre con ese nombre
  set @nombre = ltrim(rtrim(@apellido)) + ' ' + ltrim(rtrim(@nombre)) 
  set @nombre = replace(ltrim(rtrim(@nombre)),' ','* NEAR *')
  declare @resultado table (nombre_persona varchar(200), apellidos varchar(200), nombres varchar(200), dni varchar(10), 
  cuit varchar(20), fecha_nacimiento varchar(20), sexo char(1), fecha_fallecimiento varchar(20)) 
  insert into @resultado 
   select top 5 upper(padrones.nombre_persona) as nombre_persona, 
   --padrones.nombres,
   --padrones.apellidos,
   iif(isnull(padrones.nombres,'') = '', 
   upper(SUBSTRING(padrones.nombre_persona,1,(select CHARINDEX(' ',padrones.nombre_persona))-1)),upper(padrones.apellidos)) as apellidos, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(rtrim(SUBSTRING(padrones.nombre_persona,(select CHARINDEX(' ',padrones.nombre_persona)+1),1000))), upper(padrones.nombres)) as nombres,  
   cuerpo_clave as dni,identificacion as cuit,
         c02_fecha_nac as fecha_nacimiento,sexo,isnull(convert(varchar,fecha_defuncion),'') as fecha_fallecimiento 
    from padrones 
   left join DATOS_PERSONAS on padrones.identificacion = datos_personas.c01_cuit and c02_fecha_nac = @fecha_nac 
   WHERE CONTAINS((nombre_persona),@nombre)

   if exists (select * from @resultado where fecha_nacimiento = @fecha_nac) 
   begin 
   select * from @resultado where fecha_nacimiento = @fecha_nac
   end
   else
   begin

   insert into @resultado 
   select top 5 upper(padrones.nombre_persona) as nombre_persona, 
   --padrones.nombres,
   --padrones.apellidos,
   iif(isnull(padrones.nombres,'') = '', 
   upper(SUBSTRING(padrones.nombre_persona,1,(select CHARINDEX(' ',padrones.nombre_persona))-1)),upper(padrones.apellidos)) as apellidos, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(rtrim(SUBSTRING(padrones.nombre_persona,(select CHARINDEX(' ',padrones.nombre_persona)+1),1000))), upper(padrones.nombres)) as nombres,  
   cuerpo_clave as dni,identificacion as cuit,
         c02_fecha_nac as fecha_nacimiento,sexo,isnull(convert(varchar,fecha_defuncion),'') as fecha_fallecimiento 
    from padrones 
   left outer join DATOS_PERSONAS on padrones.identificacion = datos_personas.c01_cuit  
   WHERE CONTAINS((nombre_persona),@nombre)


   select * from @resultado
   end 
  return 
 end



end

/*
validar_gbg_nombre '','','Juan','Teyra','1998-12-12'
select * from padrones where identificacion = '20410587131'
*/

GO

Used By

No items found