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