USP_BBNC_COMMITPROFILEUPDATENAMEFORMAT

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

Parameters

Parameter Parameter Type Mode Description
@CONSTITUENTID uniqueidentifier IN
@NAMEFORMATID uniqueidentifier IN
@NAMEFORMATTYPECODEID uniqueidentifier IN
@NAMEFORMATFUNCTIONID uniqueidentifier IN
@CUSTOMNAME nvarchar(1400) IN
@ISPRIMARYADDRESSEE bit IN
@ISPRIMARYSALUTATION bit IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


CREATE procedure dbo.USP_BBNC_COMMITPROFILEUPDATENAMEFORMAT
                (
                    @CONSTITUENTID uniqueidentifier = null,    
          @NAMEFORMATID uniqueidentifier = null,
                    @NAMEFORMATTYPECODEID uniqueidentifier = null,
          @NAMEFORMATFUNCTIONID uniqueidentifier = null,
                    @CUSTOMNAME nvarchar(1400) = '',
                    @ISPRIMARYADDRESSEE bit = null,
                    @ISPRIMARYSALUTATION bit = null,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @CHANGEDATE datetime = null
                ) as
                    set nocount on;

                    declare @SEQUENCE int;

                    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 @PRIMARYADDRESSEEID uniqueidentifier;
          declare @PRIMARYSALUTATIONID uniqueidentifier;

                    begin try
            if @ISPRIMARYADDRESSEE = 1
              begin
                select 
                  @PRIMARYADDRESSEEID = [ID]
                from 
                  dbo.NAMEFORMAT
                where
                  [CONSTITUENTID] = @CONSTITUENTID
                  and [PRIMARYADDRESSEE] = 1;

                if @PRIMARYADDRESSEEID is not null and (@NAMEFORMATID is null or @PRIMARYADDRESSEEID <> @NAMEFORMATID)
                  begin
                    update dbo.NAMEFORMAT set
                      [PRIMARYADDRESSEE] = 0
                    where
                      [ID] = @PRIMARYADDRESSEEID;
                  end            
              end

            if @ISPRIMARYSALUTATION = 1
              begin
                select 
                  @PRIMARYSALUTATIONID = [ID]
                from 
                  dbo.NAMEFORMAT
                where
                  [CONSTITUENTID] = @CONSTITUENTID
                  and [PRIMARYSALUTATION] = 1;

                if @PRIMARYSALUTATIONID is not null and (@NAMEFORMATID is null or @PRIMARYSALUTATIONID <> @NAMEFORMATID)
                  begin
                    update dbo.NAMEFORMAT set
                      [PRIMARYSALUTATION] = 0
                    where
                      [ID] = @PRIMARYSALUTATIONID;
                  end            
            end

            if @NAMEFORMATID is null
              begin
                set @NAMEFORMATID = newid();

                insert into dbo.NAMEFORMAT
                (
                  [ID],
                                    [CONSTITUENTID],
                                    [NAMEFORMATTYPECODEID],
                                    [NAMEFORMATFUNCTIONID],
                                    [PRIMARYADDRESSEE],
                                    [PRIMARYSALUTATION],
                                    [CUSTOMNAME],
                                    [ADDEDBYID],
                                    [CHANGEDBYID],
                                    [DATEADDED],
                                    [DATECHANGED]
                                )
                                values
                                (
                                    @NAMEFORMATID,
                                    @CONSTITUENTID,
                                    @NAMEFORMATTYPECODEID,
                                    @NAMEFORMATFUNCTIONID,
                                    @ISPRIMARYADDRESSEE,
                                    @ISPRIMARYSALUTATION,
                                    @CUSTOMNAME,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CHANGEDATE,
                                    @CHANGEDATE
                                );  
              end
            else
              begin
                                    update dbo.NAMEFORMAT set
                    [CONSTITUENTID] = @CONSTITUENTID,
                    [NAMEFORMATTYPECODEID] = @NAMEFORMATTYPECODEID,
                                        [NAMEFORMATFUNCTIONID] = @NAMEFORMATFUNCTIONID,
                                        [PRIMARYADDRESSEE] = @ISPRIMARYADDRESSEE,
                                        [PRIMARYSALUTATION] = @ISPRIMARYSALUTATION,
                                        [CUSTOMNAME] = @CUSTOMNAME,
                                        [CHANGEDBYID] = @CHANGEAGENTID,
                                        [DATECHANGED] = @CHANGEDATE
                                    where
                                        ID = @NAMEFORMATID;
              end


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

                    return 0;