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