UFN_MATCHINGGIFT_GETAUTOADDSPLITS_2
Stored procedure to add matching gifts from spouse relationship based on matching gift preferences
Return
Return Type |
---|
xml |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@AMOUNT | money | IN | |
@MATCHINGGIFTAMOUNT | money | IN | |
@SPLITS | xml | IN | |
@TYPECODE | tinyint | IN | |
@APPLICATIONCODE | tinyint | IN |
Definition
Copy
CREATE FUNCTION dbo.UFN_MATCHINGGIFT_GETAUTOADDSPLITS_2
(
@AMOUNT money,
@MATCHINGGIFTAMOUNT money,
@SPLITS xml,
@TYPECODE tinyint,
@APPLICATIONCODE tinyint
)
returns xml
as
BEGIN
-- Update the xml so that it has the proper root element
-- 17 and 9 are both sponsorships (sponsorship additional gift and sponsorship)
set @SPLITS = (
select AMOUNT, DESIGNATIONID as ID, TRANSACTIONCURRENCYID
from dbo.UFN_REVENUE_GETSPLITS_2_FROMITEMLISTXML(@SPLITS)
where (case when TYPECODE = 17 then 9 else TYPECODE end) = @TYPECODE
for xml raw('ITEM'),type,elements,root('AMOUNTSTOPRORATE'),binary base64
)
declare @DECIMALDIGITS tinyint = 2;
select
@DECIMALDIGITS = DECIMALDIGITS
from dbo.CURRENCY
where CURRENCY.ID = @SPLITS.value('(/AMOUNTSTOPRORATE/ITEM/TRANSACTIONCURRENCYID)[1]', 'uniqueidentifier');
return
(
select
PRORATEDSPLIT.AMOUNT,
PRORATEDSPLIT.ID as DESIGNATIONID,
@TYPECODE as TYPECODE,
@APPLICATIONCODE as APPLICATIONCODE,
ORIGINALSPLIT.ITEM.value('TRANSACTIONCURRENCYID[1]', 'uniqueidentifier') [TRANSACTIONCURRENCYID]
from
dbo.UFN_SPLITS_PRORATEAMOUNTS(@AMOUNT, @MATCHINGGIFTAMOUNT, @DECIMALDIGITS, @SPLITS) PRORATEDSPLIT
inner join @SPLITS.nodes('/AMOUNTSTOPRORATE/ITEM') ORIGINALSPLIT(ITEM) on ORIGINALSPLIT.ITEM.value('ID[1]', 'uniqueidentifier') = PRORATEDSPLIT.ID
for xml raw('ITEM'),type,elements,root('SPLITS'),binary base64
)
END