USP_FAF_TEAMMEMBER_ADD_EDIT
Procedure to add edit Team Member and Team Captain to a Team
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@EVENTID | uniqueidentifier | IN | |
@TEAMFUNDRAISINGTEAMID | uniqueidentifier | IN | |
@REGISTRANTID | uniqueidentifier | IN | |
@FUNDRAISINGGOAL | money | IN | |
@MEMBERECRUITMENTGOAL | int | IN | |
@ADVOCACYACTIONGOAL | int | IN | |
@COMMUNICATIONGOAL | int | IN | |
@VOLUNTEERRECRUITMENTGOAL | int | IN | |
@ISTEAMCAPTAIN | bit | IN | |
@REMOVETEAMCAPTAIN | bit | IN |
Definition
Copy
CREATE PROCEDURE dbo.USP_FAF_TEAMMEMBER_ADD_EDIT
(
@ID uniqueidentifier = NULL output, -- TEAMFUNDRAISINGTEAMMEMBERID
@CHANGEAGENTID uniqueidentifier = NULL,
@EVENTID uniqueidentifier,
@TEAMFUNDRAISINGTEAMID uniqueidentifier,
@REGISTRANTID uniqueidentifier,
@FUNDRAISINGGOAL money = NULL,
@MEMBERECRUITMENTGOAL int = NULL,
@ADVOCACYACTIONGOAL int = NULL,
@COMMUNICATIONGOAL int = NULL, -- emails sent
@VOLUNTEERRECRUITMENTGOAL int = NULL,
@ISTEAMCAPTAIN bit = 0, -- 1: Yes, 0: NO
@REMOVETEAMCAPTAIN bit = 0 -- 1: Yes, 0: No
) WITH EXECUTE AS CALLER
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CURRENTDATE datetime;
DECLARE @APPEALID uniqueidentifier
DECLARE @CONSTITUENTID uniqueidentifier
DECLARE @TEAMFUNDRAISERID uniqueidentifier
DECLARE @CURRENTGOAL money
DECLARE @REGISTRANTEXTENSIONID uniqueidentifier
DECLARE @TEAMCAPTAINID uniqueidentifier
DECLARE @TEAMCONSTITUENTID uniqueidentifier
DECLARE @HOUSEHOLDID uniqueidentifier
DECLARE @PARENTTEAMCONSTITUENTID uniqueidentifier
IF @ID is null
SET @ID = newid();
IF @CHANGEAGENTID is null
EXEC dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
SET @CURRENTDATE = getdate();
SELECT @APPEALID = APPEALID FROM EVENT WITH (NOLOCK) WHERE ID = @EVENTID
SELECT @CONSTITUENTID = CONSTITUENTID FROM REGISTRANT WITH (NOLOCK) WHERE ID = @REGISTRANTID
select @PARENTTEAMCONSTITUENTID = TEAMEXTENSION.TEAMCONSTITUENTID
from TEAMFUNDRAISINGTEAM
inner join TEAMEXTENSION on TEAMFUNDRAISINGTEAM.PARENTTEAMID = TEAMEXTENSION.TEAMFUNDRAISINGTEAMID
where TEAMFUNDRAISINGTEAM.ID = @TEAMFUNDRAISINGTEAMID;
SELECT
@TEAMFUNDRAISERID = TEAMFUNDRAISER.ID,
@CURRENTGOAL = TEAMFUNDRAISER.GOAL,
@TEAMCONSTITUENTID = TEAMEXTENSION.TEAMCONSTITUENTID,
@HOUSEHOLDID = TEAMEXTENSION.HOUSEHOLDID
FROM
dbo.TEAMFUNDRAISINGTEAM
left join dbo.TEAMFUNDRAISER on
TEAMFUNDRAISINGTEAM.APPEALID = TEAMFUNDRAISER.APPEALID
and TEAMFUNDRAISER.CONSTITUENTID = @CONSTITUENTID
left join dbo.TEAMEXTENSION on
TEAMFUNDRAISINGTEAM.ID = TEAMEXTENSION.TEAMFUNDRAISINGTEAMID
WHERE
TEAMFUNDRAISINGTEAM.ID = @TEAMFUNDRAISINGTEAMID;
BEGIN TRY
-- add to TEAMFUNDRAISER
IF @TEAMFUNDRAISERID is null
BEGIN
SET @TEAMFUNDRAISERID = newid();
INSERT INTO dbo.TEAMFUNDRAISER
(ID,APPEALID,CONSTITUENTID,GOAL,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
VALUES
(@TEAMFUNDRAISERID,@APPEALID,@CONSTITUENTID,ISNULL(@FUNDRAISINGGOAL,0),@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
END
ELSE
BEGIN
UPDATE TEAMFUNDRAISER
SET GOAL = ISNULL(@FUNDRAISINGGOAL,GOAL),
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
WHERE
ID = @TEAMFUNDRAISERID;
END
-- add as Team Member
IF NOT EXISTS(SELECT 1 FROM TEAMFUNDRAISINGTEAMMEMBER WHERE TEAMFUNDRAISINGTEAMID = @TEAMFUNDRAISINGTEAMID AND TEAMFUNDRAISERID = @TEAMFUNDRAISERID)
INSERT INTO dbo.TEAMFUNDRAISINGTEAMMEMBER
(ID,TEAMFUNDRAISINGTEAMID,TEAMFUNDRAISERID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
VALUES
(@ID,@TEAMFUNDRAISINGTEAMID,@TEAMFUNDRAISERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
-- add personal goals
SELECT @REGISTRANTEXTENSIONID = ID FROM REGISTRANTEXTENSION WHERE REGISTRANTID = @REGISTRANTID
IF @REGISTRANTEXTENSIONID IS NULL
BEGIN
SET @REGISTRANTEXTENSIONID = NEWID();
INSERT INTO dbo.REGISTRANTEXTENSION
(ID, REGISTRANTID, FUNDRAISINGGOAL, ADVOCACYACTIONGOAL, MEMBERECRUITMENTGOAL, COMMUNICATIONGOAL, VOLUNTEERRECRUITMENTGOAL, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
VALUES
(@REGISTRANTEXTENSIONID, @REGISTRANTID, ISNULL(@FUNDRAISINGGOAL,0), ISNULL(@ADVOCACYACTIONGOAL,0), ISNULL(@MEMBERECRUITMENTGOAL,0), ISNULL(@COMMUNICATIONGOAL,0), ISNULL(@VOLUNTEERRECRUITMENTGOAL,0), @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
END
ELSE
UPDATE REGISTRANTEXTENSION
SET
FUNDRAISINGGOAL = ISNULL(@FUNDRAISINGGOAL,FUNDRAISINGGOAL),
ADVOCACYACTIONGOAL = ISNULL(@ADVOCACYACTIONGOAL,ADVOCACYACTIONGOAL),
MEMBERECRUITMENTGOAL = ISNULL(@MEMBERECRUITMENTGOAL,MEMBERECRUITMENTGOAL),
COMMUNICATIONGOAL = ISNULL(@COMMUNICATIONGOAL,COMMUNICATIONGOAL),
VOLUNTEERRECRUITMENTGOAL = ISNULL(@VOLUNTEERRECRUITMENTGOAL,VOLUNTEERRECRUITMENTGOAL),
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
WHERE ID = @REGISTRANTEXTENSIONID AND REGISTRANTID = @REGISTRANTID
-- add as Team Captain if required
SELECT @TEAMCAPTAINID = ID FROM TEAMFUNDRAISINGTEAMCAPTAIN WITH (NOLOCK)
WHERE TEAMFUNDRAISINGTEAMID = @TEAMFUNDRAISINGTEAMID AND CONSTITUENTID = @CONSTITUENTID
IF @ISTEAMCAPTAIN = 1 AND @TEAMCAPTAINID IS NULL
BEGIN
SET @TEAMCAPTAINID = NEWID();
INSERT INTO dbo.TEAMFUNDRAISINGTEAMCAPTAIN
(ID,TEAMFUNDRAISINGTEAMID,CONSTITUENTID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
VALUES
(@TEAMCAPTAINID,@TEAMFUNDRAISINGTEAMID,@CONSTITUENTID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
END
IF @REMOVETEAMCAPTAIN = 1 AND @TEAMCAPTAINID IS NOT NULL
EXEC USP_TEAMFUNDRAISINGTEAMCAPTAIN_DELETE @ID = @TEAMCAPTAINID, @CHANGEAGENTID = @CHANGEAGENTID
END TRY
BEGIN CATCH
EXEC dbo.USP_RAISE_ERROR;
RETURN 1;
END CATCH
RETURN 0;
END