dbo.LN_indicadores_manual_cliente

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

9
Name Data Type Length Description
@contraparte int 4
@accion varchar 40
@indicador int 4
@valor varchar -1
@detalle_cliente varchar -1
@detalle_fidelitas varchar -1
@user_id int 4
@activo bit 1
@p_gestion int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 03/11/2021
-- Description: Para ver si la contraparte tiene indicadores de tipo Manual Cliente
-- =============================================
/*
select * from ln_productos order by producto desc
select distinct tipo_dato from ln_indicadores where producto = 2081
select * from ln_cliente_productos where producto = 2081
select * from ln_familia_productos where producto = 2081
select * from ln_indicadores where CLAVE_indicador = 'REVISADO_VRM'
[LN_indicadores_manual_cliente] null, 'BOTON',396

select * from clientes where cli_codigo = 222
select * from ln_contrapartes where cliente = 1226057645
[LN_indicadores_manual_cliente] 196311, 'SELECT_2099'
select * from ln_indicadores where indicador in( 384,408,396)
select * from ln_productos where producto in ( 2080,2082,2084,2085)
update ln_productos set visible_home = 0 where producto in ( 2084,2085)
select * from ln_gestiones where contraparte = 163038


select * from ln_contraparte_indicadores where contraparte = 163038 and indicador = 384
select * from ln_contraparte_comentarios where contraparte = 163038
LN_indicadores_manual_cliente 169241,'UPDATE', 418, 'B','Prueba','Prueba fidelitas',1
LN_indicadores_manual_cliente 163038,'SELECT'
select * from trazabilidad where contraparte = 169241 order by created desc
select * from ln_indicadores_boton_checkbox


LN_indicadores_manual_cliente 169241,'UPDATE',418,'B','','Cambio Materialidad del proveedor : de MEDIO: desde 100k€ e inferior a 5M€ a BAJO: inferior a 100k€',681521128

LN_indicadores_manual_cliente 163038,'INDICADOR',383

LN_indicadores_manual_cliente 194109, 'VALORES_INDICADORES_GESTIONES_2099'
LN_indicadores_manual_cliente 225223,'UPDATE', 489, '426945','','',681521128

*/

CREATE OR ALTER PROCEDURE dbo.LN_indicadores_manual_cliente 
@contraparte int, 
@accion varchar(40) = 'SELECT', 
@indicador int = null,
@valor varchar(max) = null, 
@detalle_cliente   varchar(max) = null,
@detalle_fidelitas varchar(max) = null, 
@user_id int = null,
@activo bit = null, 
@p_gestion int = null 

 
AS
BEGIN
 SET NOCOUNT ON;

 declare @valor_texto_ant varchar(100) = null 
 declare @valor_numerico_ant decimal(12,2) = null 
 declare @valor_memo_ant varchar(100) = null
 declare @valor_fecha_ant date = null

 declare @trazabilidad varchar(max) = null 
 declare @trazabilidad2 varchar(max) = null 
 
 if (@accion = 'BOTON')
 begin
  select cuando_valor,
    texto as texto_boton,
    habilitado as boton_habilitado 
    from  ln_indicadores_boton_checkbox
   where  indicador = @indicador
   and boton_checkbox = 'B'
 end 

  if (@accion = 'CHECKBOX')
 begin
  select cuando_valor,
    texto as texto_boton,
    habilitado as boton_habilitado 
    from  ln_indicadores_boton_checkbox
   where  indicador = @indicador
   and boton_checkbox = 'C'
 end 

 if (@accion = 'SELECT_PRUEBA' or @accion = 'SELECT')
 begin
 select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
     ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,ln_indicadores.orden,
     LN_contraparte_indicadores.valor_numerico,
     LN_contraparte_indicadores.valor_fecha, 
     LN_contraparte_indicadores.valor_texto,
     LN_contraparte_indicadores.valor_memo, 
     ln_productos.nombre_producto, ln_productos.producto, 
     iif(exists (select * from LN_indicadores_boton_checkbox where LN_indicadores_boton_checkbox.indicador = ln_indicadores.indicador and LN_indicadores_boton_checkbox.boton_checkbox = 'B'),'SI','NO') as es_boton,
       iif(exists (select * from LN_indicadores_boton_checkbox where LN_indicadores_boton_checkbox.indicador = ln_indicadores.indicador and LN_indicadores_boton_checkbox.boton_checkbox = 'C'),'SI','NO') as es_checkbox

    from  LN_contrapartes
    inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = ln_contrapartes.contraparte
    inner join ln_gestiones on ln_gestiones.contraparte = ln_contrapartes.contraparte
    inner join LN_familia_productos on ln_familia_productos.familia = ln_contraparte_familias.familia
    inner join ln_productos on ln_productos.producto = LN_familia_productos.producto
    inner join ln_indicadores on ln_indicadores.producto = LN_familia_productos.producto
    inner join ln_cliente_indicadores on (ln_cliente_indicadores.cliente = ln_contrapartes.cliente 
                                          and ln_cliente_indicadores.indicador = ln_indicadores.indicador)
    left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
              and LN_contraparte_indicadores.indicador = LN_indicadores.indicador 
              and ln_contraparte_indicadores.visible = 1 
              and LN_contraparte_indicadores.gestion = ln_gestiones.gestion)
    where LN_contrapartes.contraparte = @contraparte
      and LN_familia_productos.activo = 1
      and (LN_indicadores.valoracion = 'C'/* or LN_indicadores.producto = 2099*/)
      -- 08/07/2024 (porque se buscan con la accion select_2099)
      and LN_indicadores.producto != 2099 -- que no sean datos extra 
      --
      and LN_productos.visible = 1 
      and ln_gestiones.vigente = 1 and LN_gestiones.desde <= GETDATE() and LN_gestiones.hasta >= GETDATE()
      and LN_productos.visible_home = 1
      order by ln_productos.producto, ln_indicadores.orden

      /* select * from LN_productos where visible_home = 1*/

 end 


 if (@accion = 'SELECT_2099')
 begin
 select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
     ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,ln_indicadores.orden,
     LN_contraparte_indicadores.valor_numerico,
     LN_contraparte_indicadores.valor_fecha, 
     LN_contraparte_indicadores.valor_texto,
     LN_contraparte_indicadores.valor_memo, 
     ln_productos.nombre_producto, ln_productos.producto, 
     iif(exists (select * from LN_indicadores_boton_checkbox where LN_indicadores_boton_checkbox.indicador = ln_indicadores.indicador and LN_indicadores_boton_checkbox.boton_checkbox = 'B'),'SI','NO') as es_boton,
       iif(exists (select * from LN_indicadores_boton_checkbox where LN_indicadores_boton_checkbox.indicador = ln_indicadores.indicador and LN_indicadores_boton_checkbox.boton_checkbox = 'C'),'SI','NO') as es_checkbox

    from  LN_contrapartes
    inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = ln_contrapartes.contraparte
    inner join ln_gestiones on ln_gestiones.contraparte = ln_contrapartes.contraparte
    inner join LN_familia_productos on ln_familia_productos.familia = ln_contraparte_familias.familia
    inner join ln_productos on ln_productos.producto = LN_familia_productos.producto
    inner join ln_indicadores on ln_indicadores.producto = LN_familia_productos.producto
    inner join ln_cliente_indicadores on (ln_cliente_indicadores.cliente = ln_contrapartes.cliente 
                                          and ln_cliente_indicadores.indicador = ln_indicadores.indicador)
    left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
              and LN_contraparte_indicadores.indicador = LN_indicadores.indicador 
              and ln_contraparte_indicadores.visible = 1 
              and LN_contraparte_indicadores.gestion = ln_gestiones.gestion)
    where LN_contrapartes.contraparte = @contraparte
      and LN_familia_productos.activo = 1
      and LN_indicadores.producto = 2099
      and LN_productos.visible = 1 
      and ln_gestiones.vigente = 1 and LN_gestiones.desde <= GETDATE() and LN_gestiones.hasta >= GETDATE()
      --and LN_productos.visible_home = 1
      order by ln_productos.producto, ln_indicadores.orden

      /* select * from LN_productos where visible_home = 1*/

 end 





 
 /*
  if (@accion = 'SELECT_PRUEBA')
  begin
  select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
     ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,ln_indicadores.orden,
     LN_contraparte_indicadores.valor_numerico,
     LN_contraparte_indicadores.valor_fecha, 
     LN_contraparte_indicadores.valor_texto,
     LN_contraparte_indicadores.valor_memo, 
     ln_productos.nombre_producto, ln_productos.producto, 
     iif(exists (select * from LN_indicadores_boton_checkbox where LN_indicadores_boton_checkbox.indicador = ln_indicadores.indicador and LN_indicadores_boton_checkbox.boton_checkbox = 'B'),'SI','NO') as es_boton,
       iif(exists (select * from LN_indicadores_boton_checkbox where LN_indicadores_boton_checkbox.indicador = ln_indicadores.indicador and LN_indicadores_boton_checkbox.boton_checkbox = 'C'),'SI','NO') as es_checkbox
 
  from  LN_contrapartes
  inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = ln_contrapartes.contraparte
  inner join ln_gestiones on ln_gestiones.contraparte = ln_contrapartes.contraparte
  inner join LN_familia_productos on ln_familia_productos.familia = ln_contraparte_familias.familia
  inner join ln_productos on ln_productos.producto = LN_familia_productos.producto
  inner join ln_indicadores on ln_indicadores.producto = LN_familia_productos.producto
  inner join ln_cliente_indicadores on (ln_cliente_indicadores.cliente = ln_contrapartes.cliente 
                                        and ln_cliente_indicadores.indicador = ln_indicadores.indicador)
  left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
  and LN_contraparte_indicadores.indicador = LN_indicadores.indicador 
  and ln_contraparte_indicadores.visible = 1 
  and LN_contraparte_indicadores.gestion = ln_gestiones.gestion)
  where LN_contrapartes.contraparte = @contraparte
    and LN_familia_productos.activo = 1
    and LN_indicadores.valoracion = 'C'
    and LN_productos.visible = 1 
    and ln_gestiones.vigente = 1 and LN_gestiones.desde <= GETDATE() and LN_gestiones.hasta >= GETDATE()
    and (LN_productos.visible_home = 1 or LN_productos.producto in ( 2080,2082,2084,2085))
    order by ln_productos.producto, ln_indicadores.orden
 
 
  end 
  */




 if (@accion = 'COLORES')
 begin
 select color_fondo as color 
   from LN_cliente_nivel 
  where cliente = (select cliente from ln_contrapartes where contraparte = @contraparte) 
    and indicador = @indicador
    and texto = @valor 
 end 
 declare @gestion1 int = null 

 if (@accion = 'UPDATE' or @accion = 'COMENTARIOS')
 begin
 if (@detalle_cliente is not null or @detalle_fidelitas is not null) 
  begin
   /* este if se agrego 11/07/2024: porque si el cliente no escribio nada, el cambio del indicador ya se guarda en trazabilidad */
   /*
    if (@accion = 'COMENTARIOS' or @detalle_cliente is not null) 
    begin
    */

    SELECT @gestion1 = gestion
      FROM LN_gestiones
     WHERE contraparte = @contraparte
       AND desde <= GETDATE()
       AND hasta >= GETDATE()
       AND vigente = 1
    insert into ln_contraparte_comentarios (contraparte, gestion, indicador, texto_fidelitas, texto_cliente, visible,created_by) 
    values (@contraparte, @gestion1, @indicador,@detalle_fidelitas,@detalle_cliente,1,@user_id) 
   /*
    end
    */

  end 
 end


 if (@accion = 'UPDATE_ACTIVO')
 begin
  update ln_contrapartes set activo = @activo, modified_by = @user_id, modified = getdate()
  where contraparte = @contraparte

  SELECT @gestion1 = gestion
     FROM LN_gestiones
    WHERE contraparte = @contraparte
      AND desde <= GETDATE()
      AND hasta >= GETDATE()
      AND vigente = 1
  insert into ln_contraparte_comentarios (contraparte, gestion, indicador, texto_fidelitas, texto_cliente, visible,created_by) 
  values (@contraparte, @gestion1, '0',@detalle_fidelitas,@detalle_cliente,1,@user_id) 

  select 'ok' as respuesta
 end


 if (@accion = 'UPDATE')
 begin
 
   SELECT @gestion1 = gestion
     FROM LN_gestiones
    WHERE contraparte = @contraparte
      AND desde <= GETDATE()
      AND hasta >= GETDATE()
      AND vigente = 1
  select  @valor_numerico_ant = valor_numerico, 
    @valor_texto_ant = valor_texto, 
    @valor_memo_ant = valor_memo,
    @valor_fecha_ant = valor_fecha
     from LN_contraparte_indicadores
    where contraparte = @contraparte
   and gestion = @gestion1 
   and visible = 1
   and indicador = @indicador 

 /*
  select * from ln_indicadores where indicador in (324,384)
  select * from ln_cliente_nivel where indicador in (324,384)
  update ln_indicadores set opciones = 'D|C|CC|CCC|B|BB|BBB|A|AA|AAA^D|C|CC|CCC|B|BB|BBB|A|AA|AAA' where indicador = 324
  */


  if (@valor = '') set @valor = null 
  declare @gestion int = null, @tipo_dato char(1) = ''
  SELECT @gestion = gestion
    FROM LN_gestiones
   WHERE contraparte = @contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()
     AND vigente = 1

  declare @cliente int
  declare @familia int 
  
  select @cliente = ln_contrapartes.cliente, 
      @familia = ln_contraparte_familias.familia
    from ln_contrapartes
    inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = LN_contrapartes.contraparte
    WHERE ln_contrapartes.contraparte = @contraparte

  declare @nombre_indicador varchar(100) = null 
  declare @clave_ind varchar(100) = null 
  declare @producto int = null 



  select @tipo_dato = tipo_dato, @nombre_indicador = nombre_indicador, @clave_ind = clave_indicador, @producto = producto
    from LN_indicadores where indicador = @indicador

  declare @valor_numerico float = null
  declare @valor_texto varchar(max) = null 
  declare @valor_memo varchar(max) = null 
  declare @valor_fecha date = null 

if (@clave_ind like 'DD_%' and @producto = 2105) 
begin
 if (@clave_ind like 'DD_ESTADO' or @clave_ind like 'DD_APROBACION') 
 begin
  select @valor_numerico = hasta-1 from ln_cliente_nivel where indicador = @indicador and cliente = @cliente and texto = @valor 
  set @valor_texto =  @valor
 end
 else 
 begin
  set @valor_numerico = case @valor
       when 'A' then '10'
       when 'M' then '50'
       when 'B' then '100'
       end
  set @valor_texto =  @valor
 end     
 select @valor_memo = texto_largo from ln_cliente_nivel where indicador = @indicador and cliente = @cliente and desde <= @valor_numerico and hasta > @valor_numerico
end 

else

begin
 if (@indicador = 461 or @indicador = 462 or @indicador = 464) 
 begin
   set @valor_numerico = convert(float, @valor) 
   set @valor_texto = @valor
   set @valor_memo = @valor
   if (@indicador = 464) 
   select @valor_memo = texto_largo from ln_cliente_nivel where indicador = @indicador and cliente = @cliente and desde <= @valor_numerico and hasta > @valor_numerico
 end 
 else 
 begin
  
   if (@tipo_dato = 'I' or @tipo_dato = 'B' or @indicador = 324 or @indicador = 463 or @indicador = 465) 
   begin
    set @valor_numerico = convert(float, @valor) 
    select @valor_texto = texto, @valor_memo = texto_largo from ln_cliente_nivel where indicador = @indicador and cliente = @cliente and desde <= @valor_numerico and hasta > @valor_numerico
   end 
   else 
   begin
    if (@tipo_dato = 'D') 
    begin
     set @valor_fecha = convert(date,@valor)
    end
    else 
    begin
     if (@tipo_dato = 'M')
     begin
      set @valor_memo = @valor
      if (LEN(@valor)<=100) set @valor_texto = @valor 
     end
     else
     begin
      set @valor_texto = @valor
      select @valor_numerico = desde, @valor_memo = texto_largo 
       from ln_cliente_nivel where indicador = @indicador and cliente = @cliente and texto = @valor_texto
     end
    end 
   end 

   if (@valor_memo is null and @valor_texto is not null)  /* 08/04/2022: en valor_memo porque el texto que corresponde a la opcion */
   BEGIN 
    EXEC LN_indicadores_opciones  @indicador,@valor_texto, @valor_memo output
   END 
 end 
end


--select @indicador indicador, @tipo_dato tipo_dato, @valor_numerico valor_numerico, @valor_texto valor_texto, @valor_memo valor_memo, @valor_fecha valor_fecha

  if not exists (select * FROM LN_contraparte_indicadores
    WHERE contraparte = @contraparte
    AND gestion = @gestion
    AND indicador = @indicador
    AND visible = 1)
    begin
    insert into LN_contraparte_indicadores 
     (contraparte,gestion,indicador,valor_numerico,valor_texto,valor_memo,valor_fecha,created,created_by,visible,familia)
     values 
     (@contraparte, @gestion, @indicador, @valor_numerico, @valor_texto, @valor_memo,@valor_fecha, GETDATE(),@user_id,  1,@familia) 
    end
    else
    begin
     UPDATE LN_contraparte_indicadores
     set valor_numerico = @valor_numerico, 
         valor_texto = @valor_texto,
      valor_memo = @valor_memo,
      valor_fecha = @valor_fecha,
      familia = @familia, 
      modified = getdate(),
      modified_by = @user_id
     WHERE contraparte = @contraparte
     AND gestion = @gestion
     AND indicador = @indicador 
    end

  if (@indicador not in (408,409))
  begin
/* detalles */
   declare @detalle varchar(max) = ''
   if (@valor_numerico != -100.0) 
   begin
    if exists (select * From ln_score_detalle_killer
     where contraparte = @contraparte 
       and gestion = @gestion 
       and indicador = @indicador
       and visible = 1)
    UPDATE LN_score_detalle_killer
     set visible = 0, modified = getdate()
     where contraparte = @contraparte 
     and gestion = @gestion 
     and indicador = @indicador
   end
   if (@valor_numerico = 100.0 or @valor_numerico = -100.0) 
   begin
    if exists (select * From ln_score_detalle_puntos
     where contraparte = @contraparte 
       and gestion = @gestion 
       and indicador = @indicador
       and visible = 1)
    UPDATE ln_score_detalle_puntos
     set visible = 0, modified = getdate()
     where contraparte = @contraparte 
     and gestion = @gestion 
     and indicador = @indicador
   end


   if (@valor_numerico = -100.0) 
   begin
    set  @detalle  = @nombre_indicador + ': ' + @valor_memo 
    if exists (select * From ln_score_detalle_killer
     where contraparte = @contraparte 
       and gestion = @gestion 
       and indicador = @indicador
       and detalle_killer != isnull(@detalle,'')
       and visible = 1)
      UPDATE LN_score_detalle_killer
         set visible = 0, modified = getdate()
       where contraparte = @contraparte 
         and gestion = @gestion 
         and indicador = @indicador
 
    if (isnull(@detalle,'')!= '') 
     begin
      if not exists (select * From ln_score_detalle_killer
         where contraparte = @contraparte 
           and gestion = @gestion 
           and indicador = @indicador
           and detalle_killer = isnull(@detalle,'')
           and visible = 1)

         insert into ln_score_detalle_killer
         (contraparte, gestion, indicador, detalle_killer, visible, created)
         values (@contraparte, @gestion, @indicador, @detalle, 1, getdate()) 
     end 
   end 

   if (@valor_numerico between 0 and 99.99) 
   begin
    set  @detalle  = @nombre_indicador + ': ' +  @valor_memo 

    if exists (select * From ln_score_detalle_puntos
     where contraparte = @contraparte 
       and gestion = @gestion 
       and indicador = @indicador
       and detalle != isnull(@detalle,'')
       and visible = 1)
       begin
      UPDATE ln_score_detalle_puntos
         set visible = 0, modified = getdate()
       where contraparte = @contraparte 
         and gestion = @gestion 
         and indicador = @indicador
      end 
    if not exists (select * From ln_score_detalle_puntos
       where contraparte = @contraparte 
        and gestion = @gestion 
        and indicador = @indicador
        and detalle = isnull(@detalle,'')
        and visible = 1)
     begin
     insert into ln_score_detalle_puntos
     (contraparte, gestion, indicador, detalle, visible, created)
     values (@contraparte, @gestion, @indicador, @detalle, 1, getdate()) 
     end 

   end 
   end 
   select @valor_numerico valor_numerico, @valor_texto valor_texto, @valor_memo valor_memo, @detalle detalle
   select iif(isnull(@valor_memo,'')!='',@valor_memo,'nulo') as como
  if (isnull(@valor_numerico_ant,-500) != isnull(@valor_numerico,-500) or
   isnull(@valor_texto_ant,'')      != isnull(@valor_texto,'') or 
      isnull(@valor_memo_ant,'')       != isnull(@valor_memo,'') or 
      isnull(@valor_fecha_ant,'1901-01-01') != isnull(@valor_fecha,'1901-01-01'))

  begin 

   if (@tipo_dato = 'B' AND @valor_numerico = 1 AND isnull(@valor_texto,'')='') set @valor_texto = 'SI'
   if (@tipo_dato = 'B' AND isnull(@valor_numerico,0) = 0 AND isnull(@valor_texto,'')='') set @valor_texto = 'NO'

   set @trazabilidad = 'Actualizado: ' + @nombre_indicador + ': ' +
        iif(@valor_fecha is not null,convert(varchar,@valor_fecha,103), 
         iif(isnull(@valor_memo,'')!='',@valor_memo,
          iif(isnull(@valor_texto,'')!='',@valor_texto,
           iif(@valor_numerico is not null,convert(varchar,@valor_numerico),'-'))))
   set @trazabilidad2 = 'CAMBIO_INDICADOR_'+convert(varchar,@indicador)
   select @trazabilidad trazabilidad
   select @trazabilidad2 trazabilidad2
   set @user_id = ISNULL(@user_id,1)
   exec insertar_trazabilidad  @trazabilidad, @cliente, @trazabilidad2,'WWW', @contraparte, @user_id
  end

  /* Después de tocar un indicador, veo si tiene que calcular un indicador dependiente 
   Ojo: Por ahora solo está hecho para indicadores de VRM que usan el SP [LN_scores_VRM] */


  declare @clave_indicador varchar(100)
  declare @indicador_dependiente int 
  if (select count(*) 
    from ln_indicadores_dependientes
    where ln_indicadores_dependientes.indicador = @indicador) > 0 
  begin 

    DECLARE C_ind CURSOR FOR
    select ln_indicadores_dependientes.indicador_dependiente, LN_indicadores.clave_indicador 
      from ln_indicadores_dependientes
      inner join LN_indicadores on LN_indicadores.indicador = ln_indicadores_dependientes.indicador_dependiente
      where ln_indicadores_dependientes.indicador = @indicador
    OPEN C_ind
     FETCH NEXT FROM C_ind INTO @indicador_dependiente, @clave_indicador
     WHILE @@fetch_status = 0
     BEGIN 
      select 'VA A CALCULAR DEPENDIENTE (1): ' as accion, 
         @indicador as indicador, 
         @indicador_dependiente as indicador_dependiente,
         @clave_indicador as indicador_dependiente
     
      exec [LN_scores_VRM]  @clave_indicador, 
            @contraparte, 
            @user_id 
      FETCH NEXT FROM C_ind INTO @indicador_dependiente, @clave_indicador
     END 
   CLOSE C_ind
   DEALLOCATE C_ind
  end 
 end 

 if (@accion = 'INDICADOR')
 begin
  if (@p_gestion is null) 
  begin
  select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
      ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,ln_indicadores.orden,
      LN_contraparte_indicadores.valor_numerico,
      LN_contraparte_indicadores.valor_fecha, 
      LN_contraparte_indicadores.valor_texto,
      convert(varchar,LN_contraparte_indicadores.valor_fecha,103) as valor_fecha_dmy, 
      LN_contraparte_indicadores.valor_memo, 
      ln_productos.nombre_producto, ln_productos.producto
     from  LN_contrapartes
     inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = ln_contrapartes.contraparte
     inner join ln_gestiones on ln_gestiones.contraparte = ln_contrapartes.contraparte
     inner join LN_familia_productos on ln_familia_productos.familia = ln_contraparte_familias.familia
     inner join ln_productos on ln_productos.producto = LN_familia_productos.producto
     inner join ln_indicadores on ln_indicadores.producto = LN_familia_productos.producto
     inner join ln_cliente_indicadores on (ln_cliente_indicadores.cliente = ln_contrapartes.cliente 
                and ln_cliente_indicadores.indicador = ln_indicadores.indicador)
     left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
               and LN_contraparte_indicadores.indicador = LN_indicadores.indicador 
               and ln_contraparte_indicadores.visible = 1 
               and LN_contraparte_indicadores.gestion = ln_gestiones.gestion)
     where LN_contrapartes.contraparte = @contraparte
       and LN_familia_productos.activo = 1
       and LN_indicadores.indicador = @indicador
       and LN_productos.visible = 1 
       and ln_gestiones.vigente = 1 and LN_gestiones.desde <= GETDATE() and LN_gestiones.hasta >= GETDATE()

       order by ln_indicadores.orden

  end 
  else 
  begin 
  select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
      ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,ln_indicadores.orden,
      LN_contraparte_indicadores.valor_numerico,
      LN_contraparte_indicadores.valor_fecha, 
      LN_contraparte_indicadores.valor_texto,
      convert(varchar,LN_contraparte_indicadores.valor_fecha,103) as valor_fecha_dmy, 
      LN_contraparte_indicadores.valor_memo, 
      ln_productos.nombre_producto, ln_productos.producto
     from  LN_contrapartes
     inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = ln_contrapartes.contraparte
     inner join ln_gestiones on ln_gestiones.contraparte = ln_contrapartes.contraparte
     inner join LN_familia_productos on ln_familia_productos.familia = ln_contraparte_familias.familia
     inner join ln_productos on ln_productos.producto = LN_familia_productos.producto
     inner join ln_indicadores on ln_indicadores.producto = LN_familia_productos.producto
     inner join ln_cliente_indicadores on (ln_cliente_indicadores.cliente = ln_contrapartes.cliente 
                and ln_cliente_indicadores.indicador = ln_indicadores.indicador)
     left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte
               and LN_contraparte_indicadores.indicador = LN_indicadores.indicador 
               and ln_contraparte_indicadores.visible = 1 
               and LN_contraparte_indicadores.gestion = ln_gestiones.gestion)
     where LN_contrapartes.contraparte = @contraparte
       and LN_familia_productos.activo = 1
       and LN_indicadores.indicador = @indicador
       and LN_productos.visible = 1 
       and ln_gestiones.gestion = @p_gestion

       order by ln_indicadores.orden

  end 
 end


 IF (@accion = 'VALORES_INDICADORES_GESTIONES')
 BEGIN
 
  select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
      --ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,
      ln_indicadores.orden,
      LN_contraparte_indicadores.valor_numerico,
      LN_contraparte_indicadores.valor_fecha, 
      LN_contraparte_indicadores.valor_texto,
      convert(varchar,LN_contraparte_indicadores.valor_fecha,103) as valor_fecha_dmy, 
      LN_contraparte_indicadores.valor_memo, 
      ln_productos.nombre_producto, ln_productos.producto, 
      ln_contraparte_indicadores.gestion, 
      ln_gestiones.desde 
   from  LN_contrapartes
   left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte and ln_contraparte_indicadores.visible = 1)
   left join ln_gestiones on (ln_gestiones.contraparte = LN_contraparte_indicadores.contraparte and ln_gestiones.gestion = LN_contraparte_indicadores.gestion)
   inner join ln_indicadores on ln_indicadores.indicador = LN_contraparte_indicadores.indicador 
   inner join ln_productos on ln_productos.producto = ln_indicadores.producto 

   where LN_contrapartes.contraparte = @contraparte
    and LN_indicadores.valoracion = 'C'
    and (LN_productos.visible_home = 1 or LN_productos.producto in ( 2080,2082,2084,2085))     
    order by ln_productos.producto, ln_indicadores.orden
 END 



 IF (@accion = 'VALORES_INDICADORES_GESTIONES_2099')
 BEGIN
 
  select ln_indicadores.indicador, ln_indicadores.nombre_indicador, ln_indicadores.etiqueta, ln_indicadores.clave_indicador, LN_indicadores.tipo_dato, 
      --ln_indicadores.rango_inferior,ln_indicadores.rango_superior,ln_indicadores.intervalo,ln_indicadores.opciones,
      ln_indicadores.orden,
      LN_contraparte_indicadores.valor_numerico,
      LN_contraparte_indicadores.valor_fecha, 
      LN_contraparte_indicadores.valor_texto,
      convert(varchar,LN_contraparte_indicadores.valor_fecha,103) as valor_fecha_dmy, 
      LN_contraparte_indicadores.valor_memo, 
      ln_productos.nombre_producto, ln_productos.producto, 
      ln_contraparte_indicadores.gestion, 
      ln_gestiones.desde 
   from  LN_contrapartes
   left join LN_contraparte_indicadores on (LN_contraparte_indicadores.contraparte = LN_contrapartes.contraparte and ln_contraparte_indicadores.visible = 1)
   left join ln_gestiones on (ln_gestiones.contraparte = LN_contraparte_indicadores.contraparte and ln_gestiones.gestion = LN_contraparte_indicadores.gestion)
   inner join ln_indicadores on ln_indicadores.indicador = LN_contraparte_indicadores.indicador 
   inner join ln_productos on ln_productos.producto = ln_indicadores.producto 

   where LN_contrapartes.contraparte = @contraparte
    and LN_productos.producto in ( 2099)     
    order by ln_productos.producto, ln_indicadores.orden
 END 




 if (@accion = 'SUBIR_ARCHIVO')
 begin
  set @detalle_fidelitas = 'Se adjunta Informe Final Debida Diligencia'
  set @detalle_cliente = null
  SELECT @gestion1 = gestion
    FROM LN_gestiones
   WHERE contraparte = @contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()
     AND vigente = 1
  begin
   insert into ln_contraparte_comentarios (contraparte, gestion, indicador, texto_fidelitas, texto_cliente, visible,created_by) 
   values (@contraparte, @gestion1, @indicador,@detalle_fidelitas,@detalle_cliente,1,@user_id) 
  end 
 end





  
END

GO