UFN_PLANNEDGIFT_GETREALIZEDAMOUNT

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


                CREATE function dbo.UFN_PLANNEDGIFT_GETREALIZEDAMOUNT
                (
                    @ID uniqueidentifier
                )
                returns money
                with execute as caller
                as
                begin
                    declare @BASEREALIZEDAMOUNT money;
                    set @BASEREALIZEDAMOUNT = 0;

                    if(dbo.UFN_PLANNEDGIFT_AUTOCALCULATE_REALIZEDAMOUNT(@ID) = 1
                    begin

                        -- Get the result of the calculation in transaction currency,

                        -- then convert it to base currency.


                        declare @TRANSACTIONREALIZEDAMOUNT money;
                        declare @DATE datetime;
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @BASEEXCHANGERATEID uniqueidentifier;
                        declare @TRANSACTIONCURRENCYID uniqueidentifier;

                        -- Get the calculation result in transaction currency.

                        select @TRANSACTIONREALIZEDAMOUNT = dbo.UFN_PLANNEDGIFT_GETTRANSACTIONREALIZEDAMOUNT(@ID);

                        -- Get the currency information we need for conversion.

                        select
                            @DATE = GIFTDATE,
                            @BASECURRENCYID = BASECURRENCYID,
                            @BASEEXCHANGERATEID = BASEEXCHANGERATEID,
                            @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
                        from
                            dbo.PLANNEDGIFT
                        where
                            ID = @ID;

                        -- Perform the conversion to base currency.

                        if @TRANSACTIONCURRENCYID = @BASECURRENCYID or @TRANSACTIONCURRENCYID is null
                        begin
                            set @BASEREALIZEDAMOUNT = @TRANSACTIONREALIZEDAMOUNT;
                        end
                        else
                        begin
                            if @BASEEXCHANGERATEID is null
                                set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID, @BASECURRENCYID, @DATE, 1, null);

                            set @BASEREALIZEDAMOUNT = dbo.UFN_CURRENCY_CONVERT(@TRANSACTIONREALIZEDAMOUNT, @BASEEXCHANGERATEID);
                        end

                    end
                    else
                    begin
                        select 
                            @BASEREALIZEDAMOUNT = isnull(PLANNEDGIFT.REALIZEDVALUE,0)
                        from
                            dbo.PLANNEDGIFT
                        where 
                            PLANNEDGIFT.ID = @ID
                    end

                    return @BASEREALIZEDAMOUNT;
                end