spUpdateSiteContentStatus

Parameters

Parameter Parameter Type Mode Description
@SiteContentID int IN
@Status int IN
@StatusUpdatedBy int IN
@Comments nvarchar(256) IN

Definition

Copy


    CREATE procedure [dbo].[spUpdateSiteContentStatus]
    (
        @SiteContentID int,
        @Status int,
        @StatusUpdatedBy int,
        @Comments nvarchar(256)
    )
        as
        begin
            if @Status=2 and exists(select null from dbo.SiteContentVersion where [Status] in (0,1) and [SiteContentID]=@SiteContentID)
                /* archive live version first */
                update dbo.SiteContentVersion set [Status]=3, [StatusUpdatedOn]=getutcdate(), [StatusUpdatedBy]=@StatusUpdatedBy, [Comments]=@Comments where [Status]=@Status and [SiteContentID]=@SiteContentID

            /* update status on draft/pending version accordingly */
            update dbo.SiteContentVersion set [Status]=@Status, [StatusUpdatedOn]=getutcdate(), [StatusUpdatedBy]=@StatusUpdatedBy, [Comments]=@Comments where [Status] in (0,1) and [SiteContentID]=@SiteContentID

            if @Status=4    /* rejection */
                if exists(select null from dbo.SiteContentVersion where [SiteContentID]=@SiteContentID and [Status]=2)
                    /* restore xmldata on sitecontent record */
                    update dbo.SiteContent set [XMLData]=(select [XMLData] from dbo.SiteContentVersion where [SiteContentID]=@SiteContentID and [Status]=2) where [ID]=@SiteContentID
                else
                    /* if a new part is rejected, generate a new draft */
                    insert into dbo.SiteContentVersion (SiteContentID, [XMLData], [Status], [StatusUpdatedBy]) select [ID], [XMLData], 0, @StatusUpdatedBy from dbo.SiteContent where [ID]=@SiteContentID
        end