dbo.user_menu_acces_

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

Used By

No items found