dbo.LN_dashboard_cliente_fidelitasprod_DEV

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

12
Name Data Type Length Description
@accion varchar 50
@p_cliente int 4
@p_country_code varchar 2
@p_familia int 4
@p_contraparte int 4
@p_clave_indicador varchar 50
@p_score float 8
@p_valor_numerico float 8
@p_valor_texto varchar 100
@p_valor_memo text -1
@p_user_id int 4
@p_visible tinyint 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>

/*
CAMBIADO
exec ln_dashboard_cliente 'PRODUCTOS_GRILLA',1750864950

*/

-- Description: <Description,,>
-- =============================================
/*

exec LN_dashboard_cliente_fidelitasprod 'VALORES_GRILLA_EXT', 42014167, null,null, null

exec LN_dashboard_cliente_fidelitasprod 'PRODUCTOS_INDICADORES', 5546348, null,null, null


exec LN_dashboard_cliente_fidelitasprod 'VALORES_GRILLA_EXT', 5546348, null,null, null


exec LN_dashboard_cliente_fidelitasprod 'VALORES_GRILLA_EXT', 2254875, null,null, null


*/


CREATE OR ALTER PROCEDURE dbo.LN_dashboard_cliente_fidelitasprod_DEV 
 -- Add the parameters for the stored procedure here
 @accion          varchar(50),
 @p_cliente         int,
 @p_country_code        varchar(2),
 @p_familia         int,
 @p_contraparte        int,

 /* Este parámetro opcional para obtener por clave un indicador específico de una contraparte
  cuando @accion = 'indicadores_contraparte' */

 @p_clave_indicador       varchar(50) = NULL,

 /* Parámetro para asentar el score manual o cuando se consulta mediante API */
 @p_score         float = NULL,

 /* Estos tres parámetros para asentar indicadores varios en tabla LN_contraparte_indicadores */
 @p_valor_numerico       float = null,
 @p_valor_texto        varchar(100) = null,
 @p_valor_memo        text = null,
 @p_user_id         int = null,
 @p_visible         tinyint = 1      
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 DECLARE @color_fondo varchar(10), @color_texto varchar(10)
  


 IF (@accion = 'VALORES_GRILLA_EXT') BEGIN

  SELECT LOWER(identificadores.country_code) AS 'PAIS', padrones.nombre_persona AS 'RAZON_SOCIAL', padrones.identificacion, 
    LN_familias.nombre_familia AS 'FAMILIA', LN_contrapartes.contraparte, 
    LN_indicadores.clave_indicador, LN_productos.producto_id,

  iif(LN_productos.producto_id = 'balances',
   CASE
    WHEN LN_indicadores.clave_indicador = 'VALORACION_BAL' THEN 
     CASE
      WHEN LN_contraparte_indicadores.valor_texto = 'P' THEN '1'
      WHEN LN_contraparte_indicadores.valor_texto = 'U' THEN '2'
      WHEN LN_contraparte_indicadores.valor_texto = 'E' THEN '3'
      WHEN LN_contraparte_indicadores.valor_texto = 'D' THEN '4'
      WHEN LN_contraparte_indicadores.valor_texto = 'N' THEN '5'
     END

    WHEN LN_indicadores.clave_indicador = 'SCORE_BAL' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, LTRIM(format(LN_contraparte_indicadores.valor_numerico, '##0')), NULL)

    WHEN LN_indicadores.clave_indicador = 'FECHA_BALANCE' THEN iif(LN_contraparte_indicadores.valor_fecha IS NOT NULL, substring(replace(convert(varchar(7), LN_contraparte_indicadores.valor_fecha, 121),'-',''),3,10), '')

    WHEN (LN_indicadores.clave_indicador = 'BAL_ACTIVO_CORRIENTE'
      OR LN_indicadores.clave_indicador = 'BAL_ACTIVO_NO_CORRIENTE'
      OR LN_indicadores.clave_indicador = 'BAL_ACTIVO_TOTAL'
      OR LN_indicadores.clave_indicador = 'BAL_PASIVO_CORRIENTE'
      OR LN_indicadores.clave_indicador = 'BAL_PASIVO_NO_CORRIENTE'
      OR LN_indicadores.clave_indicador = 'BAL_PASIVO_TOTAL'
      OR LN_indicadores.clave_indicador = 'BAL_PATRIMONIO_NETO'
      OR LN_indicadores.clave_indicador = 'BAL_VENTAS'
      OR LN_indicadores.clave_indicador = 'BAL_RESULTADO'
      OR LN_indicadores.clave_indicador = 'BAL_CAPITAL_TRABAJO'
      OR LN_indicadores.clave_indicador = 'BAL_EBITDA') THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, LTRIM(format(ROUND(LN_contraparte_indicadores.valor_numerico/1000, 0), '#############0')), NULL)

    ELSE iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, LTRIM(format(LN_contraparte_indicadores.valor_numerico, '################0.00')), NULL)

    /*WHEN LN_indicadores.clave_indicador = 'BAL_ACTIVO_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ACTIVO_NO_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ACTIVO_TOTAL' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_PASIVO_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_PASIVO_NO_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_PASIVO_TOTAL' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_PATRIMONIO_NETO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_VENTAS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_RESULTADO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
    
    
     WHEN LN_indicadores.clave_indicador = 'BAL_SOLVENCIA_PATRIMONIAL' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ENDEUDAMIENTO_TOTAL' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ENDEUDAMIENTO_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
    
     WHEN LN_indicadores.clave_indicador = 'BAL_CAPITAL_TRABAJO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
    
     WHEN LN_indicadores.clave_indicador = 'BAL_CAPITAL_CORRIENTE_ACTIVO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_LIQUIDEZ_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_LIQUIDEZ_SECA' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ROTACION_CREDITOS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ROTACION_INVENTARIOS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ROTACION_ACTIVOS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ROTACION_ACTIVO_FIJO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_PRESTAMOS_PATRIMONIO_NETO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_MESES_DEUDA' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_DIAS_DEUDA' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_MARGEN_BRUTO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_MARGEN_NETO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_MARGEN_OPERATIVO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_MARGEN_SOBRE_PATRIMONIO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_MARGEN_SOBRE_ACTIVO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
    
     WHEN LN_indicadores.clave_indicador = 'BAL_EBITDA' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0')), '.', ','), '')
    
     WHEN LN_indicadores.clave_indicador = 'BAL_EBITDA_PASIVO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_EBITDA_VENTAS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_EBITDA_INTERESES' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_GASTOS_FINANCIEROS_VENTAS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_GASTOS_COMERCIALES_VENTAS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_GASTOS_ADMINISTRACION_VENTAS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_GASTOS_TOTALES_VENTAS' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_INVERSIONES_BIENES_USO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_VIDA_RESTANTE_BIENES_USO' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     WHEN LN_indicadores.clave_indicador = 'BAL_ROTACION_PASIVO_CORRIENTE' THEN iif(LN_contraparte_indicadores.valor_numerico IS NOT NULL, REPLACE(LTRIM(format(LN_contraparte_indicadores.valor_numerico, '### ### ### ### ### ##0.00')), '.', ','), '')
     */

   END,
    
  /* else: no balances */

   iif(LN_indicadores.clave_indicador = 'NIVEL_RIESGO',
     CASE 
      WHEN LN_contraparte_indicadores.valor_texto = 'BR' THEN '1'
      WHEN LN_contraparte_indicadores.valor_texto = 'SR' THEN '2'
      WHEN LN_contraparte_indicadores.valor_texto = 'MR' THEN '3'
      WHEN LN_contraparte_indicadores.valor_texto = 'AR' THEN '4'
     END,

    iif (LN_indicadores.clave_indicador = 'FIDECHECK',
     CASE 
      WHEN LN_contraparte_indicadores.valor_texto = 'N' THEN '1'
      WHEN LN_contraparte_indicadores.valor_texto = 'R' THEN '2'
      WHEN LN_contraparte_indicadores.valor_texto = 'P' THEN '3'
     END,

     iif (LN_indicadores.clave_indicador = 'CTRL_CALIDAD' OR LN_indicadores.clave_indicador = 'CTRL_ETICO' OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL' OR LN_indicadores.clave_indicador = 'HOMOLOG',
      CASE 
       WHEN LN_contraparte_indicadores.valor_numerico = 0 THEN '1'
       WHEN LN_contraparte_indicadores.valor_numerico = 1 THEN '2'
      END,

      iif (LN_indicadores.clave_indicador = 'LC_TEND_BALANCE' OR LN_indicadores.clave_indicador = 'LC_ESCENARIOS_TENDENCIA' OR LN_indicadores.clave_indicador = 'LC_SITUACION_TENDENCIA',
       CASE
        WHEN LN_contraparte_indicadores.valor_texto = 'P' THEN '1'
        WHEN LN_contraparte_indicadores.valor_texto = 'U' THEN '2'
        WHEN LN_contraparte_indicadores.valor_texto = 'E' THEN '3'
        WHEN LN_contraparte_indicadores.valor_texto = 'D' THEN '4'
        WHEN LN_contraparte_indicadores.valor_texto = 'N' THEN '5'
       END,


  case        
   when LN_indicadores.tipo_dato = 'S' then LN_contraparte_indicadores.valor_texto
   when LN_indicadores.tipo_dato = 'M' then LN_contraparte_indicadores.valor_memo
   when LN_indicadores.tipo_dato = 'I' then iif(LN_contraparte_indicadores.valor_numerico is not null, 
              /*REPLACE(replace(convert(varchar,convert(Money, ROUND(LN_contraparte_indicadores.valor_numerico,0)),1),'.00',''), ',', '.')*/
              LTRIM(format(LN_contraparte_indicadores.valor_numerico, '############0')), 
              null)
   when LN_indicadores.tipo_dato = 'F' then iif(LN_contraparte_indicadores.valor_numerico is not null, 
              /*REPLACE(replace(convert(varchar,convert(Money, ROUND(LN_contraparte_indicadores.valor_numerico,0)),1),'.00',''), ',', '.'), */
              LTRIM(format(LN_contraparte_indicadores.valor_numerico, '############0.00')),
              null)

   /*when LN_indicadores.tipo_dato = 'D' then iif(LN_contraparte_indicadores.valor_fecha is not null, right('00'+cast(month(LN_contraparte_indicadores.valor_fecha) as varchar),2) + '-' + cast(right(year(LN_contraparte_indicadores.valor_fecha),2) as varchar), NULL) --convert(varchar, LN_contraparte_indicadores.valor_fecha, 103)*/
   /*when LN_indicadores.tipo_dato = 'D' then iif(LN_contraparte_indicadores.valor_fecha is not null, convert(varchar(10), LN_contraparte_indicadores.valor_fecha, 101), NULL) */
   when LN_indicadores.tipo_dato = 'D' then iif(LN_contraparte_indicadores.valor_fecha is not null, substring(replace(convert(varchar(7), LN_contraparte_indicadores.valor_fecha, 121),'-',''),3,10), '') 
   when LN_indicadores.tipo_dato = 'B' then iif(LN_contraparte_indicadores.valor_numerico > 0, 'SI', 'NO')
   else null

  end ))))) as valor,


  /*iif(LN_productos.producto_id = 'balances',
   iif(LN_indicadores.clave_indicador = 'VALORACION_BAL', NULL, 'SPACE'),
   iif(LN_indicadores.tipo_dato = 'F' OR LN_indicadores.tipo_dato = 'I', 'POINT', NULL)
   ) as separator,
  
   iif(LN_productos.producto_id = 'balances',
   case
   when (LN_indicadores.clave_indicador = 'BAL_ACTIVO_CORRIENTE' OR
   LN_indicadores.clave_indicador = 'BAL_ACTIVO_NO_CORRIENTE' OR
   LN_indicadores.clave_indicador = 'BAL_ACTIVO_TOTAL' OR
   LN_indicadores.clave_indicador = 'BAL_PASIVO_CORRIENTE' OR
   LN_indicadores.clave_indicador = 'BAL_PASIVO_NO_CORRIENTE' OR
   LN_indicadores.clave_indicador = 'BAL_PATRIMONIO_NETO' OR
   LN_indicadores.clave_indicador = 'BAL_VENTAS' OR
   LN_indicadores.clave_indicador = 'BAL_RESULTADO' OR
   LN_indicadores.clave_indicador = 'BAL_CAPITAL_TRABAJO' OR
   LN_indicadores.clave_indicador = 'BAL_EBITDA') then 0
   when LN_indicadores.clave_indicador = 'VALORACION_BAL' then NULL
   else 0
   end,
   case
   when LN_indicadores.tipo_dato = 'F' then 2
   when LN_indicadores.tipo_dato = 'I' then 0
   else NULL
   end
   ) as decimals,*/



  /** COLOR **/
  CASE
   WHEN (LN_indicadores.clave_indicador = 'DEP_ECON' OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC') THEN
    case
     /*when LN_contraparte_indicadores.valor_numerico >= 81 then 'A72B2A'
      when LN_contraparte_indicadores.valor_numerico >= 61 then 'd37123'
      when LN_contraparte_indicadores.valor_numerico >= 41 then 'FFB81C'
      when LN_contraparte_indicadores.valor_numerico >= 21 then 'cbc367'
      when LN_contraparte_indicadores.valor_numerico >= 0 then '63b68c'*/

     when LN_contraparte_indicadores.valor_numerico >= 70 then 'A72B2A'
     when LN_contraparte_indicadores.valor_numerico >= 50 then 'FFB81C'
     when LN_contraparte_indicadores.valor_numerico >= 0 then '63b68c'
     else NULL
    end

   WHEN LN_indicadores.clave_indicador = 'NIVEL_RIESGO' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'AR' then 'A72B2A'
     when LN_contraparte_indicadores.valor_texto = 'MR' then 'FFB81C'
     when LN_contraparte_indicadores.valor_texto = 'SR' then 'E0E0E0'
     when LN_contraparte_indicadores.valor_texto = 'BR' then '63b68c'
     else NULL
    end

   WHEN LN_indicadores.clave_indicador = 'FIDECHECK' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'P' then 'A72B2A'
     when LN_contraparte_indicadores.valor_texto = 'R' then 'FFB81C'
     when LN_contraparte_indicadores.valor_texto = 'N' then '63b68c'
     else NULL
    end


   WHEN (LN_indicadores.clave_indicador = 'CTRL_CALIDAD' 
     OR LN_indicadores.clave_indicador = 'CTRL_ETICO' 
     OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL' 
     OR LN_indicadores.clave_indicador = 'HOMOLOG') THEN
    case 
     when (LN_contraparte_indicadores.valor_numerico = 1) then '63b68c'
     when (LN_contraparte_indicadores.valor_numerico = 0) then 'A72B2A'
     else null
    end

   WHEN (LN_indicadores.clave_indicador = 'EXCEPCION') THEN 'FFB81C'

   WHEN (LN_indicadores.clave_indicador = 'VALORACION_BAL') THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'P' then '63b68c'
     when LN_contraparte_indicadores.valor_texto = 'U' then 'cbc367'
     when LN_contraparte_indicadores.valor_texto = 'E' then 'FFB81C'
     when LN_contraparte_indicadores.valor_texto = 'D' then 'd37123'
     when LN_contraparte_indicadores.valor_texto = 'N' then 'A72B2A'
     else null
    end

   WHEN (LN_indicadores.clave_indicador = 'SITUACION_CD') THEN
    case
     when LN_contraparte_indicadores.valor_numerico = 1 then '96CAB0'
     when LN_contraparte_indicadores.valor_numerico = 2 then 'FFFFBA'
     when LN_contraparte_indicadores.valor_numerico = 3 then 'FDC689'
     when LN_contraparte_indicadores.valor_numerico = 4 then 'FD676E'
     when LN_contraparte_indicadores.valor_numerico = 5 then 'C55B5B'
     when LN_contraparte_indicadores.valor_numerico = 6 then 'C55B5B'
     else null
    end

   WHEN (LN_indicadores.clave_indicador = 'LC_DIAS_VENTAS') THEN
    case
     when LN_contraparte_indicadores.valor_numerico >= 181 then 'A72B2A'
     when LN_contraparte_indicadores.valor_numerico >= 121 then 'd37123'
     when LN_contraparte_indicadores.valor_numerico >= 91 then 'FFB81C'
     when LN_contraparte_indicadores.valor_numerico >= 61 then 'cbc367'
     when LN_contraparte_indicadores.valor_numerico >= 0 then '63b68c'
     else null
    end

   WHEN (LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN

    ISNULL( (select color_fondo from ln_cliente_nivel 
       where cliente = @p_cliente 
       and desde <= LN_contraparte_indicadores.valor_numerico 
       and hasta > LN_contraparte_indicadores.valor_numerico), 

      case
       when LN_contraparte_indicadores.valor_numerico >= 81 then '63b68c'
       when LN_contraparte_indicadores.valor_numerico >= 61 then 'cbc367'
       when LN_contraparte_indicadores.valor_numerico >= 41 then 'FFB81C'
       when LN_contraparte_indicadores.valor_numerico >= 21 then 'd37123'
       when LN_contraparte_indicadores.valor_numerico >= 0 then 'A72B2A'
       else NULL 
      end)


   ELSE
    case
     when LN_contraparte_indicadores.valor_numerico >= 81 then '63b68c'
     when LN_contraparte_indicadores.valor_numerico >= 61 then 'cbc367'
     when LN_contraparte_indicadores.valor_numerico >= 41 then 'FFB81C'
     when LN_contraparte_indicadores.valor_numerico >= 21 then 'd37123'
     when LN_contraparte_indicadores.valor_numerico >= 0 then 'A72B2A'
     else NULL 
    end
        
  END AS color,


  /** COLOR TEXTO **/
  CASE
   WHEN (LN_indicadores.clave_indicador = 'DEP_ECON' OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC') THEN
    case
     when LN_contraparte_indicadores.valor_numerico >= 81 then 'FFFFFF'
     else '000000'
    end

   WHEN LN_indicadores.clave_indicador = 'NIVEL_RIESGO' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'AR' then 'FFFFFF'
     when LN_contraparte_indicadores.valor_texto = 'MR' then '000000'
     when LN_contraparte_indicadores.valor_texto = 'SR' then '000000'
     when LN_contraparte_indicadores.valor_texto = 'BR' then '000000'
     else NULL
    end       

   WHEN LN_indicadores.clave_indicador = 'FIDECHECK' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'P' then 'A72B2A'
     when LN_contraparte_indicadores.valor_texto = 'R' then 'FFB81C'
     when LN_contraparte_indicadores.valor_texto = 'N' then '63b68c'
     else NULL
    end

   WHEN (LN_indicadores.clave_indicador = 'CTRL_CALIDAD' OR LN_indicadores.clave_indicador = 'CTRL_ETICO' OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL' OR LN_indicadores.clave_indicador = 'HOMOLOG') THEN
    case 
     when (LN_contraparte_indicadores.valor_numerico = 0) then 'FFFFFF'
     else '000000'
    end

   WHEN (LN_indicadores.clave_indicador = 'EXCEPCION') THEN '000000'
   WHEN (LN_indicadores.clave_indicador = 'SITUACION_CD') THEN '000000'


   WHEN (LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN

    ISNULL( (select color_texto from ln_cliente_nivel 
     where cliente = @p_cliente 
     and desde <= LN_contraparte_indicadores.valor_numerico 
     and hasta > LN_contraparte_indicadores.valor_numerico), 

    case
     when LN_contraparte_indicadores.valor_numerico <= 20 then 'FFFFFF'
     else '000000' 
    end)


   ELSE
    case
     when LN_contraparte_indicadores.valor_numerico > 20 then '000000' 
     when LN_contraparte_indicadores.valor_numerico >= 0 then 'FFFFFF'
     else null 
    end        
  END AS textcolor,


  /** SVG **/
  CASE

   WHEN (LN_indicadores.clave_indicador = 'CTRL_ETICO' OR LN_indicadores.clave_indicador = 'CTRL_CALIDAD' OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL' OR LN_indicadores.clave_indicador = 'HOMOLOG' OR LN_indicadores.clave_indicador = 'NIVEL_RIESGO') THEN 'SQUARE'

   WHEN (LN_indicadores.clave_indicador = 'SCORE_IC' 
     OR LN_indicadores.clave_indicador = 'SCORE_BAL' 
     OR LN_indicadores.clave_indicador = 'SCORE_DOC' 
     OR LN_indicadores.clave_indicador = 'CUMPL_DOC'
     OR LN_indicadores.clave_indicador = 'SCORE_FINAL' 
     OR LN_indicadores.clave_indicador = 'SCORE_DOSSIER' 
     OR LN_indicadores.clave_indicador = 'SCORE_BR' 
     OR LN_indicadores.clave_indicador = 'DEP_ECON' 
     OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
     OR LN_indicadores.clave_indicador = 'LC_DIAS_VENTAS'
     OR LN_indicadores.clave_indicador = 'SCORE_JUDICIAL'
     OR LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN 'PIPE'

    
   WHEN (LN_indicadores.clave_indicador = 'VALORACION_BAL') THEN

    case
     when LN_contraparte_indicadores.valor_texto = 'P' then 'fas fa-arrow-up'
     when LN_contraparte_indicadores.valor_texto = 'U' then 'fas fa-arrow-up r45r'
     when LN_contraparte_indicadores.valor_texto = 'E' then 'fas fa-arrow-right'
     when LN_contraparte_indicadores.valor_texto = 'D' then 'fas fa-arrow-down r45l'
     when LN_contraparte_indicadores.valor_texto = 'N' then 'fas fa-arrow-down'

     else NULL
    end

   WHEN (LN_indicadores.clave_indicador = 'FIDECHECK') THEN
    iif(LN_contraparte_indicadores.valor_texto is NOT null, 'DOT', NULL)

   WHEN (LN_indicadores.clave_indicador = 'EXCEPCION' OR LN_indicadores.clave_indicador = 'SITUACION_CD') THEN

    case
     when LN_contraparte_indicadores.valor_numerico >= 1 and LN_contraparte_indicadores.valor_numerico <= 6 then 'DOT'
    else
     NULL
    end

   ELSE NULL
  END AS svg_data,


  /** TEXT CAPTION **/
  CASE
   WHEN LN_indicadores.clave_indicador = 'VALORACION_BAL' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'P' then 'Positivo'
     when LN_contraparte_indicadores.valor_texto = 'U' then 'Ascendente'
     when LN_contraparte_indicadores.valor_texto = 'E' then 'Neutro' 
     when LN_contraparte_indicadores.valor_texto = 'D' then 'Descendente' 
     when LN_contraparte_indicadores.valor_texto = 'N' then 'Negativo'
     else NULL
    end

   WHEN LN_indicadores.clave_indicador = 'NIVEL_RIESGO' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'AR' then 'Riesgo alto'
     when LN_contraparte_indicadores.valor_texto = 'MR' then 'Riesgo medio'
     when LN_contraparte_indicadores.valor_texto = 'SR' then 'Riesgo standard'
     when LN_contraparte_indicadores.valor_texto = 'BR' then 'Riesgo bajo'
     else null
    end

   WHEN LN_indicadores.clave_indicador = 'FIDECHECK' THEN
    case
     when LN_contraparte_indicadores.valor_texto = 'P' then 'Positive'
     when LN_contraparte_indicadores.valor_texto = 'R' then 'Related'
     when LN_contraparte_indicadores.valor_texto = 'N' then 'Negative'
     else null
    end

   WHEN LN_indicadores.clave_indicador = 'SITUACION_CD' THEN
    iif (LN_contraparte_indicadores.valor_numerico is not null, 'Situación ' + Convert(varchar,LN_contraparte_indicadores.valor_numerico)+' - Período: '+LN_contraparte_indicadores.valor_texto, null) 

   WHEN LN_indicadores.clave_indicador = 'EXCEPCION' THEN
    iif (excepciones.tipo_excepcion = 'V', 'Excepción para PERMITIR ingreso', iif(excepciones.tipo_excepcion = 'R', 'Excepción para RECHAZAR ingreso', NULL))
   
   WHEN LN_indicadores.clave_indicador = 'SCORE_FINAL' THEN
    LN_contraparte_indicadores.valor_texto
        
   ELSE NULL
  END AS textcaption,

  /** TEXTOS **/
  CASE
   WHEN LN_indicadores.clave_indicador = 'SCORE_FINAL' THEN
    (select texto from ln_cliente_nivel where cliente = @p_cliente 
     and desde <= LN_contraparte_indicadores.valor_numerico and hasta > LN_contraparte_indicadores.valor_numerico)
     ELSE NULL
  END AS texto, 



  /** PUNTO **/
  CASE      
   WHEN LN_indicadores.clave_indicador LIKE '%CUMPL%' THEN iif(PENDIENTES_VERIFICAR.ingresados > 0, 1, 0)
   WHEN LN_indicadores.clave_indicador = 'ULTIMA_NOVEDAD' THEN iif(LN_contraparte_indicadores.valor_fecha IS NOT NULL, iif(DATEDIFF(DAY, CONVERT(DATE,LN_contraparte_indicadores.valor_fecha) , CONVERT(DATE,GETDATE())) <= 7, 1, 0), 0)
   WHEN LN_indicadores.clave_indicador = 'SCORE_BAL' THEN ISNULL(LN_contraparte_indicadores.balance_preexiste, 0)
   ELSE 0 
  END AS punto,

  /*** DATOS A MOSTRAR EN CELDA DEL PANEL DE CONTROL: 1=NUMERO, 2=GRAFICO, 3=NUMERO+GRAFICO ***/
  CASE
   WHEN (LN_indicadores.clave_indicador = 'SCORE_IC' 
     OR LN_indicadores.clave_indicador = 'SCORE_BAL' 
     OR LN_indicadores.clave_indicador = 'SCORE_DOC' 
     OR LN_indicadores.clave_indicador = 'CUMPL_DOC'
     OR LN_indicadores.clave_indicador = 'SCORE_FINAL' 
     OR LN_indicadores.clave_indicador = 'SCORE_DOSSIER' 
     OR LN_indicadores.clave_indicador = 'SCORE_JUDICIAL' 
     OR LN_indicadores.clave_indicador = 'DEP_ECON' 
     OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
     OR LN_indicadores.clave_indicador = 'LC_DIAS_VENTAS'
     OR LN_indicadores.clave_indicador = 'SITUACION_CD'
     OR LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN 3
   
   WHEN (LN_indicadores.clave_indicador = 'NIVEL_RIESGO' 
     OR LN_indicadores.clave_indicador = 'VALORACION_BAL'
     OR LN_indicadores.clave_indicador = 'CTRL_ETICO'
     OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL'
     OR LN_indicadores.clave_indicador = 'CTRL_CALIDAD'
     OR LN_indicadores.clave_indicador = 'HOMOLOG'
     OR LN_indicadores.clave_indicador = 'EXCEPCION'
     --OR LN_indicadores.clave_indicador = 'SITUACION_CD'
     OR LN_indicadores.clave_indicador = 'FIDECHECK') THEN 2

   ELSE 1
  END AS cell_data,

  detalles_killer.detalle AS detalle_killer

  FROM LN_contrapartes 
  INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
  INNER JOIN identificadores ON padrones.identificador = identificadores.identificador

  INNER JOIN LN_contraparte_indicadores ON LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte
  INNER JOIN LN_indicadores ON LN_contraparte_indicadores.indicador = LN_indicadores.indicador
  INNER JOIN LN_productos ON LN_indicadores.producto = LN_productos.producto

  INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_indicadores.producto = LN_familia_productos.producto)
  INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia

  INNER JOIN LN_cliente_productos ON (LN_contrapartes.cliente = LN_cliente_productos.cliente
           AND LN_indicadores.producto = LN_cliente_productos.producto)

  INNER JOIN LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte

  LEFT OUTER JOIN
   (SELECT LN_docs.contraparte, COUNT(*) AS ingresados
   FROM LN_docs 
   INNER JOIN LN_gestiones ON LN_docs.gestion = LN_gestiones.gestion

   INNER JOIN
    (select LN_docs.contraparte, LN_docs.tipo_doc, max(doc_version) as ultima
    from LN_docs
    inner join LN_gestiones on (LN_docs.gestion = LN_gestiones.gestion 
           AND LN_docs.contraparte = LN_gestiones.contraparte)
    where LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()
    group by LN_docs.contraparte, LN_docs.tipo_doc) ultimas_versiones 

   ON (LN_docs.tipo_doc = ultimas_versiones.tipo_doc 
    AND ln_docs.contraparte = ultimas_versiones.contraparte 
    AND LN_docs.doc_version = ultimas_versiones.ultima)


   WHERE LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()
   AND LN_docs.estado_doc = 'I'
   GROUP BY LN_docs.contraparte) PENDIENTES_VERIFICAR ON LN_contrapartes.contraparte = PENDIENTES_VERIFICAR.contraparte


  LEFT OUTER JOIN
   (select LN_excepciones.contraparte, LN_excepciones.tipo_excepcion
   from LN_contrapartes inner join LN_excepciones
   on LN_contrapartes.contraparte = LN_excepciones.contraparte
   where LN_contrapartes.cliente = @p_cliente
   and LN_excepciones.estado = 1
   and LN_excepciones.vigencia >= GETDATE()) excepciones ON LN_contrapartes.contraparte = excepciones.contraparte

  LEFT OUTER JOIN
   (SELECT T.contraparte, detalle=STUFF(
           (SELECT '; ' + detalle_killer AS [text()]
          FROM ln_score_detalle_killer XT
          WHERE XT.contraparte = T.contraparte and XT.visible = 1
          FOR XML PATH('')), 1, 2, '') 
   FROM LN_score_detalle_killer T 
   inner join LN_contrapartes C on T.contraparte = C.contraparte
   where T.visible = 1
   and C.cliente = @p_cliente
   GROUP BY T.contraparte) detalles_killer on detalles_killer.contraparte = LN_contrapartes.contraparte 



  WHERE LN_contrapartes.cliente = @p_cliente
  AND LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()
  AND LN_indicadores.visible = 1
  AND LN_contrapartes.activo = 1 /*and ln_contrapartes.contraparte=219*/
  AND LN_contrapartes.subcontratista = 0


  --and padrones.identificacion = '30709637084'
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_cliente_productos.activo = 1
  --order by padrones.identificacion
  --ORDER BY LN_contrapartes.country_code, LN_familias.nombre_familia, padrones.nombre_persona

 END




 IF (@accion = 'PRODUCTOS_INDICADORES') BEGIN


  SELECT DATA.* FROM
   
   (SELECT 'País' as etiqueta, 
     'PAIS' AS 'producto_id', NULL AS indicador, NULL as etiqueta_indicador,
     NULL AS tipo_dato, 'PAIS' AS clave_indicador, 1 as show_panel,
     -2 as orden_producto, 1 as orden, 'center' as alignment, 1 as locked,
     60 AS width, NULL AS separator, NULL as decimals
   
   UNION ALL
   
   SELECT 'Familia' as etiqueta, 
     'FAMILIA' AS 'producto_id', NULL AS indicador, NULL as etiqueta_indicador,
     NULL AS tipo_dato,'FAMILIA' AS clave_indicador, 1 as show_panel,
     -1 as orden_producto, 1 as orden, 'left' as alignment, 1 as locked,
     120 AS width, NULL AS separator, NULL as decimals

   UNION ALL
   
   SELECT 'Razón Social' as etiqueta,
     'RAZON_SOCIAL' AS 'producto_id', NULL AS indicador, NULL as etiqueta_indicador,
     NULL AS tipo_dato, 'RAZON_SOCIAL' AS clave_indicador, 1 as show_panel,
     0 as orden_producto, 1 as orden, 'left' as alignment, 1 as locked,
     200 AS width, NULL AS separator, NULL as decimals
   
   UNION ALL
   
   SELECT LN_productos.etiqueta, LN_productos.producto_id, SUSC.indicador,
    LN_indicadores.etiqueta as etiqueta_indicador, 
    CASE
     WHEN (LN_indicadores.clave_indicador = 'SCORE_IC' 
       OR LN_indicadores.clave_indicador = 'SCORE_BAL' 
       OR LN_indicadores.clave_indicador = 'SCORE_DOC' 
       OR LN_indicadores.clave_indicador = 'SCORE_BR' 
       OR LN_indicadores.clave_indicador = 'CUMPL_DOC'
       OR LN_indicadores.clave_indicador = 'SCORE_FINAL' 
       OR LN_indicadores.clave_indicador = 'SCORE_DOSSIER' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
       OR LN_indicadores.clave_indicador = 'LC_DIAS_VENTAS'
       OR LN_indicadores.clave_indicador = 'SITUACION_CD'
       OR LN_indicadores.clave_indicador = 'SCORE_JUDICIAL'
       OR LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN 'S'
     ELSE LN_indicadores.tipo_dato
    END AS tipo_dato,
    LN_indicadores.clave_indicador, 
    show_panel = CASE 
     WHEN ISNULL(LN_productos.balance, 0) > 0 THEN iif(SUSC.indicador IS NOT NULL, 1, 0) ELSE 1 END,

    LN_cliente_productos.orden_producto, LN_indicadores.orden,

    /*** ALINEACION DE LOS DATOS EN LA CELDA ***/
    CASE
     WHEN (LN_indicadores.clave_indicador = 'SCORE_IC' 
       OR LN_indicadores.clave_indicador = 'SCORE_BAL' 
       OR LN_indicadores.clave_indicador = 'SCORE_DOC' 
       OR LN_indicadores.clave_indicador = 'SCORE_BR' 
       OR LN_indicadores.clave_indicador = 'CUMPL_DOC'
       OR LN_indicadores.clave_indicador = 'SCORE_FINAL' 
       OR LN_indicadores.clave_indicador = 'SCORE_DOSSIER' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
       OR LN_indicadores.clave_indicador = 'LC_DIAS_VENTAS'
       OR LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN 'right'
   
     WHEN (LN_indicadores.clave_indicador = 'NIVEL_RIESGO' 
       OR LN_indicadores.clave_indicador = 'ULTIMA_NOVEDAD' 
       OR LN_indicadores.clave_indicador = 'VALORACION_BAL'
       OR LN_indicadores.clave_indicador = 'CTRL_ETICO'
       OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL'
       OR LN_indicadores.clave_indicador = 'CTRL_CALIDAD'
       OR LN_indicadores.clave_indicador = 'HOMOLOG'
       OR LN_indicadores.clave_indicador = 'EXCEPCION'
       OR LN_indicadores.clave_indicador = 'SITUACION_CD'
       OR LN_indicadores.clave_indicador = 'FIDECHECK'
       OR LN_indicadores.clave_indicador = 'CHEQUES_RECH'
       OR LN_indicadores.clave_indicador = 'FECHA_BALANCE') THEN 'center'

     ELSE 'right'
    END AS alignment, 0 as locked,

    CASE
     WHEN (LN_indicadores.clave_indicador = 'SCORE_IC' 
       OR LN_indicadores.clave_indicador = 'CTRL_ETICO'
       OR LN_indicadores.clave_indicador = 'CTRL_COMERCIAL'
       OR LN_indicadores.clave_indicador = 'CTRL_CALIDAD'
       OR LN_indicadores.clave_indicador = 'HOMOLOG'
       OR LN_indicadores.clave_indicador = 'EXCEPCION'
       OR LN_indicadores.clave_indicador = 'NIVEL_RIESGO'
       OR LN_indicadores.clave_indicador = 'DEP_ECON' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
       OR LN_indicadores.clave_indicador = 'SITUACION_CD') THEN 70

     WHEN LN_indicadores.clave_indicador = 'SUBCONT' THEN 80
     WHEN LN_indicadores.clave_indicador = 'CHEQUES_RECH' THEN 88

     ELSE 60
    END AS width,

   /*** separadores de miles : en balances va espacio, en otros productos va el punto ***/
   iif(LN_productos.producto_id = 'balances',
    iif(LN_indicadores.clave_indicador = 'VALORACION_BAL', NULL, 'SPACE'),
    iif(LN_indicadores.tipo_dato = 'F' OR LN_indicadores.tipo_dato = 'I', 'POINT', NULL)
   ) as separator,

   /*** decimales ***/
   iif(LN_productos.producto_id = 'balances',
    case
     when (LN_indicadores.clave_indicador = 'BAL_ACTIVO_CORRIENTE' OR
       LN_indicadores.clave_indicador = 'BAL_ACTIVO_NO_CORRIENTE' OR
       LN_indicadores.clave_indicador = 'BAL_ACTIVO_TOTAL' OR
       LN_indicadores.clave_indicador = 'BAL_PASIVO_CORRIENTE' OR
       LN_indicadores.clave_indicador = 'BAL_PASIVO_NO_CORRIENTE' OR
       LN_indicadores.clave_indicador = 'BAL_PATRIMONIO_NETO' OR
       LN_indicadores.clave_indicador = 'BAL_VENTAS' OR
       LN_indicadores.clave_indicador = 'BAL_RESULTADO' OR
       LN_indicadores.clave_indicador = 'BAL_CAPITAL_TRABAJO' OR
       LN_indicadores.clave_indicador = 'BAL_EBITDA') then 0
     when LN_indicadores.clave_indicador = 'VALORACION_BAL' then NULL
     else iif(LN_indicadores.clave_indicador LIKE 'SCORE%', 0, 2)
    end,
    case
     when LN_indicadores.tipo_dato = 'F' then 2
     when LN_indicadores.tipo_dato = 'I' then 0
     else NULL
    end
   ) as decimals

   FROM LN_productos 
   INNER JOIN LN_cliente_productos ON LN_productos.producto = LN_cliente_productos.producto
   INNER JOIN LN_familia_productos ON LN_cliente_productos.producto = LN_familia_productos.producto
   INNER JOIN LN_familias ON (LN_familia_productos.familia = LN_familias.familia
          AND LN_cliente_productos.cliente = LN_familias.cliente)

   INNER join LN_indicadores ON LN_productos.producto = LN_indicadores.producto

   LEFT OUTER JOIN (SELECT cliente, indicador FROM LN_cliente_indicadores
       WHERE cliente = @p_cliente) SUSC
    ON (LN_cliente_productos.cliente = SUSC.cliente AND LN_indicadores.indicador = SUSC.indicador)


   LEFT OUTER JOIN country ON LN_productos.country_code = country.country_code


   WHERE LN_cliente_productos.cliente = @p_cliente
   AND LN_productos.visible = 1
   AND LN_cliente_productos.activo = 1
   AND LN_familia_productos.activo = 1
   AND LN_familias.visible = 1
   AND ISNULL(LN_familias.subfamilia, 0) = 0
   AND LN_indicadores.visible = 1

   GROUP BY LN_productos.etiqueta, 
    LN_productos.producto_id, LN_productos.balance,
    LN_indicadores.etiqueta, LN_indicadores.tipo_dato,
    LN_indicadores.clave_indicador, SUSC.indicador,
    LN_cliente_productos.orden_producto, LN_indicadores.orden

   --ORDER BY LN_cliente_productos.orden_producto, LN_indicadores.orden
   ) DATA


  WHERE DATA.show_panel = 1
  ORDER BY DATA.orden_producto, DATA.orden

 END


 

END

GO

Used By

No items found