dbo.LN_subcontratistas_fancy_AGB

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

16
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
@p_indicador int 4
@p_min float 8
@p_max float 8
@p_valor_indicador varchar 100

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
/*
exec LN_subcontratistas_fancy 'VALORES_GRILLA_EXT', 7075221, null,null, null

exec LN_subcontratistas_fancy 'PRODUCTOS_INDICADORES', 7075221, null,null, null

*/


CREATE OR ALTER PROCEDURE dbo.LN_subcontratistas_fancy_AGB 
 -- 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 ,
 
 @p_indicador        int = null,
 @p_min          float = null,
 @p_max          float = null,
 @p_valor_indicador       varchar(100) = null     
 
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

  DECLARE @contrapartes varchar(MAX) = '0'
  DECLARE @contrap int


  /* Para consultar por un ID de contraparte en particular */
  if (@p_contraparte > 0) begin
   set @p_clave_indicador = NULL
   set @p_min = null
   set @p_max = null
   set @p_valor_indicador = null

   set @contrapartes = convert(varchar(10), @p_contraparte)
  end

  if ( @p_clave_indicador is not null AND ( (@p_min is not null AND @p_max is not null) OR @p_valor_indicador is not null ) ) begin

   if (@p_min = 0) set @p_min = -1000


   if (@p_valor_indicador is not null)
   

    declare Contrapartes CURSOR FOR

    select LN_contrapartes.contraparte
    from LN_contrapartes 
    inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
    inner join LN_contraparte_indicadores on (LN_gestiones.contraparte = LN_contraparte_indicadores.contraparte
               and LN_gestiones.gestion = LN_contraparte_indicadores.gestion)
    inner join LN_indicadores on LN_contraparte_indicadores.indicador = LN_indicadores.indicador
    inner join LN_cliente_productos on (LN_indicadores.producto = LN_cliente_productos.producto
             and LN_contrapartes.cliente = LN_cliente_productos.cliente)
    inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
    inner join LN_familia_productos on (LN_cliente_productos.producto = LN_familia_productos.producto
             and LN_contraparte_familias.familia = LN_familia_productos.familia)
       INNER JOIN LN_contrapartes padre on padre.contraparte = LN_contrapartes.id_padre
    INNER JOIN LN_gestiones gestiones_padre on gestiones_padre.contraparte = padre.contraparte 


    where LN_contrapartes.cliente = @p_cliente
    and LN_contrapartes.activo = 1 and ln_contrapartes.servicio_contratado = 47
    and ln_contrapartes.subcontratista = 1 
    and LN_contrapartes.vigencia_desde <= GETDATE()
    and LN_contrapartes.vigencia_hasta >= GETDATE()
    and LN_indicadores.clave_indicador = @p_clave_indicador
    and LN_contraparte_indicadores.valor_texto = @p_valor_indicador
    and padre.activo = 1 and padre.servicio_contratado = 47
    and gestiones_padre.desde <= GETDATE() and gestiones_padre.hasta >= GETDATE()
   else

    declare Contrapartes CURSOR FOR

    select LN_contrapartes.contraparte
    from LN_contrapartes 
    inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
    inner join LN_contraparte_indicadores on (LN_gestiones.contraparte = LN_contraparte_indicadores.contraparte
               and LN_gestiones.gestion = LN_contraparte_indicadores.gestion)
    inner join LN_indicadores on LN_contraparte_indicadores.indicador = LN_indicadores.indicador
    inner join LN_cliente_productos on (LN_indicadores.producto = LN_cliente_productos.producto
             and LN_contrapartes.cliente = LN_cliente_productos.cliente)
    inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
    inner join LN_familia_productos on (LN_cliente_productos.producto = LN_familia_productos.producto
             and LN_contraparte_familias.familia = LN_familia_productos.familia)
        INNER JOIN LN_contrapartes padre on padre.contraparte = LN_contrapartes.id_padre
    INNER JOIN LN_gestiones gestiones_padre on gestiones_padre.contraparte = padre.contraparte 


    where LN_contrapartes.cliente = @p_cliente
    and LN_contrapartes.activo = 1 and ln_contrapartes.servicio_contratado = 47
    and LN_contrapartes.subcontratista = 1 
    and LN_contrapartes.vigencia_desde <= GETDATE()
    and LN_contrapartes.vigencia_hasta >= GETDATE()
    and LN_familia_productos.activo = 1
    and LN_cliente_productos.activo = 1
    and LN_indicadores.clave_indicador = @p_clave_indicador
    and LN_contraparte_indicadores.valor_numerico IS NOT NULL
    and LN_contraparte_indicadores.valor_numerico >= @p_min
    and LN_contraparte_indicadores.valor_numerico <= @p_max
    and padre.activo = 1 and padre.servicio_contratado = 47
       and gestiones_padre.desde <= GETDATE() and gestiones_padre.hasta >= GETDATE()
    group by LN_contrapartes.contraparte


   Open Contrapartes
   Fetch next from Contrapartes Into @contrap
   WHILE @@FETCH_STATUS = 0 BEGIN
    SET @contrapartes = @contrapartes + ',' + rtrim(ltrim(convert(varchar(10), @contrap)))
    Fetch next from Contrapartes Into @contrap
   END
   Close Contrapartes
   Deallocate Contrapartes


  end


  IF (@contrapartes = '0')

   SELECT  -- Contratista Padre
           LOWER(identificadores_padre.country_code) AS 'PAIS', 
           padrones_padre.nombre_persona AS 'RAZON_SOCIAL', 
     padrones_padre.identificacion AS 'identificacion', 
     LN_familias_padre.nombre_familia AS 'FAMILIA', 
     LN_contrapartes_padre.contraparte as 'contraparte', 
     -- Subcontratista
     padrones.nombre_persona AS 'RAZON_SOCIAL_SUB', 
     padrones.identificacion AS 'identificacion_sub', 
     LN_familias.nombre_familia AS 'FAMILIA_SUB', 
     LN_contrapartes.contraparte AS 'contraparte_sub', 

     LN_contrapartes.vigencia_desde AS 'DESDE',
     LN_contrapartes.vigencia_hasta AS 'HASTA', 

     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' OR LN_indicadores.clave_indicador = 'DEP_ECON_BALANCE') 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 = 'APOCRIFAS' THEN
     case
      when LN_contraparte_indicadores.valor_numerico = 1 then 'A72B2A'
      when LN_contraparte_indicadores.valor_numerico = 0 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 LN_cliente_nivel.color_fondo
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_FINAL'), 

       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)


    WHEN (LN_indicadores.clave_indicador = 'SCORE_DOSSIER') THEN

     ISNULL( (select LN_cliente_nivel.color_fondo
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_DOSSIER'), 

       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' OR LN_indicadores.clave_indicador = 'DEP_ECON_BALANCE') 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 = 'APOCRIFAS' THEN
     case
      when LN_contraparte_indicadores.valor_numerico = 1 then 'FFFFFF'
      when LN_contraparte_indicadores.valor_numerico = 0 then '000000'
      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 iif(LN_contraparte_indicadores.valor_numerico >=4, 'FFFFFF', '000000')


    WHEN (LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN

     ISNULL( (select LN_cliente_nivel.color_texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_FINAL'), 

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

    WHEN (LN_indicadores.clave_indicador = 'SCORE_DOSSIER') THEN

     ISNULL( (select LN_cliente_nivel.color_texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_DOSSIER'), 

     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_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 = 'DEP_ECON_BALANCE'
      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 = 'APOCRIFAS') THEN
     iif(LN_contraparte_indicadores.valor_numerico 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 LN_cliente_nivel.texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_FINAL')

    WHEN LN_indicadores.clave_indicador = 'SCORE_DOSSIER' THEN
     (select LN_cliente_nivel.texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_DOSSIER')


   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_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 = 'DEP_ECON_BALANCE'
      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'
      OR LN_indicadores.clave_indicador = 'APOCRIFAS') THEN 2

    ELSE 1
   END AS cell_data,

   detalles_killer.detalle AS detalle_killer

   FROM LN_contrapartes 

   INNER JOIN LN_contrapartes ln_contrapartes_padre on ln_contrapartes_padre.contraparte = LN_contrapartes.id_padre
   INNER JOIN padrones padrones_padre ON padrones_padre.id_padron = ln_contrapartes_padre.id_padron
   INNER JOIN identificadores as identificadores_padre ON identificadores_padre.identificador = padrones_padre.identificador
   INNER JOIN LN_contraparte_familias LN_contraparte_familias_padre ON LN_contraparte_familias_padre.contraparte = ln_contrapartes_padre.contraparte
   INNER JOIN LN_familias LN_familias_padre ON LN_familias_padre.familia = LN_contraparte_familias_padre.familia
   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
   INNER JOIN LN_gestiones gestiones_padre on gestiones_padre.contraparte = ln_contrapartes_padre.contraparte 

-- exec LN_subcontratistas_fancy_AGB 'VALORES_GRILLA_EXT', 7075221, null,null, null


   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_indicadores.visible = 1
   AND LN_contrapartes.activo = 1 /*and ln_contrapartes.contraparte=219*/
   AND LN_contrapartes.subcontratista = 1 
   and ln_contrapartes.servicio_contratado = 47
   and LN_contrapartes.vigencia_desde <= GETDATE()
      and LN_contrapartes.vigencia_hasta >= GETDATE()
   --and padrones.identificacion = '30709637084'
   AND LN_contraparte_familias.activo = 1
   AND LN_familia_productos.activo = 1
   AND LN_cliente_productos.activo = 1
   --and ln_contrapartes_padre.activo = 1 and ln_contrapartes_padre.servicio_contratado = 47
   and gestiones_padre.desde <= GETDATE() and gestiones_padre.hasta >= GETDATE()
   --order by padrones.identificacion
   --ORDER BY LN_contrapartes.country_code, LN_familias.nombre_familia, padrones.nombre_persona

-- select 'pepe2',@p_clave_indicador,@p_min,@p_max,@p_valor_indicador,@contrapartes

-- exec LN_subcontratistas_fancy_AGB 'VALORES_GRILLA_EXT', 7075221, null,null, null


  ELSE

   -- con filtrado de contrapartes

   SELECT  -- Contratista Padre
           LOWER(identificadores_padre.country_code) AS 'PAIS', 
           padrones_padre.nombre_persona AS 'RAZON_SOCIAL', 
     padrones_padre.identificacion AS 'IDENTIFICACION', 
     LN_familias_padre.nombre_familia AS 'FAMILIA', 
     LN_contrapartes_padre.contraparte as 'CONTRAPARTE', 
     
     -- Subcontratista
     padrones.nombre_persona AS 'RAZON_SOCIAL_SUB', 
     padrones.identificacion AS 'IDENTIFICACION_SUB', 
     LN_familias.nombre_familia AS 'FAMILIA_SUB', 
     LN_contrapartes.contraparte AS 'CONTRAPARTE_SUB', 

     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)


    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' OR LN_indicadores.clave_indicador = 'DEP_ECON_BALANCE') 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 LN_cliente_nivel.color_fondo
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_FINAL'), 

       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)

    WHEN (LN_indicadores.clave_indicador = 'SCORE_DOSSIER') THEN

     ISNULL( (select LN_cliente_nivel.color_fondo
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_DOSSIER'), 

       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' OR LN_indicadores.clave_indicador = 'DEP_ECON_BALANCE') 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 iif(LN_contraparte_indicadores.valor_numerico >=4, 'FFFFFF', '000000')


    WHEN (LN_indicadores.clave_indicador = 'SCORE_FINAL') THEN

     ISNULL( (select LN_cliente_nivel.color_texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_FINAL'), 

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

    WHEN (LN_indicadores.clave_indicador = 'SCORE_DOSSIER') THEN

     ISNULL( (select LN_cliente_nivel.color_texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_DOSSIER'), 

     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_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 = 'DEP_ECON_BALANCE'
      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 LN_cliente_nivel.texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_FINAL')

    WHEN LN_indicadores.clave_indicador = 'SCORE_DOSSIER' THEN
     (select LN_cliente_nivel.texto
        from LN_cliente_nivel inner join LN_indicadores ON LN_cliente_nivel.indicador = LN_indicadores.indicador
        where LN_cliente_nivel.cliente = @p_cliente 
        and LN_cliente_nivel.desde <= LN_contraparte_indicadores.valor_numerico 
        and LN_cliente_nivel.hasta > LN_contraparte_indicadores.valor_numerico
        and LN_indicadores.clave_indicador = 'SCORE_DOSSIER')

   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_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 = 'DEP_ECON_BALANCE'
      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 dbo.DelimitedSplit8K(@contrapartes, ',') FILTRADAS ON LN_contrapartes.contraparte = CONVERT(INT, FILTRADAS.Item)

   INNER JOIN LN_contrapartes ln_contrapartes_padre on ln_contrapartes_padre.contraparte = LN_contrapartes.id_padre
   INNER JOIN padrones padrones_padre ON padrones_padre.id_padron = ln_contrapartes_padre.id_padron
   INNER JOIN identificadores as identificadores_padre ON identificadores_padre.identificador = padrones_padre.identificador
   INNER JOIN LN_contraparte_familias LN_contraparte_familias_padre ON LN_contraparte_familias_padre.contraparte = ln_contrapartes_padre.contraparte
   INNER JOIN LN_familias LN_familias_padre ON LN_familias_padre.familia = LN_contraparte_familias_padre.familia
  
   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 
      INNER JOIN LN_gestiones gestiones_padre on gestiones_padre.contraparte = ln_contrapartes_padre.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.servicio_contratado = 47
   AND LN_contrapartes.subcontratista = 1
   --and padrones.identificacion = '30709637084'
   AND LN_contraparte_familias.activo = 1
   AND LN_familia_productos.activo = 1
   AND LN_cliente_productos.activo = 1
   and ln_contrapartes_padre.activo = 1 
   and ln_contrapartes_padre.servicio_contratado = 47
   and gestiones_padre.desde <= GETDATE() and gestiones_padre.hasta >= GETDATE()
   --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 indsusc, NULL as etiqueta_indicador,
     NULL AS tipo_dato, 'PAIS' AS clave_indicador, 1 as show_panel,
     -6 as orden_producto, 1 as orden, 'center' as alignment, 1 as locked,
     60 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador
   
   UNION ALL
   
   SELECT 'Familia' as etiqueta, 
     'FAMILIA' AS 'producto_id',  NULL AS indicador, NULL AS indsusc,NULL as etiqueta_indicador,
     NULL AS tipo_dato,'FAMILIA' AS clave_indicador, 1 as show_panel,
     -5 as orden_producto, 1 as orden, 'left' as alignment, 1 as locked,
     120 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador

   UNION ALL
   
   SELECT 'Razón Social' as etiqueta,
     'RAZON_SOCIAL' AS 'producto_id',  NULL AS indicador, NULL AS indsusc, NULL as etiqueta_indicador,
     NULL AS tipo_dato, 'RAZON_SOCIAL' AS clave_indicador, 1 as show_panel,
     -4 as orden_producto, 1 as orden, 'left' as alignment, 1 as locked,
     200 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador
   
   UNION ALL
   
   SELECT 'Familia Subontratista' as etiqueta, 
     'FAMILIA_SUB' AS 'producto_id',  NULL AS indicador, NULL AS indsusc, 'FAMILIA SUB' as etiqueta_indicador,
     NULL AS tipo_dato,'FAMILIA_SUB' AS clave_indicador, 1 as show_panel,
     -3 as orden_producto, 1 as orden, 'left' as alignment, 1 as locked,
     60 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador

   UNION ALL

   SELECT 'Subcontratista' as etiqueta,
     'RAZON_SOCIAL_SUB' AS 'producto_id',  NULL AS indicador, NULL AS indsusc, 'SUBCONTRATISTA' as etiqueta_indicador,
     NULL AS tipo_dato, 'RAZON_SOCIAL_SUB' AS clave_indicador, 1 as show_panel,
     -2 as orden_producto, 1 as orden, 'left' as alignment, 1 as locked,
     200 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador
   
   UNION ALL
   SELECT 'Vigencia Desde' as etiqueta,
     'DESDE' AS 'producto_id', NULL AS indicador, NULL AS indsusc, 'Vigencia Desde' as etiqueta_indicador,
     'YMD' AS tipo_dato, 'DESDE' AS clave_indicador, 1 as show_panel,
     -1 as orden_producto, 1 as orden, 'center' as alignment, 0 as locked,
     60 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador
   
   UNION ALL
   SELECT 'Vigencia Hasta' as etiqueta,
     'HASTA' AS 'producto_id',  NULL AS indicador, NULL AS indsusc, 'Vigencia Hasta' as etiqueta_indicador,
     'YMD' AS tipo_dato, 'HASTA' AS clave_indicador, 1 as show_panel,
     0 as orden_producto, 1 as orden, 'center' as alignment, 0 as locked,
     60 AS width, NULL AS separator, NULL as decimals, NULL AS class_icon,
     NULL as producto, NULL AS nombre_producto, NULL AS nombre_indicador
   
   UNION ALL
   
   SELECT LN_productos.etiqueta, LN_productos.producto_id, LN_indicadores.indicador, SUSC.indicador as indsusc, 
    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_DOSSIER' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
       OR LN_indicadores.clave_indicador = 'DEP_ECON_BALANCE'
       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_DOSSIER' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON' 
       OR LN_indicadores.clave_indicador = 'DEP_ECON_CALC'
       OR LN_indicadores.clave_indicador = 'DEP_ECON_BALANCE'
       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 = 'DEP_ECON_BALANCE_FECHA'
       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'
       OR LN_indicadores.clave_indicador = 'APOCRIFAS') THEN 'center'

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

    CASE
     WHEN (LN_indicadores.clave_indicador = 'SCORE_IC' 
       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 = 'DEP_ECON_BALANCE'
       OR LN_indicadores.clave_indicador = 'SITUACION_CD'
       OR LN_indicadores.clave_indicador = 'APOCRIFAS') THEN 70
     WHEN (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') THEN 20

     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,

    iif(LN_indicadores.clave_indicador = 'SCORE_DOC', 0,
     case
      when LN_indicadores.tipo_dato = 'F' then 2
      when LN_indicadores.tipo_dato = 'I' then 0
      else NULL
     end)
   ) as decimals,

   LN_productos.class_icon,
   LN_productos.producto as producto, 
   ISNULL(LN_cliente_productos.etiqueta_personalizada, LN_productos.nombre_producto) AS nombre_producto,
   LN_indicadores.nombre_indicador

   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) = 1
   AND LN_indicadores.visible = 1

   GROUP BY LN_productos.etiqueta, 
    LN_productos.producto_id, LN_productos.balance, LN_productos.class_icon,
    LN_indicadores.etiqueta, LN_indicadores.tipo_dato,
    LN_indicadores.clave_indicador, LN_indicadores.indicador, SUSC.indicador,
    LN_cliente_productos.orden_producto, LN_indicadores.orden,
    LN_productos.producto,
    LN_productos.nombre_producto,
    LN_cliente_productos.etiqueta_personalizada,
    LN_indicadores.nombre_indicador


   --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