USP_DATAFORMTEMPLATE_ADD_EVENTTEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENT
The save procedure used by the add dataform template "Event Team Fundraising Team Member Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@TEAMFUNDRAISINGTEAMID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CONSTITUENTID | uniqueidentifier | IN | Team fundraiser |
@GOAL | money | IN | Goal |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_EVENTTEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@TEAMFUNDRAISINGTEAMID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@GOAL money = 0
)
as
begin
set nocount on;
declare @CURRENTDATE datetime;
IF @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
begin try
declare @APPEALID uniqueidentifier;
declare @TEAMFUNDRAISERID uniqueidentifier;
declare @CURRENTGOAL money;
declare @BASECURRENCYID uniqueidentifier;
select
@APPEALID = TEAMFUNDRAISINGTEAM.APPEALID,
@TEAMFUNDRAISERID = TEAMFUNDRAISER.ID,
@CURRENTGOAL = TEAMFUNDRAISER.GOAL,
@BASECURRENCYID = APPEAL.BASECURRENCYID
from
dbo.TEAMFUNDRAISINGTEAM
left join dbo.APPEAL on APPEAL.ID = TEAMFUNDRAISINGTEAM.APPEALID
left join dbo.TEAMFUNDRAISER on
TEAMFUNDRAISINGTEAM.APPEALID = TEAMFUNDRAISER.APPEALID
and @CONSTITUENTID = TEAMFUNDRAISER.CONSTITUENTID
where
TEAMFUNDRAISINGTEAM.ID = @TEAMFUNDRAISINGTEAMID;
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, getdate(), null, null);
declare @ORGANIZATIONGOAL money = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@GOAL, @ORGANIZATIONEXCHANGERATEID, null);
if @TEAMFUNDRAISERID is null
begin
set @TEAMFUNDRAISERID = newid();
insert into dbo.TEAMFUNDRAISER
(ID,APPEALID,CONSTITUENTID,GOAL,ORGANIZATIONGOAL,ORGANIZATIONEXCHANGERATEID,BASECURRENCYID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(@TEAMFUNDRAISERID,@APPEALID,@CONSTITUENTID,@GOAL,@ORGANIZATIONGOAL,@ORGANIZATIONEXCHANGERATEID,@BASECURRENCYID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
end
else
if @GOAL <> @CURRENTGOAL
update
dbo.TEAMFUNDRAISER
set
GOAL = @GOAL,
ORGANIZATIONGOAL = @ORGANIZATIONGOAL,
ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
BASECURRENCYID = @BASECURRENCYID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @TEAMFUNDRAISERID;
insert into dbo.TEAMFUNDRAISINGTEAMMEMBER
(ID,TEAMFUNDRAISINGTEAMID,TEAMFUNDRAISERID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
values
(@ID,@TEAMFUNDRAISINGTEAMID,@TEAMFUNDRAISERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end