Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DECLARE @ID uniqueidentifier; SET @ID = '40f18650-76d7-4e31-967b-8caa86e013c2';
- DECLARE @UserID uniqueidentifier; SET @UserID = '3db19fa0-228a-497f-873a-0250bf0a4ccb';
- DECLARE @UtcNow datetime; SET @UtcNow = '2017-05-29T12:10:15';
- DECLARE @UtcNowQuants bigint;
- SELECT TOP(1) @UtcNowQuants = [QuantNumber]
- FROM [CalendarQuants] with(nolock)
- WHERE [StartTimeUTC] <= @UtcNow
- ORDER BY [StartTimeUTC] DESC;
- SELECT
- CAST (CASE WHEN [rup].[ID] IS NOT NULL AND [t].[UserID] IS NULL
- OR [rd].[ID] IS NOT NULL
- OR [t].[UserID] = @UserID
- THEN 0
- ELSE 1
- END AS BIT) [IsLocked],
- CAST (CASE WHEN [rup].[ID] IS NOT NULL
- OR [rd].[ID] IS NOT NULL
- OR [t].[UserID] = @UserID
- THEN 1
- ELSE 0
- END AS BIT) [IsPerformer],
- CAST (CASE WHEN [rup].[IsDeputy] = 1
- OR [rd].[ID] IS NOT NULL
- THEN 1
- ELSE 0
- END AS BIT) [IsPerformerDeputy],
- CAST (CASE WHEN [rua].[ID] IS NOT NULL
- THEN 1
- ELSE 0
- END AS BIT) [IsAuthor],
- CAST (CASE WHEN [rua].[IsDeputy] = 1
- THEN 1
- ELSE 0
- END AS BIT) [IsAuthorDeputy],
- CAST (CASE WHEN [rd].[ID] IS NOT NULL
- OR [t].[UserID] = @UserID
- THEN 1
- ELSE 0
- END AS BIT) [IsCurrentPerformer],
- CAST([cq].[QuantNumber] - @UtcNowQuants AS INT) [PlannedQuants],
- [t].[RowID], [t].[Planned], [t].[InProgress], [t].[Created], [t].[Modified], [t].[TypeID],
- [t].[StateID], [t].[RoleID], [t].[RoleName], [t].[RoleTypeID], [t].[UserID], [t].[UserName],
- [t].[AuthorID], [t].[AuthorName], [t].[AuthorPosition], [t].[CreatedByID], [t].[CreatedByName],
- [t].[ModifiedByID], [t].[ModifiedByName], [t].[HiddenFromAuthor], [t].[Digest], [t].[ParentID],
- [t].[Postponed], [t].[PostponedTo], [t].[PostponeComment]
- FROM [Tasks] [t] with(nolock)
- LEFT JOIN [RoleUsers] [rup] with(nolock)
- ON [rup].[ID] = [t].[RoleID]
- AND [rup].[UserID] = @UserID
- LEFT JOIN [RoleUsers] [rua] with(nolock)
- ON [rua].[ID] = [t].[AuthorID]
- AND [rua].[UserID] = @UserID
- OUTER APPLY (
- SELECT TOP(1) 1 as [ID]
- FROM [RoleDeputies] [rd] with(nolock)
- WHERE [rd].[DeputizedID] = [t].[UserID]
- AND [rd].[ID] = [t].[RoleID]
- AND [rd].[IsActive] = 1
- AND [rd].[DeputyID] = @UserID
- ) [rd]
- OUTER APPLY (
- SELECT TOP(1) [q].[QuantNumber]
- FROM [CalendarQuants] [q] with(nolock)
- WHERE [q].[StartTimeUTC] <= [t].[Planned]
- ORDER BY [q].[StartTimeUTC] DESC
- ) [cq]
- WHERE [t].[ID] = @ID
- AND (
- [rup].[ID] IS NOT NULL
- OR [rua].[ID] IS NOT NULL AND [t].[HiddenFromAuthor] = 0
- OR [t].[UserID] = @UserID)
- AND (
- [t].[UserID] IS NULL
- OR [rd].[ID] IS NOT NULL
- OR [t].[UserID] = @UserID
- OR [t].[AuthorID] = @UserID)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement