fnEmailListIsLinked
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EmailListID | int | IN |
Definition
Copy
CREATE FUNCTION [dbo].[fnEmailListIsLinked]
(
@EmailListID int
)
RETURNS bit
AS
BEGIN
DECLARE @IsLinked bit
SET @IsLinked=0
--Check link to template if I'm a newsletter list
IF EXISTS (
SELECT TOP 1 t.[ID]
FROM [EmailTemplate] t
INNER JOIN EmailTemplate_EmailList etel ON etel.EmailTemplateID = t.[ID]
WHERE etel.EmailListID = @EmailListID
AND t.[deleted] = 0
AND t.type = 2
)
SET @IsLinked=1
--Check link to template if I'm uploaded list
if exists (
SELECT TOP 1 t.[ID]
FROM [EmailTemplate] t
inner join Emaillist el on
t.datasourceid=el.uploadeddatasourceid and el.uploadeddatasourceid > 0
where el.id = @EmailListID
and t.deleted=0
)
SET @IsLinked=1
--check if linked to any emails
if exists (
select top 1 eml.id
from email_emaillist eml
inner join email e
on eml.emailid = e.id
where emaillistid=@EmailListID
and e.deleted=0 and e.type <> 15 AND ISNULL(e.ProjectAppealListEmailID,-1) = -1
)
SET @IsLinked=1
--check if linked to eCampaigns Must check for deleted flag at every level
IF EXISTS(
SELECT TOP 1 el.ID
FROM EmailList el
INNER JOIN EmailProjectAppeal_EmailList epael on el.ID = epael.EmailListID
INNER JOIN EmailProjectAppeal epa on epael.EmailProjectAppealID = epa.ID
INNER JOIN EmailProject ep on epa.EmailProjectID = ep.ID
WHERE el.ID = @EmailListID AND (epael.Deleted = 0 AND epa.Deleted = 0 AND ep.Deleted = 0))
SET @IsLinked=1
--check if linked to conditional content in a message or template that isn't deleted
IF EXISTS(
select top 1 1 from dbo.EmailList EL
left outer join dbo.ConditionList CL on CL.EmailListID = EL.ID
left outer join dbo.ConditionBlockCondition CBC on CBC.ID = CL.ConditionBlockConditionID
left outer join dbo.EmailConditionBlock ECB on ECB.ConditionBlockID = CBC.ConditionBlockID
left outer join dbo.Email E on E.ID = ECB.EmailID
left outer join dbo.EmailTemplateConditionBlock ETCB on ETCB.ConditionBlockID = CBC.ConditionBlockID
left outer join dbo.EmailTemplate ET on ET.ID = ETCB.EmailTemplateID
where EL.ID = @EmailListID and (ET.Deleted = 0 OR E.Deleted = 0)
)
SET @IsLinked=1
RETURN @IsLinked
END