USP_MERGETWOCONSTITUENTS_INCOMECOMPENSATION
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEID | uniqueidentifier | IN | |
@TARGETID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_MERGETWOCONSTITUENTS_INCOMECOMPENSATION
(
@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 TARGETINCOMECOMPENSATION
set
[CONFIRMED] = SOURCEINCOMECOMPENSATION.CONFIRMED
,[DATECONFIRMED] = SOURCEINCOMECOMPENSATION.DATECONFIRMED
,[CONFIRMEDBYAPPUSERID] = SOURCEINCOMECOMPENSATION.CONFIRMEDBYAPPUSERID
,[REJECTED] = SOURCEINCOMECOMPENSATION.REJECTED
,[DATEREJECTED] = SOURCEINCOMECOMPENSATION.DATEREJECTED
,[REJECTEDBYAPPUSERID] = SOURCEINCOMECOMPENSATION.REJECTEDBYAPPUSERID
,[SOURCE] = SOURCEINCOMECOMPENSATION.SOURCE
,[MGID] = SOURCEINCOMECOMPENSATION.MGID
,[REVISION] = SOURCEINCOMECOMPENSATION.REVISION
,[ORIGINALID] = SOURCEINCOMECOMPENSATION.ORIGINALID
,[NEWROW] = SOURCEINCOMECOMPENSATION.NEWROW
,[CDATE] = SOURCEINCOMECOMPENSATION.CDATE
,[CVALUE] = SOURCEINCOMECOMPENSATION.CVALUE
,[CNOTES] = case SOURCEINCOMECOMPENSATION.CNOTES when '' then TARGETINCOMECOMPENSATION.CNOTES else TARGETINCOMECOMPENSATION.CNOTES + (case when TARGETINCOMECOMPENSATION.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEINCOMECOMPENSATION.CNOTES end
,[FULLHASH] = SOURCEINCOMECOMPENSATION.FULLHASH
,[PARTIALHASH] = SOURCEINCOMECOMPENSATION.PARTIALHASH
,[MC] = SOURCEINCOMECOMPENSATION.MC
,[BB_FULLNAME] = SOURCEINCOMECOMPENSATION.BB_FULLNAME
,[COMPANY] = SOURCEINCOMECOMPENSATION.COMPANY
,[LONGTITLE] = SOURCEINCOMECOMPENSATION.LONGTITLE
,[TICKER] = SOURCEINCOMECOMPENSATION.TICKER
,[AGE] = SOURCEINCOMECOMPENSATION.AGE
,[BIOGRAPHY] = SOURCEINCOMECOMPENSATION.BIOGRAPHY
,[OFFICER_DIRECTORFLAG] = SOURCEINCOMECOMPENSATION.OFFICER_DIRECTORFLAG
,[OFFSTARTY] = SOURCEINCOMECOMPENSATION.OFFSTARTY
,[DIRSTARTY] = SOURCEINCOMECOMPENSATION.DIRSTARTY
,[LATESTCOMPENSATIONYEAR] = SOURCEINCOMECOMPENSATION.LATESTCOMPENSATIONYEAR
,[LATESTFISCALYEARSALARY] = SOURCEINCOMECOMPENSATION.LATESTFISCALYEARSALARY
,[LATESTFISCALYEARBONUS] = SOURCEINCOMECOMPENSATION.LATESTFISCALYEARBONUS
,[LATESTFISCALYEAROTHERSHORTTERMCOMPENSATION] = SOURCEINCOMECOMPENSATION.LATESTFISCALYEAROTHERSHORTTERMCOMPENSATION
,[VALUEOFOPTIONSEXERCISED] = SOURCEINCOMECOMPENSATION.VALUEOFOPTIONSEXERCISED
,[VALUEOFOPTIONSUNEXERCISED_EXERCISABLE] = SOURCEINCOMECOMPENSATION.VALUEOFOPTIONSUNEXERCISED_EXERCISABLE
,[VALUEOFOPTIONSUNEXERCISED_UNEXERCISABLE] = SOURCEINCOMECOMPENSATION.VALUEOFOPTIONSUNEXERCISED_UNEXERCISABLE
,[LATESTFISCALYEAROTHERLONGTERMCOMPENSATION] = SOURCEINCOMECOMPENSATION.LATESTFISCALYEAROTHERLONGTERMCOMPENSATION
,[VIEWED] = SOURCEINCOMECOMPENSATION.VIEWED
,[CHANGEDBYID] = @CHANGEAGENTID
,[DATECHANGED] = @CURRENTDATE
,[RECURSIVEMATCH] = SOURCEINCOMECOMPENSATION.RECURSIVEMATCH
,[HISTORICCODE] = SOURCEINCOMECOMPENSATION.HISTORICCODE
,[HISTORICSET] = SOURCEINCOMECOMPENSATION.HISTORICSET
from dbo.WPINCOMECOMPENSATION TARGETINCOMECOMPENSATION
inner join dbo.WPINCOMECOMPENSATION SOURCEINCOMECOMPENSATION ON SOURCEINCOMECOMPENSATION.PARTIALHASH = TARGETINCOMECOMPENSATION.PARTIALHASH
where SOURCEINCOMECOMPENSATION.WEALTHID = @SOURCEID
and TARGETINCOMECOMPENSATION.WEALTHID = @TARGETID
and not (TARGETINCOMECOMPENSATION.CONFIRMED = 1 or TARGETINCOMECOMPENSATION.REJECTED = 1)
and (SOURCEINCOMECOMPENSATION.CONFIRMED = 1 or SOURCEINCOMECOMPENSATION.REJECTED = 1)
and SOURCEINCOMECOMPENSATION.PARTIALHASH <> ''
-- For all other cases when Source and Target match on hash codes, only notes will be appended.
update TARGETINCOMECOMPENSATION
set
[CNOTES] = TARGETINCOMECOMPENSATION.CNOTES + (case when TARGETINCOMECOMPENSATION.CNOTES = '' then '' else (char(13) + char(10)) end) + SOURCEINCOMECOMPENSATION.CNOTES
,[CHANGEDBYID] = @CHANGEAGENTID
,[DATECHANGED] = @CURRENTDATE
from dbo.WPINCOMECOMPENSATION TARGETINCOMECOMPENSATION
inner join dbo.WPINCOMECOMPENSATION SOURCEINCOMECOMPENSATION ON SOURCEINCOMECOMPENSATION.PARTIALHASH = TARGETINCOMECOMPENSATION.PARTIALHASH
where SOURCEINCOMECOMPENSATION.WEALTHID = @SOURCEID
and TARGETINCOMECOMPENSATION.WEALTHID = @TARGETID
and ((TARGETINCOMECOMPENSATION.CONFIRMED = 1 or TARGETINCOMECOMPENSATION.REJECTED = 1)
or (SOURCEINCOMECOMPENSATION.CONFIRMED = 0 and SOURCEINCOMECOMPENSATION.REJECTED = 0))
and SOURCEINCOMECOMPENSATION.PARTIALHASH <> ''
and SOURCEINCOMECOMPENSATION.CNOTES <> ''
-- If unique record in Source that came from wealth screening (will have hash code), move it to Target.
update SOURCEINCOMECOMPENSATION
set
[WEALTHID] = @TARGETID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
from dbo.WPINCOMECOMPENSATION SOURCEINCOMECOMPENSATION
left join dbo.WPINCOMECOMPENSATION TARGETINCOMECOMPENSATION ON TARGETINCOMECOMPENSATION.PARTIALHASH = SOURCEINCOMECOMPENSATION.PARTIALHASH and TARGETINCOMECOMPENSATION.WEALTHID = @TARGETID
where SOURCEINCOMECOMPENSATION.WEALTHID = @SOURCEID
and (SOURCEINCOMECOMPENSATION.PARTIALHASH is not null and SOURCEINCOMECOMPENSATION.PARTIALHASH <> '')
and TARGETINCOMECOMPENSATION.ID is null
-- If unique record in Source which is entered manually, move it to Target.
update dbo.WPINCOMECOMPENSATION
set
[WEALTHID] = @TARGETID,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where WEALTHID = @SOURCEID
and (PARTIALHASH is null or PARTIALHASH = '')
exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_INCOMECOMPENSATION @TARGETID, @CHANGEAGENTID;
exec dbo.USP_WEALTHPOINT_UPDATEWEALTHSUMMARY_INCOMECOMPENSATION @SOURCEID, @CHANGEAGENTID;
end