USP_MERGETWOCONSTITUENTS_BIOGRAPHICAL

Parameters

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

Definition

Copy


            create procedure dbo.USP_MERGETWOCONSTITUENTS_BIOGRAPHICAL
            (
                @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 TARGETBIOGRAPHICAL
                set
                    [CONFIRMED] = SOURCEBIOGRAPHICAL.CONFIRMED
                    ,[DATECONFIRMED] = SOURCEBIOGRAPHICAL.DATECONFIRMED
                    ,[CONFIRMEDBYAPPUSERID] = SOURCEBIOGRAPHICAL.CONFIRMEDBYAPPUSERID
                    ,[REJECTED] = SOURCEBIOGRAPHICAL.REJECTED
                    ,[DATEREJECTED] = SOURCEBIOGRAPHICAL.DATEREJECTED
                    ,[REJECTEDBYAPPUSERID] = SOURCEBIOGRAPHICAL.REJECTEDBYAPPUSERID
                    ,[SOURCE] = SOURCEBIOGRAPHICAL.SOURCE
                    ,[WWID] = SOURCEBIOGRAPHICAL.WWID
                    ,[REVISION] = SOURCEBIOGRAPHICAL.REVISION
                    ,[ORIGINALID] = SOURCEBIOGRAPHICAL.ORIGINALID
                    ,[NEWROW] = SOURCEBIOGRAPHICAL.NEWROW
                    ,[FULLHASH] = SOURCEBIOGRAPHICAL.FULLHASH
                    ,[PARTIALHASH] = SOURCEBIOGRAPHICAL.PARTIALHASH
                    ,[MC] = SOURCEBIOGRAPHICAL.MC
                    ,[FULLNAME] = SOURCEBIOGRAPHICAL.FULLNAME
                    ,[LINE1] = SOURCEBIOGRAPHICAL.LINE1
                    ,[CITY] = SOURCEBIOGRAPHICAL.CITY
                    ,[STATE] = SOURCEBIOGRAPHICAL.STATE
                    ,[ZIP] = SOURCEBIOGRAPHICAL.ZIP
                    ,[A2LINE1] = SOURCEBIOGRAPHICAL.A2LINE1
                    ,[A2CITY] = SOURCEBIOGRAPHICAL.A2CITY
                    ,[A2STATE] = SOURCEBIOGRAPHICAL.A2STATE
                    ,[A2ZIP] = SOURCEBIOGRAPHICAL.A2ZIP
                    ,[GENDERCODE] = SOURCEBIOGRAPHICAL.GENDERCODE
                    ,[BIRTHDATE] = SOURCEBIOGRAPHICAL.BIRTHDATE
                    ,[CNOTES] = case SOURCEBIOGRAPHICAL.CNOTES when '' then TARGETBIOGRAPHICAL.CNOTES else TARGETBIOGRAPHICAL.CNOTES + (case when TARGETBIOGRAPHICAL.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEBIOGRAPHICAL.CNOTES end
                    ,[BIRTHPLACE] = SOURCEBIOGRAPHICAL.BIRTHPLACE
                    ,[DECEASEDDATE] = SOURCEBIOGRAPHICAL.DECEASEDDATE
                    ,[OCCUPATION] = SOURCEBIOGRAPHICAL.OCCUPATION
                    ,[EDUCATION] = SOURCEBIOGRAPHICAL.EDUCATION
                    ,[FAMILY] = SOURCEBIOGRAPHICAL.FAMILY
                    ,[POSITIONSHELD] = SOURCEBIOGRAPHICAL.POSITIONSHELD
                    ,[CERTIFICATIONS] = SOURCEBIOGRAPHICAL.CERTIFICATIONS
                    ,[CAREER] = SOURCEBIOGRAPHICAL.CAREER
                    ,[AWARDS] = SOURCEBIOGRAPHICAL.AWARDS
                    ,[MEMBERSHIPS] = SOURCEBIOGRAPHICAL.MEMBERSHIPS
                    ,[RESEARCHINTERESTS] = SOURCEBIOGRAPHICAL.RESEARCHINTERESTS
                    ,[POLITICALRELIGIOUSAFFILIATIONS] = SOURCEBIOGRAPHICAL.POLITICALRELIGIOUSAFFILIATIONS
                    ,[CIVICMILITARYSERVICE] = SOURCEBIOGRAPHICAL.CIVICMILITARYSERVICE
                    ,[THOUGHTSONLIFE] = SOURCEBIOGRAPHICAL.THOUGHTSONLIFE
                    ,[LAW] = SOURCEBIOGRAPHICAL.LAW
                    ,[PERSONAL] = SOURCEBIOGRAPHICAL.PERSONAL
                    ,[VIEWED] = SOURCEBIOGRAPHICAL.VIEWED
                    ,[CHANGEDBYID] = @CHANGEAGENTID
                    ,[DATECHANGED] = @CURRENTDATE
                    ,[RECURSIVEMATCH] = SOURCEBIOGRAPHICAL.RECURSIVEMATCH
                from dbo.WPBIOGRAPHICAL TARGETBIOGRAPHICAL
                inner join dbo.WPBIOGRAPHICAL SOURCEBIOGRAPHICAL ON SOURCEBIOGRAPHICAL.PARTIALHASH = TARGETBIOGRAPHICAL.PARTIALHASH
                where SOURCEBIOGRAPHICAL.WEALTHID = @SOURCEID
                    and TARGETBIOGRAPHICAL.WEALTHID = @TARGETID
                    and not (TARGETBIOGRAPHICAL.CONFIRMED = 1 or TARGETBIOGRAPHICAL.REJECTED = 1)
                    and (SOURCEBIOGRAPHICAL.CONFIRMED = 1 or SOURCEBIOGRAPHICAL.REJECTED = 1)
                    and SOURCEBIOGRAPHICAL.PARTIALHASH <> ''

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

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

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

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

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

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

                exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_BIOGRAPHICAL @TARGETID, @CHANGEAGENTID;
                exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_BIOGRAPHICAL @SOURCEID, @CHANGEAGENTID;
            end