Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
3| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_cuit_empresa | varchar | 20 | |
| @p_cuit_persona | varchar | 20 | |
| @p_apellido | varchar | 250 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec obtener_edictos_con_integrante_mencionado '30710593597', '20177260909', '"BURGOL"'
exec obtener_edictos_con_integrante_mencionado '30641368977', '20177260909', '"BURGOL" or "ALEJANDRO"'
exec obtener_edictos_con_integrante_mencionado '33686214899', '20177260909', '"BURGOL" '
exec obtener_edictos_con_integrante_mencionado '30717991725',NULL,'"MARTINEZ" OR "GARAT" OR NEAR((MARTINEZ,GARAT),0,true) OR NEAR((GARAT,MARTINEZ),0,true)'
*/
CREATE OR ALTER PROCEDURE dbo.obtener_edictos_con_integrante_mencionado
@p_cuit_empresa varchar(20),
@p_cuit_persona varchar(20),
@p_apellido varchar(250)
AS
BEGIN
SET NOCOUNT ON;
declare @cant int = 0;
declare @respuesta table (nro int, provincia_boletin varchar(50), fechab varchar(10), fecha_boletin date, texto varchar(max), razon_social varchar(500), cuit_soc varchar(20))
-- Los que tienen cuit de integrante
insert into @respuesta
select distinct ((ROW_NUMBER() OVER (ORDER BY fecha_publicacion desc))) AS ROWID,
--prv_nombre as provincia_boletin,
provincia_boletin = IIF(provincias.prv_nombre is null, iif(sociedades_constituciones.provincia_sociedad is null,sociedades_constituciones.fuente,sociedades_constituciones.provincia_sociedad), provincias.prv_nombre),
convert(varchar(11),fecha_publicacion,103) as fechab,fecha_publicacion, cast(contenido_archivo as varchar(max)) AS texto,
razon_social, documento_soc
from sociedades_constituciones
left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54
where (documento_soc = @p_cuit_empresa) and (cuit_int = @p_cuit_persona or cuit_integrante = @p_cuit_persona)
and convert(varchar(max),sociedades_constituciones.contenido_archivo) != ''
and sociedades_constituciones.visible = 1
order by fecha_publicacion desc
-- los que no tienen cuit de integrante
set @cant = (select COUNT(*) from @respuesta)
insert into @respuesta
select distinct (@cant + (ROW_NUMBER() OVER (ORDER BY fecha_publicacion desc))) AS ROWID,
--prv_nombre as provincia_boletin,
provincia_boletin = IIF(provincias.prv_nombre is null, iif(sociedades_constituciones.provincia_sociedad is null,sociedades_constituciones.fuente,sociedades_constituciones.provincia_sociedad), provincias.prv_nombre),
convert(varchar(11),fecha_publicacion,103) as fechab,fecha_publicacion, cast(contenido_archivo as varchar(max)) AS texto,
razon_social, documento_soc
from sociedades_constituciones
left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54
where (documento_soc = @p_cuit_empresa /*and cuit_int is null and cuit_integrante is null*/)
and convert(varchar(max),sociedades_constituciones.contenido_archivo) != ''
and (contains(contenido_archivo,@p_apellido))
and sociedades_constituciones.visible = 1
order by fecha_publicacion desc
-- 12/12/2023: Se cambia que solo se muestre un registro por fecha de boletin y principio del texto igual,
-- (porque seguramente son duplicados)
update @respuesta
set texto = ltrim(rtrim(texto))
select provincia_boletin, fechab, fecha_boletin, texto, razon_social, cuit_soc
from @respuesta a
where not exists (select * from @respuesta b where b.fecha_boletin = a.fecha_boletin
and convert(varchar(100),dbo.fn_StripCharacters(upper(convert(varchar(200),b.texto)), '^A-Z0-9/')) =
convert(varchar(100),dbo.fn_StripCharacters(upper(convert(varchar(200),a.texto)), '^A-Z0-9/'))
and b.nro > a.nro
)
order by a.fecha_boletin desc
END
GO
GO
/*
exec obtener_edictos_con_integrante_mencionado '30710593597', '20177260909', '"BURGOL"'
exec obtener_edictos_con_integrante_mencionado '30641368977', '20177260909', '"BURGOL" or "ALEJANDRO"'
exec obtener_edictos_con_integrante_mencionado '33686214899', '20177260909', '"BURGOL" '
exec obtener_edictos_con_integrante_mencionado '30717991725',NULL,'"MARTINEZ" OR "GARAT" OR NEAR((MARTINEZ,GARAT),0,true) OR NEAR((GARAT,MARTINEZ),0,true)'
*/
CREATE OR ALTER PROCEDURE dbo.obtener_edictos_con_integrante_mencionado
@p_cuit_empresa varchar(20),
@p_cuit_persona varchar(20),
@p_apellido varchar(250)
AS
BEGIN
SET NOCOUNT ON;
declare @cant int = 0;
declare @respuesta table (nro int, provincia_boletin varchar(50), fechab varchar(10), fecha_boletin date, texto varchar(max), razon_social varchar(500), cuit_soc varchar(20))
-- Los que tienen cuit de integrante
insert into @respuesta
select distinct ((ROW_NUMBER() OVER (ORDER BY fecha_publicacion desc))) AS ROWID,
--prv_nombre as provincia_boletin,
provincia_boletin = IIF(provincias.prv_nombre is null, iif(sociedades_constituciones.provincia_sociedad is null,sociedades_constituciones.fuente,sociedades_constituciones.provincia_sociedad), provincias.prv_nombre),
convert(varchar(11),fecha_publicacion,103) as fechab,fecha_publicacion, cast(contenido_archivo as varchar(max)) AS texto,
razon_social, documento_soc
from sociedades_constituciones
left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54
where (documento_soc = @p_cuit_empresa) and (cuit_int = @p_cuit_persona or cuit_integrante = @p_cuit_persona)
and convert(varchar(max),sociedades_constituciones.contenido_archivo) != ''
and sociedades_constituciones.visible = 1
order by fecha_publicacion desc
-- los que no tienen cuit de integrante
set @cant = (select COUNT(*) from @respuesta)
insert into @respuesta
select distinct (@cant + (ROW_NUMBER() OVER (ORDER BY fecha_publicacion desc))) AS ROWID,
--prv_nombre as provincia_boletin,
provincia_boletin = IIF(provincias.prv_nombre is null, iif(sociedades_constituciones.provincia_sociedad is null,sociedades_constituciones.fuente,sociedades_constituciones.provincia_sociedad), provincias.prv_nombre),
convert(varchar(11),fecha_publicacion,103) as fechab,fecha_publicacion, cast(contenido_archivo as varchar(max)) AS texto,
razon_social, documento_soc
from sociedades_constituciones
left join provincias on provincias.prv_codigo = provincia_boletin and pai_codigo_ifx = 54
where (documento_soc = @p_cuit_empresa /*and cuit_int is null and cuit_integrante is null*/)
and convert(varchar(max),sociedades_constituciones.contenido_archivo) != ''
and (contains(contenido_archivo,@p_apellido))
and sociedades_constituciones.visible = 1
order by fecha_publicacion desc
-- 12/12/2023: Se cambia que solo se muestre un registro por fecha de boletin y principio del texto igual,
-- (porque seguramente son duplicados)
update @respuesta
set texto = ltrim(rtrim(texto))
select provincia_boletin, fechab, fecha_boletin, texto, razon_social, cuit_soc
from @respuesta a
where not exists (select * from @respuesta b where b.fecha_boletin = a.fecha_boletin
and convert(varchar(100),dbo.fn_StripCharacters(upper(convert(varchar(200),b.texto)), '^A-Z0-9/')) =
convert(varchar(100),dbo.fn_StripCharacters(upper(convert(varchar(200),a.texto)), '^A-Z0-9/'))
and b.nro > a.nro
)
order by a.fecha_boletin desc
END
GO
Used By
No items found