USP_FAF_DEFAULT_MARKETING_MESSAGES_COPY
Copy faf default marketing messages from another event
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@OLDEVENTID | uniqueidentifier | IN | |
@APPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@USERID | int | IN | |
@CLIENTSID | int | IN |
Definition
Copy
CREATE PROCEDURE dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_COPY
(
@EVENTID uniqueidentifier,
@OLDEVENTID uniqueidentifier,
@APPUSERID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@USERID int = null,
@CLIENTSID int = null
)
as
SET NOCOUNT ON;
DECLARE @EVENTNAME varchar(200)
DECLARE @TEMPLATENAME varchar(255)
-- DECLARE @UserID int
-- DECLARE @ClientsID int
DECLARE @DATEADDED datetime
DECLARE @EMAILTEMPLATEID int
DECLARE @FromDisplayName nvarchar(255)
DECLARE @FromAddress nvarchar(255)
DECLARE @ClientSitesID int
DECLARE @EMAILID int
DECLARE @EMAILNAME nvarchar(255)
DECLARE @EMAILGUID uniqueidentifier
DECLARE @EVENTSTARTDATE datetime
DECLARE @EVENTENDDATE datetime
DECLARE @RecipientListsDoc nvarchar(4000)
DECLARE @EMAILLISTID int
DECLARE @EMAILLISTNAME varchar(255)
DECLARE @NAMETAG varchar(55)
DECLARE @SCHEDULEDATE datetime
DECLARE @EmailDescription nvarchar(255)
DECLARE @EmailSubject nvarchar(255)
DECLARE @PrivacyPageID int
DECLARE @EmailPreferencePageID int
DECLARE @PrivacyPage nvarchar(200)
DECLARE @EmailPreferencePage nvarchar(200)
DECLARE @EmailLink nvarchar(1000)
DECLARE @EmailPreferencePageName nvarchar(150)
DECLARE @OLDSCHEDULEDATE datetime
DECLARE @OLDEVENTSTARTDATE datetime
DECLARE @OLDEMAILID int
DECLARE @DAYS int
DECLARE @OLDEMAILLISTID int
DECLARE @OLDEVENTNAME varchar(200)
DECLARE @OLDClientSitesID int
DECLARE @OLDEMAILLISTNAME varchar(255)
DECLARE @TYPE tinyint
DECLARE @PREVIOUSEVENTID uniqueidentifier
DECLARE @PREVIOUSEVENTNAME varchar(200)
DECLARE @OLDPREVIOUSEVENTID uniqueidentifier
DECLARE @OLDPREVIOUSEVENTNAME varchar(200)
DECLARE @appealid int
DECLARE @TOTAL int
DECLARE @i int
DECLARE @j int
DECLARE @ContentHTML nvarchar(max) = ''
SET @DATEADDED = GETDATE()
IF @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
DECLARE @EMAILMESSAGES table (ID int identity(1,1), EmailID int, EmailLIstID int, [TYPE] tinyint)
INSERT INTO @EMAILMESSAGES (EmailID, EmailLIstID,[TYPE])
SELECT emailid, Emaillistid,[TYPE] from dbo.FAFEVENTEMAIL WHERE EVENTID = @OLDEVENTID
SELECT @TOTAL = COUNT(*) from @EMAILMESSAGES
SELECT @EMAILTEMPLATEID = ET.ID, @FromDisplayName = ET.FromDisplayName, @FromAddress = ET.FromAddress
FROM dbo.EmailTemplate ET (NOLOCK)
INNER JOIN dbo.EVENTEMAILTEMPLATE EET (NOLOCK)
ON ET.ID = EET.EMAILTEMPLATEID
AND EET.CONFIRMATIONTYPECODE = 33
WHERE EET.EVENTID = @EVENTID
SELECT @EVENTNAME = E.NAME, @ClientSitesID = CLIENTSITESID, @EVENTSTARTDATE = E.STARTDATE, @EVENTENDDATE = E.ENDDATE, @appealid=BBA.ID
FROM dbo.EVENT E (NOLOCK)
INNER JOIN dbo.EVENTEXTENSION EE
ON E.ID = EE.EVENTID
LEFT JOIN dbo.BBNCAPPEALIDMAP BBA ON BBA.APPEALID = E.APPEALID
WHERE E.ID = @EVENTID;
SELECT @OLDEVENTNAME = E.NAME, @OLDClientSitesID = CLIENTSITESID, @OLDEVENTSTARTDATE = E.STARTDATE
FROM dbo.EVENT E (NOLOCK)
INNER JOIN dbo.EVENTEXTENSION EE
ON E.ID = EE.EVENTID
WHERE E.ID = @OLDEVENTID;
SELECT @OLDPREVIOUSEVENTNAME = PE.NAME, @OLDPREVIOUSEVENTID = PE.ID
FROM dbo.EVENTEXTENSION EE (NOLOCK)
INNER JOIN dbo.EVENT PE (NOLOCK)
ON EE.PRIORYEAREVENTID = PE.ID
WHERE EE.EVENTID = @OLDEVENTID;
SELECT @PREVIOUSEVENTNAME = PE.NAME, @PREVIOUSEVENTID = PE.ID
FROM dbo.EVENTEXTENSION EE (NOLOCK)
INNER JOIN dbo.EVENT PE (NOLOCK)
ON EE.PRIORYEAREVENTID = PE.ID
WHERE EE.EVENTID = @EVENTID;
-- new
SELECT top 1 @EmailPreferencePageID = sp.ID, @EmailPreferencePageName = Sp.pagename
from SitePages sp
inner join PageContent pc on pc.SitePagesID = sp.ID
inner join SiteContent sc on pc.SiteContentID = sc.ID and sc.ContentTypesID = 121
inner join APEXFORMCONTENT afc on afc.ID = sc.Guid
inner join APEXFORM af on af.ID = afc.FORMID and af.FORMTYPEID = '89D3C4CC-4D01-4E8B-B82E-04AD966EEE09'
WHERE SP.ClientSitesID = @OLDClientSitesID;
-- old
IF @EmailPreferencePageID IS NULL
SELECT top 1 @EmailPreferencePageID = VPC.PageID, @EmailPreferencePageName = VPC.pagename
from vwPageContent VPC
inner join dbo.SitePages SP on SP.ID = VPC.PageID
WHERE SP.ClientSitesID = @OLDClientSitesID
and VPC.IsTemplatePage = 0
and VPC.ContentTypesID = 50;
select @PrivacyPageID = id
from sitepages where id=(select CAST(VALUE as int) from CMSSITESETTING where CLIENTSITESID=@OLDClientSitesID AND ENUMID=5)
SET @PrivacyPage = '<P style="margin-bottom:16px;"><a href="target=&pid='+CAST(@PrivacyPageID as nvarchar(10))+'&did=0&tab=0">Privacy Policy Page (Privacy Page)</a></p>'
SET @EmailPreferencePage = '<P style="margin-bottom:16px;"><a href="target=&pid='+CAST(@EmailPreferencePageID as nvarchar(10))+'&did=0&tab=0">'+@EmailPreferencePageName+' (Email Preferences Page)</a></p>'
SET @i = 1
BEGIN TRAN
begin try
WHILE (@i <= @TOTAL)
BEGIN
SET @EMAILID = 0;
SET @EMAILLISTID = null;
SET @OLDEMAILLISTID = null;
SET @OLDEMAILID = null;
SET @ContentHTML = ''
SELECT @OLDEMAILID = EmailID, @OLDEMAILLISTID = EmailLIstID, @TYPE = [Type]
from @EMAILMESSAGES WHERE ID = @i
SELECT @EMAILNAME = Name, @ContentHTML = ContentHTML, @FromAddress = FromAddress, @FromDisplayName = FromDisplayName, @EmailSubject = [Subject],
@OLDSCHEDULEDATE = SendAfterDate, @EmailDescription = [Description]
FROM dbo.Email (NOLOCK)
WHERE ID = @OLDEMAILID
SELECT @OLDEMAILLISTNAME = Name
from dbo.EmailList WHERE ID = @OLDEMAILLISTID
SET @DAYS = datediff(day,@OLDEVENTSTARTDATE,@OLDSCHEDULEDATE);
SET @SCHEDULEDATE = dateadd(day,@DAYS,@EVENTSTARTDATE);
IF ISNULL(@PrivacyPage,'') > ''
SET @ContentHTML = REPLACE(@ContentHTML,@PrivacyPage,'');
IF ISNULL(@EmailPreferencePage,'') > ''
SET @ContentHTML = REPLACE(@ContentHTML,@EmailPreferencePage,'');
SET @EmailDescription = REPLACE(@EmailDescription,@OLDEVENTNAME,@EVENTNAME);
SET @OLDEMAILLISTNAME = REPLACE(@OLDEMAILLISTNAME,@OLDEVENTNAME,@EVENTNAME);
SELECT @EMAILLISTID = ID
FROM dbo.EmailList
WHERE Name = @OLDEMAILLISTNAME and ClientsID = @ClientsID
IF @EMAILLISTID IS NULL
SET @RecipientListsDoc = '';
IF ISNULL(@EMAILLISTID,-1) > 1
BEGIN
SET @RecipientListsDoc = '<root><RecipientLists EmailListID="'+CAST(@EMAILLISTID as nvarchar(25))+'" /></root>'
IF @EMAILLISTID = @OLDEMAILLISTID
SET @RecipientListsDoc = '';
END
IF (@PREVIOUSEVENTID IS NULL) AND (@TYPE IN (16,17,18,19,20,21)) -- if there is no previous event then we don't want to create previous event messages
SET @ContentHTML = ''
IF @SCHEDULEDATE > GETDATE() AND ISNULL(@ContentHTML,'') > ''
BEGIN
EXEC dbo.spAddUpdate_Email @PKID=@EMAILID output,@EmailTemplateID=@EMAILTEMPLATEID,@Name=@EMAILNAME,@Description=@EmailDescription,@UserID=@UserID,@Guid=@EMAILGUID ,@type=0,@status=0,
@ContentHTML=@ContentHTML,@ContentText=N'',@FromAddress=@FromAddress,@FromDisplayName=@FromDisplayName,@Subject=@EmailSubject,@Priority=3,@ReplyAddress=N'',
@ReturnReceipt=0,@ReturnReceiptAddress=N'',@ForwardDSN=0,@ForwardDSNAddress=N'',@SendAfterDate=@SCHEDULEDATE,
@RecipientListsDoc=@RecipientListsDoc,@RecipientsXML=N'<?xml version="1.0" encoding="utf-16"?><ArrayOfEmailRecipient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />',
@ProjectAppealListEmailID=-1,@CLIENTSITESID=@ClientSitesID,@AppealID=@appealid;
INSERT INTO dbo.FAFEVENTEMAIL(ID,EVENTID,EMAILID,EMAILLISTID,TYPE,ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
VALUES(NEWID(),@EVENTID,@EMAILID,@EMAILLISTID,@TYPE,@CHANGEAGENTID, @CHANGEAGENTID, @DATEADDED, @DATEADDED)
END
SET @i = @i+1
END
IF @OLDPREVIOUSEVENTID IS NULL AND @PREVIOUSEVENTID IS NOT NULL
BEGIN
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = 16, @USERID = @USERID, @CLIENTSID = @CLIENTSID
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = 17, @USERID = @USERID, @CLIENTSID = @CLIENTSID
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = 18, @USERID = @USERID, @CLIENTSID = @CLIENTSID
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = 19, @USERID = @USERID, @CLIENTSID = @CLIENTSID
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = 20, @USERID = @USERID, @CLIENTSID = @CLIENTSID
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = 21, @USERID = @USERID, @CLIENTSID = @CLIENTSID
END
SET @j = 1;
WHILE (@j <= 21)
BEGIN
IF NOT EXISTS(SELECT 1 FROM dbo.FAFEVENTEMAIL (NOLOCK) WHERE EVENTID = @EVENTID AND [TYPE] = @j)
BEGIN
IF @j <=15
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = @j, @USERID = @USERID, @CLIENTSID = @CLIENTSID
IF (@j IN (16,17,18,19,20,21)) AND (@PREVIOUSEVENTID IS NOT NULL)
EXEC dbo.USP_FAF_DEFAULT_MARKETING_MESSAGES_ADD @EVENTID = @EVENTID, @APPUSERID = @APPUSERID, @CHANGEAGENTID = @CHANGEAGENTID, @TYPE = @j, @USERID = @USERID, @CLIENTSID = @CLIENTSID
END
SET @j = @j + 1
END
end try
begin catch
exec dbo.USP_RAISE_ERROR;
ROLLBACK TRAN
return 1;
end catch
COMMIT TRAN
return 0;