USP_CURRENCYEXCHANGERATE_DATALIST
Lists all currency exchange rates in the system.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@FROMCURRENCYID | uniqueidentifier | IN | From currency |
@TOCURRENCYID | uniqueidentifier | IN | To currency |
@TYPECODE | tinyint | IN | Type |
@SOURCECODEID | uniqueidentifier | IN | Source |
@INCLUDEINACTIVE | bit | IN | Include inactive |
@STARTDATE | datetime | IN | From |
@ENDDATE | datetime | IN | To |
@DATERANGE | int | IN | As of date range |
@INCLUDEEXPIRED | bit | IN | Include expired |
Definition
Copy
CREATE procedure dbo.USP_CURRENCYEXCHANGERATE_DATALIST
(
@FROMCURRENCYID uniqueidentifier = null,
@TOCURRENCYID uniqueidentifier = null,
@TYPECODE tinyint = null,
@SOURCECODEID uniqueidentifier = null,
@INCLUDEINACTIVE bit = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@DATERANGE int = 10,
@INCLUDEEXPIRED bit = null
)
as
set nocount on;
if @DATERANGE = 0 --Specific dates
begin
set @STARTDATE = dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE);
set @ENDDATE = dbo.UFN_DATE_GETLATESTTIME(@ENDDATE);
end
else
begin
if @DATERANGE = -1 --Any date in the future
begin
set @STARTDATE = dateadd(day,1,dbo.UFN_DATE_GETEARLIESTTIME(getdate()));
set @ENDDATE = null;
end
else --Other cases
begin
exec dbo.USP_RESOLVEDATEFILTER @DATERANGE, @STARTDATE output, @ENDDATE output;
end
end
declare @STARTDATEWITHOFFSET datetimeoffset = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(@STARTDATE, 0);
declare @ENDDATEWITHOFFSET datetimeoffset = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(@ENDDATE, 0);
select
CURRENCYEXCHANGERATE.ID,
FROMCURRENCY.ID as FROMID,
dbo.UFN_CURRENCY_GETDESCRIPTION(FROMCURRENCY.ID) as FROMNAME,
TOCURRENCY.ID as TOID,
dbo.UFN_CURRENCY_GETDESCRIPTION(TOCURRENCY.ID) as TONAME,
CURRENCYEXCHANGERATE.RATE,
convert(datetime,CURRENCYEXCHANGERATE.ASOFDATE),
CURRENCYEXCHANGERATE.TYPECODE,
CURRENCYEXCHANGERATE.TYPE,
CURRENCYEXCHANGERATE.SOURCECODEID,
CURRENCYEXCHANGERATESOURCECODE.DESCRIPTION as SOURCE,
TIMEZONEENTRY.DISPLAYNAME,
convert(date,CURRENCYEXCHANGERATE.EXPIRATIONDATE) as EXPIRATIONDATE
from
dbo.CURRENCYEXCHANGERATE
inner join dbo.CURRENCY as FROMCURRENCY on CURRENCYEXCHANGERATE.FROMCURRENCYID = FROMCURRENCY.ID
inner join dbo.CURRENCY as TOCURRENCY on CURRENCYEXCHANGERATE.TOCURRENCYID = TOCURRENCY.ID
left join dbo.CURRENCYEXCHANGERATESOURCECODE on CURRENCYEXCHANGERATE.SOURCECODEID = CURRENCYEXCHANGERATESOURCECODE.ID
left join dbo.TIMEZONEENTRY on TIMEZONEENTRY.ID = CURRENCYEXCHANGERATE.TIMEZONEENTRYID
where
(@FROMCURRENCYID is null or @FROMCURRENCYID = FROMCURRENCY.ID)
and (@TOCURRENCYID is null or @TOCURRENCYID = TOCURRENCY.ID)
and (@TYPECODE is null or @TYPECODE = CURRENCYEXCHANGERATE.TYPECODE)
and (@SOURCECODEID is null or @SOURCECODEID = CURRENCYEXCHANGERATE.SOURCECODEID)
and (@INCLUDEINACTIVE = 1 or (FROMCURRENCY.INACTIVE = 0 and TOCURRENCY.INACTIVE = 0))
and (@STARTDATEWITHOFFSET is null or CURRENCYEXCHANGERATE.ASOFDATE >= @STARTDATEWITHOFFSET)
and (@ENDDATEWITHOFFSET is null or CURRENCYEXCHANGERATE.ASOFDATE <= @ENDDATEWITHOFFSET)
and (@INCLUDEEXPIRED = 1 or CURRENCYEXCHANGERATE.EXPIRATIONDATE is null or CURRENCYEXCHANGERATE.EXPIRATIONDATE >= getutcdate())
order by
CURRENCYEXCHANGERATE.ASOFDATE desc,
FROMNAME,
TONAME,
CURRENCYEXCHANGERATE.DATEADDED desc,
CURRENCYEXCHANGERATE.DATECHANGED desc,
CURRENCYEXCHANGERATE.RATE;