USP_REGISTRANTREGISTRATION_CHANGECONSTITUENT
Allow registration to pass to a different constituent who isn't a registrant of this event.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN | |
@TEAMFUNDRAISERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CONSTITUENTIDORIGINAL | uniqueidentifier | IN | |
@WAIVEBENEFITS | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_REGISTRANTREGISTRATION_CHANGECONSTITUENT
(
@ID uniqueidentifier,
@EVENTID uniqueidentifier,
@TEAMFUNDRAISERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@CONSTITUENTID uniqueidentifier,
@CONSTITUENTIDORIGINAL uniqueidentifier,
@WAIVEBENEFITS bit = 0
)
as
begin try
declare @CURRENTDATE datetime,
@GROUPID uniqueidentifier
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
set @CURRENTDATE = getdate()
if @CONSTITUENTID <> @CONSTITUENTIDORIGINAL
begin
if exists(select ID from dbo.REGISTRANT where CONSTITUENTID = @CONSTITUENTID and EVENTID = @EVENTID)
raiserror('ALREADYREGISTRANT', 13,1)
update dbo.REGISTRANT
set CONSTITUENTID = @CONSTITUENTID,
BENEFITSWAIVED = @WAIVEBENEFITS,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
select @GROUPID = TFTM.TEAMFUNDRAISINGTEAMID from dbo.TEAMFUNDRAISER TF
join dbo.TEAMFUNDRAISINGTEAMMEMBER TFTM on TF.ID = TFTM.TEAMFUNDRAISERID
where TF.ID = @TEAMFUNDRAISERID and TF.APPEALID in (select APPEALID from dbo.EVENT where ID = @EVENTID)
/* update team fundraiser/captain if original constituent is changed and this constituent is a member in a group */
if @GROUPID is not null
begin
update dbo.TEAMFUNDRAISER
set CONSTITUENTID = @CONSTITUENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @TEAMFUNDRAISERID
/* updating teamcaptain constituent if exists */
if exists(select ID from dbo.TEAMFUNDRAISINGTEAMCAPTAIN where CONSTITUENTID = @CONSTITUENTIDORIGINAL and TEAMFUNDRAISINGTEAMID = @GROUPID)
update dbo.TEAMFUNDRAISINGTEAMCAPTAIN
set CONSTITUENTID = @CONSTITUENTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where TEAMFUNDRAISINGTEAMID = @GROUPID and CONSTITUENTID = @CONSTITUENTIDORIGINAL
------- /* no need to update revenue if paid registration ? */
end
delete from dbo.REVENUERECOGNITION
where REVENUERECOGNITION.ID in
( Select RR.ID from dbo.REVENUERECOGNITION RR
join dbo.REVENUESPLIT RS on RR.REVENUESPLITID = RS.ID
join dbo.REVENUE R on RS.REVENUEID = R.ID
join dbo.EVENT E on E.APPEALID = R.APPEALID
join dbo.EVENTEXTENSION EX ON E.ID = EX.EVENTID
where E.ID = @EVENTID and RR.CONSTITUENTID = @CONSTITUENTIDORIGINAL)
end
else
update dbo.REGISTRANT
set BENEFITSWAIVED = @WAIVEBENEFITS,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;