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

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_GetmodulewiseMenu] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_GetmodulewiseMenu]
@module VARCHAR(500),
@Isadmin BIT = 0
as
set nocount on;
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp;
IF OBJECT_ID('tempdb..#parent') IS NOT NULL
DROP TABLE #parent;
SET NOCOUNT ON;
--DECLARE @module VARCHAR(50)= 10;
--DECLARE @module VARCHAR(50)= 'Transaction';
SELECT f.functionId ,
f.parentFunctionId ,
f.functionName ,
menuName ,
linkPage ,
menuGroup ,
Module ,
groupPosition ,
m.AgentMenuGroup
INTO #temp
FROM dbo.applicationMenus m
INNER JOIN dbo.applicationFunctions f ON m.functionId = f.parentFunctionId
WHERE menuGroup IN (SELECT VALUE FROM dbo.split(',',@module))
AND ISNULL(AgentMenuGroup,'A') = CASE @Isadmin WHEN 0 THEN 'A' ELSE ISNULL(AgentMenuGroup,'') END
ORDER BY menuGroup;
--SELECT * FROM #temp
SELECT DISTINCT
parentFunctionId ,
menuName ,
linkPage ,
menuGroup ,
Module ,
groupPosition ,
AgentMenuGroup
INTO #parent
FROM #temp;
ALTER TABLE #parent ADD id INT IDENTITY(1,1);
--SELECT * FROM #parent
DECLARE @cnt INT ,
@num INT = 1;
SELECT @cnt = COUNT(*)
FROM #parent;
DECLARE @ViewFunctionId VARCHAR(500) ,
@menuName VARCHAR(500) ,
@menuDescription VARCHAR(500) ,
@linkPage VARCHAR(500) ,
@menuGroup VARCHAR(500) ,
@AgentMenuGroup VARCHAR(500);
DECLARE @menuList VARCHAR(MAX)= '' ,
@menuFunctionList VARCHAR(MAX)= '';
DECLARE @menus TABLE ( menus VARCHAR(MAX) );
WHILE @cnt >= @num
BEGIN
SELECT @ViewFunctionId = parentFunctionId ,
@module = Module,
@menuName = menuName ,
@menuDescription = 'Menu for: ' + menuName ,
@linkPage = linkPage ,
@menuGroup = menuGroup ,
@AgentMenuGroup = AgentMenuGroup
FROM #parent
WHERE ID = @num;
INSERT INTO @menus
SELECT ' EXEC proc_addMenu ''' + @module + ''' ,'''
+ @ViewFunctionId + ''',''' + @menuName + ''','''
+ @menuDescription + ''',''' + @linkPage + ''','''
+ @menuGroup + ''',''' + CAST(@num AS VARCHAR)
+ ''',''' + 'Y'',''' + @module + ''','''
+ ISNULL(@AgentMenuGroup,'') + '''';
--SET @menuList += CHAR(13)+CHAR(10)+ ' EXEC proc_addMenu '''+@module+''' ,'''+ @ViewFunctionId+''','''+ @menuName+''','''+ @menuDescription+''','''+ @linkPage+''','''+ @menuGroup+''','''+ CAST(@num AS VARCHAR)+''','''+ 'Y'','+@module
SET @num = @num + 1;
END;
SELECT *
FROM @menus;
ALTER TABLE #temp ADD id INT IDENTITY(1,1);
SELECT @cnt = COUNT(*) ,
@num = 1
FROM #temp;
DECLARE @FunctionId VARCHAR(100) ,
@funcName VARCHAR(100);
DECLARE @menuFunction TABLE ( menus VARCHAR(MAX) );
WHILE @cnt >= @num
BEGIN
SELECT @ViewFunctionId = parentFunctionId ,
@FunctionId = functionId ,
@funcName = functionName
FROM #temp
WHERE ID = @num;
INSERT INTO @menuFunction
SELECT ' EXEC proc_AddFunction''' + @FunctionId + ''','''
+ @ViewFunctionId + ''',''' + @funcName + '''';
--SET @menuFunctionList +=CHAR(13)+CHAR(10)+ ' EXEC proc_AddFunction'''+ @FunctionId+''','''+@ViewFunctionId+''','''+ @funcName+''''
SET @num = @num + 1;
END;
SELECT *
FROM @menuFunction;
--PRINT @menuFunctionList
GO