USP_DATAFORMTEMPLATE_ADD_CURRENCYEXCHANGERATE

The save procedure used by the add dataform template "Currency Exchange Rate Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@FROMCURRENCYID uniqueidentifier IN From currency
@TOCURRENCYID uniqueidentifier IN To currency
@RATE decimal(20, 8) IN Rate
@ASOFDATETIME datetime IN As of date/time
@TYPECODE tinyint IN Type
@SOURCECODEID uniqueidentifier IN Source
@TIMEZONEENTRYID uniqueidentifier IN Time zone

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CURRENCYEXCHANGERATE (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @FROMCURRENCYID uniqueidentifier = null,
                        @TOCURRENCYID uniqueidentifier = null,
                        @RATE decimal(20,8) = null,
                        @ASOFDATETIME datetime = null,
                        @TYPECODE tinyint = 0,
                        @SOURCECODEID uniqueidentifier = null,
                        @TIMEZONEENTRYID uniqueidentifier = null
                    ) as
                        set nocount on;

                        declare @CURRENTDATE datetime = getdate();                                        

                        if @ID is null
                            set @ID = newid();

                        if @CHANGEAGENTID is null
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        if @TIMEZONEENTRYID is null
                            set @TIMEZONEENTRYID = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULT();

                        begin try

                            if @TYPECODE = 2
                                raiserror('ERR_CANNOTADDSPOTRATE', 13, 1);

                            declare @UTCOFFSET integer = dbo.UFN_TIMEZONEENTRY_GETTIMEZONEOFFSETFROMUTC(@TIMEZONEENTRYID, @ASOFDATETIME, 0);
                            declare @ASOFDATETIMEOFFSET datetimeoffset = TODATETIMEOFFSET(@ASOFDATETIME, @UTCOFFSET);
                            declare @EXPIRATIONDATE datetime = dbo.UFN_CURRENCY_GETEXPIRATIONDATE(@TYPECODE,@ASOFDATETIME,@TIMEZONEENTRYID);

                            --Insert the new exchange rate record.

                            exec dbo.USP_CURRENCYEXCHANGERATE_ADD
                                @ID,
                                @FROMCURRENCYID,
                                @TOCURRENCYID,
                                @RATE,
                                @ASOFDATETIMEOFFSET,
                                @TYPECODE,
                                @SOURCECODEID,
                                @TIMEZONEENTRYID,
                                @EXPIRATIONDATE,
                                @CHANGEAGENTID,
                                @CURRENTDATE;

                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;