USP_MERGETWOCONSTITUENTS_PHILANTHROPICGIFT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEID | uniqueidentifier | IN | |
@TARGETID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_MERGETWOCONSTITUENTS_PHILANTHROPICGIFT
(
@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 TARGETPHILANTHROPICGIFT
set
[CONFIRMED] = SOURCEPHILANTHROPICGIFT.CONFIRMED
,[DATECONFIRMED] = SOURCEPHILANTHROPICGIFT.DATECONFIRMED
,[CONFIRMEDBYAPPUSERID] = SOURCEPHILANTHROPICGIFT.CONFIRMEDBYAPPUSERID
,[REJECTED] = SOURCEPHILANTHROPICGIFT.REJECTED
,[DATEREJECTED] = SOURCEPHILANTHROPICGIFT.DATEREJECTED
,[REJECTEDBYAPPUSERID] = SOURCEPHILANTHROPICGIFT.REJECTEDBYAPPUSERID
,[SOURCE] = SOURCEPHILANTHROPICGIFT.SOURCE
,[WMID] = SOURCEPHILANTHROPICGIFT.WMID
,[REVISION] = SOURCEPHILANTHROPICGIFT.REVISION
,[ORIGINALID] = SOURCEPHILANTHROPICGIFT.ORIGINALID
,[NEWROW] = SOURCEPHILANTHROPICGIFT.NEWROW
,[CDATE] = SOURCEPHILANTHROPICGIFT.CDATE
,[CVALUE] = SOURCEPHILANTHROPICGIFT.CVALUE
,[CNOTES] = case SOURCEPHILANTHROPICGIFT.CNOTES when '' then TARGETPHILANTHROPICGIFT.CNOTES else TARGETPHILANTHROPICGIFT.CNOTES + (case when TARGETPHILANTHROPICGIFT.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEPHILANTHROPICGIFT.CNOTES end
,[FULLHASH] = SOURCEPHILANTHROPICGIFT.FULLHASH
,[PARTIALHASH] = SOURCEPHILANTHROPICGIFT.PARTIALHASH
,[MC] = SOURCEPHILANTHROPICGIFT.MC
,[ORGANIZATION] = SOURCEPHILANTHROPICGIFT.ORGANIZATION
,[LOCATION] = SOURCEPHILANTHROPICGIFT.LOCATION
,[GIFTYEAR] = SOURCEPHILANTHROPICGIFT.GIFTYEAR
,[GIFTRANGE] = SOURCEPHILANTHROPICGIFT.GIFTRANGE
,[TYPE] = SOURCEPHILANTHROPICGIFT.TYPE
,[CATEGORY] = SOURCEPHILANTHROPICGIFT.CATEGORY
,[LO] = SOURCEPHILANTHROPICGIFT.LO
,[HI] = SOURCEPHILANTHROPICGIFT.HI
,[NAME] = SOURCEPHILANTHROPICGIFT.NAME
,[ORGANIZATIONWEBADDRESS] = SOURCEPHILANTHROPICGIFT.ORGANIZATIONWEBADDRESS
,[SOURCEMATERIAL] = SOURCEPHILANTHROPICGIFT.SOURCEMATERIAL
,[GIFTYEARHI] = SOURCEPHILANTHROPICGIFT.GIFTYEARHI
,[GIFTYEARLO] = SOURCEPHILANTHROPICGIFT.GIFTYEARLO
,[TYPECODE] = SOURCEPHILANTHROPICGIFT.TYPECODE
,[EIN] = SOURCEPHILANTHROPICGIFT.EIN
,[VIEWED] = SOURCEPHILANTHROPICGIFT.VIEWED
,[CHANGEDBYID] = @CHANGEAGENTID
,[DATECHANGED] = @CURRENTDATE
,[RECURSIVEMATCH] = SOURCEPHILANTHROPICGIFT.RECURSIVEMATCH
,[MATCHHASH] = SOURCEPHILANTHROPICGIFT.MATCHHASH
,[PHILANTHROPICGIFTID] = SOURCEPHILANTHROPICGIFT.PHILANTHROPICGIFTID
,[HOUSEHOLDID] = SOURCEPHILANTHROPICGIFT.HOUSEHOLDID
,[TASCORE] = SOURCEPHILANTHROPICGIFT.TASCORE
,[MATCHADDRESS] = SOURCEPHILANTHROPICGIFT.MATCHADDRESS
,[MATCHCITY] = SOURCEPHILANTHROPICGIFT.MATCHCITY
,[MATCHSTATE] = SOURCEPHILANTHROPICGIFT.MATCHSTATE
,[MATCHZIP] = SOURCEPHILANTHROPICGIFT.MATCHZIP
from dbo.WPPHILANTHROPICGIFT TARGETPHILANTHROPICGIFT
inner join dbo.WPPHILANTHROPICGIFT SOURCEPHILANTHROPICGIFT ON SOURCEPHILANTHROPICGIFT.PARTIALHASH = TARGETPHILANTHROPICGIFT.PARTIALHASH
where SOURCEPHILANTHROPICGIFT.WEALTHID = @SOURCEID
and TARGETPHILANTHROPICGIFT.WEALTHID = @TARGETID
and not (TARGETPHILANTHROPICGIFT.CONFIRMED = 1 or TARGETPHILANTHROPICGIFT.REJECTED = 1)
and (SOURCEPHILANTHROPICGIFT.CONFIRMED = 1 or SOURCEPHILANTHROPICGIFT.REJECTED = 1)
and SOURCEPHILANTHROPICGIFT.PARTIALHASH <> ''
-- For all other cases when Source and Target match on hash codes, only notes will be appended.
update TARGETPHILANTHROPICGIFT
set
[CNOTES] = TARGETPHILANTHROPICGIFT.CNOTES + (case when TARGETPHILANTHROPICGIFT.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEPHILANTHROPICGIFT.CNOTES
,[CHANGEDBYID] = @CHANGEAGENTID
,[DATECHANGED] = @CURRENTDATE
from dbo.WPPHILANTHROPICGIFT TARGETPHILANTHROPICGIFT
inner join dbo.WPPHILANTHROPICGIFT SOURCEPHILANTHROPICGIFT ON SOURCEPHILANTHROPICGIFT.PARTIALHASH = TARGETPHILANTHROPICGIFT.PARTIALHASH
where SOURCEPHILANTHROPICGIFT.WEALTHID = @SOURCEID
and TARGETPHILANTHROPICGIFT.WEALTHID = @TARGETID
and ((TARGETPHILANTHROPICGIFT.CONFIRMED = 1 or TARGETPHILANTHROPICGIFT.REJECTED = 1)
or (SOURCEPHILANTHROPICGIFT.CONFIRMED = 0 and SOURCEPHILANTHROPICGIFT.REJECTED = 0))
and SOURCEPHILANTHROPICGIFT.PARTIALHASH <> ''
and SOURCEPHILANTHROPICGIFT.CNOTES <> ''
-- If unique record in Source that came from wealth screening (will have hash code), move it to Target.
update SOURCEPHILANTHROPICGIFT
set
[WEALTHID] = @TARGETID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
from dbo.WPPHILANTHROPICGIFT SOURCEPHILANTHROPICGIFT
left join dbo.WPPHILANTHROPICGIFT TARGETPHILANTHROPICGIFT ON TARGETPHILANTHROPICGIFT.PARTIALHASH = SOURCEPHILANTHROPICGIFT.PARTIALHASH and TARGETPHILANTHROPICGIFT.WEALTHID = @TARGETID
where SOURCEPHILANTHROPICGIFT.WEALTHID = @SOURCEID
and (SOURCEPHILANTHROPICGIFT.PARTIALHASH is not null and SOURCEPHILANTHROPICGIFT.PARTIALHASH <> '')
and TARGETPHILANTHROPICGIFT.ID is null
-- If unique record in Source which is entered manually, move it to Target.
update dbo.WPPHILANTHROPICGIFT
set
[WEALTHID] = @TARGETID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where WEALTHID = @SOURCEID
and (PARTIALHASH is null or PARTIALHASH = '')
exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_PHILANTHROPICGIFT @TARGETID, @CHANGEAGENTID;
exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_PHILANTHROPICGIFT @SOURCEID, @CHANGEAGENTID;
end