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
)