
[dbo].[Forum_Forum_SetOrder]
CREATE PROCEDURE dbo.[Forum_Forum_SetOrder]
(
@GroupID INT,
@ForumID INT,
@MoveUp BIT
)
AS
DECLARE @CurrentSortValue INT
DECLARE @ReplaceSortValue INT
SELECT @CurrentSortValue = [SortOrder]
FROM dbo.Forum_Forums
WHERE [GroupID] = @GroupID
AND [ForumID] = @ForumID
IF ( @MoveUp = 1 )
BEGIN
IF ( @CurrentSortValue != 0 )
BEGIN
SET @ReplaceSortValue = @CurrentSortValue - 1
UPDATE dbo.Forum_Forums
SET [SortOrder] = @CurrentSortValue
WHERE [SortOrder] = @ReplaceSortValue
AND [GroupID] = @GroupID
UPDATE dbo.Forum_Forums
SET [SortOrder] = @ReplaceSortValue
WHERE [ForumID] = @ForumID
AND [GroupID] = @GroupID
END
END
ELSE
BEGIN
IF ( @CurrentSortValue < ( SELECT MAX([ForumID])
FROM dbo.Forum_Forums
WHERE [GroupID] = @GroupID
) )
BEGIN
SET @ReplaceSortValue = @CurrentSortValue + 1
UPDATE dbo.Forum_Forums
SET [SortOrder] = @CurrentSortValue
WHERE [SortOrder] = @ReplaceSortValue
AND [GroupID] = @GroupID
UPDATE dbo.Forum_Forums
SET [SortOrder] = @ReplaceSortValue
WHERE [ForumID] = @ForumID
AND [GroupID] = @GroupID
END
END
GO