USP_WPPHILANTHROPICGIFT_ADD

Adds WealthPoint Philanthropic Gift information for a prospect.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@WEALTHID uniqueidentifier IN
@SOURCE nvarchar(100) IN
@WMID int IN
@REVISION int IN
@ORIGINALID int IN
@NEWROW bit IN
@CDATE datetime IN
@CVALUE money IN
@CNOTES nvarchar(1024) IN
@FULLHASH nvarchar(32) IN
@PARTIALHASH nvarchar(32) IN
@MC nvarchar(3) IN
@ORGANIZATION nvarchar(200) IN
@LOCATION nvarchar(100) IN
@GIFTYEAR UDT_YEAR IN
@GIFTRANGE nvarchar(50) IN
@TYPE nvarchar(75) IN
@CATEGORY nvarchar(500) IN
@LO money IN
@HI money IN
@NAME nvarchar(200) IN
@ORGANIZATIONWEBADDRESS nvarchar(2000) IN
@SOURCEMATERIAL nvarchar(2000) IN
@GIFTYEARHI UDT_YEAR IN
@GIFTYEARLO UDT_YEAR IN
@TYPECODE int IN
@EIN nvarchar(50) IN
@CURRENTAPPUSERID uniqueidentifier IN
@RECURSIVEMATCH bit IN
@MATCHHASH nvarchar(32) IN
@PHILANTHROPICGIFTID int IN
@HOUSEHOLDID nvarchar(30) IN
@TASCORE int IN
@MATCHADDRESS nvarchar(100) IN
@MATCHCITY nvarchar(20) IN
@MATCHSTATE nvarchar(2) IN
@MATCHZIP nvarchar(5) IN
@CATEGORYLIST xml IN

Definition

Copy


            CREATE procedure dbo.USP_WPPHILANTHROPICGIFT_ADD (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @WEALTHID uniqueidentifier,
                @SOURCE nvarchar(100),
                @WMID int = 0,
                @REVISION int = 0,
                @ORIGINALID int = 0,
                @NEWROW bit = 0,
                @CDATE datetime = null,
                @CVALUE money = 0,
                @CNOTES nvarchar(1024) = '',
                @FULLHASH nvarchar(32) = '',
                @PARTIALHASH nvarchar(32) = '',
                @MC nvarchar(3) = '',
                @ORGANIZATION nvarchar(200) = '',
                @LOCATION nvarchar(100) = '',
                @GIFTYEAR dbo.UDT_YEAR = 0,
                @GIFTRANGE nvarchar(50) = '',
                @TYPE nvarchar(75) = '',
                @CATEGORY nvarchar(500) = '',
                @LO money = 0,
                @HI money = 0,
                @NAME nvarchar(200) = '',
                @ORGANIZATIONWEBADDRESS nvarchar(2000) = '',
                @SOURCEMATERIAL nvarchar(2000) = '',
                @GIFTYEARHI dbo.UDT_YEAR = 0,
                @GIFTYEARLO dbo.UDT_YEAR = 0,
                @TYPECODE int = 0,
                @EIN nvarchar(50) = '',
                @CURRENTAPPUSERID uniqueidentifier = null,
                @RECURSIVEMATCH bit = 0,
                @MATCHHASH nvarchar(32) = '',
                @PHILANTHROPICGIFTID int = 0,
                @HOUSEHOLDID nvarchar(30) = '',
                @TASCORE int = 0,
                @MATCHADDRESS nvarchar(100) = '',
                @MATCHCITY nvarchar(20) = '',
                @MATCHSTATE nvarchar(2) = '',
                @MATCHZIP nvarchar(5) = '',
                @CATEGORYLIST xml = null
            ) as begin
                set nocount on;

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

                begin try
                    declare @CURRENTDATE datetime;

                    set @CURRENTDATE = getdate();

                    --Get any existing ID

                    select 
                        @ID = ID 
                    from 
                        dbo.WPPHILANTHROPICGIFT
                    where 
                        WEALTHID=@WEALTHID and MATCHHASH = @MATCHHASH;

                    declare @CONFIRMED bit;    
                    declare @CONFIRMEDBYAPPUSERID uniqueidentifier;
                    declare @DATECONFIRMED datetime;
                    declare @REJECTED bit;
                    declare @REJECTEDBYAPPUSERID uniqueidentifier; 
                    declare @DATEREJECTED datetime;    

                    set @CONFIRMED = 0;
                    set @REJECTED = 0;            

                    if @CURRENTAPPUSERID is not null
                    begin
                        declare @CONFIDENCE int

                        select 
                            @CONFIDENCE = coalesce(CR.CONFIDENCE,MC.DEFAULTCONFIDENCE)
                        from
                            dbo.MATCHCODE MC
                            left outer join
                                dbo.WEALTHSOURCE WS on @SOURCE = WS.SOURCE
                            left outer join 
                                dbo.CONFIDENCERATING CR on CR.MATCHCODEID = MC.ID and CR.WEALTHSOURCEID = WS.ID
                        where
                            MC.MATCHCODE = @MC

                        select                   
                            @REJECTED =                case @CONFIDENCE
                                                        when 5 then 0
                                                        when 0 then 1
                                                    end,
                            @DATEREJECTED =            case @CONFIDENCE
                                                        when 5 then NULL
                                                        when 0 then @CURRENTDATE 
                                                    end,
                            @REJECTEDBYAPPUSERID =     case @CONFIDENCE
                                                        when 5 then NULL
                                                        when 0 then @CURRENTAPPUSERID 
                                                    end,
                            @CONFIRMED =            case @CONFIDENCE
                                                        when 5 then 1
                                                        when 0 then 0
                                                    end,
                            @DATECONFIRMED =        case @CONFIDENCE
                                                        when 5 then @CURRENTDATE 
                                                        when 0 then    NULL
                                                    end,
                            @CONFIRMEDBYAPPUSERID = case @CONFIDENCE
                                                        when 5 then  @CURRENTAPPUSERID 
                                                        when 0 then NULL
                                                    end 
                        where
                            @CONFIDENCE in (0,5);                    
                    end        

                    -- Record exists

                    if @ID is not null
                    begin

                        if not exists(select 1 from dbo.WPPHILANTHROPICGIFT where WEALTHID=@WEALTHID and FULLHASH=@FULLHASH
                        begin
                            --Record exists but needs to be updated


                            update
                                dbo.WPPHILANTHROPICGIFT          
                            set
                                MC = @MC,
                                FULLHASH = @FULLHASH,
                                RECURSIVEMATCH = @RECURSIVEMATCH,
                                PHILANTHROPICGIFTID = @PHILANTHROPICGIFTID,
                      CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE,
                                CONFIRMED = case when @CONFIRMED = 1 and CONFIRMED = 0 and REJECTED = 0 then 1 else CONFIRMED end,
                                CONFIRMEDBYAPPUSERID = case when @CONFIRMED = 1 and CONFIRMED = 0 and REJECTED = 0 then @CONFIRMEDBYAPPUSERID else CONFIRMEDBYAPPUSERID end,
                                DATECONFIRMED = case when @CONFIRMED = 1 and CONFIRMED = 0 and REJECTED = 0 then @DATECONFIRMED else DATECONFIRMED end
                            where
                                WEALTHID=@WEALTHID and MATCHHASH = @MATCHHASH;


                            --Record exists but address needs to be updated

              --This should be rare so just using a separate update

              --The only case this will likely occur is during the upgrade period from 2.9 to 2.91

              if len(coalesce(@MATCHADDRESS, '')) > 0 or 
                  len(coalesce(@MATCHCITY, '')) > 0 or 
                  len(coalesce(@MATCHSTATE, '')) > 0 or 
                  len(coalesce(@MATCHZIP, '')) > 0
              begin
                                update
                                    dbo.WPPHILANTHROPICGIFT          
                                set
                                    MATCHADDRESS = coalesce(@MATCHADDRESS, ''),
                                    MATCHCITY = coalesce(@MATCHCITY, ''),
                                    MATCHSTATE = coalesce(@MATCHSTATE, ''),
                                    MATCHZIP = coalesce(@MATCHZIP, ''),
                    HOUSEHOLDID = coalesce(@HOUSEHOLDID, ''),
                    TASCORE = coalesce(@TASCORE, 0),
                          CHANGEDBYID = @CHANGEAGENTID,
                                    DATECHANGED = @CURRENTDATE
                                where
                                    WEALTHID=@WEALTHID and 
                    MATCHHASH = @MATCHHASH and
                    MATCHADDRESS = '' and
                    MATCHCITY = '' and 
                    MATCHSTATE = '' and 
                    MATCHZIP = '';

              end


                        end

                    end
                    else
                    begin
                        --Record is new and needs to be Added


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

                        insert into dbo.WPPHILANTHROPICGIFT (
                            ID,
                            WEALTHID,
                            SOURCE,
                            WMID,
                            REVISION,
                            ORIGINALID,
                            NEWROW,
                            CDATE,
                            CVALUE,
                            CNOTES,
                            FULLHASH,
                            PARTIALHASH,
                            MC,
                            ORGANIZATION,
                            LOCATION,
                            GIFTYEAR,
                            GIFTRANGE,
                            TYPE,
                            CATEGORY,
                            LO,
                            HI,
                            NAME,
                            ORGANIZATIONWEBADDRESS,
                            SOURCEMATERIAL,
                            GIFTYEARHI,
                            GIFTYEARLO,
                            TYPECODE,
                            EIN,
                            MATCHHASH,
                            PHILANTHROPICGIFTID,
                            CHANGEDBYID,
                            ADDEDBYID,
                            DATEADDED,
                            DATECHANGED,
                            CONFIRMED,
                            CONFIRMEDBYAPPUSERID,
                            DATECONFIRMED,
                            REJECTED,
                            REJECTEDBYAPPUSERID,
                            DATEREJECTED,
                            RECURSIVEMATCH,
                            HOUSEHOLDID,
                            TASCORE,
                            MATCHADDRESS,
                            MATCHCITY,
                            MATCHSTATE,
                            MATCHZIP
                        ) values (
                            @ID,
                            @WEALTHID,
                            coalesce(@SOURCE, ''),
                            coalesce(@WMID, 0),
                            coalesce(@REVISION, 0),
                            coalesce(@ORIGINALID, 0),
                            coalesce(@NEWROW, 0),
                            @CDATE,
                            coalesce(@CVALUE, 0),
                            coalesce(@CNOTES, ''),
                            coalesce(@FULLHASH, ''),
                            coalesce(@PARTIALHASH, ''),
                            coalesce(@MC, ''),
                            coalesce(@ORGANIZATION, ''),
                            coalesce(@LOCATION, ''),
                            coalesce(@GIFTYEAR, 0),
                            coalesce(@GIFTRANGE, ''),
                            coalesce(@TYPE, ''),
                            coalesce(@CATEGORY, ''),
                            coalesce(@LO, 0),
                            coalesce(@HI, 0),
                            coalesce(@NAME, ''),
                            coalesce(@ORGANIZATIONWEBADDRESS, ''),
                            coalesce(@SOURCEMATERIAL, ''),
                            coalesce(@GIFTYEARHI, 0),
                            coalesce(@GIFTYEARLO, 0),
                            coalesce(@TYPECODE, 0),
                            coalesce(@EIN, ''),
                            coalesce(@MATCHHASH, ''),
                            coalesce(@PHILANTHROPICGIFTID, 0),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE,
                            @CONFIRMED,
                            @CONFIRMEDBYAPPUSERID,
                            @DATECONFIRMED,
                            @REJECTED,
                            @REJECTEDBYAPPUSERID,
                            @DATEREJECTED,
                            @RECURSIVEMATCH,
                            coalesce(@HOUSEHOLDID, ''),
                            coalesce(@TASCORE, 0),
                            coalesce(@MATCHADDRESS, ''),
                            coalesce(@MATCHCITY, ''),
                            Coalesce(@MATCHSTATE, ''),
                            coalesce(@MATCHZIP, '')
                        );

                            if @CATEGORYLIST is not null
                            begin
                                exec dbo.USP_WPPHILANTHROPICGIFT_CATEGORIES_ADDFROMXML @ID, @CATEGORYLIST, @CHANGEAGENTID, @CURRENTDATE;
                            end

                    end

                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                end catch

                return 0;
            end;