spDelete_EmailProjectAppeal_EmailList

Parameters

Parameter Parameter Type Mode Description
@PKID int IN
@CurrentUsersID int IN

Definition

Copy

CREATE  PROCEDURE [dbo].[spDelete_EmailProjectAppeal_EmailList]
@PKID int,
@CurrentUsersID int

as

DECLARE @GUID uniqueidentifier
DECLARE @AppealListType tinyint
DECLARE @SoftDelete bit

SET @SoftDelete = 0

SELECT @AppealListType = AppealListType FROM EmailProjectAppeal_EmailList WHERE [ID] = @PKID

IF @AppealListType = 3 --Exclusion list is appeal wide not related to one specific email so check if any emails have been sent to determine delete action
    BEGIN
        IF EXISTS(SELECT NULL FROM EmailJob ej 
        INNER JOIN Email e on ej.EmailID = e.[ID]
        INNER JOIN EmailProjectAppeal_ListEmail epale ON e.ProjectAppealListEmailID = epale.[ID]
        INNER JOIN EmailProjectAppeal_EmailList epael ON epale.[EmailProjectAppealID] = epael.[EmailProjectAppealID] 
        WHERE epael.[ID] = @PKID)
        SET @SoftDelete = 1
    END
ELSE --Target and Seed Lists will have a direct relationship with an email so use this check
    BEGIN
        IF dbo.fnIsProjectComponentLinked(0,0,@PKID,0) = 1
            SET @SoftDelete = 1
    END

--This list has seen action so update delete flag
IF @SoftDelete = 1
    BEGIN
        BEGIN TRANSACTION
            UPDATE [dbo].[EmailProjectAppeal_EmailList]
            SET Deleted = 1
            WHERE [ID] = @PKID

            update dbo.[EmailProjectAppeal_ListEmail]
            set deleted = 1
            from dbo.[EmailProjectAppeal_ListEmail] EPA_LE
            inner join dbo.[EmailProjectAppeal_EmailList] EPA_EL on EPA_EL.ID = EPA_LE.EmailProjectAppealListID
            where EPA_EL.ID = @PKID

            update dbo.[Email]
            set deleted = 1
            from dbo.[EMAIL] E
            inner join dbo.[EmailProjectAppeal_ListEmail] EPA_LE on EPA_LE.ID =  E.ProjectAppealListEmailID
            inner join dbo.[EmailProjectAppeal_EmailList] EPA_EL on EPA_EL.ID = EPA_LE.EmailProjectAppealListID
            where EPA_EL.ID = @PKID            

            SELECT @Guid=Guid FROM [dbo].[EmailProjectAppeal_EmailList] WHERE id = @PKID

            EXEC spAuditThis @CurrentUsersID, 3, @Guid, 36
        COMMIT TRANSACTION
    END
ELSE --This one, no action so no reason to keep it around 
    BEGIN
        DELETE [dbo].[EmailProjectAppeal_EmailList] WHERE [ID] = @PKID
    END