USP_DATAFORMTEMPLATE_ADD_TEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENTATROOT
The save procedure used by the add dataform template "Team Fundraising Member from Constituent 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_TEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENTATROOT
(
@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;
select @BASECURRENCYID = APPEAL.BASECURRENCYID
from dbo.APPEAL where APPEAL.ID = @APPEALID;
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);
declare @TEAMFUNDRAISERID uniqueidentifier;
declare @CURRENTGOAL money;
declare @CURRENTORGANIZATIONGOAL money;
declare @CURRENTORGANIZATIONEXCHANGERATEID uniqueidentifier;
select
@TEAMFUNDRAISERID = TEAMFUNDRAISER.ID,
@CURRENTGOAL = TEAMFUNDRAISER.GOAL,
@CURRENTORGANIZATIONGOAL = TEAMFUNDRAISER.ORGANIZATIONGOAL,
@CURRENTORGANIZATIONEXCHANGERATEID = TEAMFUNDRAISER.ORGANIZATIONEXCHANGERATEID
from
dbo.TEAMFUNDRAISER
where
TEAMFUNDRAISER.APPEALID = @APPEALID
and TEAMFUNDRAISER.CONSTITUENTID = @CONSTITUENTID;
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 or @ORGANIZATIONGOAL <> @CURRENTORGANIZATIONGOAL or @CURRENTORGANIZATIONEXCHANGERATEID <> @ORGANIZATIONEXCHANGERATEID
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