UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGEGROSSAMOUNTINCURRENCY
Calculate pledge gross amount in currency.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGEID | uniqueidentifier | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGEGROSSAMOUNTINCURRENCY
(
@PLEDGEID uniqueidentifier,
@CURRENCYID uniqueidentifier
)
returns money
with execute as caller
as begin
declare @PLEDGEGROSSAMOUNT money
declare @RECORDDATE date = (select DATE from dbo.REVENUE where REVENUE.ID = @PLEDGEID)
select
@PLEDGEGROSSAMOUNT = sum(REVENUESPLIT.ORGANIZATIONAMOUNT)
+ sum(coalesce(TAXCLAIM.BASETAXCLAIMAMOUNT + TAXCLAIM.TRANSITIONALTAXCLAIMAMOUNT, 0))
from dbo.REVENUESPLIT
cross apply dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATEPLEDGETAXCLAIMAMOUNT_2(REVENUESPLIT.ID,2) as TAXCLAIM
where REVENUESPLIT.REVENUEID = @PLEDGEID
if @CURRENCYID <> dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY()
begin
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
if (@CURRENCYEXCHANGERATEID is not null)
begin
set @PLEDGEGROSSAMOUNT = dbo.UFN_CURRENCY_CONVERT(@PLEDGEGROSSAMOUNT, @CURRENCYEXCHANGERATEID)
end
else
begin
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);
set @PLEDGEGROSSAMOUNT = dbo.UFN_CURRENCY_CONVERTINVERSE(@PLEDGEGROSSAMOUNT, @CURRENCYEXCHANGERATEID)
end
end
return @PLEDGEGROSSAMOUNT
end