UFN_REVENUERECOGNITIONWITHGIFTAID_GETAMOUNTSINCURRENCY_BULK

Returns the amounts of revenue recognition with gift aid records 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
@ISUK bit IN

Definition

Copy


            CREATE function [dbo].[UFN_REVENUERECOGNITIONWITHGIFTAID_GETAMOUNTSINCURRENCY_BULK]
            (
                @CURRENCYID uniqueidentifier,
                @ORGANIZATIONCURRENCYID uniqueidentifier,
                @DECIMALDIGITS tinyint,
                @ROUNDINGTYPECODE tinyint,
                @ISUK bit
            )
            returns table
            as
            return
            (
      select
REVENUERECOGNITION.ID,
                case 
                        when dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUERECOGNITION.REVENUESPLITID, @CURRENCYID) > 0 then
                            case FINANCIALTRANSACTION.TYPECODE 
                            when 0 then 
                                case 
                                when REVENUERECOGNITION.AMOUNTINCURRENCY > dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUERECOGNITION.REVENUESPLITID, @CURRENCYID) then case when ELIGIBLEGIFTAID.ID is not null then REVENUESPLITGIFTAID.TAXCLAIMAMOUNTINCURRENCY else 0 end + REVENUERECOGNITION.AMOUNTINCURRENCY 
                                else REVENUERECOGNITION.AMOUNTINCURRENCY/dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUERECOGNITION.REVENUESPLITID, @CURRENCYID) * (case when ELIGIBLEGIFTAID.ID is not null then REVENUESPLITGIFTAID.TAXCLAIMAMOUNTINCURRENCY else 0 end) + REVENUERECOGNITION.AMOUNTINCURRENCY 
                            end
                            when 1 then 
                            case 
                                when REVENUERECOGNITION.AMOUNTINCURRENCY > dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUERECOGNITION.REVENUESPLITID, @CURRENCYID
                                then coalesce(PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT.TAXCLAIMAMOUNTINCURRENCY,0)
                                + REVENUERECOGNITION.AMOUNTINCURRENCY 
                                else REVENUERECOGNITION.AMOUNTINCURRENCY/dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUERECOGNITION.REVENUESPLITID, @CURRENCYID) * coalesce(PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT.TAXCLAIMAMOUNTINCURRENCY,0)
                                + REVENUERECOGNITION.AMOUNTINCURRENCY 
                            end
                            else REVENUERECOGNITION.AMOUNTINCURRENCY 
                            end
                        else dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY(REVENUERECOGNITION.REVENUESPLITID, @CURRENCYID)
                    end [AMOUNTINCURRENCY],

                    --Returns the date when amount changed

                    -- considers when the net revenue changes and when the gift aid eligibility changes

                    case
                        when ELIGIBLEGIFTAID.ID is not null
                        then 
                            case
                                when ELIGIBLEGIFTAID.DATETAXDECLARATIONCHANGED >= REVENUESPLITGIFTAID.DATEAMOUNTCHANGED
                                then ELIGIBLEGIFTAID.DATETAXDECLARATIONCHANGED
                                else REVENUESPLITGIFTAID.DATEAMOUNTCHANGED
                            end
                        else REVENUESPLITGIFTAID.DATEAMOUNTCHANGED
                    end as DATEGROSSAMOUNTCHANGED,
                    REVENUERECOGNITION.REVENUESPLITID,
                    REVENUERECOGNITION.CONSTITUENTID,                    
                    REVENUERECOGNITION.EFFECTIVEDATE,
                    REVENUERECOGNITION.DATEADDED,
                    REVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID,
                    REVENUERECOGNITION.TSLONG,
                    REVENUERECOGNITION.REVENUEID,
                    REVENUERECOGNITION.TRANSACTIONTYPECODE,
                    REVENUERECOGNITION.REVENUECONSTITUENTID,
                    REVENUERECOGNITION.DATE,
                    REVENUERECOGNITION.REVENUEDATEADDED,
                    REVENUERECOGNITION.APPLICATIONCODE,
                    REVENUERECOGNITION.REVENUESPLITTYPECODE,
                    REVENUERECOGNITION.DESIGNATIONID,
                    REVENUERECOGNITION.REVENUESPLITTSLONG,
                    REVENUERECOGNITION.TRANSACTIONTYPE,
                    REVENUERECOGNITION.ORGANIZATIONEXCHANGERATEID,
                    REVENUERECOGNITION.ORGANIZATIONAMOUNT
                from
                    dbo.UFN_REVENUERECOGNITION_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUERECOGNITION
                    inner join dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUESPLIT on REVENUESPLIT.ID = REVENUERECOGNITION.REVENUESPLITID
                    inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = REVENUESPLIT.REVENUEID
                    left join dbo.UFN_REVENUESPLITGIFTAID_GETAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) REVENUESPLITGIFTAID on REVENUESPLITGIFTAID.ID = REVENUESPLIT.ID
                    left join dbo.UFN_REVENUESPLITGIFTAID_GETELIGIBLE(1) ELIGIBLEGIFTAID on ELIGIBLEGIFTAID.ID = REVENUESPLITGIFTAID.ID
                    left join dbo.UFN_PLEDGEINSTALLMENTSPLIT_CALCULATETAXCLAIMAMOUNTSINCURRENCY_BULK(@CURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT on PLEDGEINSTALLMENTSPLITTAXCLAIMAMOUNT.REVENUESPLITID = REVENUESPLIT.ID
                where
                    @ISUK = 1
                    and FINANCIALTRANSACTION.DELETEDON is NULL
                    and ((FINANCIALTRANSACTION.TYPECODE between 0 and 9) or (FINANCIALTRANSACTION.TYPECODE = 15)) -- REVENUE types

      )