USP_DATAFORMTEMPLATE_ADD_RECOGNITIONPROGRAM
The save procedure used by the add dataform template "Recognition Program Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@SITEID | uniqueidentifier | IN | Site |
@TYPECODE | tinyint | IN | Type |
@ALLOWINDIVIDUAL | bit | IN | Individuals |
@ALLOWHOUSEHOLD | bit | IN | Households |
@ALLOWGROUP | bit | IN | Groups |
@ALLOWORGANIZATION | bit | IN | Organizations |
@EXPIRESONCODE | tinyint | IN | Expiration date |
@BACKDATEMEMBERSHIPS | bit | IN | Set expiration to the end of the following year when starting after cutoff day |
@CUTOFFDATEFORYEAR | char(4) | IN | Cutoff date |
@SELECTIONID | uniqueidentifier | IN | Additional revenue selection |
@STARTDATE | datetime | IN | Recognition effective date |
@GIFTTYPESFILTER | xml | IN | Transaction and application type |
@DESIGNATIONS | xml | IN | Filter designations by |
@MAXIMUMAMOUNT | money | IN | Maximum recognition amount |
@REVENUECODE | tinyint | IN | |
@PLANNEDGIFTCODE | tinyint | IN | |
@RECOGNITIONCREDITTYPES | xml | IN | Recognition credit types |
@INCLUDECREDITWITHOUTTYPE | tinyint | IN | Include recognition credits without specified type |
@USEGROSSAMOUNT | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RECOGNITIONPROGRAM
(
@ID uniqueidentifier = null output,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100) = '',
@DESCRIPTION nvarchar(255) = '',
@SITEID uniqueidentifier = null,
@TYPECODE tinyint = 0,
@ALLOWINDIVIDUAL bit = 1,
@ALLOWHOUSEHOLD bit = 1,
@ALLOWGROUP bit = 1,
@ALLOWORGANIZATION bit = 1,
@EXPIRESONCODE tinyint = 0,
@BACKDATEMEMBERSHIPS bit = null,
@CUTOFFDATEFORYEAR char(4) = '',
@SELECTIONID uniqueidentifier = null,
@STARTDATE datetime = null,
@GIFTTYPESFILTER xml = null,
@DESIGNATIONS xml = null,
@MAXIMUMAMOUNT money = 0,
@REVENUECODE tinyint = 0,
@PLANNEDGIFTCODE tinyint = 0,
@RECOGNITIONCREDITTYPES xml = null,
@INCLUDECREDITWITHOUTTYPE tinyint = 1,
@USEGROSSAMOUNT bit = 0
)
as
set nocount on;
if @SITEID is null
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
begin
raiserror('Site is required.',13,1)
return
end
end
if @TYPECODE <> 0
begin
set @BACKDATEMEMBERSHIPS = 0;
set @CUTOFFDATEFORYEAR = '0000';
end
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONMAXIMUMAMOUNT money;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
select @BASECURRENCYID =
(select CURRENCYSET.BASECURRENCYID from dbo.CURRENCYSET where ID = dbo.UFN_CURRENCYSET_GETAPPUSERCURRENCYSET(@CURRENTAPPUSERID))
if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
begin
set @ORGANIZATIONMAXIMUMAMOUNT = @MAXIMUMAMOUNT;
end
else
begin
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
set @ORGANIZATIONMAXIMUMAMOUNT = dbo.UFN_CURRENCY_CONVERT(@MAXIMUMAMOUNT, @ORGANIZATIONEXCHANGERATEID);
end
insert into dbo.RECOGNITIONPROGRAM
(ID,
NAME,
DESCRIPTION,
SITEID,
TYPECODE,
ALLOWINDIVIDUAL,
ALLOWHOUSEHOLD,
ALLOWGROUP,
ALLOWORGANIZATION,
EXPIRESONCODE,
BACKDATEMEMBERSHIPS,
CUTOFFDATEFORYEAR,
SELECTIONID,
STARTDATE,
GIFTTYPESFILTER,
MAXIMUMAMOUNT,
ORGANIZATIONMAXIMUMAMOUNT,
ORGANIZATIONEXCHANGERATEID,
PLANNEDGIFTCODE,
ISACTIVE,
BASECURRENCYID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
INCLUDECREDITWITHOUTTYPE,
USEGROSSAMOUNT)
values
(@ID,
@NAME,
@DESCRIPTION,
@SITEID,
@TYPECODE,
@ALLOWINDIVIDUAL,
@ALLOWHOUSEHOLD,
@ALLOWGROUP,
@ALLOWORGANIZATION,
@EXPIRESONCODE,
@BACKDATEMEMBERSHIPS,
@CUTOFFDATEFORYEAR,
@SELECTIONID,
@STARTDATE,
@GIFTTYPESFILTER,
@MAXIMUMAMOUNT,
@ORGANIZATIONMAXIMUMAMOUNT,
@ORGANIZATIONEXCHANGERATEID,
@PLANNEDGIFTCODE,
1,
@BASECURRENCYID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@INCLUDECREDITWITHOUTTYPE,
@USEGROSSAMOUNT);
if not @DESIGNATIONS is null
exec dbo.USP_RECOGNITIONPROGRAM_GETDESIGNATIONS_ADDFROMXML @ID, @DESIGNATIONS, @CHANGEAGENTID, @CURRENTDATE;
exec dbo.USP_RECOGNITIONPROGRAM_CREATEQUERY @ID, @NAME, @CHANGEAGENTID;
if not @RECOGNITIONCREDITTYPES is null
exec dbo.USP_RECOGNITIONPROGRAM_GETCREDITTYPES_ADDFROMXML @ID, @RECOGNITIONCREDITTYPES, @CHANGEAGENTID, @CURRENTDATE;
if @INCLUDECREDITWITHOUTTYPE = 0 and not exists (select * from dbo.UFN_RECOGNITIONPROGRAM_GETCREDITTYPES(@ID))
raiserror('BBERR_RECOGNITIONPROGRAM_SPECIFYCREDITTYPEORNONE', 13, 1);
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0