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_formales]
*/
-- select * from productos_secciones where producto = 12
-- seccion 2 = formales - CLAE
CREATE OR ALTER PROCEDURE dbo.monitoreos_batch_formales
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
declare @id_clae int,
@clae int,
@descripcion varchar(500),
@fecha date,
@html varchar(max),
@accion varchar(20),
@fecha_inicio_actividad 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 = 2
DECLARE bn CURSOR FOR
select distinct cuit
from monitoreos
where visible = 1
and isnull(seccion_mantenimiento,2) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday)
OPEN bn
Fetch next from bn INTO @r_cuit
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
DECLARE mod_clae CURSOR FOR
-- dados de alta en el dia, pero no dado de baja un registro igual
select id_clae, cod_clae, descripcion, fecha_inicio_actividad, 'alta', convert(date,created)
from clae a
where a.cuit = @r_cuit
-- el día que estamos monitoreando
and (convert(date,a.created) = @yesterday)
and a.visible = 1
and not exists (select * from clae b
where b.cuit = a.cuit and convert(int,b.cod_clae) = convert(int,a.cod_clae)
and b.visible = 0
and (convert(date,b.created) = @yesterday or convert(date,b.modified) = @yesterday))
union
-- dados de baja en el dia, pero no dado de alta un registro igual
select id_clae, cod_clae, descripcion, fecha_inicio_actividad, 'baja', convert(date,modified)
from clae a
where a.cuit = @r_cuit
-- el día que estamos monitoreando
and (convert(date,a.modified) = @yesterday and a.modified is not null)
and a.visible = 0
and not exists (select * from clae b
where b.cuit = a.cuit and convert(int,b.cod_clae) = convert(int,a.cod_clae)
and b.visible = 1
and (convert(date,b.created) = @yesterday or convert(date,b.modified) = @yesterday))
OPEN mod_clae
FETCH next from mod_clae INTO @id_clae,@clae,@descripcion,@fecha_inicio_actividad,@accion,@fecha
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
-- CUIT | clae alta | clae baja
if(@accion = 'alta')
set @html = '<td>'+@r_cuit+'</td>'+
'<td>'+iif(@fecha_inicio_actividad is null,'',format(@fecha_inicio_actividad,'MM/yyyy'))+'</td>'+
'<td align=left>'+format(@clae,'000000')+' - '+@descripcion+'</td>'+
'<td align=left></td>'
else
set @html = '<td>'+@r_cuit+'</td>'+
'<td>'+iif(@fecha_inicio_actividad is null,'',format(@fecha_inicio_actividad,'MM/yyyy'))+'</td>'+
'<td align=left></td>' +
'<td align=left>'+format(@clae,'000000')+' - '+@descripcion+'</td>'
insert into monitoreos_resultados (id_tabla, tabla, cuit, seccion_mantenimiento, fecha, novedad, tipo_novedad, html)
values(@id_clae, 'clae', @r_cuit, 2, @fecha, 1, 'clae', @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_clae INTO @id_clae,@clae,@descripcion,@fecha_inicio_actividad,@accion,@fecha
END
CLOSE mod_clae
DEALLOCATE mod_clae
FETCH next from bn INTO @r_cuit
END
CLOSE bn
DEALLOCATE bn
END
GO
GO
/*
exec [monitoreos_batch_formales]
*/
-- select * from productos_secciones where producto = 12
-- seccion 2 = formales - CLAE
CREATE OR ALTER PROCEDURE dbo.monitoreos_batch_formales
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
declare @id_clae int,
@clae int,
@descripcion varchar(500),
@fecha date,
@html varchar(max),
@accion varchar(20),
@fecha_inicio_actividad 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 = 2
DECLARE bn CURSOR FOR
select distinct cuit
from monitoreos
where visible = 1
and isnull(seccion_mantenimiento,2) = @r_seccion_mantenimiento
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
and (fecha_desde is null or fecha_desde <= @yesterday)
OPEN bn
Fetch next from bn INTO @r_cuit
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
DECLARE mod_clae CURSOR FOR
-- dados de alta en el dia, pero no dado de baja un registro igual
select id_clae, cod_clae, descripcion, fecha_inicio_actividad, 'alta', convert(date,created)
from clae a
where a.cuit = @r_cuit
-- el día que estamos monitoreando
and (convert(date,a.created) = @yesterday)
and a.visible = 1
and not exists (select * from clae b
where b.cuit = a.cuit and convert(int,b.cod_clae) = convert(int,a.cod_clae)
and b.visible = 0
and (convert(date,b.created) = @yesterday or convert(date,b.modified) = @yesterday))
union
-- dados de baja en el dia, pero no dado de alta un registro igual
select id_clae, cod_clae, descripcion, fecha_inicio_actividad, 'baja', convert(date,modified)
from clae a
where a.cuit = @r_cuit
-- el día que estamos monitoreando
and (convert(date,a.modified) = @yesterday and a.modified is not null)
and a.visible = 0
and not exists (select * from clae b
where b.cuit = a.cuit and convert(int,b.cod_clae) = convert(int,a.cod_clae)
and b.visible = 1
and (convert(date,b.created) = @yesterday or convert(date,b.modified) = @yesterday))
OPEN mod_clae
FETCH next from mod_clae INTO @id_clae,@clae,@descripcion,@fecha_inicio_actividad,@accion,@fecha
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
-- CUIT | clae alta | clae baja
if(@accion = 'alta')
set @html = '<td>'+@r_cuit+'</td>'+
'<td>'+iif(@fecha_inicio_actividad is null,'',format(@fecha_inicio_actividad,'MM/yyyy'))+'</td>'+
'<td align=left>'+format(@clae,'000000')+' - '+@descripcion+'</td>'+
'<td align=left></td>'
else
set @html = '<td>'+@r_cuit+'</td>'+
'<td>'+iif(@fecha_inicio_actividad is null,'',format(@fecha_inicio_actividad,'MM/yyyy'))+'</td>'+
'<td align=left></td>' +
'<td align=left>'+format(@clae,'000000')+' - '+@descripcion+'</td>'
insert into monitoreos_resultados (id_tabla, tabla, cuit, seccion_mantenimiento, fecha, novedad, tipo_novedad, html)
values(@id_clae, 'clae', @r_cuit, 2, @fecha, 1, 'clae', @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_clae INTO @id_clae,@clae,@descripcion,@fecha_inicio_actividad,@accion,@fecha
END
CLOSE mod_clae
DEALLOCATE mod_clae
FETCH next from bn INTO @r_cuit
END
CLOSE bn
DEALLOCATE bn
END
GO
Depends On
2Used By
No items found