UFN_PLEDGE_GETREVALUEDBALANCEASOFINCURRENCY
Returns the unpaid balance, as a revalued amount in the given currency, for a given pledge as of a given date.
Return
Return Type |
---|
money |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PLEDGEID | uniqueidentifier | IN | |
@ASOFDATE | datetime | IN | |
@USEORIGINALRATE | bit | IN | |
@CURRENCYID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_PLEDGE_GETREVALUEDBALANCEASOFINCURRENCY
(
@PLEDGEID uniqueidentifier,
@ASOFDATE datetime,
@USEORIGINALRATE bit = 0,
@CURRENCYID uniqueidentifier
)
returns money
with execute as caller
as begin
declare @RESULT money;
declare @BASECURRENCYID uniqueidentifier;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
select
@BASECURRENCYID = BASECURRENCYID,
@TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
from dbo.REVENUE where ID = @PLEDGEID;
if @CURRENCYID = @TRANSACTIONCURRENCYID
set @RESULT = dbo.UFN_PLEDGE_GETBALANCEASOF(@PLEDGEID, @ASOFDATE);
else if @CURRENCYID = @BASECURRENCYID
set @RESULT = dbo.UFN_PLEDGE_GETREVALUEDBASEBALANCEASOF(@PLEDGEID, @ASOFDATE, @USEORIGINALRATE);
else
begin
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
if @CURRENCYID = @ORGANIZATIONCURRENCYID or @CURRENCYID is null
begin
set @RESULT = dbo.UFN_PLEDGE_GETREVALUEDORGANIZATIONBALANCEASOF(@PLEDGEID, @ASOFDATE, @USEORIGINALRATE);
end
else
begin
declare @CURRENCYEXCHANGERATEID uniqueidentifier;
set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@TRANSACTIONCURRENCYID, @CURRENCYID, @ASOFDATE, 1, null);
set @RESULT = dbo.UFN_CURRENCY_CONVERT(dbo.UFN_PLEDGE_GETBALANCEASOF(@PLEDGEID, @ASOFDATE), @CURRENCYEXCHANGERATEID);
end
end
return @RESULT;
end