dbo.LN_demo_mis

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

30
Name Data Type Length Description
@accion varchar 50
@p_contraparte int 4
@p_cliente int 4
@p_producto int 4
@p_inicio_actividades date 3
@p_empleados int 4
@p_resenia text -1
@p_status_formales varchar 1
@p_status_relaciones varchar 1
@p_status_comerciales varchar 1
@p_status_fiscales varchar 1
@p_status_legales varchar 1
@p_status_bancos varchar 1
@p_status_comex varchar 1
@p_status_contables varchar 1
@p_status_prensa varchar 1
@p_status_peps varchar 1
@p_analisis text -1
@p_score int 4
@p_informe int 4
@gest int 4
@p_visible int 4
@p_user_id int 4
@p_familia int 4
@p_score_txt varchar -1
@p_integ_carga tinyint 1
@p_integ_verif tinyint 1
@p_integ_rech tinyint 1
@p_docs_ok bit 1
@p_return bit 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE OR ALTER PROCEDURE dbo.LN_demo_mis 
 @accion        varchar(50) = null,
 @p_contraparte      int = null,
 @p_cliente       int = null,
 @p_producto       int = null,
 @p_inicio_actividades date = NULL, 
 @p_empleados int = NULL, 
 @p_resenia text = NULL, 
 @p_status_formales varchar(1) = NULL, 
 @p_status_relaciones varchar(1) = NULL, 
 @p_status_comerciales varchar(1) = NULL, 
 @p_status_fiscales varchar(1) = NULL, 
 @p_status_legales varchar(1) = NULL, 
 @p_status_bancos varchar(1) = NULL, 
 @p_status_comex varchar(1) = NULL, 
 @p_status_contables varchar(1) = NULL, 
 @p_status_prensa varchar(1) = NULL, 
 @p_status_peps varchar(1) = NULL, 
 @p_analisis text = NULL, 
 @p_score int = NULL,
 @p_informe int = NULL,
 @gest int = NULL,
 @p_visible int = NULL,
 @p_user_id int = NULL,
 @p_familia int = null, 
 @p_score_txt varchar(max) = null,
 @p_integ_carga tinyint = 0,
 @p_integ_verif tinyint = 0,
 @p_integ_rech tinyint = 0,
 @p_docs_ok bit = 0,
    @p_return bit = 0

 
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 @gest int = null

 IF (@accion = 'ACTUALIZAR_INTEGRIDADES')
        BEGIN
            UPDATE LN_demo 
            SET docs_ok=@p_docs_ok,
                integ_carga=@p_integ_carga,
                integ_verif=@p_integ_verif,
                integ_rech=@p_integ_rech
            WHERE 
                contraparte=@p_contraparte
                AND LN_demo.gestion=@gest;
            --
            RETURN;
  END

 IF (@accion = 'SELECCIONAR_INFORME')
        BEGIN
            SELECT 
                LN_demo.informe,
                LN_demo.gestion,
                LN_demo.idteam,
                LN_demo.visible, ln_demo.producto, integ_verif , integ_rech, integ_carga , docs_ok, producto
            FROM LN_demo
            WHERE
                LN_demo.contraparte=@p_contraparte
                AND LN_demo.gestion=@gest;
   RETURN;
        END


 
    IF ( @accion='ACTUALIZAR_INTEGRIDAD' )
    BEGIN
        UPDATE LN_demo 
        SET integ_carga=@p_integ_carga,integ_rech=@p_integ_rech,integ_verif=@p_integ_verif,docs_ok=@p_docs_ok
        WHERE informe=@p_informe 
            AND contraparte=@p_contraparte
            AND gestion=@gest
            AND producto=@p_producto;
        --
        RETURN;
    END

 IF (@accion = 'check_prensa_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
  INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_productos.producto = LN_familia_productos.producto)
  WHERE LN_cliente_productos.activo = 1
  AND LN_familias.visible = 1
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'Prensa'
    -- AND isnull(lN_productos.country_code,'') != 'AR'

 END


 IF (@accion = 'check_infexterior_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'informeComercial'
     AND isnull(country_code,'') != 'AR'

 END


 IF (@accion = 'check_dossier_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND (LN_productos.producto_id = 'dossierdemo' OR LN_productos.producto_id = 'legajo')
/* and LN_cliente_productos.activo=1 and LN_productos.visible=1
AND (LN_productos.producto_id = 'dossierdemo' OR LN_productos.producto_id = 'legajo' or LN_productos.dossier=1) 
*/


 END


 IF (@accion = 'check_business_report_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'businessreport'

 END

 IF (@accion = 'check_wordcheck_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'wordcheck'

 END

 IF (@accion = 'check_wordcheck_familias') BEGIN

  SELECT LN_familias.familia as familia, LN_familias.nombre_familia
  FROM ln_familias 
  inner join LN_familia_productos on LN_familia_productos.familia = LN_familias.familia
  inner join ln_productos on LN_productos.producto = LN_familia_productos.producto

  WHERE LN_familia_productos.activo = 1
  AND ln_familias.cliente = @p_cliente
  AND LN_productos.producto_id = 'wordcheck'

 END

 IF (@accion = 'check_scorevrm_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'ScoreVrm'

 END

 IF (@accion = 'check_scorevrm_familias') BEGIN

  SELECT LN_familias.familia as familia, LN_familias.nombre_familia
  FROM ln_familias 
  inner join LN_familia_productos on LN_familia_productos.familia = LN_familias.familia
  inner join ln_productos on LN_productos.producto = LN_familia_productos.producto

  WHERE LN_familia_productos.activo = 1
  AND ln_familias.cliente = @p_cliente
  AND LN_productos.producto_id = 'ScoreVrm'

 END


 IF (@accion = 'check_fidecheck_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'fidecheck'

 END

 IF (@accion = 'check_inquirovitae_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'inquiroVitae'

 END

 IF (@accion = 'check_infexterior_contraparte') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
  INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_productos.producto = LN_familia_productos.producto)
  WHERE LN_cliente_productos.activo = 1
  AND LN_familias.visible = 1
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_contraparte_familias.contraparte = @p_contraparte
  AND LN_productos.producto_id = 'informeComercial'
     AND isnull(lN_productos.country_code,'') != 'AR'

 END



 IF (@accion = 'check_dossier_contraparte') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
  INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_productos.producto = LN_familia_productos.producto)
  WHERE LN_cliente_productos.activo = 1
  AND LN_familias.visible = 1
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_contraparte_familias.contraparte = @p_contraparte
  AND (LN_productos.producto_id = 'dossierdemo' OR LN_productos.producto_id = 'legajo')

 END


 IF (@accion = 'check_business_report_contraparte') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
  INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_productos.producto = LN_familia_productos.producto)
  WHERE LN_cliente_productos.activo = 1
  AND LN_familias.visible = 1
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_contraparte_familias.contraparte = @p_contraparte
  AND LN_productos.producto_id = 'businessreport'

 END


 IF (@accion = 'check_inquiro_vitae_contraparte') BEGIN
  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
  INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_productos.producto = LN_familia_productos.producto)
  WHERE LN_cliente_productos.activo = 1
  AND LN_familias.visible = 1
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_contraparte_familias.contraparte = @p_contraparte
  AND LN_productos.producto_id = 'inquiroVitae'
 END


 IF (@accion = 'check_reprisk_cliente') BEGIN

  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
  AND LN_cliente_productos.cliente = @p_cliente
  AND LN_productos.producto_id = 'reprisk'

 END

 IF (@accion = 'check_reprisk_familias') BEGIN

  SELECT LN_familias.familia as familia, LN_familias.nombre_familia
  FROM ln_familias 
  inner join LN_familia_productos on LN_familia_productos.familia = LN_familias.familia
  inner join ln_productos on LN_productos.producto = LN_familia_productos.producto

  WHERE LN_familia_productos.activo = 1
  AND ln_familias.cliente = @p_cliente
  AND LN_productos.producto_id = 'reprisk'

 END


 IF (@accion = 'check_reprisk_contraparte') BEGIN
  SELECT LN_productos.producto, LN_productos.nombre_producto
  FROM LN_productos inner join LN_cliente_productos on
    LN_productos.producto = LN_cliente_productos.producto
  INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
  INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
  INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
           AND LN_productos.producto = LN_familia_productos.producto)
  WHERE LN_cliente_productos.activo = 1
  AND LN_familias.visible = 1
  AND LN_contraparte_familias.activo = 1
  AND LN_familia_productos.activo = 1
  AND LN_contraparte_familias.contraparte = @p_contraparte
  AND LN_productos.producto_id = 'reprisk'
 END


 

 IF (@accion = 'reports') BEGIN

  if (@p_contraparte is not null)

   SELECT LN_productos.producto, LN_productos.nombre_producto, ISNULL(LN_productos.visible_brief, 0) as visible_brief
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
   INNER JOIN LN_familias ON LN_cliente_productos.cliente = LN_familias.cliente
   INNER JOIN LN_contraparte_familias ON LN_familias.familia = LN_contraparte_familias.familia
   INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
            AND LN_productos.producto = LN_familia_productos.producto)
   WHERE LN_cliente_productos.activo = 1
   AND LN_familias.visible = 1
   AND LN_contraparte_familias.activo = 1
   AND LN_familia_productos.activo = 1
   AND LN_contraparte_familias.contraparte = @p_contraparte
   --AND LN_productos.producto_id IN ('dossierdemo', 'businessreport')
   AND LN_productos.dossier = 1
   ORDER BY LN_productos.nombre_producto

  else 
  
   if (@p_cliente is not null)
   begin 
    if (@p_familia is null) 
    begin
     SELECT LN_productos.producto, LN_productos.nombre_producto
     FROM LN_productos 
     inner join LN_cliente_productos on
          LN_productos.producto = LN_cliente_productos.producto
     WHERE LN_cliente_productos.activo = 1
       AND LN_cliente_productos.cliente = @p_cliente
     --AND LN_productos.producto_id IN ('dossierdemo', 'businessreport')
       AND LN_productos.dossier = 1
     ORDER BY LN_productos.nombre_producto
    end 
    else 
    begin 
     SELECT LN_productos.producto, LN_productos.nombre_producto
     FROM LN_productos 
     inner join LN_cliente_productos on
          LN_productos.producto = LN_cliente_productos.producto
     inner join LN_familia_productos on 
          LN_familia_productos.producto = LN_cliente_productos.producto
     WHERE LN_cliente_productos.activo = 1
       AND LN_cliente_productos.cliente = @p_cliente
     --AND LN_productos.producto_id IN ('dossierdemo', 'businessreport')
       AND LN_productos.dossier = 1
       and LN_familia_productos.familia = @p_familia
       and LN_familia_productos.activo = 1 
     ORDER BY LN_productos.nombre_producto
    end 
   end 
   

 END


 IF (@accion = 'UPDATE') 
    BEGIN

  SELECT @gest = gestion
  FROM LN_gestiones
  WHERE contraparte = @p_contraparte
  AND desde <= GETDATE()
  AND hasta >= GETDATE()

/*
select  @p_contraparte contraparte, 
@gest gestion,
@p_producto producto,
@p_inicio_actividades inicio,
@p_empleados empleados, 
@p_resenia resenia
*/
    
  if (@gest is not null) 
        begin

   declare @visible_ant tinyint = 0

   if not exists ( select LN_demo.contraparte, LN_demo.gestion
       from LN_demo
       where LN_demo.contraparte = @p_contraparte
       and LN_demo.gestion = @gest
       and LN_demo.producto = @p_producto ) 

                begin
                    INSERT INTO LN_demo
                    (contraparte, gestion, producto, inicio_actividades, empleados, resenia, status_formales, status_relaciones, status_comerciales, status_fiscales, status_legales, status_bancos, status_comex, status_contables, status_prensa, status_peps, analisis, informe, visible, fecha_publicacion)
                    VALUES
                    (@p_contraparte, @gest, @p_producto, @p_inicio_actividades, @p_empleados, @p_resenia, @p_status_formales, @p_status_relaciones, @p_status_comerciales, @p_status_fiscales, @p_status_legales, @p_status_bancos, @p_status_comex, @p_status_contables, @p_status_prensa, @p_status_peps, @p_analisis, @p_informe, @p_visible, iif(@p_visible > 0, CONVERT(date, getdate()), NULL))
                end
                
   else 
                begin

                    select @visible_ant = visible 
                    from LN_demo
                    WHERE contraparte = @p_contraparte
                    AND gestion = @gest
                    AND producto = @p_producto


                    UPDATE LN_demo SET
                    inicio_actividades = @p_inicio_actividades,
                    empleados = @p_empleados, 
                    resenia = @p_resenia, 
                    status_formales = @p_status_formales, 
                    status_relaciones = @p_status_relaciones, 
                    status_comerciales = @p_status_comerciales, 
                    status_fiscales = @p_status_fiscales, 
                    status_legales = @p_status_legales, 
                    status_bancos = @p_status_bancos, 
                    status_comex = @p_status_comex, 
                    status_contables = @p_status_contables, 
                    status_prensa = @p_status_prensa, 
                    status_peps = @p_status_peps, 
                    analisis = @p_analisis,
                    informe = @p_informe,
                    visible = @p_visible,
                    fecha_publicacion = iif(@p_visible > 0, CONVERT(date, getdate()), NULL),
                    integ_carga = @p_integ_carga,
                    integ_verif = @p_integ_verif,
                    integ_rech = @p_integ_rech,
                    docs_ok = @p_docs_ok

                    WHERE contraparte = @p_contraparte
                    AND gestion = @gest
                    AND producto = @p_producto
                end
     end

  if (@visible_ant != @p_visible)
        begin
   EXEC LN_demo_MIS 'actualizar_fecha_publicacion', @p_contraparte, NULL, @p_producto
        end

 END


 IF (@accion = 'SELECT') BEGIN

  SELECT LN_demo.contraparte, LN_demo.gestion,
    LN_demo.status_formales, LN_demo.status_relaciones, LN_demo.status_comerciales, LN_demo.status_fiscales, LN_demo.status_legales, 
    LN_demo.status_bancos, LN_demo.status_comex, LN_demo.status_contables, LN_demo.status_prensa, 
    LN_demo.status_peps, LN_demo.analisis, LN_demo.pep_html, LN_demo.visible, LN_demo.producto, LN_demo.informe,
    /*
     CONVERT(varchar(10), LN_contrapartes.inicio_actividades, 103) as inicio_actividades_dmy,
     LN_contrapartes.empleados, LN_contrapartes.resenia, */

    CONVERT(varchar(10), LN_demo.inicio_actividades, 103) as inicio_actividades_dmy,
    LN_demo.empleados, LN_demo.resenia,  

    LN_gestiones.desde, LN_gestiones.hasta,ln_demo.informe 
  FROM LN_demo inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
           and LN_demo.gestion = LN_gestiones.gestion)
  INNER JOIN LN_contrapartes ON LN_demo.contraparte = LN_contrapartes.contraparte
  WHERE LN_demo.contraparte = @p_contraparte
  AND LN_demo.producto = @p_producto
  AND LN_gestiones.desde <= GETDATE()
  AND LN_gestiones.hasta >= GETDATE()



 END


 IF (@accion = 'DELETE') BEGIN

  SELECT @gest = gestion
  FROM LN_gestiones
  WHERE contraparte = @p_contraparte
  AND desde <= GETDATE()
  AND hasta >= GETDATE()

  if (@gest is not null) begin

   /** Cancelo informe de producción asociado en caso de existir (sólo se cancelarĆ” si no estĆ” iniciado) **/
   declare @informe int = NULL

   select @informe = informe from LN_demo
   where contraparte = @p_contraparte
   and gestion = @gest
   and producto = @p_producto

   DELETE FROM LN_demo
   WHERE contraparte = @p_contraparte
   AND gestion = @gest
   AND producto = @p_producto

   DECLARE @producto_id varchar(50)
   SELECT @producto_id = producto_id FROM LN_productos WHERE producto = @p_producto

   if (@producto_id = 'dossierdemo') begin
    EXEC LN_demo_ 'BORRAR_SCORE_DOSSIER', @p_contraparte, @p_producto
    EXEC LN_demo_ 'BORRAR_NIVEL_RIESGO', @p_contraparte, @p_producto
    EXEC LN_demo_ 'BORRAR_DEP_ECON', @p_contraparte, @p_producto
   end
   if (@producto_id = 'businessreport') begin
    EXEC LN_demo_ 'BORRAR_SCORE_BR', @p_contraparte, @p_producto
   end


  end

 END

 IF (@accion = 'BORRAR_SCORE_DOSSIER') BEGIN

  SELECT @gest = gestion
  FROM LN_gestiones
  WHERE contraparte = @p_contraparte
  AND desde <= GETDATE()
  AND hasta >= GETDATE()

  if (@gest is not null) begin

   DECLARE @isdd int = null

   SELECT @isdd = LN_indicadores.indicador
   FROM LN_indicadores
   INNER JOIN LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   INNER JOIN LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
   INNER JOIN LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
   INNER JOIN LN_cliente_productos ON (LN_contrapartes.cliente = LN_cliente_productos.cliente
            AND LN_indicadores.producto = LN_cliente_productos.producto)
   WHERE LN_indicadores.clave_indicador = 'SCORE_DOSSIER'
   AND LN_contraparte_familias.contraparte = @p_contraparte
   AND LN_familia_productos.activo = 1
   AND LN_contraparte_familias.activo = 1 
   AND LN_cliente_productos.activo = 1

   if (@isdd is not null) 

    DELETE FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gest
    AND indicador = @isdd

  end  

 END


 IF (@accion = 'BORRAR_NIVEL_RIESGO') BEGIN

  IF(@gest = NULL)
        BEGIN
            SELECT  gestion
            FROM LN_gestiones
            WHERE contraparte = @p_contraparte
            AND desde <= GETDATE()
            AND hasta >= GETDATE()
        END

  if (@gest is not null) begin

   DECLARE @inr int = null

   SELECT @inr = LN_indicadores.indicador
   FROM LN_indicadores
   INNER JOIN LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   INNER JOIN LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
   INNER JOIN LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
   INNER JOIN LN_cliente_productos ON (LN_contrapartes.cliente = LN_cliente_productos.cliente
            AND LN_indicadores.producto = LN_cliente_productos.producto)
   WHERE LN_indicadores.clave_indicador = 'NIVEL_RIESGO'
   AND LN_contraparte_familias.contraparte = @p_contraparte
   AND LN_familia_productos.activo = 1
   AND LN_contraparte_familias.activo = 1 
   AND LN_cliente_productos.activo = 1

   if (@inr is not null) 

    DELETE FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gest
    AND indicador = @inr

  end  

 END


 IF (@accion = 'BORRAR_DEP_ECON') BEGIN

  SELECT @gest = gestion
  FROM LN_gestiones
  WHERE contraparte = @p_contraparte
  AND desde <= GETDATE()
  AND hasta >= GETDATE()

  if (@gest is not null) begin

   DECLARE @ide int = null

   SELECT @ide = LN_indicadores.indicador
   FROM LN_indicadores
   INNER JOIN LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   INNER JOIN LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
   INNER JOIN LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
   INNER JOIN LN_cliente_productos ON (LN_contrapartes.cliente = LN_cliente_productos.cliente
            AND LN_indicadores.producto = LN_cliente_productos.producto)
   WHERE LN_indicadores.clave_indicador = 'DEP_ECON'
   AND LN_contraparte_familias.contraparte = @p_contraparte
   AND LN_familia_productos.activo = 1
   AND LN_contraparte_familias.activo = 1 
   AND LN_cliente_productos.activo = 1

   if (@ide is not null) 

    DELETE FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gest
    AND indicador = @ide

  end  

 END

 IF (@accion = 'BORRAR_SCORE_BR') BEGIN

  SELECT @gest = gestion
  FROM LN_gestiones
  WHERE contraparte = @p_contraparte
  AND desde <= GETDATE()
  AND hasta >= GETDATE()

  if (@gest is not null) begin

   DECLARE @isbr int = null

   SELECT @isbr = LN_indicadores.indicador
   FROM LN_indicadores
   INNER JOIN LN_familia_productos on LN_indicadores.producto = LN_familia_productos.producto
   INNER JOIN LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
   INNER JOIN LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
   INNER JOIN LN_cliente_productos ON (LN_contrapartes.cliente = LN_cliente_productos.cliente
            AND LN_indicadores.producto = LN_cliente_productos.producto)
   WHERE LN_indicadores.clave_indicador = 'SCORE_BR'
   AND LN_contraparte_familias.contraparte = @p_contraparte
   AND LN_familia_productos.activo = 1
   AND LN_contraparte_familias.activo = 1 
   AND LN_cliente_productos.activo = 1

   if (@isbr is not null) 

    DELETE FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gest
    AND indicador = @isbr

  end  


 END


 if (@accion = 'actualizar_analisis') begin

  if (@p_contraparte is not null AND @p_producto is not null) begin

   UPDATE LN_demo SET analisis = @p_analisis
   FROM LN_demo 
   INNER JOIN LN_gestiones ON LN_demo.contraparte = LN_gestiones.contraparte
   WHERE LN_demo.contraparte = @p_contraparte
   AND LN_demo.producto = @p_producto
   AND LN_gestiones.desde <= GETDATE()
   AND LN_gestiones.hasta >= GETDATE()   

  end

 end


 /***************************************************************************************************************/

 declare @cliente int = null
 declare @gestion int = null
 declare @producto int = null
 declare @isddSI int = null 
 declare @detalle varchar(max) = null 
 declare @texto   varchar(max) = null 
 declare @memo    varchar(max) = null 
 declare @numero  int = null 



 IF (@accion = 'BORRAR_SCORE_IC') BEGIN

  SELECT @gestion = gestion
    FROM LN_gestiones
   WHERE contraparte = @p_contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()

  select @cliente = cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @cliente
    AND LN_productos.producto_id = 'informeComercial'
       AND isnull(country_code,'') != 'AR'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_IC'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
  begin
    DELETE FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gestion
    AND indicador = @isddSI

    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and visible = 1)
    UPDATE LN_score_detalle_killer
     set visible = 0, modified = getdate()
     where contraparte = @p_contraparte 
     and gestion = @gestion 
     and indicador = @isddSI
  end  

 END


 IF (@accion = 'UPDATE_SCORE_IC') 
 BEGIN

  SELECT @gestion = gestion
    FROM LN_gestiones
   WHERE contraparte = @p_contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()

  select @cliente = cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @cliente
    AND LN_productos.producto_id = 'informeComercial'
       AND isnull(country_code,'') != 'AR'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_IC'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
      begin
   if not exists (select * FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gestion
    AND indicador = @isddSI
    AND visible = 1)
    begin
       --select 'graba', @p_contraparte, @gestion, @isddSI, @p_score, GETDATE(), 1
    insert into LN_contraparte_indicadores 
     (contraparte,gestion,indicador,valor_numerico,valor_memo,created,visible)
     values 
     (@p_contraparte, @gestion, @isddSI, @p_score, @p_analisis, GETDATE(), 1) 
    end
    else
    begin
      -- select 'update', @p_contraparte, @gestion, @isddSI, @p_score, GETDATE(), 1
    
     UPDATE LN_contraparte_indicadores
     set valor_numerico = @p_score, modified = getdate(),
     valor_memo = @p_analisis
     WHERE contraparte = @p_contraparte
     AND gestion = @gestion
     AND indicador = @isddSI
    end 
   end 

   if (@p_score != -100) 
   begin
    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and visible = 1)
    UPDATE LN_score_detalle_killer
     set visible = 0, modified = getdate()
     where contraparte = @p_contraparte 
     and gestion = @gestion 
     and indicador = @isddSI
   end

   if (@p_score = -100) 
   begin
    set @detalle = convert(varchar(max),@p_analisis)

    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and detalle_killer != isnull(@detalle,'')
       and visible = 1)
      UPDATE LN_score_detalle_killer
         set visible = 0, modified = getdate()
       where contraparte = @p_contraparte 
         and gestion = @gestion 
         and indicador = @isddSI
 
    if (isnull(@detalle,'')!= '') 
     begin
      if not exists (select * From ln_score_detalle_killer
         where contraparte = @p_contraparte 
           and gestion = @gestion 
           and indicador = @isddSI
           and detalle_killer = isnull(@detalle,'')
           and visible = 1)

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

 END

 IF (@accion = 'TIENE_SCORE_IC') 
 BEGIN

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @p_cliente
    AND LN_productos.producto_id = 'informeComercial'
       AND isnull(LN_productos.country_code,'') != 'AR'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_IC'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
      begin
   select LN_contraparte_indicadores.contraparte as contraparte, LN_contraparte_indicadores.valor_numerico as valor
     FROM LN_contraparte_indicadores
    inner join LN_gestiones on LN_gestiones.contraparte = ln_contraparte_indicadores.contraparte
    inner join ln_contrapartes on ln_contrapartes.contraparte = ln_contraparte_indicadores.contraparte 
     WHERE LN_gestiones.desde <= GETDATE()
          AND LN_gestiones.hasta >= GETDATE()
    AND LN_contraparte_indicadores.indicador = @isddSI
    AND LN_contraparte_indicadores.visible = 1
    AND LN_contrapartes.cliente = @p_cliente

   end 

 END

 /* Rep Risk */
 IF (@accion = 'BORRAR_SCORE_RR') BEGIN

  SELECT @gestion = gestion
    FROM LN_gestiones
   WHERE contraparte = @p_contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()

  select @cliente = cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @cliente
    AND LN_productos.producto_id = 'RepRisk'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_RR'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
  begin
    DELETE FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gestion
    AND indicador = @isddSI

    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and visible = 1)
    UPDATE LN_score_detalle_killer
     set visible = 0, modified = getdate()
     where contraparte = @p_contraparte 
     and gestion = @gestion 
     and indicador = @isddSI
  end  

 END


 IF (@accion = 'UPDATE_SCORE_RR') 
 BEGIN

  SELECT @gestion = gestion
    FROM LN_gestiones
   WHERE contraparte = @p_contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()

  select @cliente = cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @cliente
    AND LN_productos.producto_id = 'RepRisk'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_RR'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
      begin

   select @texto = texto, @memo = texto_largo 
     from ln_cliente_nivel where indicador = @isddSI and cliente = @cliente 
     and desde = @p_score


   if not exists (select * FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gestion
    AND indicador = @isddSI
    AND visible = 1)
    begin
       --select 'graba', @p_contraparte, @gestion, @isddSI, @p_score, GETDATE(), 1
    insert into LN_contraparte_indicadores 
     (contraparte,gestion,indicador,valor_numerico,valor_texto,valor_memo,created,visible)
     values 
     (@p_contraparte, @gestion, @isddSI, @p_score, @texto, @memo, GETDATE(), 1) 
    end
    else
    begin
      -- select 'update', @p_contraparte, @gestion, @isddSI, @p_score, GETDATE(), 1
    
     UPDATE LN_contraparte_indicadores
     set valor_numerico = @p_score, modified = getdate(),
     valor_texto = @texto,
     valor_memo  = @memo

     WHERE contraparte = @p_contraparte
     AND gestion = @gestion
     AND indicador = @isddSI
    end 
   end 

   if (@p_score != -100) 
   begin
    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and visible = 1)
    UPDATE LN_score_detalle_killer
     set visible = 0, modified = getdate()
     where contraparte = @p_contraparte 
     and gestion = @gestion 
     and indicador = @isddSI
   end

   if (@p_score = -100) 
   begin
    set  @detalle  = convert(varchar(max),@p_analisis)

    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and detalle_killer != isnull(@detalle,'')
       and visible = 1)
      UPDATE LN_score_detalle_killer
         set visible = 0, modified = getdate()
       where contraparte = @p_contraparte 
         and gestion = @gestion 
         and indicador = @isddSI
 
    if (isnull(@detalle,'')!= '') 
     begin
      if not exists (select * From ln_score_detalle_killer
         where contraparte = @p_contraparte 
           and gestion = @gestion 
           and indicador = @isddSI
           and detalle_killer = isnull(@detalle,'')
           and visible = 1)

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

 END

 IF (@accion = 'TIENE_SCORE_RR') 
 BEGIN

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @p_cliente
    AND LN_productos.producto_id = 'reprisk'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_RR'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
      begin
   select LN_contraparte_indicadores.contraparte as contraparte, LN_contraparte_indicadores.valor_numerico as valor
     FROM LN_contraparte_indicadores
    inner join LN_gestiones on LN_gestiones.contraparte = ln_contraparte_indicadores.contraparte
    inner join ln_contrapartes on ln_contrapartes.contraparte = ln_contraparte_indicadores.contraparte 
     WHERE LN_gestiones.desde <= GETDATE()
          AND LN_gestiones.hasta >= GETDATE()
    AND LN_contraparte_indicadores.indicador = @isddSI
    AND LN_contraparte_indicadores.visible = 1
    AND LN_contrapartes.cliente = @p_cliente

   end 

 END

 /**/

 if (@accion = 'activar') begin

  select @gestion = LN_gestiones.gestion
  from LN_gestiones 
  inner join LN_contrapartes on LN_gestiones.contraparte = LN_contrapartes.contraparte
  inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
  where LN_gestiones.contraparte = @p_contraparte
  and LN_gestiones.desde <= GETDATE()
  and LN_gestiones.hasta >= GETDATE()

  if not exists (select LN_demo.contraparte, LN_demo.gestion
      from LN_demo
      where LN_demo.contraparte = @p_contraparte
      and LN_demo.gestion = @gestion
      and LN_demo.producto = @p_producto) 

   INSERT INTO LN_demo
    (contraparte, gestion, producto, visible, fecha_publicacion)
   VALUES
    (@p_contraparte, @gestion, @producto, 1, CONVERT(date, getdate()))

  else

   UPDATE LN_demo SET LN_demo.visible = 1, fecha_publicacion = CONVERT(date, getdate())
   where LN_demo.contraparte = @p_contraparte
   and LN_demo.gestion = @gestion
   and LN_demo.producto = @p_producto

  EXEC LN_demo_ 'actualizar_fecha_publicacion', @p_contraparte, NULL, @p_producto
  
 end

 if (@accion = 'desactivar') begin

  select @gestion = LN_gestiones.gestion
  from LN_gestiones 
  inner join LN_contrapartes on LN_gestiones.contraparte = LN_contrapartes.contraparte
  inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
  where LN_gestiones.contraparte = @p_contraparte
  and LN_gestiones.desde <= GETDATE()
  and LN_gestiones.hasta >= GETDATE()

  if not exists (select LN_demo.contraparte, LN_demo.gestion
      from LN_demo
      where LN_demo.contraparte = @p_contraparte
      and LN_demo.gestion = @gestion
      and LN_demo.producto = @p_producto) 

   INSERT INTO LN_demo
    (contraparte, gestion, producto, visible)
   VALUES
    (@p_contraparte, @gestion, @p_producto, 0)

  else

   UPDATE LN_demo SET LN_demo.visible = 0, fecha_publicacion = null
   where LN_demo.contraparte = @p_contraparte
   and LN_demo.gestion = @gestion
   and LN_demo.producto = @p_producto

  EXEC LN_demo_ 'actualizar_fecha_publicacion', @p_contraparte, NULL, @p_producto

 end


 /*********** Acciones para generación de informes en producción relacionados al producto LED *********/

 /* Dada la contraparte, obtener quĆ© usuarios pueden figurar como solicitante del nuevo informe */
 if (@accion = 'usuarios_solicitantes') begin

  if (@p_contraparte is not null)

   select users.user_id, users.first_name, users.last_name, users.email
   from users inner join clientes_usuarios on users.user_id = clientes_usuarios.user_id
   inner join grupos_clientes on clientes_usuarios.cliente = grupos_clientes.cliente
   inner join LN_contrapartes on grupos_clientes.cliente = LN_contrapartes.cliente
   where LN_contrapartes.contraparte = @p_contraparte 
   and users.active_user = 'Y'

  else if (@p_cliente is not null)

   select users.user_id, users.first_name, users.last_name, users.email
   from users inner join clientes_usuarios on users.user_id = clientes_usuarios.user_id
   inner join grupos_clientes on clientes_usuarios.cliente = grupos_clientes.cliente
   where clientes_usuarios.cliente = @p_cliente
   and users.active_user = 'Y'
   order by users.first_name, users.last_name

 end

 if (@accion = 'prioridades') begin
  select prioridad, nombre_prioridad from prioridades order by prioridad
 end

 /* Dada una contraparte y producto, obtener los datos completos del informe vinculado */
 if (@accion = 'datos_informe') begin

  select informes.informe, informes.estado_informe, informes.historial_informe, informes.id_tipo_informe,
    convert(varchar,informes.fecha_ingreso,103) as fecha_ingreso, 
    convert(varchar,informes.fecha_asignado,103) as fecha_asignado, 
    convert(varchar,informes.fecha_aceptacion,103) as fecha_aceptacion, 
    convert(varchar,informes.fecha_estimada,103) as fecha_estimada,
    convert(varchar,informes.fecha_iniciado,103) as fecha_iniciado, 
    convert(varchar,informes.fecha_entregado,103) as fecha_entregado, 
    convert(varchar,informes.fecha_aprobacion,103) as fecha_aprobacion,
    informes.cliente, clientes.nombre_cliente, informes.identificador, informes.numero, identificadores.abreviatura,
    identificadores.country_code, country.country_name, informes.prioridad, informes.filial,
    informes.ingresado_por, informes.asignado, informes.datamanager, informes.idioma, informes.moneda, informes.precio,
    monedas.nombre_moneda, idiomas.nombre_idioma, idiomas.codigo_idioma, prioridades.nombre_prioridad,
    users.first_name + ' ' + users.last_name as solicitado_por_usuario,
    users2.first_name + ' ' + users2.last_name as asignado_usuario,
    users3.first_name + ' ' + users3.last_name as datamanager_usuario,

    case 
     when informes.estado_informe = 'X' then 'Carga comercial'
     when informes.estado_informe = 'I' then 'Ingresado'
     when informes.estado_informe = 'A' then 'Asignado' 
     when informes.estado_informe = 'T' then 'Aceptado' 
     when informes.estado_informe = 'P' then 'En gestión'
     when informes.estado_informe = 'W' then 'En espera'
     when informes.estado_informe = 'E' then 'En proceso'
     when informes.estado_informe = 'M' then 'A completar'
     when informes.estado_informe = 'F' then 'Finalizado'
     when informes.estado_informe = 'K' then 'Aprobado'
     when informes.estado_informe = 'C' then 'Cancelado'
     when informes.estado_informe = 'N' then 'Anulado'
     when informes.estado_informe = 'R' then 'Rechazado'
     else NULL
    end as nombre_estado


  from informes 
  inner join clientes on informes.cliente = clientes.cliente
  inner join padrones on (informes.identificador = padrones.identificador and informes.numero = padrones.identificacion)
  inner join identificadores on informes.identificador = identificadores.identificador
  inner join country on identificadores.country_code = country.country_code
  inner join monedas on (isnull(informes.moneda,'ARS') = monedas.moneda)
  inner join idiomas on informes.idioma = idiomas.idioma
  inner join prioridades on informes.prioridad = prioridades.prioridad

  inner join LN_demo on informes.informe = LN_demo.informe
  inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
         and LN_demo.gestion = LN_gestiones.gestion)

  inner join users on informes.ingresado_por = users.user_id
  left outer join users as users2 on informes.asignado = users2.user_id
  left outer join users as users3 on informes.datamanager = users3.user_id


  where LN_demo.contraparte = @p_contraparte
  and LN_demo.producto = @p_producto
  and LN_gestiones.desde <= GETDATE()
  and LN_gestiones.hasta >= GETDATE()

 end

     --pato
    IF(@accion ='select_prod_dossier')
    BEGIN
        SELECT 
            LN_contrapartes.contraparte, LN_gestiones.gestion, LN_contrapartes.inicio_actividades, 
   /*
    CONVERT(VARCHAR, LN_contrapartes.inicio_actividades,103) AS inicio_actividades_dmy,
    LN_contrapartes.empleados, LN_contrapartes.resenia,
    */

   CONVERT(VARCHAR, ln_demo.inicio_actividades,103) AS inicio_actividades_dmy,
   ln_demo.empleados, ln_demo.resenia,
            LN_demo.status_formales, LN_demo.status_relaciones, LN_demo.status_comerciales, LN_demo.status_fiscales, LN_demo.status_legales, 
            LN_demo.status_bancos, LN_demo.status_comex, LN_demo.status_contables, LN_demo.status_prensa, LN_demo.status_peps, 
            LN_demo.analisis, LN_demo.pep_html, LN_demo.visible, LN_demo.producto,
            substring(convert(varchar(10),LN_contrapartes.inicio_actividades,103),4,7) as mes_inicio
        FROM LN_contrapartes 
            inner join LN_demo on LN_contrapartes.contraparte = LN_demo.contraparte
            inner join LN_gestiones on (LN_contrapartes.contraparte = LN_gestiones.contraparte and LN_demo.gestion = LN_gestiones.gestion)
            inner join LN_productos on LN_demo.producto = LN_productos.producto
        WHERE LN_demo.contraparte = @p_contraparte  and LN_gestiones.desde <= GETDATE()
            and LN_gestiones.hasta >= GETDATE()
            and LN_productos.producto =  @p_producto
    END

 /* Dada una contraparte y producto, se chequea el estado del informe vinculado. En caso de existir un informe,
  Ć©ste debe estar Aprobado (estado_informe= 'K') para permitirse la publicación a la web www del producto LED
 
  Devuelve un query con una columna 'publicar' con valor 1 si se puede publicar o 0 si no se puede publicar
 
   */


 if (@accion = 'verificar_publicacion_producto') begin

  if (@p_contraparte is not null AND @p_producto is not null) begin

   declare @informe_vinculado int = NULL

   if exists (select informes.informe
      from LN_demo inner join informes on LN_demo.informe = informes.informe
      inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
             and LN_demo.gestion = LN_gestiones.gestion)
      where LN_demo.contraparte = @p_contraparte
      and LN_demo.producto = @p_producto
      and LN_gestiones.desde <= GETDATE()
      and LN_gestiones.hasta >= GETDATE()
      and informes.estado_informe = 'K') begin

    -- informe aprobado vinculado en producción
    select 1 AS publicar

   end

   else begin

    select @informe_vinculado = LN_demo.informe
    from LN_demo 
    inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
           and LN_demo.gestion = LN_gestiones.gestion)
    where LN_demo.contraparte = @p_contraparte
    and LN_demo.producto = @p_producto
    and LN_gestiones.desde <= GETDATE()
    and LN_gestiones.hasta >= GETDATE()

    -- si no hay informe en producción vinculado debo dejar publicar, si hay es porque no estĆ” aprobado entonces no puede publicar
    select iif(@informe_vinculado is null, 1, 0) as publicar

   end

  end

 end

 /*** Actualizar el indicador de fecha de publicación del producto (requiere contraparte y producto) ***/
 if (@accion = 'actualizar_fecha_publicacion') begin
  if (@p_contraparte is not null AND @p_producto is not null) begin

   declare @fecha_pub date = NULL, @vis tinyint

   select @fecha_pub = LN_demo.fecha_publicacion,
     @gest = LN_demo.gestion,
     @vis = LN_demo.visible
   from LN_demo inner join LN_gestiones on
    (LN_demo.contraparte = LN_gestiones.contraparte
    and LN_demo.gestion = LN_gestiones.gestion)

   where LN_demo.contraparte = @p_contraparte
   and LN_demo.producto = @p_producto
   and LN_gestiones.desde <= GETDATE()
   and LN_gestiones.hasta >= GETDATE()


   if (@gest is not null) begin

    declare @indicador int = null

    select @indicador = LN_indicadores.indicador
    from LN_indicadores inner join LN_cliente_productos
      on LN_indicadores.producto = LN_cliente_productos.producto
    inner join LN_contrapartes on LN_cliente_productos.cliente = LN_contrapartes.cliente
    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_cliente_productos.producto = LN_familia_productos.producto)
    where LN_indicadores.producto = @p_producto
    and LN_contrapartes.contraparte = @p_contraparte
    and LN_cliente_productos.activo = 1
    and LN_familia_productos.activo = 1
    and LN_contraparte_familias.activo = 1
    and LN_indicadores.clave_indicador = 'FECHA_PUBLICACION'


    if (@indicador is not null) begin

     if (@fecha_pub is not null AND @vis = 1) begin

      if not exists (select LN_contraparte_indicadores.valor_fecha
          from LN_contraparte_indicadores
          where LN_contraparte_indicadores.contraparte = @p_contraparte
          and LN_contraparte_indicadores.gestion = @gest
          and LN_contraparte_indicadores.indicador = @indicador)

       insert into LN_contraparte_indicadores
        (contraparte, gestion, indicador, valor_fecha, visible, created, created_by)
       values
        (@p_contraparte, @gest, @indicador, @fecha_pub, 1, GETDATE(), @p_user_id)

      else

       update LN_contraparte_indicadores set
        valor_fecha = @fecha_pub, 
        visible = 1,
        modified = GETDATE(),
        modified_by = @p_user_id
       where contraparte = @p_contraparte
       and gestion = @gest
       and indicador = @indicador

     end

     else

      delete from LN_contraparte_indicadores
      where contraparte = @p_contraparte
      and gestion = @gest
      and indicador = @indicador



     SELECT convert(varchar(10), @fecha_pub, 103) as fecha_publicacion

    end
   end
  end
 end


 

 IF (@accion = 'UPDATE_SCORE_VRM') 
 BEGIN

  SELECT @gestion = gestion
    FROM LN_gestiones
   WHERE contraparte = @p_contraparte
     AND desde <= GETDATE()
     AND hasta >= GETDATE()

  select @cliente = cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte

  SELECT @producto = LN_productos.producto
   FROM LN_productos inner join LN_cliente_productos on
     LN_productos.producto = LN_cliente_productos.producto
  WHERE LN_cliente_productos.activo = 1
    AND LN_cliente_productos.cliente = @cliente
    AND LN_productos.producto_id = 'ScoreVrm'

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'Score_VRM'
   and LN_indicadores.producto = @producto 

  if (@isddSI is not null) 
      begin

   select @numero = desde, @memo = texto_largo 
     from ln_cliente_nivel where indicador = @isddSI and cliente = @cliente 
     and texto = @p_score_txt

   if not exists (select * FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gestion
    AND indicador = @isddSI
    AND visible = 1)
    begin
    insert into LN_contraparte_indicadores 
     (contraparte,gestion,indicador,valor_numerico,valor_texto,valor_memo,created,visible)
     values 
     (@p_contraparte, @gestion, @isddSI, @numero, @p_score_txt, @memo, GETDATE(), 1) 
    end
    else
    begin
    
     UPDATE LN_contraparte_indicadores
     set valor_numerico = @numero, 
     modified = getdate(),
     valor_texto = @p_score_txt,
     valor_memo  = @memo

     WHERE contraparte = @p_contraparte
     AND gestion = @gestion
     AND indicador = @isddSI
    end 
   end 

   if (@numero != -100) 
   begin
    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and visible = 1)
    UPDATE LN_score_detalle_killer
     set visible = 0, modified = getdate()
     where contraparte = @p_contraparte 
     and gestion = @gestion 
     and indicador = @isddSI
   end

   if (@numero = -100) 
   begin
    set  @detalle  = 'DICTAMEN VRM: ' + @memo 

    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gestion 
       and indicador = @isddSI
       and detalle_killer != isnull(@detalle,'')
       and visible = 1)
      UPDATE LN_score_detalle_killer
         set visible = 0, modified = getdate()
       where contraparte = @p_contraparte 
         and gestion = @gestion 
         and indicador = @isddSI
 
    if (isnull(@detalle,'')!= '') 
     begin
      if not exists (select * From ln_score_detalle_killer
         where contraparte = @p_contraparte 
           and gestion = @gestion 
           and indicador = @isddSI
           and detalle_killer = isnull(@detalle,'')
           and visible = 1)

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


 END


 
END

GO