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.

197 lines
7.8 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[menu_proc] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[menu_proc]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[menu_proc] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. ALTER PROC menu_proc
  12. @flag CHAR(25) ,
  13. @user VARCHAR(50)
  14. AS
  15. SET NOCOUNT ON;
  16. SET XACT_ABORT ON;
  17. IF @flag = 'admin'
  18. BEGIN
  19. IF @user IN (select [admin] from dbo.FNAGetAdmins())
  20. BEGIN
  21. SELECT * FROM (
  22. SELECT DISTINCT menuGroup,groupPosition
  23. FROM dbo.applicationMenus (NOLOCK)
  24. WHERE ISNULL(AgentMenuGroup,'') = '' AND isActive = 'Y'
  25. UNION ALL
  26. SELECT 'Service Charge & Commission',12
  27. UNION ALL
  28. SELECT 'Customer Management', 12
  29. UNION ALL
  30. SELECT 'Utilities', 13
  31. UNION ALL
  32. SELECT 'Accounts', 14
  33. UNION ALL
  34. SELECT 'EXCHANGE SETUP', 18
  35. )X
  36. ORDER BY groupPosition,menuGroup DESC
  37. SELECT linkPage ,menuName
  38. ,menuGroup = CASE WHEN menuName IN ('Domestic Commission','Commission Group Mapping','Agent Commission Rule') THEN 'Service Charge & Commission'
  39. WHEN menuName IN ('Customer Setup', 'Approve Customer', 'Customer Statement','Customer Account Statement','Customer Modify', 'Modify Customer Bank') THEN 'Customer Management'
  40. WHEN menuName IN ('Reprint Receipt', 'Agent Finder') THEN 'Utilities'
  41. WHEN menuName IN ('Create Ledger', 'Account Detail', 'Account Statement', 'Move Ledger', 'Manual Voucher','Voucher Report') THEN 'Accounts'
  42. --WHEN menuGroup IN ('Service Charge/Commission', 'Credit Risk') THEN 'Intl Operation'
  43. ELSE menuGroup END
  44. FROM dbo.applicationMenus (NOLOCK)
  45. WHERE ISNULL(AgentMenuGroup,'') = '' AND isActive = 'Y'
  46. and functionId <> '90100000'
  47. ORDER BY groupPosition,menuGroup DESC
  48. END;
  49. ELSE
  50. BEGIN
  51. DECLARE @sql VARCHAR(MAX)
  52. SET @sql = 'SELECT * FROM
  53. (SELECT DISTINCT AM.menuGroup, AM.groupPosition
  54. FROM dbo.applicationUserRoles AR(NOLOCK)
  55. INNER JOIN dbo.applicationRoleFunctions AF(NOLOCK) ON AF.roleId = AR.roleId
  56. INNER JOIN dbo.applicationMenus AM(NOLOCK) ON AM.functionId = AF.functionId
  57. INNER JOIN dbo.applicationUsers AU(NOLOCK) ON AU.userId = AR.userId
  58. WHERE AU.userName = '''+@user+''' AND ISNULL(am.AgentMenuGroup,'''') = '''' AND AM.isActive = ''Y''
  59. and AM.functionId <> ''90100000'' '
  60. IF EXISTS (SELECT AM.menuName FROM dbo.applicationUserRoles AR(NOLOCK)
  61. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  62. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  63. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  64. WHERE AU.userName = @user
  65. AND ISNULL(am.AgentMenuGroup,'') = '' AND AM.isActive = 'Y'
  66. AND AM.menuName IN ('Domestic Commission','Commission Group Mapping'))
  67. BEGIN
  68. SET @sql += ' UNION ALL
  69. SELECT ''Service Charge & Commission'', 12'
  70. END
  71. IF EXISTS (SELECT AM.menuName FROM dbo.applicationUserRoles AR(NOLOCK)
  72. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  73. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  74. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  75. WHERE AU.userName = @user
  76. AND ISNULL(am.AgentMenuGroup,'') = '' AND AM.isActive = 'Y'
  77. AND AM.menuName IN ('Customer Setup', 'Approve Customer', 'Modify Customer Bank'))
  78. BEGIN
  79. SET @sql += ' UNION ALL
  80. SELECT ''Customer Management'', 12'
  81. END
  82. IF EXISTS (SELECT AM.menuName FROM dbo.applicationUserRoles AR(NOLOCK)
  83. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  84. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  85. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  86. WHERE AU.userName = @user
  87. AND ISNULL(am.AgentMenuGroup,'') = '' AND AM.isActive = 'Y'
  88. AND AM.menuName IN ('Reprint Receipt', 'Agent Finder'))
  89. BEGIN
  90. SET @sql += ' UNION ALL
  91. SELECT ''Utilities'', 13'
  92. END
  93. IF EXISTS (SELECT AM.menuName FROM dbo.applicationUserRoles AR(NOLOCK)
  94. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  95. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  96. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  97. WHERE AU.userName = @user
  98. AND ISNULL(am.AgentMenuGroup,'') = '' AND AM.isActive = 'Y'
  99. AND AM.menuName IN ('Create Ledger', 'Account Detail', 'Account Statement', 'Move Ledger', 'Manual Voucher'))
  100. BEGIN
  101. SET @sql += ' UNION ALL
  102. SELECT ''Accounts'', 14'
  103. END
  104. SET @sql += ')X
  105. ORDER BY X.groupPosition,X.menuGroup DESC'
  106. EXEC(@sql);
  107. SELECT AM.linkPage,AM.menuName
  108. ,menuGroup = CASE WHEN AM.menuName IN ('Domestic Commission','Commission Group Mapping','Agent Commission Rule') THEN 'Service Charge & Commission'
  109. WHEN AM.menuName IN ('Customer Setup', 'Approve Customer','Customer Statement','Customer Modify', 'Modify Customer Bank') THEN 'Customer Management'
  110. WHEN AM.menuName IN ('Reprint Receipt', 'Agent Finder') THEN 'Utilities'
  111. WHEN AM.menuName IN ('Create Ledger', 'Account Detail', 'Account Statement', 'Move Ledger', 'Manual Voucher') THEN 'Accounts'
  112. ELSE menuGroup END
  113. FROM dbo.applicationUserRoles AR (NOLOCK)
  114. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  115. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  116. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  117. WHERE AU.userName = @user
  118. AND ISNULL(am.AgentMenuGroup,'') = '' AND AM.isActive = 'Y'
  119. and AM.functionId <> '90100000'
  120. ORDER BY AM.groupPosition, AM.menuGroup DESC;
  121. END;
  122. END;
  123. IF @flag = 'agent'
  124. BEGIN
  125. DECLARE @MENULIST TABLE(AgentMenuGroup VARCHAR(100),groupPosition INT)
  126. INSERT INTO @MENULIST
  127. SELECT DISTINCT AM.AgentMenuGroup, AM.groupPosition
  128. FROM dbo.applicationUserRoles AR (NOLOCK)
  129. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  130. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  131. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  132. WHERE AU.userName = @user
  133. AND AM.AgentMenuGroup IS NOT NULL AND AM.isActive = 'Y'
  134. IF EXISTS (SELECT AM.menuName FROM dbo.applicationUserRoles AR(NOLOCK)
  135. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  136. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  137. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  138. WHERE AU.userName = @user
  139. AND AM.AgentMenuGroup IS NOT NULL AND AM.isActive = 'Y'
  140. AND AM.menuName IN ('Domestic Send', 'Approve Transaction'))
  141. BEGIN
  142. INSERT INTO @MENULIST
  143. SELECT 'Send Money', 1
  144. -- SET @sql += ' UNION ALL
  145. --SELECT ''Send Money'', 1'
  146. END
  147. IF EXISTS (SELECT AM.menuName FROM dbo.applicationUserRoles AR(NOLOCK)
  148. INNER JOIN dbo.applicationRoleFunctions AF (NOLOCK) ON AF.roleId = AR.roleId
  149. INNER JOIN dbo.applicationMenus AM (NOLOCK) ON AM.functionId = AF.functionId
  150. INNER JOIN dbo.applicationUsers AU (NOLOCK) ON AU.userId = AR.userId
  151. WHERE AU.userName = @user
  152. AND AM.AgentMenuGroup IS NOT NULL AND AM.isActive = 'Y'
  153. AND AM.menuName = 'Pay Transaction')
  154. BEGIN
  155. INSERT INTO @MENULIST
  156. SELECT 'Pay Money', 2
  157. --SET @sql += ' UNION ALL
  158. --SELECT ''Pay Money'', 2'
  159. END
  160. --SET @sql += ')X
  161. --ORDER BY X.groupPosition,X.AgentMenuGroup'
  162. --EXEC(@sql);
  163. SELECT DISTINCT * FROM @MENULIST ORDER BY groupPosition,AgentMenuGroup
  164. SELECT DISTINCT AM.linkPage ,AM.menuName
  165. ,AgentMenuGroup = CASE WHEN AM.menuName IN ('Domestic Send', 'Approve Transaction', 'Send Transaction') THEN 'Send Money'
  166. WHEN AM.menuName = 'Pay Transaction' THEN 'Pay Money' ELSE AM.AgentMenuGroup END
  167. FROM dbo.applicationUserRoles AR
  168. INNER JOIN dbo.applicationRoleFunctions AF(NOLOCK) ON AF.roleId = AR.roleId
  169. INNER JOIN dbo.applicationMenus AM(NOLOCK) ON AM.functionId = AF.functionId
  170. INNER JOIN dbo.applicationUsers AU(NOLOCK) ON AU.userId = AR.userId
  171. WHERE AU.userName = @user
  172. AND AM.AgentMenuGroup IS NOT NULL AND AM.isActive = 'Y';
  173. END;