USP_DATAFORMTEMPLATE_ADD_EVENTTEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENTATROOT
The save procedure used by the add dataform template "Event Team Fundraising Team Member at Root 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. |
@APPEALID | 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_EVENTTEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENTATROOT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@APPEALID 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 @BASECURRENCYID uniqueidentifier;
--TommyVe 2011-03-04 Bug 144578 The team fundraiser may not exist, get the base currency from the appeal
select
@BASECURRENCYID = APPEAL.BASECURRENCYID
from
dbo.APPEAL
where
APPEAL.ID = @APPEALID;
declare @TEAMFUNDRAISERID uniqueidentifier;
declare @CURRENTGOAL money;
select
@TEAMFUNDRAISERID = TEAMFUNDRAISER.ID,
@CURRENTGOAL = TEAMFUNDRAISER.GOAL
from
dbo.TEAMFUNDRAISER
where
TEAMFUNDRAISER.APPEALID = @APPEALID
and TEAMFUNDRAISER.CONSTITUENTID = @CONSTITUENTID;
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,null,@TEAMFUNDRAISERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end