dbo.usuarios_productos_habilitados_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_cliente int 4
@p_user_id int 4
@p_servicio int 4
@p_productos_indicadores varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 15/06/2022
-- =============================================
/*
exec [usuarios_productos_habilitados_] 1226057645, 681521128, 47, 'productos'
exec [usuarios_productos_habilitados_] 2254875, 94437923, 47, 'produtos'
select * from clientes where cli_codigo = 8907
select * from users where username = 'sistemas'

select servicio_contratado,suscribe_indicadores, * from ln_productos 
order by producto desc
*/


CREATE OR ALTER PROCEDURE dbo.usuarios_productos_habilitados_ 
 @p_cliente int = NULL,
 @p_user_id int = NULL,
 @p_servicio int = NULL,
 @p_productos_indicadores varchar(20) = 'productos'
AS

BEGIN
 SET NOCOUNT ON;
 if (@p_productos_indicadores = 'productos')
 begin
   /*
    select producto from usuarios_productos_habilitados
    where USER_ID = @p_user_id and cliente = @p_cliente and servicio_contratado = @p_servicio
    */

   select distinct P.producto, P.nombre_producto /*,I.indicador, I.nombre_indicador, I.etiqueta,
      CP.orden_producto, P.visible_brief visible_modal, I.visible visible_panel,P.servicio_contratado*/

     from LN_cliente_productos CP
     left join LN_indicadores I on I.producto = CP.producto
     inner join LN_familias F on (F.cliente = CP.cliente and F.visible = 1) 
     inner join LN_familia_productos FP on (FP.producto = CP.producto and FP.activo = 1 and FP.familia = F.familia)
     inner join LN_productos P on P.producto = CP.producto
     LEFT OUTER JOIN (SELECT cliente, indicador FROM LN_cliente_indicadores
       WHERE cliente = @p_cliente) SUSC
               ON (CP.cliente = SUSC.cliente AND I.indicador = SUSC.indicador)
     where CP.cliente = @p_cliente
      and CP.activo = 1
      and (P.suscribe_indicadores = 0 or SUSC.indicador IS NOT NULL)
      and P.servicio_contratado in (@p_servicio,0)
      /* Si se quiere controlar los indicadores segun el servicio contratado, agregar la linea de aca abajo (por ahora solo controla que el producto sea del servicio_contratado */
      --and I.servicio_contratado in (@p_servicio,0)
      -- que alguno de sus indicadores no esté en la lista de restringidos 
      and (P.suscribe_indicadores = 0 or I.indicador not in (select indicador from usuarios_restricciones 
      where cliente = @p_cliente and user_id = @p_user_id 
      and servicio_contratado = @p_servicio
      and indicador is not null 
      ) )




 end
 else
 begin
  select distinct /* P.producto, P.nombre_producto,*/ 
           I.indicador, I.nombre_indicador, I.clave_indicador, I.etiqueta
           /*, CP.orden_producto, P.visible_brief visible_modal, I.visible visible_panel,P.servicio_contratado*/
     from LN_cliente_productos CP
     inner join LN_indicadores I on I.producto = CP.producto
     inner join LN_familias F on (F.cliente = CP.cliente and F.visible = 1) 
     inner join LN_familia_productos FP on (FP.producto = CP.producto and FP.activo = 1 and FP.familia = F.familia)
     inner join LN_productos P on P.producto = CP.producto
     LEFT OUTER JOIN (SELECT cliente, indicador FROM LN_cliente_indicadores
       WHERE cliente = @p_cliente) SUSC
               ON (CP.cliente = SUSC.cliente AND I.indicador = SUSC.indicador)
     where CP.cliente = @p_cliente
      and CP.activo = 1
      and (P.suscribe_indicadores = 0 or SUSC.indicador IS NOT NULL)
      and P.servicio_contratado in (@p_servicio,0)
         /* Si se quiere controlar los indicadores segun el servicio contratado, agregar la linea de aca abajo (por ahora solo controla que el producto sea del servicio_contratado */
      --and I.servicio_contratado in (@p_servicio,0)
      --indicadores no estén en la lista de restringidos 
      and I.indicador not in (select indicador from usuarios_restricciones 
      where cliente = @p_cliente and user_id = @p_user_id 
      and servicio_contratado = @p_servicio
      and indicador is not null 
      ) 
 end
END 

  
GO

Used By

No items found