USP_DATAFORMTEMPLATE_EDIT_PRMOTEDEMOTEMEMBER
The save procedure used by the edit dataform template "Promote demote member edit".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CONSTITUENTID | uniqueidentifier | IN | Constituent ID |
@EVENTID | uniqueidentifier | IN | Event ID |
@GROUPID | uniqueidentifier | IN | Teamfundraisingteam |
@ROLECODE | tinyint | IN | RoleCode |
@ROLECODEORIGINAL | tinyint | IN | Original Role Code |
@REGISTRATIONOPTIONID | uniqueidentifier | IN | registration option ID |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PRMOTEDEMOTEMEMBER
(
@ID uniqueidentifier, --REGISTRANTID
@CONSTITUENTID uniqueidentifier,
@EVENTID uniqueidentifier,
@GROUPID uniqueidentifier,
@ROLECODE tinyint,
@ROLECODEORIGINAL tinyint,
@REGISTRATIONOPTIONID uniqueidentifier
)
as
begin try
DECLARE @REGISTRATIONOPTIONIDORIGINAL uniqueidentifier --need look up
DECLARE @FUNDRAISINGGOAL money
DECLARE @TARGETFUNDRAISINGGOAL money
DECLARE @PARTICIPANTRECRUITGOAL int
DECLARE @DONORRETENTIONGOAL decimal(5,2)
DECLARE @COMMUNICATIONGOAL int
DECLARE @GROUPFUNDRAISINGGOAL money
DECLARE @GROUPPARTICIPANTRECRUITMENTGOAL int
DECLARE @GROUPDONORRETENTIONGOAL decimal(5,2)
DECLARE @GROUPTEAMMEMBERSGOAL int
DECLARE @GROUPTEAMMEMBERSRETENTIONGOAL decimal(5,2)
DECLARE @GROUPTEAMSGOAL int
DECLARE @GROUPTEAMSRETENTIONGOAL decimal(5,2)
DECLARE @GROUPCOMMUNICATIONGOAL int
DECLARE @CLIENTUSERID int
DECLARE @USEDQUANTITY int
DECLARE @MAXQUANTITY int
SET @FUNDRAISINGGOAL = 0
SET @TARGETFUNDRAISINGGOAL = 0
SET @PARTICIPANTRECRUITGOAL = 0
SET @DONORRETENTIONGOAL = 0
SET @COMMUNICATIONGOAL = 0
SET @GROUPFUNDRAISINGGOAL = 0
SET @GROUPPARTICIPANTRECRUITMENTGOAL = 0
SET @GROUPDONORRETENTIONGOAL = 0
SET @GROUPTEAMMEMBERSGOAL = 0
SET @GROUPTEAMMEMBERSRETENTIONGOAL = 0
SET @GROUPTEAMSGOAL = 0
SET @GROUPTEAMSRETENTIONGOAL = 0
SET @GROUPCOMMUNICATIONGOAL = 0
SELECT @REGISTRATIONOPTIONIDORIGINAL = EVENTPRICEID FROM V_QUERY_REGISTRANTREGISTRATION RR WHERE RR.REGISTRANTID = @ID
-- Bug #219326: throw error if user is having their reg option changed, and the new selected reg option is already at or exceeds max quantity.
SELECT @MAXQUANTITY = MAXQUANTITY from dbo.FAFREGISTRATIONTYPE where EVENTPRICEID=@REGISTRATIONOPTIONID
SELECT @USEDQUANTITY = COUNT(*) from dbo.REGISTRANTREGISTRATION where EVENTPRICEID=@REGISTRATIONOPTIONID
IF @REGISTRATIONOPTIONIDORIGINAL <> @REGISTRATIONOPTIONID AND @MAXQUANTITY > 0 AND @USEDQUANTITY >= @MAXQUANTITY
RAISERROR('The selected registration option is already at max capacity.',13,1)
IF @ROLECODE = 3 OR @ROLECODE = 4 OR @ROLECODE = 2 OR @ROLECODE = 1
BEGIN
DECLARE @IsCompanyHouseholdMember bit
,@IsCompanyHouseholdLeader bit
,@IsCompanyTeamMember bit
,@IsCompanyTeamLeader bit
EXEC dbo.USP_FAF_REGISTRANT_ROLE
@CONSTITUENTID = @CONSTITUENTID
,@EVENTID =@EVENTID
,@IsCompanyHouseholdMember = @IsCompanyHouseholdMember OUTPUT
,@IsCompanyHouseholdLeader = @IsCompanyHouseholdLeader OUTPUT
,@IsCompanyTeamMember = @IsCompanyTeamMember OUTPUT
,@IsCompanyTeamLeader = @IsCompanyTeamLeader OUTPUT
if (@IsCompanyHouseholdMember = 1
OR @IsCompanyTeamMember = 1
OR @IsCompanyHouseholdLeader = 1
OR @IsCompanyTeamLeader = 1
)
BEGIN
declare @TEAMID uniqueidentifier
SELECT @TEAMID = PARENTTEAMID
FROM dbo.UFN_FAF_GETTEAMINFO_BY_REGISTRANT(@CONSTITUENTID, @EVENTID)
if @ROLECODE = 3 OR @ROLECODE = 1
exec USP_FAFADDRESSBOOK_REGISTRANT_ADD @TEAMFUNDRAISINGTEAMID=@TEAMID, @REGISTRANTCONSTITUENTID=@CONSTITUENTID
else
BEGIN
declare @PARENTCONSTITUENTID uniqueidentifier
select
@PARENTCONSTITUENTID = C.ID
from dbo.TEAMFUNDRAISINGTEAMMEMBER TM
inner join dbo.TEAMEXTENSION TE
on TM.TEAMFUNDRAISINGTEAMID = TE.TEAMFUNDRAISINGTEAMID
inner join dbo.TEAMFUNDRAISINGTEAM TFT
on TM.TEAMFUNDRAISINGTEAMID = TFT.ID
inner join dbo.TEAMFUNDRAISER TF
on TM.TEAMFUNDRAISERID = TF.ID
inner join dbo.CONSTITUENT C
on TF.CONSTITUENTID = C.ID
where TE.TEAMFUNDRAISINGTEAMID =@TEAMID
declare @SequenceID int
select @SequenceID = C.SEQUENCEID
from dbo.CONSTITUENT C(nolock)
where C.ID = @PARENTCONSTITUENTID;
declare @ClientUsersID int;
set @ClientUsersID = dbo.fnGetUserIDFromLinkedRecordID(@SequenceID, 0);
declare @ADDRESSBOOKFAFID uniqueidentifier
select @ADDRESSBOOKFAFID = ID from ADDRESSBOOKFAF where CONSTITUENTID=@CONSTITUENTID and CLIENTUSERSID=@ClientUsersID
exec dbo.USP_ADDRESSBOOKFAF_DELETE @ID = @ADDRESSBOOKFAFID,@CHANGEAGENTID=NULL
END
END
END
IF @ROLECODE = 3 OR @ROLECODE = 4
SELECT
@FUNDRAISINGGOAL = HG.MINFUNDRAISING,
@TARGETFUNDRAISINGGOAL = HG.TARGETFUNDRAISING,
@PARTICIPANTRECRUITGOAL = HG.RECRUITEMENT,
@COMMUNICATIONGOAL = HG.COMMUNICATIONS,
@DONORRETENTIONGOAL = HG.DONORRETENTION * 100
FROM V_QUERY_HOUSEHOLDGOALS HG WHERE EVENTPRICEID = @REGISTRATIONOPTIONID
ELSE
BEGIN
SELECT
@FUNDRAISINGGOAL = IG.MINFUNDRAISING,
@TARGETFUNDRAISINGGOAL = IG.TARGETFUNDRAISING,
@PARTICIPANTRECRUITGOAL = IG.RECRUITEMENT,
@DONORRETENTIONGOAL = IG.DONORRETENTION * 100,
@COMMUNICATIONGOAL = IG.COMMUNICATIONS
FROM V_QUERY_INDIVIDUALGOALS IG WHERE EVENTPRICEID = @REGISTRATIONOPTIONID
IF @ROLECODE = 0 OR @ROLECODE = 5
SELECT
@GROUPFUNDRAISINGGOAL=CG.MINFUNDRAISING,
@GROUPTEAMSGOAL=CG.TEAMS,
@GROUPTEAMSRETENTIONGOAL=CG.TEAMRETENTION * 100,
@GROUPTEAMMEMBERSGOAL=CG.TEAMMEMBERS,
@GROUPTEAMMEMBERSRETENTIONGOAL=CG.TEAMMEMBERRETENTION * 100,
@GROUPPARTICIPANTRECRUITMENTGOAL=CG.RECRUITEMENT,
@GROUPCOMMUNICATIONGOAL=CG.COMMUNICATIONS
FROM V_QUERY_COMPANYGOALS CG WHERE EVENTPRICEID = @REGISTRATIONOPTIONID
ELSE IF @ROLECODE = 1 OR @ROLECODE = 2
SELECT
@GROUPFUNDRAISINGGOAL=TG.MINFUNDRAISING,
@GROUPTEAMSGOAL=0,
@GROUPTEAMSRETENTIONGOAL=0,
@GROUPTEAMMEMBERSGOAL=TG.TEAMMEMBERS,
@GROUPTEAMMEMBERSRETENTIONGOAL=TG.TEAMMEMBERRETENTION * 100,
@GROUPPARTICIPANTRECRUITMENTGOAL=TG.RECRUITEMENT,
@GROUPCOMMUNICATIONGOAL=TG.COMMUNICATIONS
FROM V_QUERY_TEAMGOALS TG WHERE EVENTPRICEID = @REGISTRATIONOPTIONID
END
SET @CLIENTUSERID = dbo.UFN_CLIENTUSERID_GET_BY_CONSTITUENT(@CONSTITUENTID)
if @ROLECODE <> 3 and @ROLECODE <> 4 -- Fix bug #133753: only reset goals if this is not about promoting/demoting within a household.
exec dbo.USP_REGISTRANTREGISTRATION_CHANGEGOAL
@ID=@ID,
@GROUPID=@GROUPID,
@ROLECODE=@ROLECODE,
@REGISTRATIONOPTIONID=@REGISTRATIONOPTIONID,
@FUNDRAISINGGOAL=@FUNDRAISINGGOAL,
@TARGETFUNDRAISINGGOAL=@TARGETFUNDRAISINGGOAL,
@PARTICIPANTRECRUITGOAL=@PARTICIPANTRECRUITGOAL,
@DONORRETENTIONGOAL=0,
@COMMUNICATIONGOAL=@COMMUNICATIONGOAL,
@GROUPFUNDRAISINGGOAL=@GROUPFUNDRAISINGGOAL,
@GROUPPARTICIPANTRECRUITMENTGOAL=@GROUPPARTICIPANTRECRUITMENTGOAL,
@GROUPDONORRETENTIONGOAL=@GROUPDONORRETENTIONGOAL,
@GROUPTEAMMEMBERSGOAL=@GROUPTEAMMEMBERSGOAL,
@GROUPTEAMMEMBERSRETENTIONGOAL=@GROUPTEAMMEMBERSRETENTIONGOAL,
@GROUPTEAMSGOAL=@GROUPTEAMSGOAL,
@GROUPTEAMSRETENTIONGOAL=@GROUPTEAMSRETENTIONGOAL,
@GROUPCOMMUNICATIONGOAL=@GROUPCOMMUNICATIONGOAL,
@SKIPGROUPGOALS=1 --Bug #195273 - don't update group goals when promoting/demoting on the front-end
exec dbo.USP_REGISTRANTREGISTRATION_CHANGEREGISTRATIONOPTION
@ID=@ID,
@CHANGEAGENTID=NULL,
@REGISTRATIONOPTIONID=@REGISTRATIONOPTIONID,
@REGISTRATIONOPTIONIDORIGINAL=@REGISTRATIONOPTIONIDORIGINAL,
@ROLECODE=@ROLECODE,
@ROLECODEORIGINAL=@ROLECODEORIGINAL
exec dbo.USP_REGISTRANTREGISTRATION_CHANGE
@ID=@ID,
@EVENTID=@EVENTID,
@CHANGEAGENTID=NULL,
@TEAMFUNDRAISERID=NULL,
@CONSTITUENTID=@CONSTITUENTID,
@CONSTITUENTIDORIGINAL=@CONSTITUENTID,
@GROUPID=@GROUPID,
@GROUPIDORIGINAL=@GROUPID,
@ROLECODE=@ROLECODE,
@ROLECODEORIGINAL=@ROLECODEORIGINAL,
@USERID=@CLIENTUSERID,
@WAIVEBENEFITS=0
end try
begin catch
exec USP_RAISE_ERROR
return 1;
end catch
return 0;