UFN_PLEDGESPLIT_GETNETAMOUNTINCURRENCY

Returns the amount less write-offs for a given pledge.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@PLEDGESPLITID uniqueidentifier IN
@CURRENCYID uniqueidentifier IN

Definition

Copy


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


                select 
                    @RESULT = 
                            REVENUESPLIT.TRANSACTIONAMOUNT - 
                            coalesce((select
                                        sum(WO.TRANSACTIONAMOUNT) as AMOUNT
                                    from dbo.INSTALLMENTSPLIT
                                    inner join dbo.INSTALLMENTSPLITWRITEOFF WO on WO.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID 
                                    where 
                                        INSTALLMENTSPLIT.PLEDGEID = REVENUESPLIT.REVENUEID and
                                        INSTALLMENTSPLIT.DESIGNATIONID = REVENUESPLIT.DESIGNATIONID), 0),
                    @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
                from dbo.REVENUESPLIT
                where 
                    ID = @PLEDGESPLITID;

                set @CURRENCYID = coalesce(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY());
                if @CURRENCYID is not null and @TRANSACTIONCURRENCYID is not null and @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