USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTCORRESPONDENCEPREVIEWCOMMUNITYEMAIL

The load procedure used by the view dataform template "Constituent Correspondence Preview Community Email View Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@EMAILNAME nvarchar(255) INOUT Email name
@SENTDATE datetime INOUT Date sent
@BOUNCED bit INOUT Bounced
@BOUNCETEXT nvarchar(1000) INOUT Bounce error
@EMAILADDRESS nvarchar(255) INOUT Email address
@OPENED bit INOUT Opened
@OPENEDDATE datetime INOUT OPENEDDATE
@CLICKEDTHROUGH bit INOUT CLICKEDTHROUGH
@DONATED bit INOUT Donated
@EMAILSUBJECT nvarchar(4000) INOUT Subject
@URL UDT_WEBADDRESS INOUT Subject
@APPEALNAME nvarchar(255) INOUT Appeal
@OPTEDOUT bit INOUT Opted-out
@LINKPAGENAME1 nvarchar(255) INOUT Links clicked
@LINKPAGENAME2 nvarchar(255) INOUT LINKPAGENAME2
@LINKPAGENAME3 nvarchar(255) INOUT LINKPAGENAME3
@LINKPAGENAME4 nvarchar(255) INOUT LINKPAGENAME4
@LINKPAGENAME5 nvarchar(255) INOUT LINKPAGENAME5
@LINKPAGEURL1 UDT_WEBADDRESS INOUT Links clicked
@LINKPAGEURL2 UDT_WEBADDRESS INOUT LINKPAGEURL2
@LINKPAGEURL3 UDT_WEBADDRESS INOUT LINKPAGEURL3
@LINKPAGEURL4 UDT_WEBADDRESS INOUT LINKPAGEURL4
@LINKPAGEURL5 UDT_WEBADDRESS INOUT LINKPAGEURL5
@DONATIONAMOUNT nvarchar(50) INOUT Donated
@SPAMCOMPLAINT bit INOUT

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_CONSTITUENTCORRESPONDENCEPREVIEWCOMMUNITYEMAIL(
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @EMAILNAME nvarchar(255) = null output,
                    @SENTDATE datetime = null output,
                    @BOUNCED bit = null output,
                    @BOUNCETEXT nvarchar(1000) = null output,
                    @EMAILADDRESS nvarchar(255) = null output,
                    @OPENED bit = null output,
                    @OPENEDDATE datetime = null output,
                    @CLICKEDTHROUGH bit = null output,
                    @DONATED bit = null output,
                    @EMAILSUBJECT nvarchar(4000) = null output,
                    @URL  dbo.UDT_WEBADDRESS = null output,
                    @APPEALNAME     nvarchar(255) = null output,
                    @OPTEDOUT   bit = null output,
                    @LINKPAGENAME1  nvarchar(255) = null output,
                    @LINKPAGENAME2  nvarchar(255) = null output,
                    @LINKPAGENAME3  nvarchar(255) = null output,
                    @LINKPAGENAME4  nvarchar(255) = null output,
                    @LINKPAGENAME5  nvarchar(255) = null output,
                    @LINKPAGEURL1   dbo.UDT_WEBADDRESS = null output,
                    @LINKPAGEURL2   dbo.UDT_WEBADDRESS = null output,
                    @LINKPAGEURL3   dbo.UDT_WEBADDRESS = null output,
                    @LINKPAGEURL4   dbo.UDT_WEBADDRESS = null output,
                    @LINKPAGEURL5   dbo.UDT_WEBADDRESS = null output,
                    @DONATIONAMOUNT nvarchar(50) = null output,
                    @SPAMCOMPLAINT bit = null output
                ) as begin
                    set nocount on;

                    set @DATALOADED = 0;
                    set @DONATIONAMOUNT = 0;
                    declare @EMAILID int = 0;
                    declare @EMAILJOBRECIPIENTID int = 0;

                    select
                        @DATALOADED = 1,
                        @EMAILNAME = NC.[EMAILNAME],
                        @SENTDATE = NC.[SENTDATE],
                        @BOUNCED = NC.[BOUNCED],
                        @BOUNCETEXT = NC.[BOUNCETEXT],
                        @EMAILADDRESS = NC.[EMAILADDRESS],
                        @OPENED = NC.[OPENED],
                        @CLICKEDTHROUGH = NC.[CLICKEDTHROUGH],
                        @DONATED = NC.[DONATED],
                        @EMAILSUBJECT = NC.[EMAILSUBJECT],
                        @URL = NC.[URL],
                        @APPEALNAME = AP.[NAME],
                        @EMAILID = NC.[EMAILID],
                        @EMAILJOBRECIPIENTID = NC.[BBNCMAPID],
                        @SPAMCOMPLAINT = NC.[SPAMCOMPLAINT]
                    from
                        dbo.UFN_NETCOMMUNITYEMAILJOBRECIPIENT_EMAIL() NC
                        left join dbo.BBNCAPPEALIDMAP MAP on MAP.ID = NC.AppealID 
                        left join dbo.APPEAL AP on AP.ID = MAP.APPEALID 
                        left join dbo.EMAILJOB EJ on EJ.EmailID = NC.EMAILID
                    where
                        NC.[ID] = @ID

                    if @OPENED > 0 
                        begin
                            select 
                                @OPENEDDATE = ER.[OPENEDDATE],
                                @OPTEDOUT = ER.[GLOBALOPTEDOUT]
                            from 
                                dbo.EMAILJOB_RECIPIENT ER 
                                where ER.ID = @EMAILJOBRECIPIENTID and ER.EMAILID = @EMAILID
                        end                         

                    if @DONATED > 0 
                        begin
                            select @DONATIONAMOUNT = sum(DT.GiftAmount)
                            from
                                dbo.DonationTransactions DT 
                            where 
                            DT.EmailID = @EMAILID and DT.ISDELETED = 0 and DT.STATUS = 1 and DT.EmailJobRecipientID = @EMAILJOBRECIPIENTID 
                        end

                    if @CLICKEDTHROUGH > 0 
                        begin
                            declare @tbl_emailpreview table(PID int, PageName nvarchar(255), URL nvarchar(1784), ClientSitesID int, ROW int identity(1,1));

                            insert into @tbl_emailpreview (PID, PageName, URL, ClientSitesID) 
                                select 
                                    distinct top 5 [PID], p.PageName, el.[URL], s.ClientSitesID 
                                from 
                                    dbo.[EmailLink] el
                                    LEFT OUTER JOIN dbo.SitePages p on p.id = el.pid
                                    LEFT OUTER JOIN dbo.Stats s on s.sourceid = el.emailid and s.sourcetypeid = 1 and s.EmailJobRecipientID = @EMAILJOBRECIPIENTID
                                    WHERE el.EmailID = @EMAILID and (s.pageid = el.pid or s.URL = el.URL) order by PID desc

                            select @LINKPAGENAME1 = isnull(TBL.[PageName],TBL.URL),  
                                   @LINKPAGEURL1 = case when (TBL.URL is null or TBL.URL = ''
                                                    then C.VALUE + '?pid=' + cast(TBL.PID as nvarchar(100))
                                                    else TBL.URL 
                                                    end
                            from @tbl_emailpreview TBL
                                inner join dbo.CMSSITESETTING C on C.ClientSitesID = TBL.ClientSitesID
                            where TBL.ROW = 1 and C.SETTING = 'PageBaseURL'

                            select @LINKPAGENAME2 = isnull(TBL.[PageName],TBL.URL),  
                                   @LINKPAGEURL2 = case when (TBL.URL is null or TBL.URL = ''
                                                    then C.VALUE + '?pid=' + cast(TBL.PID as nvarchar(100))
                                                    else TBL.URL end
                            from @tbl_emailpreview TBL
                                inner join dbo.CMSSITESETTING C on C.ClientSitesID = TBL.ClientSitesID
                            where TBL.ROW = 2 and C.SETTING = 'PageBaseURL'


                            select @LINKPAGENAME3 = isnull(TBL.[PageName],TBL.URL),  
                                   @LINKPAGEURL3 = case when (TBL.URL is null or TBL.URL = ''
                                                    then C.VALUE + '?pid=' + cast(TBL.PID as nvarchar(100))
                                                    else TBL.URL end
                            from @tbl_emailpreview TBL
                                inner join dbo.CMSSITESETTING C on C.ClientSitesID = TBL.ClientSitesID
                            where TBL.ROW = 3 and C.SETTING = 'PageBaseURL'

                            select @LINKPAGENAME4 = isnull(TBL.[PageName],TBL.URL),  
                                   @LINKPAGEURL4 = case when (TBL.URL is null or TBL.URL = ''
                                                    then C.VALUE + '?pid=' + cast(TBL.PID as nvarchar(100))
                                                    else TBL.URL end
                            from @tbl_emailpreview TBL
                                inner join dbo.CMSSITESETTING C on C.ClientSitesID = TBL.ClientSitesID
                            where TBL.ROW = 4 and C.SETTING = 'PageBaseURL'

                            select @LINKPAGENAME5 = isnull(TBL.[PageName],TBL.URL),  
                                   @LINKPAGEURL5 = case when (TBL.URL is null or TBL.URL = ''
                                                    then C.VALUE + '?pid=' + cast(TBL.PID as nvarchar(100))
                                                    else TBL.URL end
                            from @tbl_emailpreview TBL
                                inner join dbo.CMSSITESETTING C on C.ClientSitesID = TBL.ClientSitesID
                            where TBL.ROW = 5 and C.SETTING = 'PageBaseURL'

                        end

                    return 0;
                end