You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
7.5 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_GetmodulewiseMenu] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_GetmodulewiseMenu]
  9. @module VARCHAR(500),
  10. @Isadmin BIT = 0
  11. as
  12. set nocount on;
  13. IF OBJECT_ID('tempdb..#temp') IS NOT NULL
  14. DROP TABLE #temp;
  15. IF OBJECT_ID('tempdb..#parent') IS NOT NULL
  16. DROP TABLE #parent;
  17. SET NOCOUNT ON;
  18. --DECLARE @module VARCHAR(50)= 10;
  19. --DECLARE @module VARCHAR(50)= 'Transaction';
  20. SELECT f.functionId ,
  21. f.parentFunctionId ,
  22. f.functionName ,
  23. menuName ,
  24. linkPage ,
  25. menuGroup ,
  26. Module ,
  27. groupPosition ,
  28. m.AgentMenuGroup
  29. INTO #temp
  30. FROM dbo.applicationMenus m
  31. INNER JOIN dbo.applicationFunctions f ON m.functionId = f.parentFunctionId
  32. WHERE menuGroup IN (SELECT VALUE FROM dbo.split(',',@module))
  33. AND ISNULL(AgentMenuGroup,'A') = CASE @Isadmin WHEN 0 THEN 'A' ELSE ISNULL(AgentMenuGroup,'') END
  34. ORDER BY menuGroup;
  35. --SELECT * FROM #temp
  36. SELECT DISTINCT
  37. parentFunctionId ,
  38. menuName ,
  39. linkPage ,
  40. menuGroup ,
  41. Module ,
  42. groupPosition ,
  43. AgentMenuGroup
  44. INTO #parent
  45. FROM #temp;
  46. ALTER TABLE #parent ADD id INT IDENTITY(1,1);
  47. --SELECT * FROM #parent
  48. DECLARE @cnt INT ,
  49. @num INT = 1;
  50. SELECT @cnt = COUNT(*)
  51. FROM #parent;
  52. DECLARE @ViewFunctionId VARCHAR(500) ,
  53. @menuName VARCHAR(500) ,
  54. @menuDescription VARCHAR(500) ,
  55. @linkPage VARCHAR(500) ,
  56. @menuGroup VARCHAR(500) ,
  57. @AgentMenuGroup VARCHAR(500);
  58. DECLARE @menuList VARCHAR(MAX)= '' ,
  59. @menuFunctionList VARCHAR(MAX)= '';
  60. DECLARE @menus TABLE ( menus VARCHAR(MAX) );
  61. WHILE @cnt >= @num
  62. BEGIN
  63. SELECT @ViewFunctionId = parentFunctionId ,
  64. @module = Module,
  65. @menuName = menuName ,
  66. @menuDescription = 'Menu for: ' + menuName ,
  67. @linkPage = linkPage ,
  68. @menuGroup = menuGroup ,
  69. @AgentMenuGroup = AgentMenuGroup
  70. FROM #parent
  71. WHERE ID = @num;
  72. INSERT INTO @menus
  73. SELECT ' EXEC proc_addMenu ''' + @module + ''' ,'''
  74. + @ViewFunctionId + ''',''' + @menuName + ''','''
  75. + @menuDescription + ''',''' + @linkPage + ''','''
  76. + @menuGroup + ''',''' + CAST(@num AS VARCHAR)
  77. + ''',''' + 'Y'',''' + @module + ''','''
  78. + ISNULL(@AgentMenuGroup,'') + '''';
  79. --SET @menuList += CHAR(13)+CHAR(10)+ ' EXEC proc_addMenu '''+@module+''' ,'''+ @ViewFunctionId+''','''+ @menuName+''','''+ @menuDescription+''','''+ @linkPage+''','''+ @menuGroup+''','''+ CAST(@num AS VARCHAR)+''','''+ 'Y'','+@module
  80. SET @num = @num + 1;
  81. END;
  82. SELECT *
  83. FROM @menus;
  84. ALTER TABLE #temp ADD id INT IDENTITY(1,1);
  85. SELECT @cnt = COUNT(*) ,
  86. @num = 1
  87. FROM #temp;
  88. DECLARE @FunctionId VARCHAR(100) ,
  89. @funcName VARCHAR(100);
  90. DECLARE @menuFunction TABLE ( menus VARCHAR(MAX) );
  91. WHILE @cnt >= @num
  92. BEGIN
  93. SELECT @ViewFunctionId = parentFunctionId ,
  94. @FunctionId = functionId ,
  95. @funcName = functionName
  96. FROM #temp
  97. WHERE ID = @num;
  98. INSERT INTO @menuFunction
  99. SELECT ' EXEC proc_AddFunction''' + @FunctionId + ''','''
  100. + @ViewFunctionId + ''',''' + @funcName + '''';
  101. --SET @menuFunctionList +=CHAR(13)+CHAR(10)+ ' EXEC proc_AddFunction'''+ @FunctionId+''','''+@ViewFunctionId+''','''+ @funcName+''''
  102. SET @num = @num + 1;
  103. END;
  104. SELECT *
  105. FROM @menuFunction;
  106. --PRINT @menuFunctionList
  107. GO