UFN_REVENUE_GETPRORATEDSPLITS
Get prorated splits based on the source revenue's splits.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SOURCEREVENUEID | uniqueidentifier | IN | |
@AMOUNT | money | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_GETPRORATEDSPLITS
(
@SOURCEREVENUEID uniqueidentifier,
@AMOUNT money
)
returns @SPLITS table
(
SOURCEREVENUESPLITID uniqueidentifier,
DESIGNATIONID uniqueidentifier,
AMOUNT money,
TYPECODE tinyint
)
as
begin
declare @SOURCEAMOUNT money;
declare @DECIMALDIGITS tinyint;
select @SOURCEAMOUNT = REVENUE.TRANSACTIONAMOUNT, @DECIMALDIGITS = CURRENCY.DECIMALDIGITS
from dbo.REVENUE
left join dbo.CURRENCY on CURRENCY.ID = REVENUE.TRANSACTIONCURRENCYID
where REVENUE.ID = @SOURCEREVENUEID
declare @SOURCESPLITS xml
set @SOURCESPLITS =
(
select
ID, TRANSACTIONAMOUNT as AMOUNT
from dbo.REVENUESPLIT
where REVENUEID = @SOURCEREVENUEID
order by ID
for xml raw('ITEM'),type,elements,root('AMOUNTSTOPRORATE'),binary base64
)
insert into @SPLITS
(
SOURCEREVENUESPLITID,
DESIGNATIONID,
AMOUNT,
TYPECODE
)
select
REVENUESPLIT.ID,
REVENUESPLIT.DESIGNATIONID,
PRORATEDSPLIT.AMOUNT,
REVENUESPLIT.TYPECODE
from dbo.UFN_SPLITS_PRORATEAMOUNTS(@SOURCEAMOUNT, @AMOUNT, @DECIMALDIGITS, @SOURCESPLITS) PRORATEDSPLIT
inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = PRORATEDSPLIT.ID
return
end