USP_WPPOLITICALDONATION_ADD

Adds WealthPoint Political Donation information for a prospect.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@WEALTHID uniqueidentifier IN
@SOURCE nvarchar(100) IN
@FECID 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
@FULLNAME nvarchar(100) IN
@TRANSACTIONDATE datetime IN
@DN_ORGANIZATIONNAME nvarchar(100) IN
@AMOUNT money IN
@OCCUPATION nvarchar(100) IN
@CITY nvarchar(30) IN
@STATE nvarchar(100) IN
@ZIP nvarchar(10) IN
@CURRENTAPPUSERID uniqueidentifier IN
@RECURSIVEMATCH bit IN

Definition

Copy


            CREATE procedure dbo.USP_WPPOLITICALDONATION_ADD (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @WEALTHID uniqueidentifier,
                @SOURCE nvarchar(100),
                @FECID 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) = '',
                @FULLNAME nvarchar(100) = '',
                @TRANSACTIONDATE datetime = null,
                @DN_ORGANIZATIONNAME nvarchar(100) = '',
                @AMOUNT money = 0,
                @OCCUPATION nvarchar(100) = '',
                @CITY nvarchar(30) = '',
                @STATE nvarchar(100) = '',
                @ZIP nvarchar(10) = '',
                @CURRENTAPPUSERID uniqueidentifier = null,
                @RECURSIVEMATCH bit = 0
            ) 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.WPPOLITICALDONATION
                    where 
                        WEALTHID=@WEALTHID and PARTIALHASH=@PARTIALHASH;

                    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.WPPOLITICALDONATION where WEALTHID=@WEALTHID and FULLHASH=@FULLHASH
                        begin
                            --Record exists but needs to be updated

                            update
                                dbo.WPPOLITICALDONATION          
                            set
                                MC = @MC,
                                RECURSIVEMATCH = @RECURSIVEMATCH,
                                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 PARTIALHASH=@PARTIALHASH;
                        end
                    end
                    else
                    begin
                        --Record is new and needs to be Added


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

                        insert into dbo.WPPOLITICALDONATION (
                            ID,
                            WEALTHID,
                            SOURCE,
                            FECID,
                            REVISION,
                            ORIGINALID,
                            NEWROW,
                            CDATE,
                            CVALUE,
                            CNOTES,
                            FULLHASH,
                            PARTIALHASH,
                            MC,
                            FULLNAME,
                            TRANSACTIONDATE,
                            DN_ORGANIZATIONNAME,
                            AMOUNT,
                            OCCUPATION,
                            CITY,
                            STATE,
                            ZIP,
                            CHANGEDBYID,
                            ADDEDBYID,
                            DATEADDED,
                            DATECHANGED,
                            CONFIRMED,
                            CONFIRMEDBYAPPUSERID,
                            DATECONFIRMED,
                            REJECTED,
                            REJECTEDBYAPPUSERID,
                            DATEREJECTED,
                            RECURSIVEMATCH
                        ) values (
                            @ID,
                            @WEALTHID,
                            coalesce(@SOURCE, ''),
                            coalesce(@FECID, 0),
                            coalesce(@REVISION, 0),
                            coalesce(@ORIGINALID, 0),
                            coalesce(@NEWROW, 0),
                            @CDATE,
                            coalesce(@CVALUE, 0),
                            coalesce(@CNOTES, ''),
                            coalesce(@FULLHASH, ''),
                            coalesce(@PARTIALHASH, ''),
                            coalesce(@MC, ''),
                            coalesce(@FULLNAME, ''),
                            @TRANSACTIONDATE,
                            coalesce(@DN_ORGANIZATIONNAME, ''),
                            coalesce(@AMOUNT, 0),
                            coalesce(@OCCUPATION, ''),
                            coalesce(@CITY, ''),
                            coalesce(@STATE, ''),
                            coalesce(@ZIP, ''),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE,
                            @CONFIRMED,
                            @CONFIRMEDBYAPPUSERID,
                            @DATECONFIRMED,
                            @REJECTED,
                            @REJECTEDBYAPPUSERID,
                            @DATEREJECTED,
                            @RECURSIVEMATCH
                        );
                    end

                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR
                end catch

                return 0
            end