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
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
Depends On
2Used By
No items found