USP_BBNC_COMMITPROFILEUPDATEEMAIL

Updates a constituent's email information from a Blackbaud Internet Solutions profile transaction to the system from a given batch.

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@EMAILADDRESSTYPECODEID uniqueidentifier IN
@EMAILADDRESS nvarchar(100) IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_COMMITPROFILEUPDATEEMAIL
                (
                    @CONSTITUENTID uniqueidentifier = null,                            
                    @EMAILADDRESSTYPECODEID uniqueidentifier = null,
                    @EMAILADDRESS nvarchar(100) = '',
                    @CHANGEAGENTID uniqueidentifier = null,
                    @CHANGEDATE datetime = null
                ) as
                    set nocount on;

                    declare @ID uniqueidentifier;
                    declare @SEQUENCE int;
                    declare @PRIMARY bit;

                    if @CONSTITUENTID is null
                        begin
                            raiserror('The constituent ID is required',16,1);
                            return -2;
                        end

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

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

          declare @DEFAULTEMAILADDRESSTYPECODEID uniqueidentifier;
          select top (1)
                        @DEFAULTEMAILADDRESSTYPECODEID = [EMAILADDRESSTYPECODEID]
                    from
                        dbo.NETCOMMUNITYDEFAULTCODEMAP;


                    if @EMAILADDRESSTYPECODEID is not null
                        select @ID = [ID]
                        from dbo.EMAILADDRESS
                        where [CONSTITUENTID] = @CONSTITUENTID and [EMAILADDRESSTYPECODEID] = @EMAILADDRESSTYPECODEID;

                    declare @INFOSOURCECODEID uniqueidentifier;
                    select top (1)
                        @INFOSOURCECODEID = [INFOSOURCECODEID]
                    from
                        dbo.NETCOMMUNITYDEFAULTCODEMAP;

                    begin try
                        if @ID is not null
                            update dbo.EMAILADDRESS set
                                [EMAILADDRESSTYPECODEID] = @EMAILADDRESSTYPECODEID,
                                [EMAILADDRESS] = @EMAILADDRESS,
                                [INFOSOURCECODEID] = @INFOSOURCECODEID,
                                [CHANGEDBYID] = @CHANGEAGENTID,
                                [DATECHANGED] = @CHANGEDATE

                            where
                                [ID] = @ID
                        else
                            begin
                                select @SEQUENCE = max([SEQUENCE]) 
                                from dbo.EMAILADDRESS
                                where [CONSTITUENTID] = @CONSTITUENTID;

                                if @SEQUENCE is null
                                    begin
                                        set @SEQUENCE = 1
                                        set @PRIMARY = 1
                                    end
                                else
                                    set @PRIMARY = 0;

                                insert into dbo.EMAILADDRESS
                                (
                                    [ID],
                                    [CONSTITUENTID],
                                    [EMAILADDRESSTYPECODEID],
                                    [EMAILADDRESS],
                                    [ISPRIMARY],
                                    [SEQUENCE],
                                    [INFOSOURCECODEID],
                                    [ADDEDBYID],
                                    [CHANGEDBYID],
                                    [DATEADDED],
                                    [DATECHANGED]
                                )
                                values
                                (
                                    newid(),
                                    @CONSTITUENTID,
                                    coalesce(@EMAILADDRESSTYPECODEID, @DEFAULTEMAILADDRESSTYPECODEID),
                                    @EMAILADDRESS,
                                    @PRIMARY,
                                    @SEQUENCE + 1,
                                    @INFOSOURCECODEID,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CHANGEDATE,
                                    @CHANGEDATE
                                );

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

                    return 0;