USP_MERGETWOCONSTITUENTS_BIOGRAPHICALDEMOGRAPHIC

Parameters

Parameter Parameter Type Mode Description
@SOURCEID uniqueidentifier IN
@TARGETID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_MERGETWOCONSTITUENTS_BIOGRAPHICALDEMOGRAPHIC
            (
                @SOURCEID uniqueidentifier,
                @TARGETID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null
            )
            as
            begin
                set nocount on;

                declare @CURRENTDATE datetime = getdate();

                -- If Source and Target match on hash code and Source is Rejected/Confirmed, but Target is not Rejected/Confirmed, update the Target record values with Source record values. Notes will always be appended.

                update TARGETBIOGRAPHICALDEMOGRAPHIC
                set
                    [CONFIRMED] = SOURCEBIOGRAPHICALDEMOGRAPHIC.CONFIRMED
                    ,[DATECONFIRMED] = SOURCEBIOGRAPHICALDEMOGRAPHIC.DATECONFIRMED
                    ,[CONFIRMEDBYAPPUSERID] = SOURCEBIOGRAPHICALDEMOGRAPHIC.CONFIRMEDBYAPPUSERID
                    ,[REJECTED] = SOURCEBIOGRAPHICALDEMOGRAPHIC.REJECTED
                    ,[DATEREJECTED] = SOURCEBIOGRAPHICALDEMOGRAPHIC.DATEREJECTED
                    ,[REJECTEDBYAPPUSERID] = SOURCEBIOGRAPHICALDEMOGRAPHIC.REJECTEDBYAPPUSERID
                    ,[SOURCE] = SOURCEBIOGRAPHICALDEMOGRAPHIC.SOURCE
                    ,[FULLHASH] = SOURCEBIOGRAPHICALDEMOGRAPHIC.FULLHASH
                    ,[PARTIALHASH] = SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH
                    ,[MC] = SOURCEBIOGRAPHICALDEMOGRAPHIC.MC
                    ,[FULLNAME] = SOURCEBIOGRAPHICALDEMOGRAPHIC.FULLNAME
                    ,[FIRSTNAME] = SOURCEBIOGRAPHICALDEMOGRAPHIC.FIRSTNAME
                    ,[MIDDLENAME] = SOURCEBIOGRAPHICALDEMOGRAPHIC.MIDDLENAME
                    ,[LASTNAME] = SOURCEBIOGRAPHICALDEMOGRAPHIC.LASTNAME
                    ,[SUFFIXCODEID] = SOURCEBIOGRAPHICALDEMOGRAPHIC.SUFFIXCODEID
                    ,[VIEWED] = SOURCEBIOGRAPHICALDEMOGRAPHIC.VIEWED
                    ,[CNOTES] = case SOURCEBIOGRAPHICALDEMOGRAPHIC.CNOTES when '' then TARGETBIOGRAPHICALDEMOGRAPHIC.CNOTES else TARGETBIOGRAPHICALDEMOGRAPHIC.CNOTES + (case when TARGETBIOGRAPHICALDEMOGRAPHIC.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEBIOGRAPHICALDEMOGRAPHIC.CNOTES end
                    ,[BIRTHDATE] = SOURCEBIOGRAPHICALDEMOGRAPHIC.BIRTHDATE
                    ,[OCCUPATION] = SOURCEBIOGRAPHICALDEMOGRAPHIC.OCCUPATION
                    ,[MARITALSTATUSCODEID] = SOURCEBIOGRAPHICALDEMOGRAPHIC.MARITALSTATUSCODEID
                    ,[HOUSEHOLD_MOSAIC] = SOURCEBIOGRAPHICALDEMOGRAPHIC.HOUSEHOLD_MOSAIC
                    ,[DISCRETIONARY_SPEND] = SOURCEBIOGRAPHICALDEMOGRAPHIC.DISCRETIONARY_SPEND
                    ,[CHANGEDBYID] = @CHANGEAGENTID
                    ,[DATECHANGED] = @CURRENTDATE
                    ,[HOUSEHOLD_INCOMECODEID] = SOURCEBIOGRAPHICALDEMOGRAPHIC.HOUSEHOLD_INCOMECODEID
                    ,[TITLECODEID] = SOURCEBIOGRAPHICALDEMOGRAPHIC.TITLECODEID
                from dbo.WPBIOGRAPHICALDEMOGRAPHIC TARGETBIOGRAPHICALDEMOGRAPHIC
                inner join dbo.WPBIOGRAPHICALDEMOGRAPHIC SOURCEBIOGRAPHICALDEMOGRAPHIC ON SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH = TARGETBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH
                where SOURCEBIOGRAPHICALDEMOGRAPHIC.WEALTHID = @SOURCEID
                    and TARGETBIOGRAPHICALDEMOGRAPHIC.WEALTHID = @TARGETID
                    and not (TARGETBIOGRAPHICALDEMOGRAPHIC.CONFIRMED = 1 or TARGETBIOGRAPHICALDEMOGRAPHIC.REJECTED = 1)
                    and (SOURCEBIOGRAPHICALDEMOGRAPHIC.CONFIRMED = 1 or SOURCEBIOGRAPHICALDEMOGRAPHIC.REJECTED = 1)
                    and SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH <> ''

                -- For all other cases when Source and Target match on hash codes, only notes will be appended.

                update TARGETBIOGRAPHICALDEMOGRAPHIC
                set
                    [CNOTES] = TARGETBIOGRAPHICALDEMOGRAPHIC.CNOTES + (case when TARGETBIOGRAPHICALDEMOGRAPHIC.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEBIOGRAPHICALDEMOGRAPHIC.CNOTES
                    ,[CHANGEDBYID] = @CHANGEAGENTID
                    ,[DATECHANGED] = @CURRENTDATE
                from dbo.WPBIOGRAPHICALDEMOGRAPHIC TARGETBIOGRAPHICALDEMOGRAPHIC
                inner join dbo.WPBIOGRAPHICALDEMOGRAPHIC SOURCEBIOGRAPHICALDEMOGRAPHIC ON SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH = TARGETBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH
                where SOURCEBIOGRAPHICALDEMOGRAPHIC.WEALTHID = @SOURCEID
                    and TARGETBIOGRAPHICALDEMOGRAPHIC.WEALTHID = @TARGETID
                    and ((TARGETBIOGRAPHICALDEMOGRAPHIC.CONFIRMED = 1 or TARGETBIOGRAPHICALDEMOGRAPHIC.REJECTED = 1)
                        or (SOURCEBIOGRAPHICALDEMOGRAPHIC.CONFIRMED = 0 and SOURCEBIOGRAPHICALDEMOGRAPHIC.REJECTED = 0))
                    and SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH <> ''
                    and SOURCEBIOGRAPHICALDEMOGRAPHIC.CNOTES <> ''

                -- If unique record in Source that came from wealth screening (will have hash code), move it to Target.

                update SOURCEBIOGRAPHICALDEMOGRAPHIC
                set
                    [WEALTHID] = @TARGETID,
                    [CHANGEDBYID] = @CHANGEAGENTID,
                    [DATECHANGED] = @CURRENTDATE
                from dbo.WPBIOGRAPHICALDEMOGRAPHIC SOURCEBIOGRAPHICALDEMOGRAPHIC
                left join dbo.WPBIOGRAPHICALDEMOGRAPHIC TARGETBIOGRAPHICALDEMOGRAPHIC ON TARGETBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH = SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH and TARGETBIOGRAPHICALDEMOGRAPHIC.WEALTHID = @TARGETID
                where SOURCEBIOGRAPHICALDEMOGRAPHIC.WEALTHID = @SOURCEID
                    and (SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH is not null and SOURCEBIOGRAPHICALDEMOGRAPHIC.PARTIALHASH <> '')
                    and TARGETBIOGRAPHICALDEMOGRAPHIC.ID is null

                -- If unique record in Source which is entered manually, move it to Target.

                update dbo.WPBIOGRAPHICALDEMOGRAPHIC
                set
                    [WEALTHID] = @TARGETID,
                    [CHANGEDBYID] = @CHANGEAGENTID,
                    [DATECHANGED] = @CURRENTDATE
                where WEALTHID = @SOURCEID
                    and (PARTIALHASH is null or PARTIALHASH = '')
            end