UFN_PLANNEDGIFTADDITIONDESIGNATION_AMOUNTINCURRENCY

Returns the amount of an planned gift addition designation in a specific currency.

Return

Return Type
money

Parameters

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

Definition

Copy


          CREATE function dbo.UFN_PLANNEDGIFTADDITIONDESIGNATION_AMOUNTINCURRENCY(
            @ID uniqueidentifier,
            @CURRENCYID uniqueidentifier
          )
          returns money
          with execute as caller
          as begin

            declare @AMOUNT money;

            if (@CURRENCYID is null) or (@CURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY())
            begin
              select @AMOUNT = coalesce(
                                          (
                                              select
                                                  sum(ORGANIZATIONAMOUNT)
                                              from
                                                  dbo.PLANNEDGIFTADDITIONDESIGNATION
                                              where
                                                  PLANNEDGIFTADDITIONID=@ID
                                          ),
                                          0
                                      )
            end
            else
            begin
              declare @RECORDBASECURRENCYID uniqueidentifier;
              declare @RECORDDATE datetime;

              select
                @RECORDBASECURRENCYID = PLANNEDGIFTADDITIONDESIGNATION.BASECURRENCYID,
                @RECORDDATE = PLANNEDGIFTADDITIONDESIGNATION.DATEADDED
              from
                dbo.PLANNEDGIFTADDITIONDESIGNATION
              where
                PLANNEDGIFTADDITIONDESIGNATION.PLANNEDGIFTADDITIONID = @ID;

              if @CURRENCYID = @RECORDBASECURRENCYID
              begin
                select @AMOUNT = coalesce(
                                        (
                                            select
                                                sum(AMOUNT)
                                            from
                                                dbo.PLANNEDGIFTADDITIONDESIGNATION
                                            where
                                                PLANNEDGIFTADDITIONID=@ID
                                        ),
                                        0
                                    )
              end
              else
              begin
                declare @CURRENCYEXCHANGERATEID uniqueidentifier;

                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @CURRENCYID, @RECORDDATE, 1, null);
                if (@CURRENCYEXCHANGERATEID is not null)
                begin
                  select @AMOUNT = coalesce(
                                          (
                                              select
                                                  sum(dbo.UFN_CURRENCY_CONVERT(ORGANIZATIONAMOUNT, @CURRENCYEXCHANGERATEID))
                                              from
                                                  dbo.PLANNEDGIFTADDITIONDESIGNATION
                                              where
                                                  PLANNEDGIFTADDITIONID=@ID
                                          ),
                                          0
                                      )
                end
                else
                begin
                  set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTINCLUDEEXPIRED(@CURRENCYID, dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(), @RECORDDATE, 1, null);

                  select @AMOUNT = coalesce(
                                          (
                                              select
                                                  sum(dbo.UFN_CURRENCY_CONVERTINVERSE(ORGANIZATIONAMOUNT, @CURRENCYEXCHANGERATEID))
                                              from
                                                  dbo.PLANNEDGIFTADDITIONDESIGNATION
                                              where
                                                  PLANNEDGIFTADDITIONID=@ID
                                          ),
                                          0
                                      )
                end      
              end
            end

            return @AMOUNT;
          end