UFN_PLEDGE_GETREVALUEDBASEBALANCEASOF
Returns the unpaid balance, as a revalued base currency amount, 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 |
Definition
Copy
CREATE function dbo.UFN_PLEDGE_GETREVALUEDBASEBALANCEASOF
(
@PLEDGEID uniqueidentifier,
@ASOFDATE datetime,
@USEORIGINALRATE bit = 0
)
returns money
with execute as caller
as begin
declare @RESULT money;
declare @REVALUATIONID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
select
@BASEEXCHANGERATEID = FINANCIALTRANSACTION.BASEEXCHANGERATEID,
@BASECURRENCYID = CURRENCYSET.BASECURRENCYID,
@TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
from dbo.FINANCIALTRANSACTION
inner join dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
inner join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
where FINANCIALTRANSACTION.ID = @PLEDGEID;
if @BASECURRENCYID = @TRANSACTIONCURRENCYID
set @RESULT = dbo.UFN_PLEDGE_GETBALANCEASOF(@PLEDGEID, @ASOFDATE);
else
begin
if @USEORIGINALRATE = 0
begin
set @REVALUATIONID = dbo.UFN_REVENUE_GETREVALUATIONASOF(@PLEDGEID, @ASOFDATE);
end
-- If we looked for and found a revaluation for the given date, get its rate.
-- Otherwise, we want to use the original rate, or didn't find a revaluation
-- for the given date, so we just use the rate off the revenue.
if @REVALUATIONID is not null
begin
select @BASEEXCHANGERATEID = BASEEXCHANGERATEID
from dbo.COMMITMENTREVALUATION
where ID = @REVALUATIONID;
end
set @RESULT = dbo.UFN_CURRENCY_CONVERT(dbo.UFN_PLEDGE_GETBALANCEASOF(@PLEDGEID, @ASOFDATE), @BASEEXCHANGERATEID);
end
return @RESULT;
end