Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
4| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_taxid | varchar | 50 | |
| @name | varchar | 100 | |
| @country_code | varchar | 2 | |
| @max_rows | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: AGB
-- Create date: 2023-06-21
-- Description: Búsqueda de Padrón completo
-- =============================================
/*
api_padrones '20134934864',null,'AR',30
*/
CREATE OR ALTER PROCEDURE dbo.api_padrones_29012025
@p_taxid varchar(50) = null,
@name varchar(100) = null,
@country_code varchar(2) = NULL,
@max_rows int = 30
AS
-- 30/01/2025: LO CAMBIAMOS ASI
BEGIN
SET NOCOUNT ON;
if(@p_taxid is not null and ISNUMERIC(@p_taxid) = 0 and @name is null)
begin
set @name = @p_taxid
set @p_taxid = null
end
exec [api_padrones_busqueda_avanzada_29012025]
null,
@p_taxid,
@name,
null,
null,
null,
null,
null,
null,
@max_rows,
@country_code,
'S'
END
/*
-- ANTES ERA ASI
-- 15/08/2024: LO CAMBIAMOS ASI
BEGIN
SET NOCOUNT ON;
declare @busqueda varchar(100) = ''
if (@country_code!='AR') set @country_code = null
select @p_taxid = ltrim(rtrim(@p_taxid))
select @name = ltrim(rtrim(@name))
IF (isnull(@p_taxid,'') != '') --> Prioriza busqueda por lo que viene en el campo taxid
select @busqueda = @p_taxid
IF (isnull(@name,'') != '')
select @busqueda = @name
select @busqueda = REPLACE(@busqueda,'"','') -- Si hay comillas primero se las sacamos, porque despues se las vamos a agregar, con lo demas que se necesita
if (isnumeric(@busqueda) != 1)
begin
if @busqueda not like '% %' and len(@busqueda) > 2 and @busqueda not like '%*'
-- Si es una sola palabra (no tiene espacios), es de mas de 2 digitos y no termina es *, se lo agregamos
select @busqueda = @busqueda + '*'
if @busqueda not like '% near %'
select @busqueda = '"' + REPLACE(@busqueda,' ','" near "') + '"'
--> si solo viene un numero, no tiene espacios asi que solo le agrega las comillas, pero no hace el replace
--> siempre manda como primer parametro lo que completaron en el buscador de padron, que a veces es el nombre
end
if(@country_code='AR') -- SOLO ARGENTINA
begin
-- Para que en los casos que lo va a buscar en Afip, y lo da de alta en la BD
-- Apenas lo damos de alta, no lo encuentra por fulltext, entonces lo buscamos por identificacion por las dudas....
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '1' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE @p_taxid is not null and identificacion = @p_taxid and country_code in ('AR') and habilitado = 1
union
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '2' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
-- WHERE CONTAINS((PADRONES.*),@busqueda)and country_code in ('AR') and habilitado = 1
WHERE CONTAINS(padrones.*,@busqueda)and country_code in ('AR') and habilitado = 1
RETURN
end
if(@country_code IS NULL) -- EXCEPTO ARGENTINA
begin
-- Para que en los casos que lo va a buscar en Afip y lo trae
-- Apenas lo damos de alta, no lo encuentra por fulltext, entonces lo buscamos por identificacion por las dudas....
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '3' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE @p_taxid is not null and identificacion = @p_taxid and country_code not in ('AR') and habilitado = 1
union
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '4' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE CONTAINS((PADRONES.*),@busqueda) and country_code NOT in ('AR') and habilitado = 1
RETURN
end
END
*/
/*
--- 15/08/2024: ANTES ERA ASI ---
BEGIN
SET NOCOUNT ON;
if (@country_code!='AR') set @country_code = null
if(@p_taxid is not null and @country_code='AR') -- POR DNI O TAX ID SOLO ARGENTINA
begin
if (len(@p_taxid)=11 and ISNUMERIC(@p_taxid)=1)
begin
SELECT distinct top(@max_rows) padrones.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified,padrones.apellidos,padrones.nombres, '0' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE identificacion = @p_taxid
and country_code in ('AR') and habilitado = 1 order by padrones.id_padron desc
end
else
begin
SELECT distinct top(@max_rows) padrones.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified,padrones.apellidos,padrones.nombres, '1' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE contains(padrones.*, @p_taxid)
and country_code in ('AR') and habilitado = 1 order by padrones.id_padron desc
end
return
end
if(@p_taxid is not null and @country_code IS NULL) -- POR DNI O TAX ID EXCEPTO ARGENTINA
begin
SELECT distinct top(@max_rows) padrones.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified,padrones.apellidos,padrones.nombres, '2' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE contains(padrones.*, @p_taxid) and habilitado = 1 and country_code NOT in ('AR')
return
end
if(@p_taxid IS NULL and @country_code='AR') -- POR NOMBRE O RAZÓNSOCIAL SOLO ARGENTINA
begin
--SET @name = '"' + @name + '"'
if @name is not null and @name not like '% near %'
select @name = '"' + REPLACE(@name,' ','" near "') + '"'
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified ,padrones.apellidos,padrones.nombres, '3' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE CONTAINS((PADRONES.*),@name) and country_code in ('AR') and habilitado = 1
RETURN
end
if(@p_taxid IS NULL and @country_code IS NULL) -- POR NOMBRE O RAZÓNSOCIAL EXCEPTO ARGENTINA
begin
--SET @name = '"' + @name + '"'
if @name is not null and @name not like '% near %'
select @name = '"' + REPLACE(@name,' ','" near "') + '"'
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified ,padrones.apellidos,padrones.nombres--, '4' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE CONTAINS(PADRONES.*,@name) and country_code NOT in ('AR') and habilitado = 1
RETURN
end
END
--- 15/08/2024: ANTES ERA ASI ---
*/
GO
GO
-- =============================================
-- Author: AGB
-- Create date: 2023-06-21
-- Description: Búsqueda de Padrón completo
-- =============================================
/*
api_padrones '20134934864',null,'AR',30
*/
CREATE OR ALTER PROCEDURE dbo.api_padrones_29012025
@p_taxid varchar(50) = null,
@name varchar(100) = null,
@country_code varchar(2) = NULL,
@max_rows int = 30
AS
-- 30/01/2025: LO CAMBIAMOS ASI
BEGIN
SET NOCOUNT ON;
if(@p_taxid is not null and ISNUMERIC(@p_taxid) = 0 and @name is null)
begin
set @name = @p_taxid
set @p_taxid = null
end
exec [api_padrones_busqueda_avanzada_29012025]
null,
@p_taxid,
@name,
null,
null,
null,
null,
null,
null,
@max_rows,
@country_code,
'S'
END
/*
-- ANTES ERA ASI
-- 15/08/2024: LO CAMBIAMOS ASI
BEGIN
SET NOCOUNT ON;
declare @busqueda varchar(100) = ''
if (@country_code!='AR') set @country_code = null
select @p_taxid = ltrim(rtrim(@p_taxid))
select @name = ltrim(rtrim(@name))
IF (isnull(@p_taxid,'') != '') --> Prioriza busqueda por lo que viene en el campo taxid
select @busqueda = @p_taxid
IF (isnull(@name,'') != '')
select @busqueda = @name
select @busqueda = REPLACE(@busqueda,'"','') -- Si hay comillas primero se las sacamos, porque despues se las vamos a agregar, con lo demas que se necesita
if (isnumeric(@busqueda) != 1)
begin
if @busqueda not like '% %' and len(@busqueda) > 2 and @busqueda not like '%*'
-- Si es una sola palabra (no tiene espacios), es de mas de 2 digitos y no termina es *, se lo agregamos
select @busqueda = @busqueda + '*'
if @busqueda not like '% near %'
select @busqueda = '"' + REPLACE(@busqueda,' ','" near "') + '"'
--> si solo viene un numero, no tiene espacios asi que solo le agrega las comillas, pero no hace el replace
--> siempre manda como primer parametro lo que completaron en el buscador de padron, que a veces es el nombre
end
if(@country_code='AR') -- SOLO ARGENTINA
begin
-- Para que en los casos que lo va a buscar en Afip, y lo da de alta en la BD
-- Apenas lo damos de alta, no lo encuentra por fulltext, entonces lo buscamos por identificacion por las dudas....
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '1' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE @p_taxid is not null and identificacion = @p_taxid and country_code in ('AR') and habilitado = 1
union
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '2' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
-- WHERE CONTAINS((PADRONES.*),@busqueda)and country_code in ('AR') and habilitado = 1
WHERE CONTAINS(padrones.*,@busqueda)and country_code in ('AR') and habilitado = 1
RETURN
end
if(@country_code IS NULL) -- EXCEPTO ARGENTINA
begin
-- Para que en los casos que lo va a buscar en Afip y lo trae
-- Apenas lo damos de alta, no lo encuentra por fulltext, entonces lo buscamos por identificacion por las dudas....
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '3' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE @p_taxid is not null and identificacion = @p_taxid and country_code not in ('AR') and habilitado = 1
union
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,isnull(padrones.ismodified,'1901-01-01') as ismodified ,padrones.apellidos,padrones.nombres--, '4' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE CONTAINS((PADRONES.*),@busqueda) and country_code NOT in ('AR') and habilitado = 1
RETURN
end
END
*/
/*
--- 15/08/2024: ANTES ERA ASI ---
BEGIN
SET NOCOUNT ON;
if (@country_code!='AR') set @country_code = null
if(@p_taxid is not null and @country_code='AR') -- POR DNI O TAX ID SOLO ARGENTINA
begin
if (len(@p_taxid)=11 and ISNUMERIC(@p_taxid)=1)
begin
SELECT distinct top(@max_rows) padrones.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified,padrones.apellidos,padrones.nombres, '0' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE identificacion = @p_taxid
and country_code in ('AR') and habilitado = 1 order by padrones.id_padron desc
end
else
begin
SELECT distinct top(@max_rows) padrones.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified,padrones.apellidos,padrones.nombres, '1' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE contains(padrones.*, @p_taxid)
and country_code in ('AR') and habilitado = 1 order by padrones.id_padron desc
end
return
end
if(@p_taxid is not null and @country_code IS NULL) -- POR DNI O TAX ID EXCEPTO ARGENTINA
begin
SELECT distinct top(@max_rows) padrones.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified,padrones.apellidos,padrones.nombres, '2' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE contains(padrones.*, @p_taxid) and habilitado = 1 and country_code NOT in ('AR')
return
end
if(@p_taxid IS NULL and @country_code='AR') -- POR NOMBRE O RAZÓNSOCIAL SOLO ARGENTINA
begin
--SET @name = '"' + @name + '"'
if @name is not null and @name not like '% near %'
select @name = '"' + REPLACE(@name,' ','" near "') + '"'
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified ,padrones.apellidos,padrones.nombres, '3' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE CONTAINS((PADRONES.*),@name) and country_code in ('AR') and habilitado = 1
RETURN
end
if(@p_taxid IS NULL and @country_code IS NULL) -- POR NOMBRE O RAZÓNSOCIAL EXCEPTO ARGENTINA
begin
--SET @name = '"' + @name + '"'
if @name is not null and @name not like '% near %'
select @name = '"' + REPLACE(@name,' ','" near "') + '"'
SELECT distinct top(@max_rows) PADRONES.id_padron, identificacion,nombre_persona,iif(tipo_persona='F','FISICA','JURIDICA') AS tipo_persona,sexo
,c02_fecha_nac as fecha_nacimiento,fecha_defuncion,cuerpo_clave,prv_nombre as provincia,loc_nombre as localidad,identificadores.country_code,
identificadores.identificador as identificador,padrones.ismodified ,padrones.apellidos,padrones.nombres--, '4' as tipo_consulta
from dbo.padrones
inner join identificadores on identificadores.identificador = padrones.identificador
left join domicilios_todos on domicilios_todos.cuit = padrones.identificacion and tipo_domicilio = 'F' and visible = 1
left join datos_personas on datos_personas.c01_cuit = padrones.identificacion
WHERE CONTAINS(PADRONES.*,@name) and country_code NOT in ('AR') and habilitado = 1
RETURN
end
END
--- 15/08/2024: ANTES ERA ASI ---
*/
GO
Depends On
1Used By
No items found