UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK

Returns the amount of a given revenue split record in the given currency.

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@CURRENCYID uniqueidentifier IN
@ORGANIZATIONCURRENCYID uniqueidentifier IN
@DECIMALDIGITS tinyint IN
@ROUNDINGTYPECODE tinyint IN

Definition

Copy


CREATE function [dbo].[UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK]
            (
                @CURRENCYID uniqueidentifier,
                @ORGANIZATIONCURRENCYID uniqueidentifier,
                @DECIMALDIGITS tinyint,
                @ROUNDINGTYPECODE tinyint
            )
            returns table
            as
            return
            (
                select
                    FTLI.ID,
                    RES.APPLICATIONCODE,
                    RES.[APPLICATION],
                    FTLI.FINANCIALTRANSACTIONID REVENUEID,
                    FT.CONSTITUENTID,
                    RE.APPEALID,
                    FT.TYPECODE as TRANSACTIONTYPECODE,
                    FT.[TYPE] as TRANSACTIONTYPE,
                    case when 
              (@CURRENCYID is not null
                          and (@CURRENCYID <> @ORGANIZATIONCURRENCYID)
                          and @CURRENCYID <> FTB.BASECURRENCYID                        
                    then
                      case
                          when [LATESTORGANIZATIONEXCHANGERATE].RATE is not null
                              then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(FTLI.ORGAMOUNT, [LATESTORGANIZATIONEXCHANGERATE].RATE), @DECIMALDIGITS, @ROUNDINGTYPECODE)

                          when [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE is not null
                              then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(FTLI.ORGAMOUNT, cast((1 / [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE) as decimal(20,8))), @DECIMALDIGITS, @ROUNDINGTYPECODE)
                          else
                              0
                      end 
          else                    
                      case
                          when (@CURRENCYID is null) or (@CURRENCYID = @ORGANIZATIONCURRENCYID)
                              then FTLI.ORGAMOUNT
                          else
                              FTLI.BASEAMOUNT    
                      end 

                    end [AMOUNTINCURRENCY],
                    cast(FT.[DATE] as datetime) [DATE],
                    RES.DESIGNATIONID,
                    RES.TYPECODE,
                    FTLI.[TYPE],
                    FT.DATEADDED [REVENUEDATEADDED],
                    FTLI.TSLONG,
                    RE.CHANNELCODEID,
                    FT.TRANSACTIONCURRENCYID,
                    FTLI.DESCRIPTION, 
                    FTLI.POSTDATE,
                    FTLI.DELETEDON SPLITDELETEDON,
                    FT.DELETEDON REVENUEDELETEDON
                from
                    dbo.FINANCIALTRANSACTIONLINEITEM as FTLI with (nolock)
                    inner join dbo.FINANCIALTRANSACTION as FT with (nolock) on FTLI.FINANCIALTRANSACTIONID = FT.ID
                    inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I as FTB with (nolock) on FT.ID = FTB.FINANCIALTRANSACTIONID
                    inner join dbo.REVENUE_EXT as RE on FT.ID = RE.ID
                    inner join dbo.REVENUESPLIT_EXT as RES on FTLI.ID = RES.ID
                    left outer join dbo.CURRENCYEXCHANGERATE LATESTORGANIZATIONEXCHANGERATE  with (nolock)
                      on 
                            @ORGANIZATIONCURRENCYID = LATESTORGANIZATIONEXCHANGERATE.FROMCURRENCYID
                            and @CURRENCYID = LATESTORGANIZATIONEXCHANGERATE.TOCURRENCYID
                            and LATESTORGANIZATIONEXCHANGERATE.TYPECODE in (0,1)
                            and LATESTORGANIZATIONEXCHANGERATE.ISLATESTRATEFORASOFDATE = 1
                            and dateadd(ms, 86399996, FT.[DATE]) >= LATESTORGANIZATIONEXCHANGERATE.ASOFDATE
              and dateadd(ms, 86399996, FT.[DATE]) <= LATESTORGANIZATIONEXCHANGERATE.NEXTRATEASOFDATEORMAX
                    left outer join dbo.CURRENCYEXCHANGERATE LATESTINVERSEORGANIZATIONEXCHANGERATE with (nolock)
                      on
                        @CURRENCYID = LATESTINVERSEORGANIZATIONEXCHANGERATE.FROMCURRENCYID
                            and @ORGANIZATIONCURRENCYID= LATESTINVERSEORGANIZATIONEXCHANGERATE.TOCURRENCYID
                            and LATESTINVERSEORGANIZATIONEXCHANGERATE.TYPECODE in (0,1)
                            and LATESTINVERSEORGANIZATIONEXCHANGERATE.ISLATESTRATEFORASOFDATE = 1
                            and dateadd(ms, 86399996, FT.[DATE]) >= LATESTINVERSEORGANIZATIONEXCHANGERATE.ASOFDATE
              and dateadd(ms, 86399996, FT.[DATE]) <= LATESTINVERSEORGANIZATIONEXCHANGERATE.NEXTRATEASOFDATEORMAX
              where FTLI.DELETEDON is null and FTLI.TYPECODE = 0

            )