USP_WPAFFLUENCEINDICATOR_ADD

Adds WealthPoint Affluence Indicator information for a prospect.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@WEALTHID uniqueidentifier IN
@SOURCE nvarchar(100) IN
@LSID int IN
@REVISION int IN
@ORIGINALID int IN
@NEWROW bit IN
@FULLHASH nvarchar(32) IN
@PARTIALHASH nvarchar(32) IN
@MC nvarchar(3) IN
@PHONE nvarchar(20) IN
@GENDERCODE tinyint IN
@MULTIMILLN nvarchar(25) IN
@WEALTHIND nvarchar(1000) IN
@RPASSETS money IN
@FULLNAME nvarchar(100) IN
@CNOTES nvarchar(1024) IN
@CURRENTAPPUSERID uniqueidentifier IN
@RECURSIVEMATCH bit IN
@ADDRESSTYPE nvarchar(25) IN
@LINE1 nvarchar(100) IN
@CITY nvarchar(25) IN
@STATE nvarchar(2) IN
@ZIP nvarchar(5) IN
@ZIP4 nvarchar(4) IN
@COUNTY nvarchar(20) IN
@TITLE nvarchar(50) IN
@COMPANY nvarchar(50) IN
@WEBSITE nvarchar(200) IN
@SALES money IN
@EMPLOYMENT int IN
@NAICS nvarchar(100) IN
@AGE nvarchar(7) IN
@DONOR nvarchar(250) IN
@HOMEOWNER nvarchar(25) IN
@MARITAL nvarchar(25) IN
@DWELLING nvarchar(35) IN
@LENGTHOFRESIDENCE nvarchar(35) IN
@CHILDRENINDICATOR nvarchar(200) IN
@INCOME nvarchar(25) IN
@NEWPROSPECT nvarchar(1) IN
@DONOTCALL nvarchar(25) IN
@METROPOLITANSTATISTICALAREA nvarchar(8) IN
@CONTRIBUTOR nvarchar(35) IN
@POLITICALAFFILIATION nvarchar(25) IN
@RELIGIOUSAFFILIATION nvarchar(25) IN
@ETHNIC nvarchar(50) IN

Definition

Copy


            CREATE procedure dbo.USP_WPAFFLUENCEINDICATOR_ADD (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @WEALTHID uniqueidentifier,
                @SOURCE nvarchar(100),
                @LSID int = 0,
                @REVISION int = 0,
                @ORIGINALID int = 0,
                @NEWROW bit = 0,
                @FULLHASH nvarchar(32) = '',
                @PARTIALHASH nvarchar(32) = '',
                @MC nvarchar(3) = '',
                @PHONE nvarchar(20) = '',
                @GENDERCODE tinyint = 0,
                @MULTIMILLN nvarchar(25) = '',
                @WEALTHIND nvarchar(1000) = '',
                @RPASSETS money = 0,
                @FULLNAME nvarchar(100) = '',
                @CNOTES nvarchar(1024) = '',
                @CURRENTAPPUSERID uniqueidentifier = null,
                @RECURSIVEMATCH bit = 0,
                @ADDRESSTYPE nvarchar(25) = '',
                @LINE1 nvarchar(100) = '',
                @CITY nvarchar(25) = '',
                @STATE nvarchar(2) = '',
                @ZIP nvarchar(5) = '',
                @ZIP4 nvarchar(4) = '',
                @COUNTY nvarchar(20) = '',
                @TITLE nvarchar(50) = '',
                @COMPANY nvarchar(50) = '',
                @WEBSITE nvarchar(200) = '',
                @SALES money = 0,
                @EMPLOYMENT int = 0,
                @NAICS nvarchar(100) = '',
                @AGE nvarchar(7) = '',
                @DONOR nvarchar(250) = '',
                @HOMEOWNER nvarchar(25) = '',
                @MARITAL nvarchar(25) = '',
                @DWELLING nvarchar(35) = '',
                @LENGTHOFRESIDENCE nvarchar(35) = '',
                @CHILDRENINDICATOR nvarchar(200) = '',
                @INCOME nvarchar(25) = '',
                @NEWPROSPECT nvarchar(1) = '',
                @DONOTCALL nvarchar(25) = '',
                @METROPOLITANSTATISTICALAREA nvarchar(8) = '',
                @CONTRIBUTOR nvarchar(35) = '',
                @POLITICALAFFILIATION nvarchar(25) = '',
                @RELIGIOUSAFFILIATION nvarchar(25) = '',
                @ETHNIC nvarchar(50) = ''
            ) as begin
                set nocount on;

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

                begin try
                    declare @CURRENTDATE datetime;

                    set @CURRENTDATE = getdate();


          /* With Larkspur update, old hashing is being deprecated, so we will delete
          all previous records returned from wealth searches.
          */  

          declare @DELETEMAX datetime = '2016-09-29T00:00:00.000';

          delete from dbo.WPAFFLUENCEINDICATOR
          where WEALTHID=@WEALTHID and 
                SOURCE = N'Larkspur Data' and 
                DATEADDED < @DELETEMAX and
                CONFIRMED = 0 and
                MC <> '';


                    --Get any existing ID

                    select 
                        @ID = ID 
                    from 
                        dbo.WPAFFLUENCEINDICATOR 
                    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.WPAFFLUENCEINDICATOR where WEALTHID=@WEALTHID and FULLHASH=@FULLHASH
                        begin
                            update
                                dbo.WPAFFLUENCEINDICATOR 
                            set
                                FULLHASH = @FULLHASH,
                                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.WPAFFLUENCEINDICATOR (
                            ID,
                            WEALTHID,
                            SOURCE,
                            LSID,
                            REVISION,
                            ORIGINALID,
                            NEWROW,
                            FULLHASH,
                            PARTIALHASH,
                            MC,
                            PHONE,
                            GENDERCODE,
                            MULTIMILLN,
                            WEALTHIND,
                            RPASSETS,
                            FULLNAME,
                            ADDRESSTYPE,
                            LINE1,
                            CITY,
                            STATE,
                            ZIP,
                            ZIP4,
                            COUNTY,
                            TITLE,
                            COMPANY,
                            WEBSITE,
                            SALES,
                            EMPLOYMENT,
                            NAICS,
                            AGE,
                            DONOR,
                            HOMEOWNER,
                            MARITAL,
                            DWELLING,
                            LENGTHOFRESIDENCE,
                            CHILDRENINDICATOR,
                            INCOME,
                            NEWPROSPECT,
                            DONOTCALL,
                            METROPOLITANSTATISTICALAREA,
                            CONTRIBUTOR,
                            POLITICALAFFILIATION,
                            RELIGIOUSAFFILIATION,
                            ETHNIC,
                            CHANGEDBYID,
                            ADDEDBYID,
                            DATEADDED,
                            DATECHANGED,
                            CONFIRMED,
                            CONFIRMEDBYAPPUSERID,
                            DATECONFIRMED,
                            REJECTED,
                            REJECTEDBYAPPUSERID,
                            DATEREJECTED,
                            RECURSIVEMATCH
                        ) values (
                            @ID,
                            @WEALTHID,
                            coalesce(@SOURCE, ''),
                            coalesce(@LSID, 0),
                            coalesce(@REVISION, 0),
                            coalesce(@ORIGINALID, 0),
                            coalesce(@NEWROW, 0),
                            coalesce(@FULLHASH, ''),
                            coalesce(@PARTIALHASH, ''),
                            coalesce(@MC, ''),
                            coalesce(@PHONE, ''),
                            coalesce(@GENDERCODE, 0),
                            coalesce(@MULTIMILLN, ''),
                            coalesce(@WEALTHIND, ''),
                            coalesce(@RPASSETS, 0),
                            coalesce(@FULLNAME, ''),
                            coalesce(@ADDRESSTYPE, ''),
                            coalesce(@LINE1, ''),
                            coalesce(@CITY, ''),
                            coalesce(@STATE, ''),
                            coalesce(@ZIP, ''),
                            coalesce(@ZIP4, ''),
                            coalesce(@COUNTY, ''),
                            coalesce(@TITLE, ''),
                            coalesce(@COMPANY, ''),
                            coalesce(@WEBSITE, ''),
                            coalesce(@SALES, 0),
                            coalesce(@EMPLOYMENT, 0),
                            coalesce(@NAICS, ''),
                            coalesce(@AGE, ''),
                            coalesce(@DONOR, ''),
                            coalesce(@HOMEOWNER, ''),
                            coalesce(@MARITAL, ''),
                            coalesce(@DWELLING, ''),
                            coalesce(@LENGTHOFRESIDENCE, ''),
                            coalesce(@CHILDRENINDICATOR, ''),
                            coalesce(@INCOME, ''),
                            coalesce(@NEWPROSPECT, ''),
                            coalesce(@DONOTCALL, ''),
                            coalesce(@METROPOLITANSTATISTICALAREA, ''),
                            coalesce(@CONTRIBUTOR, ''),
                            coalesce(@POLITICALAFFILIATION, ''),
                            coalesce(@RELIGIOUSAFFILIATION, ''),
                            coalesce(@ETHNIC, ''),
                            @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;