USP_BBNC_GETORCREATEORGANIZATION

Gets or creates a corporation with a given name for donation transactions downloaded from Blackbaud Internet Solutions.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@KEYNAME nvarchar(100) IN
@CONSTITUENCYCODEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_BBNC_GETORCREATEORGANIZATION
            (
                @ID uniqueidentifier = null output,
                @KEYNAME nvarchar(100),
                @CONSTITUENCYCODEID uniqueidentifier = null,
                @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;

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

            declare @KEYNAMEBODY nvarchar(100);
            declare @KEYNAMEPREFIX nvarchar(50);

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

            --JamesWill CR273111-041807 2007/04/19 Don't try to match organizations. Just create it. 

            begin try
                if (select count(ID) from dbo.CONSTITUENT where ID = @ID and ISORGANIZATION = 1) = 0
                begin
                    if @ID is null
                        set @ID = newid();

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

                    if not @CONSTITUENCYCODEID is null
                        insert into dbo.CONSTITUENCY (CONSTITUENTID, CONSTITUENCYCODEID, DATEFROM, DATETO, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            values (@ID, @CONSTITUENCYCODEID, dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE), null, @CHANGEAGENTID, @CHANGEAGENTID, @CHANGEDATE, @CHANGEDATE);
                end
            end try
            begin catch
                exec dbo.USP_RAISE_ERROR;
                return 1;
            end catch

            return 0;