UFN_REVENUEDETAIL_JOINBENEFITS
Returns returns a joined set of money and percentage based benefits.
Return
Return Type |
---|
xml |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@UNITBENEFITS | xml | IN | |
@PERCENTAGEBENEFITS | xml | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUEDETAIL_JOINBENEFITS(@UNITBENEFITS xml, @PERCENTAGEBENEFITS xml)
returns xml
as
begin
return
(
select * from
(
SELECT
T.c.value('(BENEFITID)[1]','uniqueidentifier') AS 'BENEFITID',
T.c.value('(DETAILS)[1]','nvarchar(255)') AS 'DETAILS',
T.c.value('(ID)[1]','uniqueidentifier') AS 'ID',
T.c.value('(QUANTITY)[1]','int') AS 'QUANTITY',
T.c.value('(SEQUENCE)[1]','int') AS 'SEQUENCE',
T.c.value('(TOTALVALUE)[1]','money') AS 'TOTALVALUE',
T.c.value('(UNITVALUE)[1]','money') AS 'UNITVALUE',
0.00 as PERCENTAPPLICABLEAMOUNT,
0.00 as VALUEPERCENT,
T.c.value('(BASECURRENCYID)[1]','uniqueidentifier') AS 'BASECURRENCYID',
T.c.value('(REVENUESPLITID)[1]','uniqueidentifier') AS 'REVENUESPLITID'
FROM @UNITBENEFITS.nodes('/BENEFITS/ITEM') T(c)
union all
SELECT
T.c.value('(BENEFITID)[1]','uniqueidentifier') AS 'BENEFITID',
T.c.value('(DETAILS)[1]','nvarchar(255)') AS 'DETAILS',
T.c.value('(ID)[1]','uniqueidentifier') AS 'ID',
0 AS 'QUANTITY',
T.c.value('(SEQUENCE)[1]','int') AS 'SEQUENCE',
T.c.value('(TOTALVALUE)[1]','money') AS 'TOTALVALUE',
0.00 as UNITVALUE,
T.c.value('(PERCENTAPPLICABLEAMOUNT)[1]','money') AS 'PERCENTAPPLICABLEAMOUNT',
T.c.value('(VALUEPERCENT)[1]','money') AS 'VALUEPERCENT',
null as 'BASECURRENCYID',
T.c.value('(REVENUESPLITID)[1]','uniqueidentifier') AS 'REVENUESPLITID'
FROM @PERCENTAGEBENEFITS.nodes('/PERCENTAGEBENEFITS/ITEM') T(c)
) as BENEFITS
for xml raw('ITEM'),type,elements,root('BENEFITS'),BINARY BASE64
)
end