dbo.LN_demo_DEV

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

22
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

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,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_demo_DEV 
 -- 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
 
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_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'

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

 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 = 'reports') BEGIN

  if (@p_contraparte is not null)

   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 IN ('dossierdemo', 'businessreport')
   ORDER BY LN_productos.nombre_producto

  else 
  
   if (@p_cliente is not null)

    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')
    ORDER BY LN_productos.nombre_producto
   

 END


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

   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 

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

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

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

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

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


 /***************************************************************************************************************/
    --@p_cliente
 --declare @cliente int = null
 --declare @gestion int = null
 --declare @producto int = null
 declare @isddSI int = null 

 IF (@accion = 'BORRAR_SCORE_IC') BEGIN
        --GESTION
  IF(@gest = NULL)
        BEGIN
            SELECT  gestion
            FROM LN_gestiones
            WHERE contraparte = @p_contraparte
            AND desde <= GETDATE()
            AND hasta >= GETDATE()
        END
        --CLIENTE 
        IF(@p_cliente = NULL)
        BEGIN
   select cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte
        END

        IF(@p_producto = NULL)
        BEGIN
            SELECT 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(country_code,'') != 'AR'
        END

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

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

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

 END


 IF (@accion = 'UPDATE_SCORE_IC') 
 BEGIN
        --GESTION
        IF(@gest = NULL)
  BEGIN
            SELECT gestion
             FROM LN_gestiones
            WHERE contraparte = @p_contraparte
            AND desde <= GETDATE()
            AND hasta >= GETDATE()
        END
        --CLIENTE
        IF(@p_cliente = NULL)
        BEGIN
  select cliente
   FROM LN_contrapartes
   WHERE contraparte = @p_contraparte
        END

        --PRODUCTO
        IF(@p_producto = NULL)
  BEGIN
            SELECT 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(country_code,'') != 'AR'
        END


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

  if (@isddSI is not null) 
      begin
   if not exists (select * FROM LN_contraparte_indicadores
    WHERE contraparte = @p_contraparte
    AND gestion = @gest
    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, @gest, @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 = @gest
     AND indicador = @isddSI
    end 
   end 

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

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

    if exists (select * From ln_score_detalle_killer
     where contraparte = @p_contraparte 
       and gestion = @gest 
       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 = @gest 
         and indicador = @isddSI
 
    if (isnull(@detalle,'')!= '') 
     begin
      if not exists (select * From ln_score_detalle_killer
         where contraparte = @p_contraparte 
           and gestion = @gest 
           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, @gest, @isddSI, @detalle, 1, getdate()) 
     end 
   end 

 END

 IF (@accion = 'TIENE_SCORE_IC') 
 BEGIN
        IF(@p_producto = NULL)
  BEGIN
            SELECT 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(country_code,'') != 'AR'
        END

  SELECT @isddSI = LN_indicadores.indicador
   FROM LN_indicadores
   WHERE LN_indicadores.clave_indicador = 'SCORE_IC'
   and LN_indicadores.producto = @p_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
        IF(@gest = NULL)
        BEGIN
            select 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()
        END

  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, visible, fecha_publicacion)
   VALUES
    (@p_contraparte, @gest, @p_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 = @gest
   and LN_demo.producto = @p_producto
  
 end

 if (@accion = 'desactivar') begin
        IF(@gest = NULL)
        BEGIN
            select 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()
        END

  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, visible)
   VALUES
    (@p_contraparte, @gest, @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 = @gest
   and LN_demo.producto = @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.numero)
  inner join identificadores on informes.identificador = identificadores.identificador
  inner join country on identificadores.country_code = country.country_code
  inner join monedas on informes.moneda = 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

 


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


END

GO

Used By

No items found