USP_MERGETASK_CONSTITUENTTRIBUTE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEID | uniqueidentifier | IN | |
@TARGETID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_MERGETASK_CONSTITUENTTRIBUTE
(
@SOURCEID uniqueidentifier,
@TARGETID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
-- For any tributes in which the source is the tributee, set the tributee to be the target
update
dbo.TRIBUTE
set
TRIBUTEEID = @TARGETID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
TRIBUTEEID = @SOURCEID;
-- For any tributes in which the source is an acknowledgee, set the acknowledgee to the target as long as
-- this would not result in having duplicate rows with the same acknowledgee and tribute letter
update
dbo.TRIBUTEACKNOWLEDGEE
set
CONSTITUENTID = @TARGETID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
CONSTITUENTID = @SOURCEID
and ID not in
(
select
S.ID
from
dbo.TRIBUTEACKNOWLEDGEE S
inner join
dbo.TRIBUTEACKNOWLEDGEE T
on
(S.TRIBUTELETTERCODEID = T.TRIBUTELETTERCODEID or (S.TRIBUTELETTERCODEID is null and T.TRIBUTELETTERCODEID is null))
and
S.TRIBUTEID = T.TRIBUTEID
where
S.CONSTITUENTID = @SOURCEID
and
T.CONSTITUENTID = @TARGETID
);
-- For any revenue tribute letters in which the source is an acknowledgee, set the acknowledgee to the target as long as
-- this would not result in having duplicate rows with the same acknowledgee and tribute letter
update
dbo.REVENUETRIBUTELETTER
set
CONSTITUENTID = @TARGETID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
CONSTITUENTID = @SOURCEID
and ID not in
(
select
S.ID
from
dbo.REVENUETRIBUTELETTER S
inner join
dbo.REVENUETRIBUTELETTER T
on
S.TRIBUTELETTERCODEID = T.TRIBUTELETTERCODEID
and
S.REVENUETRIBUTEID = T.REVENUETRIBUTEID
where
S.CONSTITUENTID = @SOURCEID
and
T.CONSTITUENTID = @TARGETID
);
/* Friends Asking Friends */
update dbo.TRIBUTEEXTENSION set
FROMCONSTITUENTID = @TARGETID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
FROMCONSTITUENTID = @SOURCEID
return 0;