dbo.LN_demo_19112021

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

25
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

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*
exec ln_demo_ 'TIENE_SCORE_IC',NULL, 5546348

exec ln_demo_ 'reports',null,3920694
*/

-- Description: <Description,,>
-- =============================================
--EXEC LN_demo_ UPDATE,31288,,2002,1930-02-13,214,,V,A,R,V,A,R,V,A,R,V,<p><span style="text-align: center;">EMSICA S.R.L da inicio a sus actividades en el año 1981 como empresa de servicios en instrumentación y controlautomático, constituida en la ciudad de Bahía Blanca, brindando atención a todas las empresas del PoloPetroquímico .Manifiesta tener un plantel de 15 empleados y cumple regularmente con las obligaciones Previsionales y LaboralesNo se detectan contratos de Seguro de Riesgos del trabajo extinguidos por falta de pago.Opera con los bancos en forma normal. Presenta un incumplimiento fiscal según consta en Agencia de RecaudaciónTributaria de la Provincia de Río Negro ( situación 2).No se detectan eventos negativos de prensa ni compliance.Según los Estados Contables cerrados al 31/12/2017 las ventas mostraron un incremento interanual del 12%alcanzando un total de $34.384M versus $30.733M en el ejercicio anterior, aunque fue muy inferior a la inflación deperíodo por lo que se pude inferir un menor nivel de actividad. Esto ocasionó que la performance económica sedeteriorara aunque manteniéndose dentro de parámetros razonablesLos principales indicadores se ubicaron dentro de niveles aceptables, aunque ajustados: la liquidez corriente 1.75,capital de trabajo, un 5% respecto del ejercicio anterior alcanzando un total de $5.459M . Se evidencia una ajustadacapacidad de generación de fondos en función de sus de sus obligaciones.La situación patrimonial a 12/2017 resultaba debilitada presentando inadecuado indicador de solvencia (0.41) ,elevado endeudamiento corriente y muy volátil conformación del PN.Por lo expuesto , teniendo en cuenta la antigüedad de la información , se recomienda operar con cautela y analizarno bien sea posible e ejercicio 2018.</span><br></p>,,4400526,29606,0)
CREATE OR ALTER PROCEDURE dbo.LN_demo_19112021 
 -- Add the parameters for the stored procedure here

 @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 
 
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 = '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()

  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 ) 


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


   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)
    WHERE contraparte = @p_contraparte
    AND gestion = @gest
    AND producto = @p_producto

   end
    


  end

  if (@visible_ant != @p_visible)
   EXEC LN_demo_ 'actualizar_fecha_publicacion', @p_contraparte, NULL, @p_producto

 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, 
    LN_gestiones.desde, LN_gestiones.hasta
  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 

 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

   declare @texto varchar(max) = null 
   declare @memo  varchar(max) = null 

   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,
            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 = 'VrmScore'
   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
    insert into LN_contraparte_indicadores 
     (contraparte,gestion,indicador,valor_texto,created,visible)
     values 
     (@p_contraparte, @gestion, @isddSI, @p_score_txt, GETDATE(), 1) 
    end
    else
    begin    
     UPDATE LN_contraparte_indicadores
     set valor_texto = @p_score_txt, modified = getdate()
     WHERE contraparte = @p_contraparte
     AND gestion = @gestion
     AND indicador = @isddSI
    end 
   end 


 END


 
END

GO

Used By

No items found