PlotDirector/PlotLine/Sql/101_Phase16J_WordCompanionFollowCurrentScene.sql

53 lines
1.5 KiB
Transact-SQL

SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE OR ALTER PROCEDURE dbo.WordCompanion_Runtime_CurrentScene_Validate
@UserID int,
@DocumentGuid uniqueidentifier,
@ProjectID int,
@BookID int,
@ChapterID int,
@SceneID int
AS
BEGIN
SET NOCOUNT ON;
IF @DocumentGuid IS NULL
OR @DocumentGuid = '00000000-0000-0000-0000-000000000000'
OR @ProjectID <= 0
OR @BookID <= 0
OR @ChapterID <= 0
OR @SceneID <= 0
RETURN;
SELECT p.ProjectID AS ProjectId,
b.BookID AS BookId,
c.ChapterID AS ChapterId,
s.SceneID AS SceneId,
CONCAT(N'/Scenes/Details/', s.SceneID) AS SceneUrl
FROM dbo.Projects p
INNER JOIN dbo.ProjectUserAccess pua ON pua.ProjectID = p.ProjectID
INNER JOIN dbo.Books b ON b.ProjectID = p.ProjectID
INNER JOIN dbo.Chapters c ON c.BookID = b.BookID
INNER JOIN dbo.Scenes s ON s.ChapterID = c.ChapterID
INNER JOIN dbo.ManuscriptDocuments md ON md.ProjectID = p.ProjectID
AND md.BookID = b.BookID
WHERE p.ProjectID = @ProjectID
AND b.BookID = @BookID
AND c.ChapterID = @ChapterID
AND s.SceneID = @SceneID
AND md.DocumentGuid = @DocumentGuid
AND md.IsActive = 1
AND s.IsLinkedToManuscript = 1
AND s.ManuscriptDocumentID = md.ManuscriptDocumentID
AND p.IsArchived = 0
AND b.IsArchived = 0
AND c.IsArchived = 0
AND s.IsArchived = 0
AND pua.UserID = @UserID
AND pua.IsActive = 1;
END;
GO