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.

190 lines
3.1 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_applicationMenus] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_applicationMenus]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_applicationMenus] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE proc [dbo].[proc_applicationMenus]
  12. @flag VARCHAR(10) = NULL
  13. ,@userName VARCHAR(50) = NULL
  14. AS
  15. /*
  16. exec proc_applicationMenus @flag='s',@userName = 'admin'
  17. SELECT dbo.FNAIsAdmin(NULL)
  18. */
  19. SET NOCOUNT ON;
  20. IF NULLIF(@flag, 's') IS NULL
  21. BEGIN
  22. DECLARE @agentType INT
  23. SELECT @agentType = am.agentType
  24. FROM applicationUsers au WITH(NOLOCK)
  25. LEFT JOIN agentMaster am WITH(NOLOCK) ON au.agentId = am.agentId WHERE au.userName = @userName
  26. IF dbo.FNAIsAdmin(@userName) = 'Y'
  27. BEGIN
  28. SELECT
  29. am.*
  30. FROM applicationMenus am WITH(NOLOCK)
  31. WHERE ISNULL(am.isActive, 'Y') = 'Y'
  32. ORDER BY am.groupPosition ASC, am.position ASC
  33. RETURN
  34. END
  35. IF(@agentType IN (2903,2904))
  36. BEGIN
  37. SELECT
  38. am.*
  39. FROM applicationMenus am WITH(NOLOCK)
  40. WHERE am.functionId IN (
  41. SELECT functionId FROM applicationUserFunctions auf WITH(NOLOCK) WHERE [userId] IN
  42. (SELECT userId FROM applicationUsers WHERE userName = @userName)
  43. UNION
  44. SELECT functionId FROM applicationRoleFunctions arf WITH(NOLOCK) WHERE roleId IN
  45. (SELECT roleId FROM applicationUserRoles aur WITH(NOLOCK) WHERE [userId] IN
  46. (SELECT userId FROM applicationUsers WHERE userName = @userName))
  47. )
  48. AND ISNULL(am.isActive, 'Y') = 'Y'
  49. AND am.functionId NOT IN (
  50. '20111000','20111100','20111200','20111300','20111400' --Exchange Rate
  51. ,'20141000','20141100' --Service Charge
  52. ,'20131000','20131100','20131200','20131300' --Commission Agent
  53. ,'20191000','20191100','20191200','20191300' --Commission Super Agent
  54. ,'20201000','20201100','20201200','20201300' --Commission Hub
  55. ,'20171000','20171100' --Compliance
  56. ,'20101200','20101300','20101400','20101500','20101600','20101700','20101800' --Administration
  57. )
  58. ORDER BY
  59. am.groupPosition ASC
  60. ,am.position ASC
  61. RETURN
  62. END
  63. SELECT
  64. am.*
  65. FROM applicationMenus am WITH(NOLOCK)
  66. WHERE am.functionId IN (
  67. SELECT functionId FROM applicationUserFunctions auf WITH(NOLOCK) WHERE [userId] IN
  68. (SELECT userId FROM applicationUsers WHERE userName = @userName)
  69. UNION
  70. SELECT functionId FROM applicationRoleFunctions arf WITH(NOLOCK) WHERE roleId IN
  71. (SELECT roleId FROM applicationUserRoles aur WITH(NOLOCK) WHERE [userId] IN
  72. (SELECT userId FROM applicationUsers WHERE userName = @userName))
  73. )
  74. AND ISNULL(am.isActive, 'Y') = 'Y'
  75. --AND am.functionId <> '30101050'
  76. ORDER BY
  77. am.groupPosition ASC
  78. ,am.position ASC
  79. END
  80. ELSE IF @flag = 'l'
  81. BEGIN
  82. SELECT
  83. functionId
  84. FROM applicationMenus am WITH(NOLOCK)
  85. WHERE ISNULL(isActive, 'y') = 'y'
  86. ORDER BY
  87. groupPosition ASC
  88. ,position ASC
  89. END
  90. GO