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
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
Depends On
7Used By
No items found