USP_DATAFORMTEMPLATE_ADD_DONORCHALLENGE
The save procedure used by the add dataform template "Donor Challenge 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. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@NAME | nvarchar(100) | IN | Challenge name |
@INTERNALSPONSORCODEID | uniqueidentifier | IN | Internal sponsor |
@EXTERNALSPONSORID | uniqueidentifier | IN | External sponsor |
@STARTDATE | datetime | IN | Start date |
@ENDDATE | datetime | IN | End date |
@PAYPLEDGESWITHIN | tinyint | IN | Pay pledges within |
@PAYPLEDGESWITHINUNITCODE | tinyint | IN | Pay pledges within units |
@TYPECODE | tinyint | IN | Type |
@TOTALFUNDS | money | IN | Total funds |
@MATCHINGFACTOR | decimal(5, 2) | IN | Matching factor |
@MATCHTHRESHOLD | money | IN | Match threshold |
@MATCHTYPECODE | tinyint | IN | Matching portion |
@MINGIFTAMOUNT | money | IN | Min gift amount |
@MAXMATCHPERGIFT | money | IN | Max match per gift |
@REVENUERECOGNITIONTYPECODEID | uniqueidentifier | IN | Recognition credit |
@DESCRIPTION | nvarchar(255) | IN | Description |
@EXCLUDEDAPPLICATIONTYPES | xml | IN | Excluded application types |
@SPLITS | xml | IN | Designations |
@SITEID | uniqueidentifier | IN | Site |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DONORCHALLENGE
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier,
@NAME nvarchar(100) = '',
@INTERNALSPONSORCODEID uniqueidentifier = null,
@EXTERNALSPONSORID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@PAYPLEDGESWITHIN tinyint = 0,
@PAYPLEDGESWITHINUNITCODE tinyint = 0,
@TYPECODE tinyint = 0,
@TOTALFUNDS money = 0,
@MATCHINGFACTOR decimal(5,2) = 0,
@MATCHTHRESHOLD money = 0,
@MATCHTYPECODE tinyint = 0,
@MINGIFTAMOUNT money = 0,
@MAXMATCHPERGIFT money = 0,
@REVENUERECOGNITIONTYPECODEID uniqueidentifier = null,
@DESCRIPTION nvarchar(255) = '',
@EXCLUDEDAPPLICATIONTYPES xml = null,
@SPLITS xml = null,
@SITEID uniqueidentifier = null
)
as
begin
set nocount on;
declare @CURRENTDATE datetime = getdate();
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
if @SITEID is null
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
begin
raiserror('BBERR_SITEREQUIRED',13,1);
return;
end
end
declare @BASECURRENCYID uniqueidentifier = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONTOTALFUNDS money = @TOTALFUNDS;
declare @ORGANIZATIONMATCHTHRESHOLD money = @MATCHTHRESHOLD;
declare @ORGANIZATIONMINGIFTAMOUNT money = @MINGIFTAMOUNT;
declare @ORGANIZATIONMAXMATCHPERGIFT money = @MAXMATCHPERGIFT;
if @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
begin
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
set @ORGANIZATIONTOTALFUNDS = dbo.UFN_CURRENCY_CONVERT(@TOTALFUNDS, @ORGANIZATIONEXCHANGERATEID);
set @ORGANIZATIONMATCHTHRESHOLD = dbo.UFN_CURRENCY_CONVERT(@MATCHTHRESHOLD, @ORGANIZATIONEXCHANGERATEID);
set @ORGANIZATIONMINGIFTAMOUNT = dbo.UFN_CURRENCY_CONVERT(@MINGIFTAMOUNT, @ORGANIZATIONEXCHANGERATEID);
set @ORGANIZATIONMAXMATCHPERGIFT = dbo.UFN_CURRENCY_CONVERT(@MAXMATCHPERGIFT, @ORGANIZATIONEXCHANGERATEID);
end
insert into dbo.DONORCHALLENGE
(
ID,
NAME,
DESCRIPTION,
TYPECODE,
STARTDATE,
ENDDATE,
EXTERNALSPONSORID,
INTERNALSPONSORCODEID,
TOTALFUNDS,
PAYPLEDGESWITHIN,
PAYPLEDGESWITHINUNITCODE,
MATCHTYPECODE,
MATCHINGFACTOR,
MATCHTHRESHOLD,
MINGIFTAMOUNT,
MAXMATCHPERGIFT,
REVENUERECOGNITIONTYPECODEID,
SITEID,
BASECURRENCYID,
ORGANIZATIONEXCHANGERATEID,
ORGANIZATIONTOTALFUNDS,
ORGANIZATIONMATCHTHRESHOLD,
ORGANIZATIONMINGIFTAMOUNT,
ORGANIZATIONMAXMATCHPERGIFT,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@NAME,
@DESCRIPTION,
@TYPECODE,
@STARTDATE,
@ENDDATE,
@EXTERNALSPONSORID,
@INTERNALSPONSORCODEID,
@TOTALFUNDS,
@PAYPLEDGESWITHIN,
@PAYPLEDGESWITHINUNITCODE,
@MATCHTYPECODE,
@MATCHINGFACTOR,
@MATCHTHRESHOLD,
@MINGIFTAMOUNT,
@MAXMATCHPERGIFT,
@REVENUERECOGNITIONTYPECODEID,
@SITEID,
@BASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID,
@ORGANIZATIONTOTALFUNDS,
@ORGANIZATIONMATCHTHRESHOLD,
@ORGANIZATIONMINGIFTAMOUNT,
@ORGANIZATIONMAXMATCHPERGIFT,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
set @SPLITS = dbo.UFN_DONORCHALLENGESPLIT_CONVERTAMOUNTSINXML(@SPLITS, @BASECURRENCYID, @ORGANIZATIONEXCHANGERATEID)
exec dbo.USP_DONORCHALLENGE_GETSPLITS_2_ADDFROMXML @ID, @SPLITS, @CHANGEAGENTID;
exec dbo.USP_DONORCHALLENGE_GETEXCLUDEDAPPLICATIONTYPES_ADDFROMXML @ID, @EXCLUDEDAPPLICATIONTYPES, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end