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
-- monitoreos_cendeu_prueba2 '2018-02-05'
CREATE OR ALTER PROCEDURE dbo.monitoreos_cendeu_prueba2
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
declare @r_cuit varchar(20)
declare @yesterday_1 date
declare @carga_cd date
declare @periodo char(6)
declare @dbf_filename varchar(15)
declare @r_tabla varchar(20),
@r_id_cendeu int,
@r_id_fuente int,
@r_fec_inf char(6),
@r_created datetime,
@r_modified datetime,
@r_situacion varchar(2),
@r_dbf_filename varchar(15)
declare @mostrar char(1)
if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end
set @yesterday_1 = @yesterday
/* Cuando se quiere desde una fecha anterior hasta hoy, agregar este set: */
if (@yesterday = '2018-03-07')
begin
set @yesterday_1 = '2018-02-01'
end
/* */
-- Buscamos cuál es el último periodo de deuda cargado
select top 1
@carga_cd = created,
@periodo = replace(CONVERT(char(7),fecha_informacion),'-',''),
@dbf_filename = observaciones
from fuentes_procesadas
where fuente = 'cendeu'
and visible = 1
order by fecha_informacion desc
if (isnull(@dbf_filename,'') = '')
begin
set @dbf_filename =
(select top 1 dbf_filename
from cendeu_temp
where dbf_filename is not null
and fec_inf = @periodo
)
end
-- select @carga_cd, @periodo, @dbf_filename
DECLARE bn CURSOR
FOR
select distinct cuit
from monitoreos
where visible = 1
and seccion_mantenimiento = '10'
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
OPEN bn
Fetch next from bn INTO @r_cuit
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
if (@carga_cd between @yesterday_1 and @yesterday) --> busca en cendeu y cendeu_temp
begin
DECLARE cendeuc CURSOR FOR
select 'cendeu', id_cendeu,
fec_inf,
id_fuente,
CONVERT(date,created),
CONVERT(date,modified),
CONVERT(int,situacion),
dbf_filename
from cendeu
where iden = @r_cuit
and vigente = 1
union all
select 'cendeu_temp', id_cendeu,
fec_inf,
id_fuente,
created,
modified,
situacion,
dbf_filename
from cendeu_temp
where iden = @r_cuit
and vigente = 1
end
else
begin
DECLARE cendeuc CURSOR FOR
select 'cendeu', id_cendeu,
fec_inf,
id_fuente,
CONVERT(date,created),
CONVERT(date,modified),
CONVERT(int,situacion),
dbf_filename
from cendeu
where iden = @r_cuit
and vigente = 1
end
OPEN cendeuc
FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu, @r_id_fuente, @r_fec_inf, @r_created, @r_modified, @r_situacion, @r_dbf_filename
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
set @mostrar = 'N'
if (convert(int,@r_situacion) = 1)
begin
FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu, @r_id_fuente, @r_fec_inf, @r_created, @r_modified, @r_situacion, @r_dbf_filename
continue
end -- No se muestra en monitoreo Situacion 1
if (@carga_cd between @yesterday_1 and @yesterday)
begin
-- Se termino de cargar un nuevo cd dentro de los días que buscamos --> busco los registros de ese periodo
if (@r_fec_inf = @periodo or @r_dbf_filename = @dbf_filename)
begin
-- Es una novedad a mostrar
set @mostrar = 'S'
end
end
-- busco los registros modificados por usuarios esos días
if (@r_id_fuente = 2) -- lo cargaron a mano
begin
if (@r_created is not null and convert(date,@r_created) between @yesterday_1 and @yesterday)
begin
-- Es una novedad a mostrar
set @mostrar = 'S'
end
if (@r_modified is not null and convert(date,@r_modified) between @yesterday_1 and @yesterday)
begin
-- Es una novedad a mostrar
set @mostrar = 'S'
end
end
if (@mostrar = 'S')
begin
/*
insert into monitoreos_resultados
(id_tabla, tabla, cuit, seccion_mantenimiento, fecha, novedad, tipo_novedad)
values (@r_id_cendeu, @r_tabla, @r_cuit, 10, @yesterday, 1, 'Bancos');
update monitoreos
set fecha_ultimo_procesamiento = @yesterday,
fecha_modificacion = @yesterday
where cuit= @r_cuit
and seccion_mantenimiento = 10
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
-- and (fecha_desde is null or fecha_desde <= @yesterday)
*/
select @mostrar as mostrar, @r_id_cendeu, @r_tabla
end
FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu, @r_id_fuente, @r_fec_inf, @r_created, @r_modified, @r_situacion, @r_dbf_filename
END
CLOSE cendeuc
DEALLOCATE cendeuc
FETCH next from bn INTO @r_cuit
END
CLOSE bn
DEALLOCATE bn
END
GO
GO
-- monitoreos_cendeu_prueba2 '2018-02-05'
CREATE OR ALTER PROCEDURE dbo.monitoreos_cendeu_prueba2
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
declare @r_cuit varchar(20)
declare @yesterday_1 date
declare @carga_cd date
declare @periodo char(6)
declare @dbf_filename varchar(15)
declare @r_tabla varchar(20),
@r_id_cendeu int,
@r_id_fuente int,
@r_fec_inf char(6),
@r_created datetime,
@r_modified datetime,
@r_situacion varchar(2),
@r_dbf_filename varchar(15)
declare @mostrar char(1)
if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end
set @yesterday_1 = @yesterday
/* Cuando se quiere desde una fecha anterior hasta hoy, agregar este set: */
if (@yesterday = '2018-03-07')
begin
set @yesterday_1 = '2018-02-01'
end
/* */
-- Buscamos cuál es el último periodo de deuda cargado
select top 1
@carga_cd = created,
@periodo = replace(CONVERT(char(7),fecha_informacion),'-',''),
@dbf_filename = observaciones
from fuentes_procesadas
where fuente = 'cendeu'
and visible = 1
order by fecha_informacion desc
if (isnull(@dbf_filename,'') = '')
begin
set @dbf_filename =
(select top 1 dbf_filename
from cendeu_temp
where dbf_filename is not null
and fec_inf = @periodo
)
end
-- select @carga_cd, @periodo, @dbf_filename
DECLARE bn CURSOR
FOR
select distinct cuit
from monitoreos
where visible = 1
and seccion_mantenimiento = '10'
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
OPEN bn
Fetch next from bn INTO @r_cuit
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
if (@carga_cd between @yesterday_1 and @yesterday) --> busca en cendeu y cendeu_temp
begin
DECLARE cendeuc CURSOR FOR
select 'cendeu', id_cendeu,
fec_inf,
id_fuente,
CONVERT(date,created),
CONVERT(date,modified),
CONVERT(int,situacion),
dbf_filename
from cendeu
where iden = @r_cuit
and vigente = 1
union all
select 'cendeu_temp', id_cendeu,
fec_inf,
id_fuente,
created,
modified,
situacion,
dbf_filename
from cendeu_temp
where iden = @r_cuit
and vigente = 1
end
else
begin
DECLARE cendeuc CURSOR FOR
select 'cendeu', id_cendeu,
fec_inf,
id_fuente,
CONVERT(date,created),
CONVERT(date,modified),
CONVERT(int,situacion),
dbf_filename
from cendeu
where iden = @r_cuit
and vigente = 1
end
OPEN cendeuc
FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu, @r_id_fuente, @r_fec_inf, @r_created, @r_modified, @r_situacion, @r_dbf_filename
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
set @mostrar = 'N'
if (convert(int,@r_situacion) = 1)
begin
FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu, @r_id_fuente, @r_fec_inf, @r_created, @r_modified, @r_situacion, @r_dbf_filename
continue
end -- No se muestra en monitoreo Situacion 1
if (@carga_cd between @yesterday_1 and @yesterday)
begin
-- Se termino de cargar un nuevo cd dentro de los días que buscamos --> busco los registros de ese periodo
if (@r_fec_inf = @periodo or @r_dbf_filename = @dbf_filename)
begin
-- Es una novedad a mostrar
set @mostrar = 'S'
end
end
-- busco los registros modificados por usuarios esos días
if (@r_id_fuente = 2) -- lo cargaron a mano
begin
if (@r_created is not null and convert(date,@r_created) between @yesterday_1 and @yesterday)
begin
-- Es una novedad a mostrar
set @mostrar = 'S'
end
if (@r_modified is not null and convert(date,@r_modified) between @yesterday_1 and @yesterday)
begin
-- Es una novedad a mostrar
set @mostrar = 'S'
end
end
if (@mostrar = 'S')
begin
/*
insert into monitoreos_resultados
(id_tabla, tabla, cuit, seccion_mantenimiento, fecha, novedad, tipo_novedad)
values (@r_id_cendeu, @r_tabla, @r_cuit, 10, @yesterday, 1, 'Bancos');
update monitoreos
set fecha_ultimo_procesamiento = @yesterday,
fecha_modificacion = @yesterday
where cuit= @r_cuit
and seccion_mantenimiento = 10
and (fecha_vigencia_mantenimiento is null or fecha_vigencia_mantenimiento >= @yesterday)
-- and (fecha_desde is null or fecha_desde <= @yesterday)
*/
select @mostrar as mostrar, @r_id_cendeu, @r_tabla
end
FETCH next from cendeuc INTO @r_tabla, @r_id_cendeu, @r_id_fuente, @r_fec_inf, @r_created, @r_modified, @r_situacion, @r_dbf_filename
END
CLOSE cendeuc
DEALLOCATE cendeuc
FETCH next from bn INTO @r_cuit
END
CLOSE bn
DEALLOCATE bn
END
GO
Depends On
4Used By
No items found