USP_DATALIST_FAFEVENTMARKETING
Get list of emails for fafevent marketing.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@FROMDATE | datetime | IN | Date from |
@TODATE | datetime | IN | To |
@SCHEDULEAPPROVED | tinyint | IN | Schedule |
@MESSAGENAME | nvarchar(255) | IN | Name |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_FAFEVENTMARKETING
( @EVENTID uniqueidentifier,
@FROMDATE datetime = null,
@TODATE datetime = null,
@SCHEDULEAPPROVED tinyint = null,
@MESSAGENAME nvarchar(255) = null
)
as
set nocount on;
declare @CLIENTSID int
declare @EVENTSTARTDATE datetime
declare @DAYSCOUNT int
IF ISNULL(@MESSAGENAME,'') = ''
SET @MESSAGENAME = null
SELECT @CLIENTSID = CS.CLIENTSID, @EVENTSTARTDATE = E.STARTDATE
FROM dbo.EVENTEXTENSION EE (NOLOCK)
INNER JOIN dbo.CLIENTSITES CS (NOLOCK)
ON CS.ID = EE.CLIENTSITESID
INNER JOIN dbo.EVENT E (NOLOCK)
ON EE.EVENTID = E.ID
WHERE EE.EVENTID = @EVENTID
IF @FROMDATE IS NULL
SET @FROMDATE = '01/01/1990'
IF @TODATE IS NULL
SET @TODATE = '01/01/2099';
with
[MARKETINGMESSAGES]
AS
(
SELECT e.[ID],
-- e.[EMAILTEMPLATEID],
e.[NAME] as MESSAGENAME,
e.[SUBJECT],
EL.NAME as RECIPIENTSLIST,
(CASE WHEN ISNULL(EJ.[Status],1) > 1 then 1 else 0 end) as CONFIRMED,
e.SENDAFTERDATE as DATESCHEDULED,
(CASE WHEN DATEDIFF(day,e.SENDAFTERDATE,@EVENTSTARTDATE) > 0 then CAST((DATEDIFF(day,e.SENDAFTERDATE,@EVENTSTARTDATE)) as varchar(10))+' days before event'
WHEN DATEDIFF(day,e.SENDAFTERDATE,@EVENTSTARTDATE) = 0 then 'On event start date'
else CAST((DATEDIFF(day,@EVENTSTARTDATE,e.SENDAFTERDATE)) as varchar(10))+' days after event start date' END) as SCHEDULEDTOSEND,
ej.GUID As EMAILJOBGUID,
(CASE WHEN ISNULL(EJ.[Status],1) > 2 then 1 else 0 end) as SENT
FROM dbo.fnEmailList(@CLIENTSID,13) E
INNER JOIN dbo.EVENTEMAILTEMPLATE EET (NOLOCK)
ON EET.EMAILTEMPLATEID = E.EMAILTEMPLATEID
LEFT OUTER JOIN dbo.EMAIL_EMAILLIST EEL (NOLOCK)
ON EEL.EmailID = E.ID
AND EEL.IsTest = 0
LEFT OUTER JOIN dbo.EMAILLIST EL (NOLOCK)
ON EL.ID = EEL.EMAILLISTID
-- INNER JOIN dbo.EMAILSCHEDULE_EMAILLIST ESE (NOLOCK)
-- ON ESE.EMAILLISTID = EL.ID
-- INNER JOIN dbo.EMAILSCHEDULE ES (NOLOCK)
-- ON ES.ID = ESE.EMAILSCHEDULEID
LEFT OUTER JOIN dbo.EmailJob EJ (NOLOCK)
ON e.ID = EJ.EmailID and e.EmailTemplateID = EJ.EmailTemplateID
where EET.EVENTID = @EVENTID
-- AND ES.SCHEDULEENABLED = ISNULL(@SCHEDULEAPPROVED,ES.SCHEDULEENABLED)
AND E.SendAfterDate between @FROMDATE and @TODATE
AND e.NAME = ISNULL(@MESSAGENAME,e.NAME)
AND EET.CONFIRMATIONTYPECODE = 33
AND ISNULL(EEL.IsTest,0) = 0
)
SELECT ID,
MESSAGENAME,
SUBJECT,
dbo.UDA_BUILDLIST(RECIPIENTSLIST) RECIPIENTSLIST,
CONFIRMED,
DATESCHEDULED,
SCHEDULEDTOSEND,
EMAILJOBGUID,
SENT
FROM [MARKETINGMESSAGES]
WHERE CONFIRMED = ISNULL(@SCHEDULEAPPROVED,CONFIRMED)
GROUP BY ID,MESSAGENAME,SUBJECT,CONFIRMED,DATESCHEDULED,SCHEDULEDTOSEND,EMAILJOBGUID,SENT
ORDER BY DATESCHEDULED