USP_WPBIOGRAPHICALDEMOGRAPHIC_ADD

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@WEALTHID uniqueidentifier IN
@SOURCE nvarchar(100) IN
@FULLHASH nvarchar(32) IN
@PARTIALHASH nvarchar(32) IN
@MC nvarchar(3) IN
@FULLNAME nvarchar(500) IN
@FIRSTNAME nvarchar(100) IN
@MIDDLENAME nvarchar(100) IN
@LASTNAME nvarchar(100) IN
@SUFFIXCODEID uniqueidentifier IN
@BIRTHDATE UDT_FUZZYDATE IN
@MARITALSTATUSCODEID uniqueidentifier IN
@OCCUPATION nvarchar(100) IN
@HOUSEHOLD_MOSAIC nvarchar(100) IN
@HOUSEHOLDINCOMEESTIMATECODEID uniqueidentifier IN
@DISCRETIONARY_SPEND money IN
@CNOTES nvarchar(1024) IN
@CURRENTAPPUSERID uniqueidentifier IN
@ORIGINALID int IN
@RECURSIVEMATCH bit IN
@TITLECODEID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_WPBIOGRAPHICALDEMOGRAPHIC_ADD (
                @ID uniqueidentifier = null output,
                @CHANGEAGENTID uniqueidentifier = null,
                @WEALTHID uniqueidentifier,
                @SOURCE nvarchar(100),
                @FULLHASH nvarchar(32) = '',
                @PARTIALHASH nvarchar(32) = '',
                @MC nvarchar(3) = '',
                @FULLNAME nvarchar(500) = '',
        @FIRSTNAME nvarchar(100) = '',
        @MIDDLENAME nvarchar(100) = '',
        @LASTNAME nvarchar(100) = '',
        @SUFFIXCODEID uniqueidentifier = null,
                @BIRTHDATE dbo.UDT_FUZZYDATE = '00000000',
        @MARITALSTATUSCODEID uniqueidentifier = null,
                @OCCUPATION nvarchar(100) = '',
        @HOUSEHOLD_MOSAIC nvarchar(100) = '',
        @HOUSEHOLDINCOMEESTIMATECODEID uniqueidentifier = null,
        @DISCRETIONARY_SPEND money = 0,
        @CNOTES nvarchar(1024) = '',
        @CURRENTAPPUSERID uniqueidentifier = null,
        @ORIGINALID integer = 0,
        @RECURSIVEMATCH bit = 0,
        @TITLECODEID uniqueidentifier = 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.WPBIOGRAPHICALDEMOGRAPHIC
                    where 
                        WEALTHID=@WEALTHID

                        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 @TITLECODEID = '00000000-0000-0000-0000-000000000000'
                          set @TITLECODEID = null;
                        if @SUFFIXCODEID = '00000000-0000-0000-0000-000000000000'
                          set @SUFFIXCODEID = null;
                        if @MARITALSTATUSCODEID = '00000000-0000-0000-0000-000000000000'
                          set @MARITALSTATUSCODEID = null;
                        if @HOUSEHOLDINCOMEESTIMATECODEID = '00000000-0000-0000-0000-000000000000'
                          set @HOUSEHOLDINCOMEESTIMATECODEID = null;

                        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


                              update
                                  dbo.WPBIOGRAPHICALDEMOGRAPHIC
                              set
                                SOURCE = coalesce(nullif(@SOURCE, ''), SOURCE),
                                FULLHASH = coalesce(@FULLHASH, ''),
                                PARTIALHASH = coalesce(@PARTIALHASH, ''),
                                MC = coalesce(@MC, ''),
                                FULLNAME = coalesce(@FULLNAME, ''),
                                FIRSTNAME = coalesce(@FIRSTNAME, ''),
                                MIDDLENAME = coalesce(@MIDDLENAME, ''),
                                LASTNAME = coalesce(@LASTNAME, ''),
                                SUFFIXCODEID = @SUFFIXCODEID,
                                TITLECODEID = @TITLECODEID,
                                BIRTHDATE = coalesce(@BIRTHDATE, '00000000'),
                                OCCUPATION = coalesce(@OCCUPATION, ''),
                                MARITALSTATUSCODEID = @MARITALSTATUSCODEID,
                                HOUSEHOLD_MOSAIC = coalesce(@HOUSEHOLD_MOSAIC, ''),
                                HOUSEHOLD_INCOMECODEID = @HOUSEHOLDINCOMEESTIMATECODEID,
                                DISCRETIONARY_SPEND = coalesce(@DISCRETIONARY_SPEND, 0),
                                CNOTES = coalesce(nullif(@CNOTES, ''), CNOTES),
                                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,
                                VIEWED = 0
                              where
                                @ID = ID

                          end
                        end
                        else
                        begin
                          set @ID = newid();

                          insert into dbo.WPBIOGRAPHICALDEMOGRAPHIC (
                              ID,
                              WEALTHID,
                              SOURCE,
                              FULLHASH,
                              PARTIALHASH,
                              MC,
                              FULLNAME,
                              FIRSTNAME,
                              MIDDLENAME,
                              LASTNAME,
                              SUFFIXCODEID,
                              BIRTHDATE,
                              OCCUPATION,
                              MARITALSTATUSCODEID,
                              HOUSEHOLD_MOSAIC,
                              HOUSEHOLD_INCOMECODEID,
                              DISCRETIONARY_SPEND,
                              CNOTES,
                              CHANGEDBYID,
                              ADDEDBYID,
                              DATEADDED,
                              DATECHANGED,
                              CONFIRMED,
                              CONFIRMEDBYAPPUSERID,
                              DATECONFIRMED,
                              REJECTED,
                              REJECTEDBYAPPUSERID,
                              DATEREJECTED,
                              TITLECODEID
                          ) values (
                              @ID,
                              @WEALTHID,
                              coalesce(@SOURCE, ''),
                              coalesce(@FULLHASH, ''),
                              coalesce(@PARTIALHASH, ''),
                              coalesce(@MC, ''),
                              coalesce(@FULLNAME, ''),
                              coalesce(@FIRSTNAME, ''),
                              coalesce(@MIDDLENAME, ''),
                              coalesce(@LASTNAME, ''),
                              @SUFFIXCODEID,
                              coalesce(@BIRTHDATE, '00000000'),
                              coalesce(@OCCUPATION, ''),
                              @MARITALSTATUSCODEID,
                              coalesce(@HOUSEHOLD_MOSAIC, ''),
                              @HOUSEHOLDINCOMEESTIMATECODEID,
                              coalesce(@DISCRETIONARY_SPEND, 0),
                              coalesce(@CNOTES, ''),
                              @CHANGEAGENTID,
                              @CHANGEAGENTID,
                              @CURRENTDATE,
                              @CURRENTDATE,
                              @CONFIRMED,
                              @CONFIRMEDBYAPPUSERID,
                              @DATECONFIRMED,
                              @REJECTED,
                              @REJECTEDBYAPPUSERID,
                              @DATEREJECTED,
                              @TITLECODEID
                          );
                        end

                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                end catch

                return 0;
            end;