USP_DATAFORMTEMPLATE_ADD_MATCHINGGIFTCONDITION_2
The save procedure used by the add dataform template "Matching Gift Condition Add Form 2".
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. |
@ORGANIZATIONID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@MATCHINGGIFTCONDITIONTYPECODEID | uniqueidentifier | IN | Type |
@MATCHINGFACTOR | decimal(5, 2) | IN | Matching factor |
@MINMATCHPERGIFT | money | IN | Min match per gift |
@MAXMATCHPERGIFT | money | IN | Max match per gift |
@MAXMATCHANNUAL | money | IN | Max match per year |
@MAXMATCHTOTAL | money | IN | Max match total |
@NOTES | nvarchar(max) | IN | Notes |
@RELATIONSHIPS | xml | IN | Apply to |
@MATCHTYPECODE | tinyint | IN | Matching amount |
@REVENUETYPECODE | smallint | IN | Revenue type |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_MATCHINGGIFTCONDITION_2
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@ORGANIZATIONID uniqueidentifier,
@MATCHINGGIFTCONDITIONTYPECODEID uniqueidentifier = null,
@MATCHINGFACTOR decimal(5,2) = 0,
@MINMATCHPERGIFT money = 0,
@MAXMATCHPERGIFT money = 0,
@MAXMATCHANNUAL money = 0,
@MAXMATCHTOTAL money = 0,
@NOTES nvarchar(max) = '',
@RELATIONSHIPS xml = null,
@MATCHTYPECODE tinyint = 1,
@REVENUETYPECODE smallint = 0,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
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();
declare @BASECURRENCYID uniqueidentifier = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONMINMATCHPERGIFT money
declare @ORGANIZATIONMAXMATCHPERGIFT money
declare @ORGANIZATIONMAXMATCHANNUAL money
declare @ORGANIZATIONMAXMATCHTOTAL money
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier
if @BASECURRENCYID = @ORGANIZATIONCURRENCYID
begin
set @ORGANIZATIONMINMATCHPERGIFT = @MINMATCHPERGIFT
set @ORGANIZATIONMAXMATCHPERGIFT = @MAXMATCHPERGIFT
set @ORGANIZATIONMAXMATCHANNUAL = @MAXMATCHANNUAL
set @ORGANIZATIONMAXMATCHTOTAL = @MAXMATCHTOTAL
end
else
begin
set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID,@ORGANIZATIONCURRENCYID,@CURRENTDATE,0,null);
set @ORGANIZATIONMINMATCHPERGIFT = dbo.UFN_CURRENCY_CONVERT(@MINMATCHPERGIFT,@ORGANIZATIONEXCHANGERATEID)
set @ORGANIZATIONMAXMATCHPERGIFT = dbo.UFN_CURRENCY_CONVERT(@MAXMATCHPERGIFT,@ORGANIZATIONEXCHANGERATEID)
set @ORGANIZATIONMAXMATCHANNUAL = dbo.UFN_CURRENCY_CONVERT(@MAXMATCHANNUAL,@ORGANIZATIONEXCHANGERATEID)
set @ORGANIZATIONMAXMATCHTOTAL = dbo.UFN_CURRENCY_CONVERT(@MAXMATCHTOTAL,@ORGANIZATIONEXCHANGERATEID)
end
begin try
insert into dbo.MATCHINGGIFTCONDITION
(
ID,
ORGANIZATIONID,
MATCHINGGIFTCONDITIONTYPECODEID,
MATCHINGFACTOR,
MINMATCHPERGIFT,
MAXMATCHPERGIFT,
MAXMATCHANNUAL,
MAXMATCHTOTAL,
NOTES,
MATCHTYPECODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
REVENUETYPECODE,
[SEQUENCE],
BASECURRENCYID,
ORGANIZATIONMINMATCHPERGIFT,
ORGANIZATIONMAXMATCHPERGIFT,
ORGANIZATIONMAXMATCHANNUAL,
ORGANIZATIONMAXMATCHTOTAL,
ORGANIZATIONEXCHANGERATEID
)
values
(
@ID,
@ORGANIZATIONID,
@MATCHINGGIFTCONDITIONTYPECODEID,
@MATCHINGFACTOR,
@MINMATCHPERGIFT,
@MAXMATCHPERGIFT,
@MAXMATCHANNUAL,
@MAXMATCHTOTAL,
@NOTES,
@MATCHTYPECODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
@REVENUETYPECODE,
coalesce((select max(SEQUENCE) from dbo.MATCHINGGIFTCONDITION where ORGANIZATIONID = @ORGANIZATIONID)+1,0),
@BASECURRENCYID,
@ORGANIZATIONMINMATCHPERGIFT,
@ORGANIZATIONMAXMATCHPERGIFT,
@ORGANIZATIONMAXMATCHANNUAL,
@ORGANIZATIONMAXMATCHTOTAL,
@ORGANIZATIONEXCHANGERATEID
);
if @RELATIONSHIPS is not null begin
--JamesWill WI 13119 Fix relationships
with [CTE] as
(
select
T.c.value('(ID)[1]', 'nvarchar(36)') as [ID],
T.c.value('(RELATIONSHIPTYPECODEID)[1]', 'nvarchar(36)') as [RELATIONSHIPTYPECODEID],
T.c.value('(JOBSCHEDULECODEID)[1]', 'nvarchar(36)') as [JOBSCHEDULECODEID],
T.c.value('(CAREERLEVELCODEID)[1]', 'nvarchar(36)') as [CAREERLEVELCODEID]
from @RELATIONSHIPS.nodes('/RELATIONSHIPS/ITEM') T(c)
)
select
@RELATIONSHIPS =
( select
case when len([CTE].ID) > 0 then cast([CTE].ID as uniqueidentifier) else newid() end as [ID],
cast([CTE].RELATIONSHIPTYPECODEID as uniqueidentifier) as [RELATIONSHIPTYPECODEID],
cast([CTE].JOBSCHEDULECODEID as uniqueidentifier) as [JOBSCHEDULECODEID],
cast([CTE].CAREERLEVELCODEID as uniqueidentifier) as [CAREERLEVELCODEID]
from [CTE]
where len([CTE].RELATIONSHIPTYPECODEID) > 0
for xml raw('ITEM'), type, elements, root('RELATIONSHIPS'), binary base64
)
exec dbo.USP_MATCHINGGIFTCONDITIONRELATIONSHIP_VALIDATERELATIONSHIPTYPES @ID, @RELATIONSHIPS;
exec dbo.USP_MATCHINGGIFTCONDITIONRELATIONSHIP_GETRELATIONSHIPS_UPDATEFROMXML @ID, @RELATIONSHIPS, @CHANGEAGENTID;
end;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;