dbo.monitoreos_indicadores

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

Used By

No items found