USP_BBNC_INTEGRATIONWEBTRAFFICADDUPDATE

Adds a web traffic record from the Blackbaud Internet Solutions integration service.

Parameters

Parameter Parameter Type Mode Description
@WEBTRAFFICMAPID int IN
@BBNCUSERID int IN
@REQUESTDATE datetime IN
@PAGEID int IN
@PAGENAME nvarchar(50) IN
@URL UDT_WEBADDRESS IN
@TEAMFUNDRAISERMAPID int IN
@TEAMFUNDRAISINGTEAMMAPID int IN
@EMAILJOBRECIPIENTMAPID int IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_INTEGRATIONWEBTRAFFICADDUPDATE
            (
                @WEBTRAFFICMAPID int,
                @BBNCUSERID int,
                @REQUESTDATE datetime,
                @PAGEID int,
                @PAGENAME nvarchar(50),
                @URL dbo.UDT_WEBADDRESS,
                @TEAMFUNDRAISERMAPID int,
                @TEAMFUNDRAISINGTEAMMAPID int,
                @EMAILJOBRECIPIENTMAPID int,
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null
            )
            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 (@WEBTRAFFICMAPID > 0)
                        raiserror('ERR_WEBTRAFFICMAPID_REQUIRED',16,1);

                    declare @NETCOMMUNITYCLIENTUSERID uniqueidentifier;
                    if @BBNCUSERID > 0
                        begin
                            select
                                @NETCOMMUNITYCLIENTUSERID = NETCOMMUNITYCLIENTUSER.ID
                            from
                                dbo.NETCOMMUNITYCLIENTUSER
                            where
                                BBNCUSERID = @BBNCUSERID;

                            if @NETCOMMUNITYCLIENTUSERID is null
                                begin
                                    set @NETCOMMUNITYCLIENTUSERID = newid();
                                    insert into dbo.NETCOMMUNITYCLIENTUSER
                                    (
                                        [ID],
                                        [BBNCUSERID],
                                        [LASTLOGINDATE],
                                        [ADDEDBYID],
                                        [CHANGEDBYID],
                                        [DATEADDED],
                                        [DATECHANGED]
                                    )
                                    values
                                    (
                                        @NETCOMMUNITYCLIENTUSERID,
                                        @BBNCUSERID,
                                        @REQUESTDATE,
                                        @CHANGEAGENTID,
                                        @CHANGEAGENTID,
                                        @CHANGEDATE,
                                        @CHANGEDATE
                                    );
                                end
                            else
                                update dbo.NETCOMMUNITYCLIENTUSER
                                set
                                    [LASTLOGINDATE] = @REQUESTDATE,
                                    [CHANGEDBYID] = @CHANGEAGENTID,
                                    [DATECHANGED] = @CHANGEDATE
                                where
                                    [ID] = @NETCOMMUNITYCLIENTUSERID
                                    and ([LASTLOGINDATE] IS NULL OR [LASTLOGINDATE] < @REQUESTDATE);
                        end

                    declare @TEAMFUNDRAISINGTEAMMEMBERID uniqueidentifier;
                    if @TEAMFUNDRAISERMAPID > 0
                        select
                            @TEAMFUNDRAISINGTEAMMEMBERID = TEAMFUNDRAISINGTEAMMEMBER.ID
                        from
                            dbo.TEAMFUNDRAISINGTEAMMEMBER
                            inner join dbo.BBNCTEAMFUNDRAISERIDMAP on TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISERID = BBNCTEAMFUNDRAISERIDMAP.TEAMFUNDRAISERID
                            left join dbo.BBNCTEAMFUNDRAISINGTEAMIDMAP on TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISINGTEAMID = BBNCTEAMFUNDRAISINGTEAMIDMAP.TEAMFUNDRAISINGTEAMID
                        where
                            BBNCTEAMFUNDRAISERIDMAP.ID = @TEAMFUNDRAISERMAPID
                            and
                            (
                                BBNCTEAMFUNDRAISINGTEAMIDMAP.ID = @TEAMFUNDRAISINGTEAMMAPID
                                or
                                (
                                    @TEAMFUNDRAISINGTEAMMAPID = 0
                                    and
                                    BBNCTEAMFUNDRAISINGTEAMIDMAP.ID is null
                                )
                            );

                    if exists
                    (
                        select
                            [ID]
                        from
                            dbo.NETCOMMUNITYWEBTRAFFIC
                        where
                            @WEBTRAFFICMAPID = [BBNCMAPID]
                    )
                        update dbo.NETCOMMUNITYWEBTRAFFIC
                        set
                            [NETCOMMUNITYCLIENTUSERID] = @NETCOMMUNITYCLIENTUSERID,
                            [REQUESTDATE] = @REQUESTDATE,
                            [PAGEID] = coalesce(@PAGEID, 0),
                            [PAGENAME] = coalesce(@PAGENAME, ''),
                            [URL] = coalesce(@URL, ''),
                            [TEAMFUNDRAISINGTEAMMEMBERID] = @TEAMFUNDRAISINGTEAMMEMBERID,
                            [EMAILJOBRECIPIENTMAPID] = coalesce(@EMAILJOBRECIPIENTMAPID, 0),
                            [CHANGEDBYID] = @CHANGEAGENTID,
                            [DATECHANGED] = @CHANGEDATE
                        where
                            [BBNCMAPID] = @WEBTRAFFICMAPID
                            and
                            (
                                coalesce([NETCOMMUNITYCLIENTUSERID], '00000000-0000-0000-0000-000000000000') <> coalesce(@NETCOMMUNITYCLIENTUSERID, '00000000-0000-0000-0000-000000000000')
                                or ([REQUESTDATE] <> @REQUESTDATE or ([REQUESTDATE] is null and @REQUESTDATE is not null) or ([REQUESTDATE] is not null and @REQUESTDATE is null))
                                or [PAGEID] = coalesce(@PAGEID, 0)
                                or [PAGENAME] = coalesce(@PAGENAME, '')
                                or [URL] <> coalesce(@URL, '')
                                or coalesce([TEAMFUNDRAISINGTEAMMEMBERID], '00000000-0000-0000-0000-000000000000') <> coalesce(@TEAMFUNDRAISINGTEAMMEMBERID, '00000000-0000-0000-0000-000000000000')
                                or [EMAILJOBRECIPIENTMAPID] <> coalesce(@EMAILJOBRECIPIENTMAPID, 0)
                            );
                    else
                        insert into dbo.NETCOMMUNITYWEBTRAFFIC
                        (
                            [BBNCMAPID],
                            [NETCOMMUNITYCLIENTUSERID],
                            [REQUESTDATE],
                            [PAGEID],
                            [PAGENAME],
                            [URL],
                            [TEAMFUNDRAISINGTEAMMEMBERID],
                            [EMAILJOBRECIPIENTMAPID],
                            [ADDEDBYID],
                            [CHANGEDBYID],
                            [DATEADDED],
                            [DATECHANGED]
                        )
                        values
                        (
                            @WEBTRAFFICMAPID,
                            @NETCOMMUNITYCLIENTUSERID,
                            @REQUESTDATE,
                            coalesce(@PAGEID, 0),
                            coalesce(@PAGENAME, ''),
                            coalesce(@URL, ''),
                            @TEAMFUNDRAISINGTEAMMEMBERID,
                            coalesce(@EMAILJOBRECIPIENTMAPID, 0),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CHANGEDATE,
                            @CHANGEDATE
                        );
                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end catch

                return 0;