UFN_BBNC_ISOCODETOCURRENCY

Returns a result row from dbo.currency based on an ISO code

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@ISOCODE nvarchar(3) IN
@GIFTDATE datetime IN
@AMOUNT money IN

Definition

Copy


      CREATE function dbo.UFN_BBNC_ISOCODETOCURRENCY
      (
      @ISOCODE nvarchar(3),
      @GIFTDATE datetime,
      @AMOUNT money
      )
      returns @CURINFOTAB table
      (
        TRANSACTIONCURRENCYID uniqueidentifier,
        BASECURRENCYID uniqueidentifier,
        BASEEXCHANGERATEID uniqueidentifier,
        ORGANIZATIONEXCHANGERATEID uniqueidentifier,
        ORGANIZATIONAMOUNT money,
        BASEAMOUNT money,
        DIGITS tinyint,
        CURRENCYSYMBOL nvarchar(1),
        FORMATSTYLE tinyint,
        ROUNDINGSTYLE tinyint
      )
      as 
      begin

         declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier = null;
         declare @ORGANIZATIONAMOUNT money;
         declare @BASEAMOUNT money = @AMOUNT;
         declare @TRANSACTIONCURRENCYID uniqueidentifier;
         declare @CURRENCYSETID uniqueidentifier
         declare @BASECURRENCYID uniqueidentifier;
         declare @BASEEXCHANGERATEID uniqueidentifier = null;
         declare @DIGITS tinyint;
         declare @CURRENCYSYMBOL nvarchar(5);
         declare @FORMATSTYLE tinyint;
         declare @ROUNDINGSTYLE tinyint;

         select @TRANSACTIONCURRENCYID = ID,@DIGITS = DECIMALDIGITS,@CURRENCYSYMBOL = CURRENCYSYMBOL,@ROUNDINGSTYLE=ROUNDINGTYPECODE,@FORMATSTYLE=SYMBOLDISPLAYSETTINGCODE from dbo.CURRENCY
         where ISO4217 = @ISOCODE


         --Using the system default for PDAccount because BBNC batch doesn't allow for PDACCOUNT choice.

         --Function should change to send in PDAccount.


           select @CURRENCYSETID = CURRENCYSETID from dbo.PDACCOUNTSYSTEM
                   where ID ='4B121C2C-CCE6-440D-894C-EA0DEF80D50B'  

           select @BASECURRENCYID = BASECURRENCYID from dbo.CURRENCYSET
           where ID = coalesce(@CURRENCYSETID,dbo.UFN_CURRENCYSET_GETAPPUSERDEFAULTCURRENCYSET());

         set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID,@BASECURRENCYID,@GIFTDATE,1,null);        

           select
                        @BASEAMOUNT = BASEAMOUNT,
                        @ORGANIZATIONAMOUNT = ORGANIZATIONAMOUNT,
                        @ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID
                    from dbo.UFN_CURRENCY_GETCURRENCYVALUES(@AMOUNT, @GIFTDATE, @BASECURRENCYID, @BASEEXCHANGERATEID, @TRANSACTIONCURRENCYID);

        insert into @CURINFOTAB
        values(@TRANSACTIONCURRENCYID,@BASECURRENCYID,@BASEEXCHANGERATEID,@ORGANIZATIONEXCHANGERATEID,@ORGANIZATIONAMOUNT,@BASEAMOUNT,@DIGITS,@CURRENCYSYMBOL,@FORMATSTYLE,@ROUNDINGSTYLE)

        return;
      end