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_9
CREATE OR ALTER PROCEDURE dbo.monitoreos_indicadores
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end
declare @cant_cliente bigint
declare @cliente int
declare @texto varchar(1000)
declare @cuit varchar(20)
declare @nombre_persona varchar(200)
declare @familia varchar(200)
declare @contraparte int
declare @fecha_old datetime
declare @valor_numerico_old float
declare @valor_texto_old varchar(100)
declare @valor_memo_old varchar(max)
declare @valor_fecha_old datetime
declare @fecha_new datetime
declare @valor_numerico_new float
declare @valor_texto_new varchar(100)
declare @valor_memo_new varchar(max)
declare @valor_fecha_new datetime
declare @detalle_killer_old varchar(max)
declare @detalle_puntos_old varchar(max)
declare @detalle_killer_new varchar(max)
declare @detalle_puntos_new varchar(max)
declare @antes varchar(max)
declare @ahora varchar(max)
declare @resultados table (cliente int, contraparte int, nombre varchar(100), familia varchar(100),
cuit varchar(20), texto varchar(100), antes varchar(max), ahora varchar(max))
DECLARE bn CURSOR FOR
select distinct cliente
from clientes_productos
where id_producto = 72 -- Monitoreo Indicadores MIN
and activo = 1
OPEN bn
Fetch next from bn INTO @cliente
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
DECLARE C_min CURSOR
FOR
select trazabilidad.contraparte,
padrones.nombre_persona,
padrones.identificacion,
fam.nombre_familia,
trazabilidad.texto,
trazabilidad.fecha_old,
trazabilidad.valor_numerico_old,
trazabilidad.valor_texto_old,
convert(varchar(max),trazabilidad.valor_memo_old),
trazabilidad.valor_fecha_old,
trazabilidad.detalle_killer_old,
trazabilidad.detalle_puntos_old,
trazabilidad.fecha_new,
trazabilidad.valor_numerico_new,
trazabilidad.valor_texto_new,
convert(varchar(max),trazabilidad.valor_memo_new),
trazabilidad.valor_fecha_new,
trazabilidad.detalle_killer_new,
trazabilidad.detalle_puntos_new
from trazabilidad
inner join ln_contrapartes on ln_contrapartes.contraparte = trazabilidad.contraparte
inner join padrones on padrones.id_padron = ln_contrapartes.id_padron
inner join ln_contraparte_familias famc on famc.contraparte = trazabilidad.contraparte
inner join ln_familias fam on fam.familia = famc.familia
where trazabilidad.cliente = @cliente
and trazabilidad.id_plataforma = 'INDICADOR'
and trazabilidad.created >= @yesterday
set @cant_cliente = 0
OPEN C_min
FETCH next from C_min INTO @contraparte,
@nombre_persona,
@cuit,
@familia,
@texto ,
@fecha_old ,
@valor_numerico_old ,
@valor_texto_old ,
@valor_memo_old ,
@valor_fecha_old ,
@detalle_killer_old ,
@detalle_puntos_old,
@fecha_new ,
@valor_numerico_new ,
@valor_texto_new ,
@valor_memo_new ,
@valor_fecha_new ,
@detalle_killer_new ,
@detalle_puntos_new
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
set @antes = ''
set @ahora = ''
set @cant_cliente = @cant_cliente + 1
if (@valor_numerico_old is not null and @valor_numerico_new is null)
or
(@valor_numerico_old is null and @valor_numerico_new is not null)
or
(@valor_numerico_old != @valor_numerico_new)
begin
if (@valor_numerico_old >= 0)
set @antes = @antes + ' ' + (convert(varchar(max), @valor_numerico_old))
else
if (@valor_numerico_old = -100)
set @antes = @antes + ' N/A'
if (@valor_numerico_new >= 0)
set @ahora = @ahora + ' ' + (convert(varchar(max), @valor_numerico_new))
else
if (@valor_numerico_new = -100)
set @ahora = @ahora + ' N/A'
end
if (@valor_texto_old is not null and @valor_texto_new is null)
or
(@valor_texto_old is null and @valor_texto_new is not null)
or
(@valor_texto_old != @valor_texto_new)
begin
set @antes = @antes + ' ' + @valor_texto_old
set @ahora = @ahora + ' ' + @valor_texto_new
end
if (@valor_fecha_old is not null and @valor_fecha_new is null)
or
(@valor_fecha_old is null and @valor_fecha_new is not null)
or
(@valor_fecha_old != @valor_fecha_new)
begin
set @antes = @antes + ' ' + (convert(varchar, @valor_fecha_old, 103))
set @ahora = @ahora + ' ' + (convert(varchar, @valor_fecha_new, 103))
end
if (@valor_memo_old is not null and @valor_memo_new is null)
or
(@valor_memo_old is null and @valor_memo_new is not null)
or
(@valor_memo_old != @valor_memo_new)
begin
set @antes = @antes + ' ' + @valor_memo_old
set @ahora = @ahora + ' ' + @valor_memo_new
end
if (@detalle_killer_old is not null and @detalle_killer_new is null)
or
(@detalle_killer_old is null and @detalle_killer_new is not null)
or
(@detalle_killer_old != @detalle_killer_new)
begin
set @antes = @antes + ' Motivos Rechazo: ' + @detalle_killer_old
set @ahora = @ahora + ' Motivos Rechazo: ' + @detalle_killer_new
end
if (@detalle_puntos_old is not null and @detalle_puntos_new is null)
or
(@detalle_puntos_old is null and @detalle_puntos_new is not null)
or
(@detalle_puntos_old != @detalle_puntos_new)
begin
set @antes = @antes + ' Motivos: ' + @detalle_puntos_old
set @ahora = @ahora + ' Motivos: ' + @detalle_puntos_new
end
insert into @resultados
(
cliente, contraparte, nombre, familia, cuit, texto, antes, ahora)
values (@cliente, @contraparte, @nombre_persona, @familia, @cuit, @texto, @antes, @ahora)
FETCH next from C_min INTO @contraparte,
@nombre_persona,
@cuit,
@familia,
@texto ,
@fecha_old ,
@valor_numerico_old ,
@valor_texto_old ,
@valor_memo_old ,
@valor_fecha_old ,
@detalle_killer_old ,
@detalle_puntos_old,
@fecha_new ,
@valor_numerico_new ,
@valor_texto_new ,
@valor_memo_new ,
@valor_fecha_new ,
@detalle_killer_new ,
@detalle_puntos_new
END
CLOSE C_min
DEALLOCATE C_min
/*
DECLARE C_mail CURSOR FOR
select e_mail
from users
where user_id in (
where id_producto = 72 -- Monitoreo Indicadores MIN
and activo = 1
OPEN C_Mail
Fetch next from bn INTO @cliente
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
if (@cant_cliente = 0)
insert into @mails (cliente, dirmail, 'SIN NOVEDADES')*/
FETCH next from bn INTO @cliente
END
CLOSE bn
DEALLOCATE bn
END
GO
GO
--exec monitoreos_batch_9
CREATE OR ALTER PROCEDURE dbo.monitoreos_indicadores
@yesterday date = null
AS
BEGIN
SET NOCOUNT ON;
if (@yesterday is null) begin set @yesterday = GETDATE() - 1 end
declare @cant_cliente bigint
declare @cliente int
declare @texto varchar(1000)
declare @cuit varchar(20)
declare @nombre_persona varchar(200)
declare @familia varchar(200)
declare @contraparte int
declare @fecha_old datetime
declare @valor_numerico_old float
declare @valor_texto_old varchar(100)
declare @valor_memo_old varchar(max)
declare @valor_fecha_old datetime
declare @fecha_new datetime
declare @valor_numerico_new float
declare @valor_texto_new varchar(100)
declare @valor_memo_new varchar(max)
declare @valor_fecha_new datetime
declare @detalle_killer_old varchar(max)
declare @detalle_puntos_old varchar(max)
declare @detalle_killer_new varchar(max)
declare @detalle_puntos_new varchar(max)
declare @antes varchar(max)
declare @ahora varchar(max)
declare @resultados table (cliente int, contraparte int, nombre varchar(100), familia varchar(100),
cuit varchar(20), texto varchar(100), antes varchar(max), ahora varchar(max))
DECLARE bn CURSOR FOR
select distinct cliente
from clientes_productos
where id_producto = 72 -- Monitoreo Indicadores MIN
and activo = 1
OPEN bn
Fetch next from bn INTO @cliente
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
DECLARE C_min CURSOR
FOR
select trazabilidad.contraparte,
padrones.nombre_persona,
padrones.identificacion,
fam.nombre_familia,
trazabilidad.texto,
trazabilidad.fecha_old,
trazabilidad.valor_numerico_old,
trazabilidad.valor_texto_old,
convert(varchar(max),trazabilidad.valor_memo_old),
trazabilidad.valor_fecha_old,
trazabilidad.detalle_killer_old,
trazabilidad.detalle_puntos_old,
trazabilidad.fecha_new,
trazabilidad.valor_numerico_new,
trazabilidad.valor_texto_new,
convert(varchar(max),trazabilidad.valor_memo_new),
trazabilidad.valor_fecha_new,
trazabilidad.detalle_killer_new,
trazabilidad.detalle_puntos_new
from trazabilidad
inner join ln_contrapartes on ln_contrapartes.contraparte = trazabilidad.contraparte
inner join padrones on padrones.id_padron = ln_contrapartes.id_padron
inner join ln_contraparte_familias famc on famc.contraparte = trazabilidad.contraparte
inner join ln_familias fam on fam.familia = famc.familia
where trazabilidad.cliente = @cliente
and trazabilidad.id_plataforma = 'INDICADOR'
and trazabilidad.created >= @yesterday
set @cant_cliente = 0
OPEN C_min
FETCH next from C_min INTO @contraparte,
@nombre_persona,
@cuit,
@familia,
@texto ,
@fecha_old ,
@valor_numerico_old ,
@valor_texto_old ,
@valor_memo_old ,
@valor_fecha_old ,
@detalle_killer_old ,
@detalle_puntos_old,
@fecha_new ,
@valor_numerico_new ,
@valor_texto_new ,
@valor_memo_new ,
@valor_fecha_new ,
@detalle_killer_new ,
@detalle_puntos_new
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
set @antes = ''
set @ahora = ''
set @cant_cliente = @cant_cliente + 1
if (@valor_numerico_old is not null and @valor_numerico_new is null)
or
(@valor_numerico_old is null and @valor_numerico_new is not null)
or
(@valor_numerico_old != @valor_numerico_new)
begin
if (@valor_numerico_old >= 0)
set @antes = @antes + ' ' + (convert(varchar(max), @valor_numerico_old))
else
if (@valor_numerico_old = -100)
set @antes = @antes + ' N/A'
if (@valor_numerico_new >= 0)
set @ahora = @ahora + ' ' + (convert(varchar(max), @valor_numerico_new))
else
if (@valor_numerico_new = -100)
set @ahora = @ahora + ' N/A'
end
if (@valor_texto_old is not null and @valor_texto_new is null)
or
(@valor_texto_old is null and @valor_texto_new is not null)
or
(@valor_texto_old != @valor_texto_new)
begin
set @antes = @antes + ' ' + @valor_texto_old
set @ahora = @ahora + ' ' + @valor_texto_new
end
if (@valor_fecha_old is not null and @valor_fecha_new is null)
or
(@valor_fecha_old is null and @valor_fecha_new is not null)
or
(@valor_fecha_old != @valor_fecha_new)
begin
set @antes = @antes + ' ' + (convert(varchar, @valor_fecha_old, 103))
set @ahora = @ahora + ' ' + (convert(varchar, @valor_fecha_new, 103))
end
if (@valor_memo_old is not null and @valor_memo_new is null)
or
(@valor_memo_old is null and @valor_memo_new is not null)
or
(@valor_memo_old != @valor_memo_new)
begin
set @antes = @antes + ' ' + @valor_memo_old
set @ahora = @ahora + ' ' + @valor_memo_new
end
if (@detalle_killer_old is not null and @detalle_killer_new is null)
or
(@detalle_killer_old is null and @detalle_killer_new is not null)
or
(@detalle_killer_old != @detalle_killer_new)
begin
set @antes = @antes + ' Motivos Rechazo: ' + @detalle_killer_old
set @ahora = @ahora + ' Motivos Rechazo: ' + @detalle_killer_new
end
if (@detalle_puntos_old is not null and @detalle_puntos_new is null)
or
(@detalle_puntos_old is null and @detalle_puntos_new is not null)
or
(@detalle_puntos_old != @detalle_puntos_new)
begin
set @antes = @antes + ' Motivos: ' + @detalle_puntos_old
set @ahora = @ahora + ' Motivos: ' + @detalle_puntos_new
end
insert into @resultados
(
cliente, contraparte, nombre, familia, cuit, texto, antes, ahora)
values (@cliente, @contraparte, @nombre_persona, @familia, @cuit, @texto, @antes, @ahora)
FETCH next from C_min INTO @contraparte,
@nombre_persona,
@cuit,
@familia,
@texto ,
@fecha_old ,
@valor_numerico_old ,
@valor_texto_old ,
@valor_memo_old ,
@valor_fecha_old ,
@detalle_killer_old ,
@detalle_puntos_old,
@fecha_new ,
@valor_numerico_new ,
@valor_texto_new ,
@valor_memo_new ,
@valor_fecha_new ,
@detalle_killer_new ,
@detalle_puntos_new
END
CLOSE C_min
DEALLOCATE C_min
/*
DECLARE C_mail CURSOR FOR
select e_mail
from users
where user_id in (
where id_producto = 72 -- Monitoreo Indicadores MIN
and activo = 1
OPEN C_Mail
Fetch next from bn INTO @cliente
WHILE (@@FETCH_STATUS <> -1 )
BEGIN
if (@cant_cliente = 0)
insert into @mails (cliente, dirmail, 'SIN NOVEDADES')*/
FETCH next from bn INTO @cliente
END
CLOSE bn
DEALLOCATE bn
END
GO
Depends On
6Used By
No items found