USP_WPBIOGRAPHICAL_ADD

Adds WealthPoint Biographical information for a prospect.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@WEALTHID uniqueidentifier IN
@SOURCE nvarchar(100) IN
@WWID int IN
@REVISION int IN
@ORIGINALID int IN
@NEWROW bit IN
@FULLHASH nvarchar(32) IN
@PARTIALHASH nvarchar(32) IN
@MC nvarchar(3) IN
@FULLNAME nvarchar(100) IN
@LINE1 nvarchar(4000) IN
@CITY nvarchar(4000) IN
@STATE nvarchar(4000) IN
@ZIP nvarchar(50) IN
@A2LINE1 nvarchar(4000) IN
@A2CITY nvarchar(4000) IN
@A2STATE nvarchar(4000) IN
@A2ZIP nvarchar(50) IN
@GENDERCODE tinyint IN
@BIRTHDATE datetime IN
@BIRTHPLACE nvarchar(120) IN
@DECEASEDDATE UDT_FUZZYDATE IN
@OCCUPATION nvarchar(4000) IN
@EDUCATION nvarchar(max) IN
@FAMILY nvarchar(max) IN
@POSITIONSHELD nvarchar(max) IN
@CERTIFICATIONS nvarchar(max) IN
@CAREER nvarchar(max) IN
@AWARDS nvarchar(max) IN
@MEMBERSHIPS nvarchar(max) IN
@RESEARCHINTERESTS nvarchar(max) IN
@POLITICALRELIGIOUSAFFILIATIONS nvarchar(max) IN
@CIVICMILITARYSERVICE nvarchar(max) IN
@THOUGHTSONLIFE nvarchar(max) IN
@LAW nvarchar(max) IN
@PERSONAL nvarchar(max) IN
@CURRENTAPPUSERID uniqueidentifier IN
@RECURSIVEMATCH bit IN

Definition

Copy


            CREATE procedure dbo.USP_WPBIOGRAPHICAL_ADD (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @WEALTHID uniqueidentifier,
                @SOURCE nvarchar(100),
                @WWID int = 0,
                @REVISION int = 0,
                @ORIGINALID int = 0,
                @NEWROW bit = 0,
                @FULLHASH nvarchar(32) = '',
                @PARTIALHASH nvarchar(32) = '',
                @MC nvarchar(3) = '',
                @FULLNAME nvarchar(100) = '',
                @LINE1 nvarchar(4000) = '',
                @CITY nvarchar(4000) = '',
                @STATE nvarchar(4000) = '',
                @ZIP nvarchar(50) = '',
                @A2LINE1 nvarchar(4000) = '',
                @A2CITY nvarchar(4000) = '',
                @A2STATE nvarchar(4000) = '',
                @A2ZIP nvarchar(50) = '',
                @GENDERCODE tinyint = 0,
                @BIRTHDATE datetime = null,
                @BIRTHPLACE nvarchar(120) = '',
                @DECEASEDDATE dbo.UDT_FUZZYDATE = '00000000',
                @OCCUPATION nvarchar(4000) = '',
                @EDUCATION nvarchar(max) = '',
                @FAMILY nvarchar(max) = '',
                @POSITIONSHELD nvarchar(max) = '',
                @CERTIFICATIONS nvarchar(max) = '',
                @CAREER nvarchar(max) = '',
                @AWARDS nvarchar(max) = '',
                @MEMBERSHIPS nvarchar(max) = '',
                @RESEARCHINTERESTS nvarchar(max) = '',
                @POLITICALRELIGIOUSAFFILIATIONS nvarchar(max) = '',
                @CIVICMILITARYSERVICE nvarchar(max) = '',
                @THOUGHTSONLIFE nvarchar(max) = '',
                @LAW nvarchar(max) = '',
                @PERSONAL nvarchar(max) = '',
                @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 @NEWRECORD bit;
                    declare @UPDATEDRECORD bit;
                    declare @CURRENTDATE datetime;

                    set @NEWRECORD = 0;
                    set @UPDATEDRECORD = 0;
                    set @CURRENTDATE = getdate();

                    --Get any existing ID

                    select 
                        @ID = ID 
                    from 
                        dbo.WPBIOGRAPHICAL
                    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.WPBIOGRAPHICAL where WEALTHID=@WEALTHID and FULLHASH=@FULLHASH
                        begin
                            --Record exists but needs to be updated

                            set @UPDATEDRECORD = 1

                            update
                                dbo.WPBIOGRAPHICAL
                            set
                                MC = coalesce(nullif(@MC, ''), MC),
                                RECURSIVEMATCH = @RECURSIVEMATCH,
                                FULLNAME = coalesce(nullif(@FULLNAME, ''), FULLNAME),
                                LINE1 = coalesce(nullif(@LINE1, ''), LINE1),
                                CITY = coalesce(nullif(@CITY, ''), CITY),
                                STATE = coalesce(nullif(@STATE, ''), STATE),
                                ZIP = coalesce(nullif(@ZIP, ''), ZIP),
                                A2LINE1 = coalesce(nullif(@A2LINE1, ''), A2LINE1),
                                A2CITY = coalesce(nullif(@A2CITY, ''), A2CITY),
                                A2STATE = coalesce(nullif(@A2STATE, ''), A2STATE),
                                A2ZIP = coalesce(nullif(@A2ZIP, ''), A2ZIP),
                                GENDERCODE = coalesce(nullif(@GENDERCODE, 0), GENDERCODE),
                                BIRTHDATE = coalesce(@BIRTHDATE, BIRTHDATE),
                                BIRTHPLACE = coalesce(nullif(@BIRTHPLACE, ''), BIRTHPLACE),
                                DECEASEDDATE = coalesce(nullif(@DECEASEDDATE, '00000000'), DECEASEDDATE),
                                OCCUPATION = coalesce(nullif(@OCCUPATION, ''), OCCUPATION),
                                EDUCATION = coalesce(nullif(@EDUCATION, ''), EDUCATION),
                                FAMILY = coalesce(nullif(@FAMILY, ''), FAMILY),
                                POSITIONSHELD = coalesce(nullif(@POSITIONSHELD, ''), POSITIONSHELD),
                                CERTIFICATIONS = coalesce(nullif(@CERTIFICATIONS, ''), CERTIFICATIONS),
                                CAREER = coalesce(nullif(@CAREER, ''), CAREER),
                                AWARDS = coalesce(nullif(@AWARDS, ''), AWARDS),
                                MEMBERSHIPS = coalesce(nullif(@MEMBERSHIPS, ''), MEMBERSHIPS),
                                RESEARCHINTERESTS = coalesce(nullif(@RESEARCHINTERESTS, ''), RESEARCHINTERESTS),
                                POLITICALRELIGIOUSAFFILIATIONS = coalesce(nullif(@POLITICALRELIGIOUSAFFILIATIONS, ''), POLITICALRELIGIOUSAFFILIATIONS),
                                CIVICMILITARYSERVICE = coalesce(nullif(@CIVICMILITARYSERVICE, ''), CIVICMILITARYSERVICE),
                                THOUGHTSONLIFE = coalesce(nullif(@THOUGHTSONLIFE, ''), THOUGHTSONLIFE),
                                LAW = coalesce(nullif(@LAW, ''), LAW),
                                PERSONAL = coalesce(nullif(@PERSONAL, ''), PERSONAL),
                                FULLHASH = @FULLHASH,
                                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

                        set @NEWRECORD = 1

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

                        insert into dbo.WPBIOGRAPHICAL (
                            ID,
                            WEALTHID,
                            SOURCE,
                            WWID,
                            REVISION,
                            ORIGINALID,
                            NEWROW,
                            FULLHASH,
                            PARTIALHASH,
                            MC,
                            FULLNAME,
                            LINE1,
                            CITY,
                            STATE,
                            ZIP,
                            A2LINE1,
                            A2CITY,
                            A2STATE,
                            A2ZIP,
                            GENDERCODE,
                            BIRTHDATE,
                            BIRTHPLACE,
                            DECEASEDDATE,
                            OCCUPATION,
                            EDUCATION,
                            FAMILY,
                            POSITIONSHELD,
                            CERTIFICATIONS,
                            CAREER,
                            AWARDS,
                            MEMBERSHIPS,
                            RESEARCHINTERESTS,
                            POLITICALRELIGIOUSAFFILIATIONS,
                            CIVICMILITARYSERVICE,
                            THOUGHTSONLIFE,
                            LAW,
                            PERSONAL,
                            CHANGEDBYID,
                            ADDEDBYID,
                            DATEADDED,
                            DATECHANGED,
                            CONFIRMED,
                            CONFIRMEDBYAPPUSERID,
                            DATECONFIRMED,
                            REJECTED,
                            REJECTEDBYAPPUSERID,
                            DATEREJECTED,
                            RECURSIVEMATCH
                        ) values (
                            @ID,
                            @WEALTHID,
                            coalesce(@SOURCE, ''),
                            coalesce(@WWID, 0),
                            coalesce(@REVISION, 0),
                            coalesce(@ORIGINALID, 0),
                            coalesce(@NEWROW, 0),
                            coalesce(@FULLHASH, ''),
                            coalesce(@PARTIALHASH, ''),
                            coalesce(@MC, ''),
                            coalesce(replace(@FULLNAME, char(182), char(10)), ''),
                            coalesce(replace(@LINE1, char(182), char(10)), ''),
                            coalesce(replace(@CITY, char(182), char(10)), ''),
                            coalesce(replace(@STATE, char(182), char(10)), ''),
                            coalesce(@ZIP, ''),
                            coalesce(replace(@A2LINE1, char(182), char(10)), ''),
                            coalesce(replace(@A2CITY, char(182), char(10)), ''),
                            coalesce(replace(@A2STATE, char(182), char(10)), ''),
                            coalesce(@A2ZIP, ''),
                            coalesce(@GENDERCODE, 0),
                            @BIRTHDATE,
                            coalesce(replace(@BIRTHPLACE, char(182), char(10)), ''),
                            coalesce(@DECEASEDDATE, '00000000'),
                            coalesce(replace(@OCCUPATION, char(182), char(10)), ''),
                            coalesce(replace(@EDUCATION, char(182), char(10)), ''),
                            coalesce(replace(@FAMILY, char(182), char(10)), ''),
                            coalesce(replace(@POSITIONSHELD, char(182), char(10)), ''),
                            coalesce(replace(@CERTIFICATIONS, char(182), char(10)), ''),
                            coalesce(replace(@CAREER, char(182), char(10)), ''),
                            coalesce(replace(@AWARDS, char(182), char(10)), ''),
                            coalesce(replace(@MEMBERSHIPS, char(182), char(10)), ''),
                            coalesce(replace(@RESEARCHINTERESTS, char(182), char(10)), ''),
                            coalesce(replace(@POLITICALRELIGIOUSAFFILIATIONS, char(182), char(10)), ''),
                            coalesce(replace(@CIVICMILITARYSERVICE, char(182), char(10)), ''),
                            coalesce(replace(@THOUGHTSONLIFE, char(182), char(10)), ''),
                            coalesce(replace(@LAW, char(182), char(10)), ''),
                            coalesce(replace(@PERSONAL, char(182), char(10)), ''),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE,
                            @CONFIRMED,
                            @CONFIRMEDBYAPPUSERID,
                            @DATECONFIRMED,
                            @REJECTED,
                            @REJECTEDBYAPPUSERID,
                            @DATEREJECTED,
                            @RECURSIVEMATCH
                        );
                    end

                    if @NEWRECORD = 1 or @UPDATEDRECORD = 1
                    begin
                        --Log record into the history table

                        insert into dbo.WPBIOGRAPHICALHISTORY (
                            WPBIOGRAPHICALID,
                            SOURCE,
                            FULLHASH,
                            PARTIALHASH,
                            FULLNAME,
                            LINE1,
                            CITY,
                            STATE,
                            ZIP,
                            A2LINE1,
                            A2CITY,
                            A2STATE,
                            A2ZIP,
                            GENDERCODE,
                            BIRTHDATE,
                            BIRTHPLACE,
                            DECEASEDDATE,
                            OCCUPATION,
                            EDUCATION,
                            FAMILY,
                            POSITIONSHELD,
                            CERTIFICATIONS,
                            CAREER,
                            AWARDS,
                            MEMBERSHIPS,
                            RESEARCHINTERESTS,
                            POLITICALRELIGIOUSAFFILIATIONS,
                            CIVICMILITARYSERVICE,
                            THOUGHTSONLIFE,
                            LAW,
                            PERSONAL,
                            CHANGEDBYID,
                            ADDEDBYID,
                            DATEADDED,
                            DATECHANGED
                        ) values (
                            @ID,
                            coalesce(@SOURCE, ''),
                            coalesce(@FULLHASH, ''),
                            coalesce(@PARTIALHASH, ''),
                            coalesce(replace(@FULLNAME, char(182), char(10)), ''),
                            coalesce(replace(@LINE1, char(182), char(10)), ''),
                            coalesce(replace(@CITY, char(182), char(10)), ''),
                            coalesce(replace(@STATE, char(182), char(10)), ''),
                            coalesce(@ZIP, ''),
                            coalesce(replace(@A2LINE1, char(182), char(10)), ''),
                            coalesce(replace(@A2CITY, char(182), char(10)), ''),
                            coalesce(replace(@A2STATE, char(182), char(10)), ''),
                            coalesce(@A2ZIP, ''),
                            coalesce(@GENDERCODE, 0),
                            @BIRTHDATE,
                            coalesce(replace(@BIRTHPLACE, char(182), char(10)), ''),
                            coalesce(@DECEASEDDATE, '00000000'),
                            coalesce(replace(@OCCUPATION, char(182), char(10)), ''),
                            coalesce(replace(@EDUCATION, char(182), char(10)), ''),
                            coalesce(replace(@FAMILY, char(182), char(10)), ''),
                            coalesce(replace(@POSITIONSHELD, char(182), char(10)), ''),
                            coalesce(replace(@CERTIFICATIONS, char(182), char(10)), ''),
                            coalesce(replace(@CAREER, char(182), char(10)), ''),
                            coalesce(replace(@AWARDS, char(182), char(10)), ''),
                            coalesce(replace(@MEMBERSHIPS, char(182), char(10)), ''),
                            coalesce(replace(@RESEARCHINTERESTS, char(182), char(10)), ''),
                            coalesce(replace(@POLITICALRELIGIOUSAFFILIATIONS, char(182), char(10)), ''),
                            coalesce(replace(@CIVICMILITARYSERVICE, char(182), char(10)), ''),
                            coalesce(replace(@THOUGHTSONLIFE, char(182), char(10)), ''),
                            coalesce(replace(@LAW, char(182), char(10)), ''),
                            coalesce(replace(@PERSONAL, char(182), char(10)), ''),
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        );

                    end

                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                end catch

                return 0;
            end;