USP_BBNC_COMMITSIGNUPBIOADD

Adds a constituent's biographical information from a Blackbaud Internet Solutions signup transaction to the system from a given batch.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@BBNCMAPID int INOUT
@ISORGANIZATION tinyint IN
@BIRTHDATE UDT_FUZZYDATE IN
@FIRSTNAME nvarchar(50) IN
@GENDERCODE tinyint IN
@KEYNAME nvarchar(100) IN
@MAIDENNAME nvarchar(100) IN
@MIDDLENAME nvarchar(50) IN
@CUSTOMIDENTIFIER nvarchar(36) IN
@CONSTITUENCYCODEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@TITLEID uniqueidentifier IN
@REQUESTNOEMAIL bit IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_COMMITSIGNUPBIOADD
                (
                    @ID uniqueidentifier = null output,
                    @BBNCMAPID int = null output,
                    @ISORGANIZATION tinyint,
                    @BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
                    @FIRSTNAME nvarchar(50) = '',
                    @GENDERCODE tinyint = 0,
                    @KEYNAME nvarchar(100),
                    @MAIDENNAME nvarchar(100) = '',
                    @MIDDLENAME nvarchar(50) = '',
                    @CUSTOMIDENTIFIER nvarchar(36) = '',
                    @CONSTITUENCYCODEID uniqueidentifier = null,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @CHANGEDATE datetime = null,
                    @TITLEID uniqueidentifier = null,
          @REQUESTNOEMAIL bit = 0
                ) as
                    set nocount on;

                    if @ID is null
                        set @ID = newid();

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

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

                    declare @CURRENTDATE datetime;
                    set @CURRENTDATE = getdate();

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

                    begin try
                        if @ISORGANIZATION = 0
                        begin
                            insert into dbo.CONSTITUENT
                            (
                                [ID],
                                [KEYNAME],
                                [FIRSTNAME],
                                [MIDDLENAME],
                                [MAIDENNAME],
                                [BIRTHDATE],
                                [GENDERCODE],
                                [ISORGANIZATION],
                                [NETCOMMUNITYMEMBER],
                [ISCONSTITUENT],
                                [TITLECODEID],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            )
                            values
                            (
                                @ID,
                                @KEYNAME,
                                @FIRSTNAME,
                                @MIDDLENAME,
                                @MAIDENNAME,
                                @BIRTHDATE,
                                @GENDERCODE,
                                @ISORGANIZATION,
                                1,
                1,
                                @TITLEID,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CHANGEDATE,
                                @CHANGEDATE
                            );

                            insert into dbo.[NAMEFORMAT]
                                ([CONSTITUENTID]
                                ,[NAMEFORMATTYPECODEID]
                                ,[NAMEFORMATFUNCTIONID]
                                ,[ADDEDBYID]
                                ,[CHANGEDBYID]
                                ,[DATEADDED]
                                ,[DATECHANGED]
                                ,[PRIMARYADDRESSEE]
                                ,[PRIMARYSALUTATION])
                            select
                                @ID
                                ,NFD.NAMEFORMATTYPECODEID
                                ,NFD.NAMEFORMATFUNCTIONID
                                ,@CHANGEAGENTID
                                ,@CHANGEAGENTID
                                ,@CHANGEDATE
                                ,@CHANGEDATE
                                ,NFD.PRIMARYADDRESSEE
                                ,NFD.PRIMARYSALUTATION
                            from dbo.NAMEFORMATDEFAULT as NFD
                            where NFD.APPLYTOCODE = 0 
                        end
                        else
                        begin
                            declare @KEYNAMEBODY nvarchar(100);
                            declare @KEYNAMEPREFIX nvarchar(50);

                            exec dbo.USP_PARSE_ORGANIZATION_NAME @KEYNAME, @KEYNAMEBODY output, @KEYNAMEPREFIX output;

                            insert into dbo.CONSTITUENT
                            (
                                [ID],
                                [KEYNAME],
                                [KEYNAMEPREFIX],
                                [ISORGANIZATION],
                                [NETCOMMUNITYMEMBER],
                                [ISCONSTITUENT],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            )
                            values
                            (
                                @ID,
                                @KEYNAMEBODY,
                                @KEYNAMEPREFIX,
                                @ISORGANIZATION,
                                1,
                                1,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CHANGEDATE,
                                @CHANGEDATE
                            );

                        end

            if @INFOSOURCECODEID is not null
            begin
              exec dbo.USP_DATAFORMTEMPLATE_EDIT_CONSTITUENTORIGIN @ID = @ID,
              @CHANGEAGENTID=@CHANGEAGENTID,
              @INFOSOURCECODEID = @INFOSOURCECODEID,
              @REVENUEID = null
            end 

                        if @CONSTITUENCYCODEID is not null
                            insert into dbo.CONSTITUENCY
                            (
                                [CONSTITUENTID],
                                [CONSTITUENCYCODEID],
                                [DATEFROM],
                                [DATETO],
                                [ADDEDBYID],
                                [CHANGEDBYID],
                                [DATEADDED],
                                [DATECHANGED]
                            )
                            values
                            (
                                @ID,
                                @CONSTITUENCYCODEID,
                                dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE), -- TMV 04/10/2007 CR271993-040407 Added date from value. This is a new constituent so it cannot have any other constituencies that would cause CK_CONSTITUENCY_ISUNIQUE to fail.

                                null,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CHANGEDATE,
                                @CHANGEDATE
                            );

                        select @BBNCMAPID = SEQUENCEID 
                        from 
                            dbo.CONSTITUENT
                        where 
                            ID = @ID;

            --Retrieve the ID of the solicit code being used to flag do not email.

                        declare @NOEMAILSOLICITCODEID uniqueidentifier
                        select top 1 @NOEMAILSOLICITCODEID=DONOTEMAILSOLICITCODEID
                        from NETCOMMUNITYDEFAULTCODEMAP

                        --Does the constituent already have that solicit code assigned?

                        declare @CONSTITUENTSOLICITCODEID uniqueidentifier
                        select @CONSTITUENTSOLICITCODEID=ID 
                        from CONSTITUENTSOLICITCODE 
                        where CONSTITUENTID=@ID and 
                            SOLICITCODEID=@NOEMAILSOLICITCODEID

                        --If they request to not receive email...

                        if @REQUESTNOEMAIL = 1 
                        begin
                            --And if they don't have the appropriate solicit code, add it.

                            if @CONSTITUENTSOLICITCODEID is null
                            begin
                                exec dbo.USP_DATAFORM_ADD_CONSTITUENTSOLICITCODE null, @NOEMAILSOLICITCODEID, @ID, null, null, '', @CHANGEAGENTID
                            end
                            --Otherwise, if they do have the solicit code and the dates on the code do not include today, 

                            --  unbound its date range.

                            else
                            begin
                                update CONSTITUENTSOLICITCODE
                                set
                                    STARTDATE=null,
                                    ENDDATE=null,
                                    CHANGEDBYID=@CHANGEAGENTID,
                                    DATECHANGED=@CHANGEDATE
                                where
                                    ID=@CONSTITUENTSOLICITCODEID and
                                    (((not STARTDATE is null) and (datediff(day, STARTDATE, getdate())<0)) or
                                    ((not ENDDATE is null) and (datediff(day, getdate(), ENDDATE)<0)))
                            end
                        end

                        --If they request to receive email and have the solicit code, remove it.

                        if @REQUESTNOEMAIL = 0 and not @CONSTITUENTSOLICITCODEID is null
                        begin
                            exec dbo.USP_CONSTITUENTSOLICITCODE_DELETE @CONSTITUENTSOLICITCODEID, @CHANGEAGENTID
                        end
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;