UFN_PLEDGE_GETDESIGNATIONBALANCEINCURRENCY

Returns the unpaid balance for a given pledge and designation in the given currency.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@PLEDGEID uniqueidentifier IN
@DESIGNATIONID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_PLEDGE_GETDESIGNATIONBALANCEINCURRENCY
            (
                @PLEDGEID uniqueidentifier,
                @DESIGNATIONID uniqueidentifier,
                @CURRENCYID uniqueidentifier
            )
            returns money
            with execute as caller
            as begin
                declare @RESULT money = 0;
                declare @CURRENTDATE datetime = getdate(); -- Use today's date to get the exchange rate.

                declare @TRANSACTIONCURRENCYID uniqueidentifier;

                set @RESULT = dbo.UFN_PLEDGE_GETDESIGNATIONBALANCE(@PLEDGEID, @DESIGNATIONID);
                select @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID from REVENUE where ID = @PLEDGEID

                set @CURRENCYID = coalesce(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY());
                if @CURRENCYID <> @TRANSACTIONCURRENCYID
                begin
                    declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                    set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@TRANSACTIONCURRENCYID, @CURRENCYID, @CURRENTDATE, 1, null);
                    if (@CURRENCYEXCHANGERATEID is not null)
                        set @RESULT = dbo.UFN_CURRENCY_CONVERT(@RESULT, @CURRENCYEXCHANGERATEID)
                    else
                        set @RESULT = dbo.UFN_CURRENCY_CONVERTINVERSE(@RESULT, dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, @TRANSACTIONCURRENCYID, @CURRENTDATE, 1, null))
                end

                return @RESULT;
            end