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