USP_FAFGROUP_Change
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPID | uniqueidentifier | IN | |
@GROUPNAME | varchar(200) | IN | |
@TYPECODE | tinyint | IN | |
@LINKGROUPCONSTITUENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_FAFGROUP_Change
(
@GROUPID uniqueidentifier,
@GROUPNAME varchar(200),
@TYPECODE tinyint,
@LINKGROUPCONSTITUENTID uniqueidentifier
)
as
begin try
-- do work
Declare @ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CURRENTDATE datetime ,
@EVENTID uniqueidentifier,
@CURRENTTYPECODE tinyint
-- validation
Select @EVENTID = EVENTID, @CURRENTTYPECODE = TYPECODE from dbo.teamExtension where TEAMFUNDRAISINGTEAMID = @GROUPID
if exists(Select tft.Name from TeamExtension te
inner join TEAMFUNDRAISINGTEAM tft on te.TEAMFUNDRAISINGTEAMID = tft.ID
where te.EVENTID = @EVENTID and tft.ID != @GROUPID and tft.Name = @GROUPNAME)
begin
RAISERROR ('INUSEGROUPNAMEPEREVENT', 13, 1);
end
if exists(Select teamConstituentID from dbo.TeamExtension (nolock)
where EVENTID = @EVENTID and teamConstituentID = @LINKGROUPCONSTITUENTID
and TEAMFUNDRAISINGTEAMID != @GROUPID)
begin
RAISERROR ('INUSEGROUPCONSTITUENTPEREVENT', 13, 1);
end
-- change name
Update dbo.TeamFundraisingTeam Set Name = @GroupName Where ID = @GROUPID
-- change link
if @LINKGROUPCONSTITUENTID != CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER)
begin
Update dbo.TEAMExtension Set TeamConstituentID = @LINKGROUPCONSTITUENTID Where TEAMFUNDRAISINGTEAMID = @GROUPID
end
-- do promotion/demotion
if @CURRENTTYPECODE != @TYPECODE
begin
Update dbo.TEAMExtension Set TypeCode = @TYPECODE Where TEAMFUNDRAISINGTEAMID = @GROUPID
Update dbo.FAFFRIENDLYURLPARAMS Set PAGETYPE = @TYPECODE where PARTICIPANTID = @GROUPID
Update dbo.Story Set TypeCode = @TYPECODE Where TEAMFUNDRAISINGTEAMID = @GROUPID
Exec USP_FAF_GROUP_PROMOTION_DEMOTION @GROUPID, @CURRENTTYPECODE, @TYPECODE, @EVENTID
end
end try
begin catch
exec USP_RAISE_ERROR
return 1;
end catch