raghavcinch

Plan

Aug 19th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.65 KB | None | 0 0
  1. dbcc dropcleanbuffers
  2. use m5db;
  3.  
  4. declare @AccountId INT = 5926,
  5. @LocationId INT = -1,
  6. @PartitionId INT = -1
  7.  
  8. -- Setup.
  9. DECLARE @roles TABLE (RoleId INT, PersonId INT, AccountId INT, LocationId INT, PRIORITY INT);
  10. DECLARE @locations UdtIdTable;
  11. print convert(varchar(100),GETDATE(),121) ;
  12. -- Filling in account's locations.
  13. IF (@LocationId > 0)
  14. INSERT INTO @locations values(@LocationId);
  15. ELSE
  16. INSERT INTO @locations SELECT Id FROM Location WHERE AccountId = @AccountId;
  17. print convert(varchar(100),GETDATE(),121) ;
  18. -- Locating roles.
  19. --INSERT INTO @roles SELECT * FROM dbo.UfnGetRolesByScope(@locations, @AccountId, 0, NULL);
  20. print convert(varchar(100),GETDATE(),121) ;
  21. -- Loading user data.
  22. --SELECT
  23. --pe.Id AS PersonId,
  24. --pe.FirstName,
  25. --pe.LastName,
  26. --FullName = CASE
  27. -- WHEN pe.FirstName IS NULL AND pe.LastName IS NULL THEN ''
  28. -- ELSE LTRIM(RTRIM(COALESCE(pe.FirstName, '') + ' ' + COALESCE(pe.LastName, '')))
  29. -- END,
  30. --NULL AS ProfileId,
  31. --NULL AS ProfileStatusId,
  32. --'Unassigned' AS InternalCallerId,
  33. --pe.BusinessEmail,
  34. --pe.LocationId AS LocationId,
  35. --pe.AccountId AS AccountId,
  36. --NULL AS Tn,
  37. --NULL AS TnCountryId,
  38. --NULL AS Extension,
  39. --CAST(0 AS BIT) AS ProfileLocked,
  40. ----CAST(CASE WHEN dbo.UfnlockUserStatus(pe.username, pe.accountid ) = 1 THEN 1 ELSE 0 END AS BIT) AS PersonLocked, -- Special case, fail on first login.
  41. ----CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId = pe.Id AND r.roleId = 1) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsDM, -- Decision maker.
  42. ----CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId = pe.Id AND r.roleId = 2) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsPM, -- Phone manager.
  43. ----CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId = pe.Id AND r.roleId = 3) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsBC, -- Billing contact.
  44. ----CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId = pe.Id AND r.roleId = 4) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsEC, -- Emergency contact.
  45. ----CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId = pe.Id AND r.roleId = 8) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsTC, -- Technical.
  46. --NULL AS ProfileTypeId,
  47. --CAST(1 AS BIT) AS IsCloseable,
  48. --NULL AS PlatformTypeId,
  49. --NULL AS PartitionId
  50. --FROM
  51. --[Person] pe WITH(NOLOCK)
  52. --LEFT JOIN Account ac WITH (NOLOCK) ON ac.Id = pe.AccountId
  53. --LEFT JOIN Location loc WITH (NOLOCK) ON loc.Id = pe.LocationId
  54. --LEFT JOIN Profile pro WITH(NOLOCK) ON pe.Id = pro.PersonId
  55. --WHERE
  56. --ac.Id = @AccountId
  57. --AND (pe.LocationId IN (SELECT Id FROM @locations) OR pe.LocationId IS NULL)
  58. --AND pe.PersonStatusId = 0 -- Only Active.
  59. --AND pe.IsDeleted = 0 -- Non-deleted.
  60. --AND pe.PersonTypeId = 1 -- Actual persons.
  61. --AND (loc.IsDeleted IS NULL OR loc.IsDeleted = 0) -- Check if person's location exists and is not deleted.
  62. -- --Excluding persons with profiles.
  63. --AND pe.Id NOT IN (SELECT ipr.PersonId FROM [VwProfileDetails] ipr WITH (NOLOCK) WHERE ipr.AccountId = @AccountId AND ipr.PersonId IS NOT NULL)
  64. --AND pro.Id is null
  65. --UNION ALL
  66. -- Persons with profiles.
  67. SELECT
  68. pe.Id AS PersonId,
  69. pe.FirstName,
  70. pe.LastName,
  71. FullName = CASE
  72. WHEN pe.Id IS NULL THEN 'Unassigned'
  73. WHEN pe.FirstName IS NULL AND pe.LastName IS NULL THEN COALESCE(pr.InternalCallerId, '')
  74. ELSE LTRIM(RTRIM(COALESCE(pe.FirstName, '') + ' ' + COALESCE(pe.LastName, '')))
  75. END,
  76. pr.Id AS ProfileId,
  77. pr.ProfileStatusId,
  78. COALESCE(pr.InternalCallerId, pr.Tn) AS InternalCallerId,
  79. pe.BusinessEmail,
  80. pr.LocationId AS LocationId,
  81. pr.AccountId AS AccountId,
  82. pr.Tn AS [Tn],
  83. pr.TnCountryId,
  84. pr.Extension AS Extension,
  85. pr.ProfileLocked AS ProfileLocked,
  86. --pr.PersonLocked AS PersonLocked,
  87. --CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId IS NOT NULL AND r.personId = pe.Id AND r.roleId = 1) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsDM, -- Decision maker.
  88. --CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId IS NOT NULL AND r.personId = pe.Id AND r.roleId = 2) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsPM, -- Phone manager.
  89. --CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId IS NOT NULL AND r.personId = pe.Id AND r.roleId = 3) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsBC, -- Billing contact.
  90. --CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId IS NOT NULL AND r.personId = pe.Id AND r.roleId = 4) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsEC, -- Emergency contact.
  91. --CAST((CASE WHEN (SELECT COUNT(*) FROM @roles r WHERE r.personId IS NOT NULL AND r.personId = pe.Id AND r.roleId = 8) > 0 THEN 1 ELSE 0 END) AS BIT) AS IsTC, -- Technical.
  92. pr.ProfileTypeId AS ProfileTypeId,
  93. -- US23479 Profile life-cycle is maintained by the Director for sky accounts, we should not allow "close profile".
  94. CASE WHEN pr.PlatFormTypeId = 7 THEN CAST(0 AS BIT) ELSE CAST(1 AS BIT) END AS IsCloseable, -- Only Premise profiles should be blocked from closing.
  95. pr.PlatformTypeId,
  96. pro.PartitionId
  97. FROM
  98. VwProfileDetails pr WITH(NOLOCK)
  99. LEFT JOIN [Person] pe WITH (NOLOCK) ON pr.PersonId = pe.Id
  100. LEFT JOIN [Profile] pro WITH (NOLOCK) ON pro.Id = pr.Id
  101. WHERE
  102. -- The filter below was placed there from the GetUserDetails() repository method.
  103. -- ENG-432057: Voicemail profiles should be displayed in Users grid.
  104. pr.ProfileTypeId IN (2, 3, 4, 5, 7, 11, 13, 12, 15) -- Managed, Analog, Virtual, Courtesy, Voicemail, Premise, PremiseRoutePoint, PremiseWorkgroup.
  105. AND
  106. pr.LocationId IN (SELECT Id FROM @locations)
  107. AND pr.AccountId = @AccountId
  108. AND (@PartitionId <= 0 OR @PartitionId = pro.PartitionId);
  109. print convert(varchar(100),GETDATE(),121) ;
Add Comment
Please, Sign In to add comment