UFN_REVENUERECOGNITION_GETAMOUNTINCURRENCY_BULK_3

Return

Return Type
table

Parameters

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

Definition

Copy


            CREATE function [dbo].[UFN_REVENUERECOGNITION_GETAMOUNTINCURRENCY_BULK_3]
            (
                @CURRENCYID uniqueidentifier,
                @ORGANIZATIONCURRENCYID uniqueidentifier,
                @DECIMALDIGITS tinyint,
        @ROUNDINGTYPECODE tinyint,
                @ROOTID uniqueidentifier,
                @CURRENTAPPUSER uniqueidentifier
            )
            returns table
            as
            return
            (
                select
                    REVENUERECOGNITION.ID,
                    REVENUERECOGNITION.REVENUESPLITID,
                    REVENUERECOGNITION.CONSTITUENTID,
                    REVENUERECOGNITION.EFFECTIVEDATE,
                    case
                        when (@CURRENCYID is null) or (@CURRENCYID = @ORGANIZATIONCURRENCYID)
                            then REVENUERECOGNITION.ORGANIZATIONAMOUNT

                        else
                            REVENUERECOGNITION.AMOUNT
                    end [AMOUNTINCURRENCY],
                    [REVENUERECOGNITION].[DATEADDED],
                    [REVENUERECOGNITION].[REVENUERECOGNITIONTYPECODEID],
                    [REVENUERECOGNITION].[TSLONG],
                    FINANCIALTRANSACTION.[ID] as [REVENUEID],
                    FINANCIALTRANSACTION.[TYPECODE] as [TRANSACTIONTYPECODE],
                    FINANCIALTRANSACTION.[CONSTITUENTID] as [REVENUECONSTITUENTID],
                    FINANCIALTRANSACTION.[DATE],
                    FINANCIALTRANSACTION.[DATEADDED] as [REVENUEDATEADDED],
                    REVENUESPLIT_EXT.[APPLICATIONCODE],
                    REVENUESPLIT_EXT.[TYPECODE] as [REVENUESPLITTYPECODE],
                    REVENUESPLIT_EXT.[DESIGNATIONID],
                    FINANCIALTRANSACTIONLINEITEM.[TSLONG] as [REVENUESPLITTSLONG],
                    FINANCIALTRANSACTION.[TYPE] as [TRANSACTIONTYPE],
                    case
                        when (@CURRENCYID is null) or (@CURRENCYID = @ORGANIZATIONCURRENCYID)
                            then null

                        else
                            REVENUERECOGNITION.ORGANIZATIONEXCHANGERATEID
                    end [ORGANIZATIONEXCHANGERATEID],
                    REVENUERECOGNITION.ORGANIZATIONAMOUNT
                from
                    dbo.REVENUERECOGNITION with (nolock)
                    inner join dbo.FINANCIALTRANSACTIONLINEITEM with (nolock) on FINANCIALTRANSACTIONLINEITEM.ID = REVENUERECOGNITION.REVENUESPLITID and FINANCIALTRANSACTIONLINEITEM.TYPECODE = 0
                    inner join dbo.REVENUESPLIT_EXT with (nolock) on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                    inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
                  inner join dbo.UFN_CORPORATESTRUCTURESELECTION_GET(@CURRENTAPPUSER,@ROOTID) cs on cs.SELECTEDID = REVENUERECOGNITION.CONSTITUENTID
        where 
                    (
                        (@CURRENCYID is null
                        or (@CURRENCYID = @ORGANIZATIONCURRENCYID)
                        or @CURRENCYID = REVENUERECOGNITION.BASECURRENCYID
                    ) 
                    and FINANCIALTRANSACTIONLINEITEM.TYPECODE = 0  -- Standard line items only

                    and FINANCIALTRANSACTIONLINEITEM.DELETEDON is NULL -- Non deleted line items only

                    and FINANCIALTRANSACTION.DELETEDON is NULL
                    and ((FINANCIALTRANSACTION.TYPECODE between 0 and 9) or (FINANCIALTRANSACTION.TYPECODE = 15)) -- Only FT that used to be in the REVENUE table.


                union all

                select
                    REVENUERECOGNITION.ID,
                    REVENUERECOGNITION.REVENUESPLITID,
                    REVENUERECOGNITION.CONSTITUENTID,
                    REVENUERECOGNITION.EFFECTIVEDATE,
                    case
                        when [LATESTORGANIZATIONEXCHANGERATE].RATE is not null
                            then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(REVENUERECOGNITION.ORGANIZATIONAMOUNT, [LATESTORGANIZATIONEXCHANGERATE].RATE), @DECIMALDIGITS, @ROUNDINGTYPECODE)

                        when [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE is not null
                            then dbo.UFN_CURRENCY_ROUND(dbo.UFN_CURRENCY_APPLYRATE(REVENUERECOGNITION.ORGANIZATIONAMOUNT, cast((1 / [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE) as decimal(20,8))), @DECIMALDIGITS, @ROUNDINGTYPECODE)
                        else
                            0

                    end [AMOUNTINCURRENCY],
                    [REVENUERECOGNITION].[DATEADDED],
                    [REVENUERECOGNITION].[REVENUERECOGNITIONTYPECODEID],
                    [REVENUERECOGNITION].[TSLONG],
                    FINANCIALTRANSACTION.[ID] as [REVENUEID],
                    FINANCIALTRANSACTION.[TYPECODE] as [TRANSACTIONTYPECODE],
                    FINANCIALTRANSACTION.[CONSTITUENTID] as [REVENUECONSTITUENTID],
                    FINANCIALTRANSACTION.[DATE],
                    FINANCIALTRANSACTION.[DATEADDED] as [REVENUEDATEADDED],
                    REVENUESPLIT_EXT.[APPLICATIONCODE],
                    REVENUESPLIT_EXT.[TYPECODE] as [REVENUESPLITTYPECODE],
                    REVENUESPLIT_EXT.[DESIGNATIONID],
                    FINANCIALTRANSACTIONLINEITEM.[TSLONG] as [REVENUESPLITTSLONG],
                    FINANCIALTRANSACTION.[TYPE] as [TRANSACTIONTYPE],
                    case
                        when REVENUERECOGNITION.ORGANIZATIONEXCHANGERATEID is not null
                            then REVENUERECOGNITION.ORGANIZATIONEXCHANGERATEID

                        when [LATESTORGANIZATIONEXCHANGERATE].RATE is not null
                            then [LATESTORGANIZATIONEXCHANGERATE].ID

                        when [LATESTINVERSEORGANIZATIONEXCHANGERATE].RATE is not null
                            then [LATESTINVERSEORGANIZATIONEXCHANGERATE].ID
                        else
                            null
                    end [ORGANIZATIONEXCHANGERATEID],
                    REVENUERECOGNITION.ORGANIZATIONAMOUNT
                from
                    dbo.REVENUERECOGNITION with (nolock)
                    inner join dbo.FINANCIALTRANSACTIONLINEITEM with (nolock) on FINANCIALTRANSACTIONLINEITEM.ID = REVENUERECOGNITION.REVENUESPLITID
                    inner join dbo.REVENUESPLIT_EXT with (nolock) on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                    inner join dbo.FINANCIALTRANSACTION with (nolock) on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
                    inner join dbo.UFN_CORPORATESTRUCTURESELECTION_GET(@CURRENTAPPUSER,@ROOTID) cs on cs.SELECTEDID = REVENUERECOGNITION.CONSTITUENTID
          left outer join dbo.CURRENCYEXCHANGERATE as LATESTORGANIZATIONEXCHANGERATE 
                      on @ORGANIZATIONCURRENCYID = LATESTORGANIZATIONEXCHANGERATE.FROMCURRENCYID
                            and @CURRENCYID = LATESTORGANIZATIONEXCHANGERATE.TOCURRENCYID
                            and LATESTORGANIZATIONEXCHANGERATE.TYPECODE in (0,1)
                            and LATESTORGANIZATIONEXCHANGERATE.ISLATESTRATEFORASOFDATE = 1
                            and dateadd(ms, 86399996, FINANCIALTRANSACTION.[DATE]) >= LATESTORGANIZATIONEXCHANGERATE.ASOFDATESDTZ
                            and dateadd(ms, 86399996, FINANCIALTRANSACTION.[DATE]) <= LATESTORGANIZATIONEXCHANGERATE.NEXTRATEASOFDATEORMAXSDTZ
                    left outer join dbo.CURRENCYEXCHANGERATE as LATESTINVERSEORGANIZATIONEXCHANGERATE
                      on @CURRENCYID = LATESTINVERSEORGANIZATIONEXCHANGERATE.FROMCURRENCYID
                            and @ORGANIZATIONCURRENCYID= LATESTINVERSEORGANIZATIONEXCHANGERATE.TOCURRENCYID
                            and LATESTINVERSEORGANIZATIONEXCHANGERATE.TYPECODE in (0,1)
                            and LATESTINVERSEORGANIZATIONEXCHANGERATE.ISLATESTRATEFORASOFDATE = 1
                            and dateadd(ms, 86399996, FINANCIALTRANSACTION.[DATE]) >= LATESTINVERSEORGANIZATIONEXCHANGERATE.ASOFDATESDTZ
                            and dateadd(ms, 86399996, FINANCIALTRANSACTION.[DATE]) <= LATESTINVERSEORGANIZATIONEXCHANGERATE.NEXTRATEASOFDATEORMAXSDTZ
                    where
                        (@CURRENCYID is not null
                        and (@CURRENCYID <> @ORGANIZATIONCURRENCYID)
                        and @CURRENCYID <> REVENUERECOGNITION.BASECURRENCYID    
            and FINANCIALTRANSACTIONLINEITEM.TYPECODE = 0  -- Standard line items only

                  and FINANCIALTRANSACTIONLINEITEM.DELETEDON is NULL -- Non deleted line items only

                  and FINANCIALTRANSACTION.DELETEDON is NULL
                  and ((FINANCIALTRANSACTION.TYPECODE between 0 and 9) or (FINANCIALTRANSACTION.TYPECODE = 15)) -- Only FT that used to be in the REVENUE table.

            )