Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
1| Name | Data Type | Length | Description |
|---|---|---|---|
| @yesterday | date | 3 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [monitoreos_batch_socios]
*/
-- select * from productos_secciones where producto = 12
-- seccion 8 = Relaciones
CREATE OR ALTER PROCEDURE dbo.monitoreos_batch_socios
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
declare @id int,
@cuit_new varchar(20),
@cuit_old varchar(20),
@cuit_relacionado_new varchar(20),
@cuit_relacionado_old varchar(20),
@cargo_new varchar(20),
@cargo_old varchar(20),
@ultimo_directorio_new varchar(20),
@ultimo_directorio_old varchar(20),
@accion varchar(20),
@html varchar(max),
@cargo varchar(200),
@empresa varchar(200),
@socio varchar(200),
@ultimo_directorio varchar(200),
@id_padron_new int,
@id_padron_old int,
@id_padron_relacionado_new int,
@id_padron_relacionado_old int,
@created date
if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end
declare @cant1 bigint
declare @cant2 bigint
declare @r_cuit varchar(20),@r_seccion_mantenimiento int = 8
DECLARE bn CURSOR FOR
/* select distinct cuit
from monitoreos
where visible = 1
and isnull(seccion_mantenimiento,8) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday)
*/
select distinct monitoreos.cuit
from trazabilidad_id_padron
inner join monitoreos on
((isnull(trazabilidad_id_padron.cuit_new,'') = monitoreos.cuit or isnull(trazabilidad_id_padron.cuit_relacionado_new,'') = monitoreos.cuit)
and monitoreos.visible = 1
and isnull(seccion_mantenimiento,8) = 8
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday))
where convert(date,trazabilidad_id_padron.created) = @yesterday
OPEN bn
Fetch next from bn INTO @r_cuit
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
DECLARE mod_socios CURSOR FOR
select id_trazabilidad, accion, cuit_new, id_padron_new, cuit_old, id_padron_old,
cuit_relacionado_new, id_padron_relacionado_new, cuit_relacionado_old, id_padron_relacionado_old,
cargo_new, cargo_old,
ultimo_directorio_new, ultimo_directorio_old, created
from trazabilidad_id_padron
where (-- es un alta
accion = 'INSERT' or
-- o algo cambio
(isnull(cuit_old,'') != isnull(cuit_new,'') or
isnull(cuit_relacionado_old,'') != isnull(cuit_relacionado_new,'') or
isnull(cargo_old,'') != isnull(cargo_new,'') or
isnull(ultimo_directorio_old,'') != isnull(ultimo_directorio_new,'')))
-- para el CUIT que estamos monitoreando
/*and (isnull(cuit_old,'') = @r_cuit or isnull(cuit_new,'') = @r_cuit or
isnull(cuit_relacionado_new,'') = @r_cuit or isnull(cuit_relacionado_old,'') = @r_cuit)*/
and (isnull(cuit_new,'') = @r_cuit or
isnull(cuit_relacionado_new,'') = @r_cuit)
-- el día que estamos monitoreando
and (convert(date,created) = @yesterday and created is not null)
order by created
OPEN mod_socios
FETCH next from mod_socios INTO @id, @accion,
@cuit_new, @id_padron_new,
@cuit_old, @id_padron_old,
@cuit_relacionado_new, @id_padron_relacionado_new,
@cuit_relacionado_old, @id_padron_relacionado_old,
@cargo_new, @cargo_old,
@ultimo_directorio_new,
@ultimo_directorio_old,
@created
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
set @cargo = ''
set @empresa = ''
set @socio = ''
if @cargo_new is not null
set @cargo = (select car_nombre from cargos where car_codigo = @cargo_new)
if @id_padron_new is not null
set @empresa = (select nombre_persona from padrones where id_padron = @id_padron_new)
if @id_padron_relacionado_new is not null
set @socio = (select nombre_persona from padrones where id_padron = @id_padron_relacionado_new)
set @ultimo_directorio = case @ultimo_directorio_new
when 'N' then 'NO'
when 'S' then 'SI'
else ''
end
set @html = '<td align=left>'+@cuit_new+'</td>'+
'<td align=left>'+@empresa+'</td>'+
'<td align=left>'+@cuit_relacionado_new+'</td>'+
'<td align=left> '+@socio+'</td>'+
'<td align=left>'+@cargo+'</td>'+
'<td align=left>'+@ultimo_directorio+'</td>'
insert into monitoreos_resultados (id_tabla, tabla,cuit, seccion_mantenimiento, fecha, novedad, tipo_novedad, html)
values(@id, 'trazabilidad_id_padron', @r_cuit, 8, @created, 1, 'Socios', @html)
update monitoreos
set fecha_ultimo_procesamiento = @yesterday,
fecha_modificacion = @yesterday
where cuit = @r_cuit
and isnull(seccion_mantenimiento,@r_seccion_mantenimiento) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday)
FETCH next from mod_socios INTO @id, @accion,
@cuit_new, @id_padron_new,
@cuit_old, @id_padron_old,
@cuit_relacionado_new, @id_padron_relacionado_new,
@cuit_relacionado_old, @id_padron_relacionado_old,
@cargo_new, @cargo_old,
@ultimo_directorio_new,
@ultimo_directorio_old,
@created
END
CLOSE mod_socios
DEALLOCATE mod_socios
FETCH next from bn INTO @r_cuit
END
CLOSE bn
DEALLOCATE bn
END
GO
GO
/*
exec [monitoreos_batch_socios]
*/
-- select * from productos_secciones where producto = 12
-- seccion 8 = Relaciones
CREATE OR ALTER PROCEDURE dbo.monitoreos_batch_socios
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
declare @id int,
@cuit_new varchar(20),
@cuit_old varchar(20),
@cuit_relacionado_new varchar(20),
@cuit_relacionado_old varchar(20),
@cargo_new varchar(20),
@cargo_old varchar(20),
@ultimo_directorio_new varchar(20),
@ultimo_directorio_old varchar(20),
@accion varchar(20),
@html varchar(max),
@cargo varchar(200),
@empresa varchar(200),
@socio varchar(200),
@ultimo_directorio varchar(200),
@id_padron_new int,
@id_padron_old int,
@id_padron_relacionado_new int,
@id_padron_relacionado_old int,
@created date
if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end
declare @cant1 bigint
declare @cant2 bigint
declare @r_cuit varchar(20),@r_seccion_mantenimiento int = 8
DECLARE bn CURSOR FOR
/* select distinct cuit
from monitoreos
where visible = 1
and isnull(seccion_mantenimiento,8) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday)
*/
select distinct monitoreos.cuit
from trazabilidad_id_padron
inner join monitoreos on
((isnull(trazabilidad_id_padron.cuit_new,'') = monitoreos.cuit or isnull(trazabilidad_id_padron.cuit_relacionado_new,'') = monitoreos.cuit)
and monitoreos.visible = 1
and isnull(seccion_mantenimiento,8) = 8
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday))
where convert(date,trazabilidad_id_padron.created) = @yesterday
OPEN bn
Fetch next from bn INTO @r_cuit
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
DECLARE mod_socios CURSOR FOR
select id_trazabilidad, accion, cuit_new, id_padron_new, cuit_old, id_padron_old,
cuit_relacionado_new, id_padron_relacionado_new, cuit_relacionado_old, id_padron_relacionado_old,
cargo_new, cargo_old,
ultimo_directorio_new, ultimo_directorio_old, created
from trazabilidad_id_padron
where (-- es un alta
accion = 'INSERT' or
-- o algo cambio
(isnull(cuit_old,'') != isnull(cuit_new,'') or
isnull(cuit_relacionado_old,'') != isnull(cuit_relacionado_new,'') or
isnull(cargo_old,'') != isnull(cargo_new,'') or
isnull(ultimo_directorio_old,'') != isnull(ultimo_directorio_new,'')))
-- para el CUIT que estamos monitoreando
/*and (isnull(cuit_old,'') = @r_cuit or isnull(cuit_new,'') = @r_cuit or
isnull(cuit_relacionado_new,'') = @r_cuit or isnull(cuit_relacionado_old,'') = @r_cuit)*/
and (isnull(cuit_new,'') = @r_cuit or
isnull(cuit_relacionado_new,'') = @r_cuit)
-- el día que estamos monitoreando
and (convert(date,created) = @yesterday and created is not null)
order by created
OPEN mod_socios
FETCH next from mod_socios INTO @id, @accion,
@cuit_new, @id_padron_new,
@cuit_old, @id_padron_old,
@cuit_relacionado_new, @id_padron_relacionado_new,
@cuit_relacionado_old, @id_padron_relacionado_old,
@cargo_new, @cargo_old,
@ultimo_directorio_new,
@ultimo_directorio_old,
@created
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
set @cargo = ''
set @empresa = ''
set @socio = ''
if @cargo_new is not null
set @cargo = (select car_nombre from cargos where car_codigo = @cargo_new)
if @id_padron_new is not null
set @empresa = (select nombre_persona from padrones where id_padron = @id_padron_new)
if @id_padron_relacionado_new is not null
set @socio = (select nombre_persona from padrones where id_padron = @id_padron_relacionado_new)
set @ultimo_directorio = case @ultimo_directorio_new
when 'N' then 'NO'
when 'S' then 'SI'
else ''
end
set @html = '<td align=left>'+@cuit_new+'</td>'+
'<td align=left>'+@empresa+'</td>'+
'<td align=left>'+@cuit_relacionado_new+'</td>'+
'<td align=left> '+@socio+'</td>'+
'<td align=left>'+@cargo+'</td>'+
'<td align=left>'+@ultimo_directorio+'</td>'
insert into monitoreos_resultados (id_tabla, tabla,cuit, seccion_mantenimiento, fecha, novedad, tipo_novedad, html)
values(@id, 'trazabilidad_id_padron', @r_cuit, 8, @created, 1, 'Socios', @html)
update monitoreos
set fecha_ultimo_procesamiento = @yesterday,
fecha_modificacion = @yesterday
where cuit = @r_cuit
and isnull(seccion_mantenimiento,@r_seccion_mantenimiento) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday)
FETCH next from mod_socios INTO @id, @accion,
@cuit_new, @id_padron_new,
@cuit_old, @id_padron_old,
@cuit_relacionado_new, @id_padron_relacionado_new,
@cuit_relacionado_old, @id_padron_relacionado_old,
@cargo_new, @cargo_old,
@ultimo_directorio_new,
@ultimo_directorio_old,
@created
END
CLOSE mod_socios
DEALLOCATE mod_socios
FETCH next from bn INTO @r_cuit
END
CLOSE bn
DEALLOCATE bn
END
GO
Depends On
4Used By
No items found