Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
7| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_accion | varchar | 20 | |
| @p_userLogged | int | 4 | |
| @p_webID | varchar | 10 | |
| @p_userID | int | 4 | |
| @p_id_menu_item | int | 4 | |
| @p_active | bit | 1 | |
| @p_id_user_menu | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
user_menu_acces_ 'LIST_ALL_USERS',94437923,'FIDEBACK',null,null,null
*/
CREATE OR ALTER PROCEDURE dbo.user_menu_acces_
@p_accion varchar(20), /* LIST_BY_USERID / ADD_USER_ITEM / UPD_USER_ITEM / LIST_ALL_USERS */
@p_userLogged int, /*ESTE ES EL USUARIO QUE SE LOGUEA O PARA EL QUE SE ESTÁ CONFIGURANDO */
@p_webID varchar(10), /*PLATAFORMAS IVBACK - FIDEBACK - ETC */
@p_userID int, /*ESTE ES EL USUARIO QUE ESTA ADMINISTRANDO LOS DATOS*/
@p_id_menu_item int =null, /*ID DEL ITEM DE MENU QUE SE ESTÁ INSERTANDO O ACTUALIZANDO */
@p_active bit = 1,
@p_id_user_menu int = null /*ES EL CAMPO ID DE LA TABLA QUE SE PRETENDE ACTUALIZAR */
AS
BEGIN
SET NOCOUNT ON;
declare @v_plataforma varchar(10)=null
if (@p_webID = 'IVBACK')
begin
set @v_plataforma = '10'
end
else
begin
set @v_plataforma = '47'
end
if (upper(@p_accion) = 'RESTO_BY_USERID')
BEGIN
SELECT distinct MI.id_menu_item, MI.id_plataforma, MI.item_title,
MI.dependent_item, MI.routeaddr
FROM menu_items MI
WHERE (MI.id_plataforma = @p_webID)
and MI.id_menu_item in (select id_menu_item from menu_items where active = 1 and id_menu_item not in (select distinct id_menu_item from users_menu where user_id=@p_userLogged))
END
if (upper(@p_accion) = 'LIST_BY_USERID')
BEGIN
/*SELECT UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM users_menu AS UM INNER JOIN
menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
*/
SELECT distinct users.username,users.last_name,users.first_name,users.email, /*UM.id_user_menu,*/ UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title,
MI.dependent_item, MI.routeaddr, MI.active AS mi_active,MIDEP.item_title as dep_title
FROM users_menu AS UM
INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
left JOIN menu_items AS MIDEP ON MI.dependent_item = MIDEP.id_menu_item
WHERE (MI.id_plataforma = @p_webID) AND (MI.active = 1) AND (UM.user_id = @p_userLogged) and UM.active=1
END
if (upper(@p_accion) = 'LIST_ALL_USERS')
BEGIN
/* SELECT distinct users.username,users.last_name,users.first_name,users.email, UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM users_menu AS UM INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
*/
SELECT distinct users.username,users.last_name,users.first_name,users.email, UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title,
MI.dependent_item, MI.routeaddr, MI.active AS mi_active,MIDEP.item_title as dep_title
FROM users_menu AS UM
INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
LEFT JOIN menu_items AS MIDEP ON MI.dependent_item = MIDEP.id_menu_item
WHERE (MI.id_plataforma = @p_webID) AND (users.active_user = 'Y')
and convert(varchar(100),users.preferences) like '%' + @v_plataforma + '%'
--WHERE (MI.id_plataforma = 'IVBACK') AND (users.active_user = 'Y')
ORDER BY MI.item_title,MIDEP.item_title
--select preferences,* from users where username = 'sistemas'
--update users set preferences = '10,47' where username = 'sistemas'
/*AND (UM.user_id = @p_userLogged)*/
END
if (upper(@p_accion) = 'ALL_USERS')
BEGIN
/* SELECT distinct users.username,users.last_name,users.first_name,users.email, UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM users_menu AS UM INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
*/
SELECT distinct user_id, users.username,users.last_name,users.first_name,users.email
FROM USERS
WHERE convert(varchar(100),users.preferences) like '%' + @v_plataforma + '%'
AND users.active_user = 'Y'
END
if (upper(@p_accion) = 'ALL_USERS_MENU')
BEGIN
SELECT users.username,users.last_name,users.first_name,users.email,
UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active,
MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM USERS
INNER JOIN users_menu UM on UM.user_id = users.user_id
INNER JOIN menu_items MI ON UM.id_menu_item = MI.id_menu_item
LEFT JOIN menu_items MIDEP ON MI.dependent_item = MIDEP.id_menu_item
WHERE convert(varchar(100),users.preferences) like '%' + @v_plataforma + '%'
AND MI.id_plataforma = @p_webID AND users.active_user = 'Y'
END
if (upper(@p_accion) = 'ADD_USER_ITEM')
BEGIN
declare @existentItem int = 0
select @existentItem = count(*) from users_menu where user_id =@p_userLogged and id_menu_item=@p_id_menu_item
if (@existentItem = 0)
begin
INSERT INTO users_menu (user_id, id_menu_item, created, created_by, active)
values (@p_userLogged, @p_id_menu_item, getdate(), @p_userID, @p_active)
END
END
if (upper(@p_accion) = 'UPD_USER_ITEM')
BEGIN
/*update users_menu set user_id=@p_userLogged, id_menu_item=@p_id_menu_item, modified=getdate(), modified_by=@p_userID, active=@p_active*/
update users_menu set modified=getdate(), modified_by=@p_userID, active=@p_active
where id_user_menu= @p_id_user_menu
END
END
GO
GO
/*
user_menu_acces_ 'LIST_ALL_USERS',94437923,'FIDEBACK',null,null,null
*/
CREATE OR ALTER PROCEDURE dbo.user_menu_acces_
@p_accion varchar(20), /* LIST_BY_USERID / ADD_USER_ITEM / UPD_USER_ITEM / LIST_ALL_USERS */
@p_userLogged int, /*ESTE ES EL USUARIO QUE SE LOGUEA O PARA EL QUE SE ESTÁ CONFIGURANDO */
@p_webID varchar(10), /*PLATAFORMAS IVBACK - FIDEBACK - ETC */
@p_userID int, /*ESTE ES EL USUARIO QUE ESTA ADMINISTRANDO LOS DATOS*/
@p_id_menu_item int =null, /*ID DEL ITEM DE MENU QUE SE ESTÁ INSERTANDO O ACTUALIZANDO */
@p_active bit = 1,
@p_id_user_menu int = null /*ES EL CAMPO ID DE LA TABLA QUE SE PRETENDE ACTUALIZAR */
AS
BEGIN
SET NOCOUNT ON;
declare @v_plataforma varchar(10)=null
if (@p_webID = 'IVBACK')
begin
set @v_plataforma = '10'
end
else
begin
set @v_plataforma = '47'
end
if (upper(@p_accion) = 'RESTO_BY_USERID')
BEGIN
SELECT distinct MI.id_menu_item, MI.id_plataforma, MI.item_title,
MI.dependent_item, MI.routeaddr
FROM menu_items MI
WHERE (MI.id_plataforma = @p_webID)
and MI.id_menu_item in (select id_menu_item from menu_items where active = 1 and id_menu_item not in (select distinct id_menu_item from users_menu where user_id=@p_userLogged))
END
if (upper(@p_accion) = 'LIST_BY_USERID')
BEGIN
/*SELECT UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM users_menu AS UM INNER JOIN
menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
*/
SELECT distinct users.username,users.last_name,users.first_name,users.email, /*UM.id_user_menu,*/ UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title,
MI.dependent_item, MI.routeaddr, MI.active AS mi_active,MIDEP.item_title as dep_title
FROM users_menu AS UM
INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
left JOIN menu_items AS MIDEP ON MI.dependent_item = MIDEP.id_menu_item
WHERE (MI.id_plataforma = @p_webID) AND (MI.active = 1) AND (UM.user_id = @p_userLogged) and UM.active=1
END
if (upper(@p_accion) = 'LIST_ALL_USERS')
BEGIN
/* SELECT distinct users.username,users.last_name,users.first_name,users.email, UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM users_menu AS UM INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
*/
SELECT distinct users.username,users.last_name,users.first_name,users.email, UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title,
MI.dependent_item, MI.routeaddr, MI.active AS mi_active,MIDEP.item_title as dep_title
FROM users_menu AS UM
INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
LEFT JOIN menu_items AS MIDEP ON MI.dependent_item = MIDEP.id_menu_item
WHERE (MI.id_plataforma = @p_webID) AND (users.active_user = 'Y')
and convert(varchar(100),users.preferences) like '%' + @v_plataforma + '%'
--WHERE (MI.id_plataforma = 'IVBACK') AND (users.active_user = 'Y')
ORDER BY MI.item_title,MIDEP.item_title
--select preferences,* from users where username = 'sistemas'
--update users set preferences = '10,47' where username = 'sistemas'
/*AND (UM.user_id = @p_userLogged)*/
END
if (upper(@p_accion) = 'ALL_USERS')
BEGIN
/* SELECT distinct users.username,users.last_name,users.first_name,users.email, UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active, MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM users_menu AS UM INNER JOIN menu_items AS MI ON UM.id_menu_item = MI.id_menu_item
INNER JOIN USERS on UM.user_id = users.user_id
*/
SELECT distinct user_id, users.username,users.last_name,users.first_name,users.email
FROM USERS
WHERE convert(varchar(100),users.preferences) like '%' + @v_plataforma + '%'
AND users.active_user = 'Y'
END
if (upper(@p_accion) = 'ALL_USERS_MENU')
BEGIN
SELECT users.username,users.last_name,users.first_name,users.email,
UM.id_user_menu, UM.user_id, UM.id_menu_item, UM.active AS um_active,
MI.id_plataforma, MI.item_title, MI.dependent_item, MI.routeaddr, MI.active AS mi_active
FROM USERS
INNER JOIN users_menu UM on UM.user_id = users.user_id
INNER JOIN menu_items MI ON UM.id_menu_item = MI.id_menu_item
LEFT JOIN menu_items MIDEP ON MI.dependent_item = MIDEP.id_menu_item
WHERE convert(varchar(100),users.preferences) like '%' + @v_plataforma + '%'
AND MI.id_plataforma = @p_webID AND users.active_user = 'Y'
END
if (upper(@p_accion) = 'ADD_USER_ITEM')
BEGIN
declare @existentItem int = 0
select @existentItem = count(*) from users_menu where user_id =@p_userLogged and id_menu_item=@p_id_menu_item
if (@existentItem = 0)
begin
INSERT INTO users_menu (user_id, id_menu_item, created, created_by, active)
values (@p_userLogged, @p_id_menu_item, getdate(), @p_userID, @p_active)
END
END
if (upper(@p_accion) = 'UPD_USER_ITEM')
BEGIN
/*update users_menu set user_id=@p_userLogged, id_menu_item=@p_id_menu_item, modified=getdate(), modified_by=@p_userID, active=@p_active*/
update users_menu set modified=getdate(), modified_by=@p_userID, active=@p_active
where id_user_menu= @p_id_user_menu
END
END
GO
Depends On
3Used By
No items found