USP_BBNC_INTEGRATIONEMAILJOBRECIPIENTADDUPDATE

Adds an email job recipient from the Blackbaud Internet Solutions integration service.

Parameters

Parameter Parameter Type Mode Description
@EMAILJOBRECIPIENTMAPID int IN
@CONSTITUENTMAPID int IN
@EMAILBBNCMAPID int IN
@EMAILTEMPLATEBBNCMAPID int IN
@EMAILNAME nvarchar(255) IN
@EMAILSUBJECT nvarchar(4000) IN
@SENTDATE datetime IN
@BOUNCED bit IN
@BOUNCETEXT nvarchar(1000) IN
@OPENED bit IN
@UPDATEDATE datetime IN
@EMAILADDRESS nvarchar(255) IN
@CLICKEDTHROUGH bit IN
@DONATED bit IN
@URL UDT_WEBADDRESS IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@SPAMCOMPLAINT bit IN
@OPTEDOUT bit IN
@EJRUPDATEDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_INTEGRATIONEMAILJOBRECIPIENTADDUPDATE
            (
                @EMAILJOBRECIPIENTMAPID int,
                @CONSTITUENTMAPID int,
                @EMAILBBNCMAPID int,
                @EMAILTEMPLATEBBNCMAPID int,
                @EMAILNAME nvarchar(255),
                @EMAILSUBJECT nvarchar(4000),
                @SENTDATE datetime,
                @BOUNCED bit,
                @BOUNCETEXT nvarchar(1000),
                @OPENED bit,
                @UPDATEDATE datetime,
                @EMAILADDRESS nvarchar(255),
                @CLICKEDTHROUGH bit,
                @DONATED bit,
                @URL dbo.UDT_WEBADDRESS,
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null,
        @SPAMCOMPLAINT bit = null,
        @OPTEDOUT bit = null,
                @EJRUPDATEDATE datetime
            )
            as
                set nocount on;

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                if @CHANGEDATE is null
                    set @CHANGEDATE = getdate();

                begin try
                    if not (@EMAILJOBRECIPIENTMAPID > 0)
                        raiserror('ERR_EMAILJOBRECIPIENTMAPID_REQUIRED',16,1);

                    declare @CONSTITUENTID uniqueidentifier;
                    select
                        @CONSTITUENTID = CONSTITUENT.ID
                    from
                        dbo.CONSTITUENT
                    where
                        CONSTITUENT.SEQUENCEID = @CONSTITUENTMAPID;

                    -- If the constituent does not exist it must have been deleted, skip this email record

                    if @CONSTITUENTID is not null
                        begin
                            if exists
                            (
                                select
                                    [ID]
                                from
                                    dbo.NETCOMMUNITYEMAILJOBRECIPIENT
                                where
                                    @EMAILJOBRECIPIENTMAPID = [BBNCMAPID]
                            )
                                update dbo.NETCOMMUNITYEMAILJOBRECIPIENT
                                set
                                    [CONSTITUENTID] = @CONSTITUENTID,
                                    [EMAILBBNCMAPID] = coalesce(@EMAILBBNCMAPID, 0),
                                    [EMAILTEMPLATEBBNCMAPID] = coalesce(@EMAILTEMPLATEBBNCMAPID, 0),
                                    [EMAILNAME] = coalesce(@EMAILNAME, ''),
                                    [EMAILSUBJECT] = coalesce(@EMAILSUBJECT, ''),
                                    [SENTDATE] = @SENTDATE,
                                    [BOUNCED] = coalesce(@BOUNCED, 0),
                                    [BOUNCETEXT] = coalesce(@BOUNCETEXT, ''),
                                    [OPENED] = coalesce(@OPENED, 0),
                                    [UPDATEDATE] = @UPDATEDATE,
                                    [EMAILADDRESS] = coalesce(@EMAILADDRESS, ''),
                                    [CLICKEDTHROUGH] = case when [CLICKEDTHROUGH] = 1 then 1 else coalesce(@CLICKEDTHROUGH, 0) end,
                                    [DONATED] = coalesce(@DONATED, 0),
                                    [URL] = coalesce(@URL, ''),
                                    [CHANGEDBYID] = @CHANGEAGENTID,
                                    [DATECHANGED] = @CHANGEDATE,
                  [SPAMCOMPLAINT] = @SPAMCOMPLAINT,
                  [OPTEDOUT] = @OPTEDOUT
                                where
                                    [BBNCMAPID] = @EMAILJOBRECIPIENTMAPID
                                    and
                                    (
                                        coalesce([CONSTITUENTID], '00000000-0000-0000-0000-000000000000') <> coalesce(@CONSTITUENTID, '00000000-0000-0000-0000-000000000000')
                                        or [EMAILBBNCMAPID] <> coalesce(@EMAILBBNCMAPID, 0)
                                        or [EMAILTEMPLATEBBNCMAPID] <> coalesce(@EMAILTEMPLATEBBNCMAPID, 0)
                                        or [EMAILNAME] <> coalesce(@EMAILNAME, '')
                                        or [EMAILSUBJECT] <> coalesce(@EMAILSUBJECT, '')
                                        or ([SENTDATE] <> @SENTDATE or ([SENTDATE] is null and @SENTDATE is not null) or ([SENTDATE] is not null and @SENTDATE is null))
                                        or [BOUNCED] <> coalesce(@BOUNCED, 0)
                                        or [BOUNCETEXT] <> coalesce(@BOUNCETEXT, '')
                                        or [OPENED] <> coalesce(@OPENED, 0)
                                        or ([UPDATEDATE] <> @UPDATEDATE or ([UPDATEDATE] is null and @UPDATEDATE is not null) or ([UPDATEDATE] is not null and @UPDATEDATE is null))
                                        or [EMAILADDRESS] <> coalesce(@EMAILADDRESS, '')
                                        or ([CLICKEDTHROUGH] <> 1 and [CLICKEDTHROUGH] <> coalesce(@CLICKEDTHROUGH, 0))
                                        or [DONATED] <> coalesce(@DONATED, 0)
                                        or [URL] <> coalesce(@URL, '')
                    or [SPAMCOMPLAINT] <> coalesce(@SPAMCOMPLAINT, 0)
                    or [OPTEDOUT] <> coalesce(@OPTEDOUT, 0)
                                    );
                            else
                                insert into dbo.NETCOMMUNITYEMAILJOBRECIPIENT
                                (
                                    [BBNCMAPID],
                                    [CONSTITUENTID],
                                    [EMAILBBNCMAPID],
                                    [EMAILTEMPLATEBBNCMAPID],
                                    [EMAILNAME],
                                    [EMAILSUBJECT],
                                    [SENTDATE],
                                    [BOUNCED],
                                    [BOUNCETEXT],
                                    [OPENED],
                                    [UPDATEDATE],
                                    [EMAILADDRESS],
                                    [CLICKEDTHROUGH],
                                    [DONATED],
                                    [URL],
                                    [ADDEDBYID],
                                    [CHANGEDBYID],
                                    [DATEADDED],
                                    [DATECHANGED],
                  [SPAMCOMPLAINT],
                  [OPTEDOUT]
                                )
                                values
                                (
                                    @EMAILJOBRECIPIENTMAPID,
                                    @CONSTITUENTID,
                                    coalesce(@EMAILBBNCMAPID, 0),
                                    coalesce(@EMAILTEMPLATEBBNCMAPID, 0),
                                    coalesce(@EMAILNAME, ''),
                                    coalesce(@EMAILSUBJECT, ''),
                                    @SENTDATE,
                                    coalesce(@BOUNCED, 0),
                                    coalesce(@BOUNCETEXT, ''),
                                    coalesce(@OPENED, 0),
                                    @UPDATEDATE,
                                    coalesce(@EMAILADDRESS, ''),
                                    coalesce(@CLICKEDTHROUGH, 0),
                                    coalesce(@DONATED, 0),
                                    coalesce(@URL, ''),
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CHANGEDATE,
                                    @CHANGEDATE,
                  @SPAMCOMPLAINT,
                  @OPTEDOUT
                                );
                        end

            -- cant be sure this exists.

                if @UPDATEDATE is not null
                begin
                if exists(select 1 from dbo.SERVERSTATUS where ID = 4)
                    begin
                        update dbo.SERVERSTATUS 
                        set UPDATEDATE = @EJRUPDATEDATE
                        where ID = 4;
                    end
                else
                    begin
                        insert into dbo.SERVERSTATUS (ID, UPDATEDATE)
                        values (4, @EJRUPDATEDATE);
                    end
                end

                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end catch

                return 0;