UFN_EVENT_ISONSALE
Returns whether the specified event is on-sale information for a given date
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@SALEDATE | datetime | IN | |
@SALESMETHODTYPECODE | tinyint | IN |
Definition
Copy
CREATE function dbo.UFN_EVENT_ISONSALE
(
@EVENTID uniqueidentifier,
@SALEDATE datetime,
@SALESMETHODTYPECODE tinyint
)
returns bit
with execute as caller
as begin
declare @ONSALE bit = 0
declare @ONSALEDATETIME datetime
declare @SALESMETHODID uniqueidentifier
declare @OFFSALE datetime
set @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(@SALESMETHODTYPECODE)
select
@ONSALEDATETIME = EVENTSALESMETHOD.ONSALEDATETIME,
@OFFSALE = case PROGRAMSALESMETHOD.ONSALEENDTYPECODE
when 0 then [EVENT].[STARTDATETIME]
when 1 then dateadd(mi, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIME])
when 2 then dateadd(hh, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIME])
when 3 then dateadd(mi, [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIME])
end
from
dbo.EVENTSALESMETHOD
inner join dbo.EVENT on EVENTSALESMETHOD.EVENTID = EVENT.ID
left join dbo.PROGRAMSALESMETHOD on
EVENTSALESMETHOD.SALESMETHODID = PROGRAMSALESMETHOD.SALESMETHODID and
EVENT.PROGRAMID = PROGRAMSALESMETHOD.PROGRAMID
where
EVENTSALESMETHOD.SALESMETHODID = @SALESMETHODID and
EVENTID = @EVENTID and
(PROGRAMSALESMETHOD.SALESMETHODID is null or PROGRAMSALESMETHOD.SALESMETHODID = @SALESMETHODID)
if @ONSALEDATETIME is not null
begin
if @ONSALEDATETIME <= @SALEDATE and (@OFFSALE is null or @SALEDATE <= @OFFSALE)
set @ONSALE = 1
end
return @ONSALE
end