USP_BBNC_GETORCREATEACCOUNT

Gets or create an account for use in committing donation transactions from Blackbaud Internet Solutions.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CONSTITUENTID uniqueidentifier IN
@FINANCIALINSTITUTIONID uniqueidentifier IN
@ACCOUNTTYPECODE tinyint IN
@ACCOUNTNUMBER nvarchar(50) IN
@ACCOUNTNAME nvarchar(100) IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_GETORCREATEACCOUNT
            (
                @ID uniqueidentifier = null output,
                @CONSTITUENTID uniqueidentifier,
                @FINANCIALINSTITUTIONID uniqueidentifier,
                @ACCOUNTTYPECODE tinyint,
                @ACCOUNTNUMBER nvarchar(50),
        @ACCOUNTNAME nvarchar(100),
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null
            )
            as
            set nocount on;

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

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

      -- Open the symmetric key for decryption

                        exec dbo.USP_GET_KEY_ACCESS;

            begin try
                set @ID = null;

                select top 1 
                    @ID = ID 
                from dbo.CONSTITUENTACCOUNT
                where CONSTITUENTID = @CONSTITUENTID
                    and FINANCIALINSTITUTIONID = @FINANCIALINSTITUTIONID
                    and coalesce(convert(nvarchar(50), DecryptByKey(ACCOUNTNUMBER)),'') = @ACCOUNTNUMBER
                    and ACCOUNTTYPECODE = @ACCOUNTTYPECODE
                  and ACCOUNTNAME = @ACCOUNTNAME

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

                    insert into dbo.CONSTITUENTACCOUNT(ID, CONSTITUENTID, FINANCIALINSTITUTIONID, ACCOUNTNUMBER, ACCOUNTNUMBERINDEX, ACCOUNTTYPECODE, EFTSTATUSCODE, ACCOUNTNAME, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values(@ID, @CONSTITUENTID, @FINANCIALINSTITUTIONID, EncryptByKey(Key_GUID('sym_BBInfinity'), @ACCOUNTNUMBER), dbo.UFN_GET_MAC_FOR_TEXT(@ACCOUNTNUMBER, 'dbo.CONSTITUENTACCOUNT'), @ACCOUNTTYPECODE, 0, @ACCOUNTNAME, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
                end                
            end try
            begin catch
                exec dbo.USP_RAISE_ERROR;
                return 1;
            end catch

            return 0;