USP_DATAFORMTEMPLATE_EDIT_MATCHINGGIFTCONDITION_3
The save procedure used by the edit dataform template "Matching Gift Condition Edit Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@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 |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MATCHINGGIFTCONDITION_3
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@MATCHINGGIFTCONDITIONTYPECODEID uniqueidentifier,
@MATCHINGFACTOR decimal(5,2),
@MINMATCHPERGIFT money,
@MAXMATCHPERGIFT money,
@MAXMATCHANNUAL money,
@MAXMATCHTOTAL money,
@NOTES nvarchar(max),
@RELATIONSHIPS xml,
@MATCHTYPECODE tinyint,
@REVENUETYPECODE smallint
) as
set nocount on;
declare @CURRENTDATE datetime;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
declare @BASECURRENCYID uniqueidentifier;
select @BASECURRENCYID = BASECURRENCYID
from dbo.MATCHINGGIFTCONDITION
where ID = @ID;
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
update
dbo.MATCHINGGIFTCONDITION
set
MATCHINGGIFTCONDITIONTYPECODEID = @MATCHINGGIFTCONDITIONTYPECODEID,
MATCHINGFACTOR = @MATCHINGFACTOR,
MINMATCHPERGIFT = @MINMATCHPERGIFT,
MAXMATCHPERGIFT = @MAXMATCHPERGIFT,
MAXMATCHANNUAL = @MAXMATCHANNUAL,
MAXMATCHTOTAL = @MAXMATCHTOTAL,
NOTES = @NOTES,
MATCHTYPECODE = @MATCHTYPECODE,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID,
REVENUETYPECODE = @REVENUETYPECODE,
BASECURRENCYID = @BASECURRENCYID,
ORGANIZATIONMINMATCHPERGIFT = @ORGANIZATIONMINMATCHPERGIFT,
ORGANIZATIONMAXMATCHPERGIFT = @ORGANIZATIONMAXMATCHPERGIFT,
ORGANIZATIONMAXMATCHANNUAL = @ORGANIZATIONMAXMATCHANNUAL,
ORGANIZATIONMAXMATCHTOTAL = @ORGANIZATIONMAXMATCHTOTAL,
ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID
where
ID = @ID;
--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 try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;