UFN_REVENUE_GETSPLITS_LISTINCURRENCY

Returns a list of splits for a given revenue record and translates the amounts in a currency.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_REVENUE_GETSPLITS_LISTINCURRENCY
            (
                @REVENUEID uniqueidentifier,
                @CURRENCYID uniqueidentifier = null
            )
            returns table            
            as            
            return 
                (
                    select
                        LI.ID,
                        dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(LI.ID, @CURRENCYID) - sum(coalesce(WO.AMOUNT,0)) AMOUNT,
                        dbo.UFN_DESIGNATION_BUILDNAME(RSE.DESIGNATIONID) PURPOSE
                    from dbo.FINANCIALTRANSACTIONLINEITEM LI
                    inner join dbo.REVENUESPLIT_EXT RSE on RSE.ID = LI.ID
                    left join 
                        (select
                            INS.REVENUESPLITID,
                            case when dbo.UFN_REVENUE_GETAMOUNTINCURRENCY(FT.PARENTID, @CURRENCYID) > 0 then cast(sum(dbo.UFN_INSTALLMENTSPLITWRITEOFF_GETAMOUNTINCURRENCY(INSTALLMENTSPLITWRITEOFF.ID, @CURRENCYID)) * (cast(dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(INS.REVENUESPLITID, @CURRENCYID) as decimal(30, 4))/ cast(dbo.UFN_REVENUE_GETAMOUNTINCURRENCY(FT.PARENTID, @CURRENCYID) as decimal(30, 4))) as money) else null end AS [AMOUNT]
                        from dbo.WRITEOFF_EXT WRITEOFF
                        inner join dbo.FINANCIALTRANSACTION FT on FT.ID = WRITEOFF.ID
                        inner join dbo.INSTALLMENTSPLITWRITEOFF on INSTALLMENTSPLITWRITEOFF.WRITEOFFID = WRITEOFF.ID
                        inner join dbo.INSTALLMENTSPLIT INS on INS.ID = INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID
                        where FT.TYPECODE = 20 and FT.DELETEDON is null
                        group by INS.REVENUESPLITID, FT.PARENTID) as WO on RSE.ID = WO.REVENUESPLITID
                    where LI.FINANCIALTRANSACTIONID = @REVENUEID and LI.TYPECODE != 1 and LI.DELETEDON is null
                    group by
                        LI.ID, RSE.DESIGNATIONID
                );