USP_MERGETWOCONSTITUENTS_POLITICALDONATION

Parameters

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

Definition

Copy


            create procedure dbo.USP_MERGETWOCONSTITUENTS_POLITICALDONATION
            (
                @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 TARGETPOLITICALDONATION
                set
                    [CONFIRMED] = SOURCEPOLITICALDONATION.CONFIRMED
                    ,[DATECONFIRMED] = SOURCEPOLITICALDONATION.DATECONFIRMED
                    ,[CONFIRMEDBYAPPUSERID] = SOURCEPOLITICALDONATION.CONFIRMEDBYAPPUSERID
                    ,[REJECTED] = SOURCEPOLITICALDONATION.REJECTED
                    ,[DATEREJECTED] = SOURCEPOLITICALDONATION.DATEREJECTED
                    ,[REJECTEDBYAPPUSERID] = SOURCEPOLITICALDONATION.REJECTEDBYAPPUSERID
                    ,[SOURCE] = SOURCEPOLITICALDONATION.SOURCE
                    ,[FECID] = SOURCEPOLITICALDONATION.FECID
                    ,[REVISION] = SOURCEPOLITICALDONATION.REVISION
                    ,[ORIGINALID] = SOURCEPOLITICALDONATION.ORIGINALID
                    ,[NEWROW] = SOURCEPOLITICALDONATION.NEWROW
                    ,[CDATE] = SOURCEPOLITICALDONATION.CDATE
                    ,[CVALUE] = SOURCEPOLITICALDONATION.CVALUE
                    ,[CNOTES] = case SOURCEPOLITICALDONATION.CNOTES when '' then TARGETPOLITICALDONATION.CNOTES else TARGETPOLITICALDONATION.CNOTES + (case when TARGETPOLITICALDONATION.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEPOLITICALDONATION.CNOTES end
                    ,[FULLHASH] = SOURCEPOLITICALDONATION.FULLHASH
                    ,[PARTIALHASH] = SOURCEPOLITICALDONATION.PARTIALHASH
                    ,[MC] = SOURCEPOLITICALDONATION.MC
                    ,[FULLNAME] = SOURCEPOLITICALDONATION.FULLNAME
                    ,[TRANSACTIONDATE] = SOURCEPOLITICALDONATION.TRANSACTIONDATE
                    ,[DN_ORGANIZATIONNAME] = SOURCEPOLITICALDONATION.DN_ORGANIZATIONNAME
                    ,[AMOUNT] = SOURCEPOLITICALDONATION.AMOUNT
                    ,[OCCUPATION] = SOURCEPOLITICALDONATION.OCCUPATION
                    ,[CITY] = SOURCEPOLITICALDONATION.CITY
                    ,[STATE] = SOURCEPOLITICALDONATION.STATE
                    ,[ZIP] = SOURCEPOLITICALDONATION.ZIP
                    ,[VIEWED] = SOURCEPOLITICALDONATION.VIEWED
                    ,[CHANGEDBYID] = @CHANGEAGENTID
                    ,[DATECHANGED] = @CURRENTDATE
                    ,[RECURSIVEMATCH] = SOURCEPOLITICALDONATION.RECURSIVEMATCH
                from dbo.WPPOLITICALDONATION TARGETPOLITICALDONATION
                inner join dbo.WPPOLITICALDONATION SOURCEPOLITICALDONATION ON SOURCEPOLITICALDONATION.PARTIALHASH = TARGETPOLITICALDONATION.PARTIALHASH
                where SOURCEPOLITICALDONATION.WEALTHID = @SOURCEID
                    and TARGETPOLITICALDONATION.WEALTHID = @TARGETID
                    and not (TARGETPOLITICALDONATION.CONFIRMED = 1 or TARGETPOLITICALDONATION.REJECTED = 1)
                    and (SOURCEPOLITICALDONATION.CONFIRMED = 1 or SOURCEPOLITICALDONATION.REJECTED = 1)
                    and SOURCEPOLITICALDONATION.PARTIALHASH <> ''

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

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

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

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

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

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

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