USP_DATALIST_PROGRAMEVENTONSALE
Events on sale in the specified date range via the specified sales method. May specify program and/or program category.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONTEXTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@SALESMETHODTYPECODE | tinyint | IN | On-sale via specified sales method |
@STARTDATETIME | datetime | IN | |
@ENDDATETIME | datetime | IN | |
@PROGRAMCATEGORYCODEID | uniqueidentifier | IN | |
@INCLUDESOLDOUT | bit | IN | |
@INCLUDEPREREGISTERED | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_PROGRAMEVENTONSALE
(
@CONTEXTID uniqueidentifier = null,
@SALESMETHODTYPECODE tinyint,
@STARTDATETIME datetime = null,
@ENDDATETIME datetime = null,
@PROGRAMCATEGORYCODEID uniqueidentifier = null,
@INCLUDESOLDOUT bit = null,
@INCLUDEPREREGISTERED bit = 0
)
as
set nocount on;
declare @SALESMETHODID uniqueidentifier
set @SALESMETHODID = [dbo].[UFN_SALESMETHOD_GETIDFROMTYPECODE] (@SALESMETHODTYPECODE)
declare @CURRENTDATETIMEOFFSET datetimeoffset = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEWITHTIMEOFFSET(sysutcdatetime(), 1)
declare @STARTDATETIMEOFFSET as datetimeoffset = TODATETIMEOFFSET(@STARTDATETIME, DATEPART(tz, SYSDATETIMEOFFSET()))
declare @ENDDATETIMEOFFSET as datetimeoffset = TODATETIMEOFFSET(@ENDDATETIME, DATEPART(tz, SYSDATETIMEOFFSET()))
--For online orders, we are going to avoid showing undeliverable event tickets
declare @HASDELIVERYMETHOD bit = 0
declare @HASUNRESTRICTEDDELIVERYMETHOD bit = 0
declare @EARLIESTVALIDEVENTDATETIMEWITHOFFSET datetimeoffset = null
if @SALESMETHODTYPECODE = 2
begin
exec dbo.USP_DELIVERYMETHOD_INFO_BYSALESMETHODID
@SALESMETHODID,
@HASDELIVERYMETHOD output,
@HASUNRESTRICTEDDELIVERYMETHOD output,
@EARLIESTVALIDEVENTDATETIMEWITHOFFSET output
end
select
E.ID,
E.NAME,
dbo.UFN_EVENT_GETLOCATIONNAME(E.ID) AS LOCATIONNAME,
E.AVAILABILITY, --dbo.UFN_EVENT_GETAVAILABILITY(E.ID) AS AVAILABILITY,
E.STARTDATE,
E.STARTTIME,
E.ENDTIME,
E.PROGRAMID,
E.PROGRAMCATEGORY,
E.EVENTSTATUSCODE,
E.ISCOMBINATION,
E.ISDAILYADMISSION,
PROGRAM.ISPREREGISTERED
from [dbo].[UFN_SALESORDER_PROGRAMTICKETSELECT_DATETIMEOFFSET] (@SALESMETHODID, NULL, 4, @STARTDATETIMEOFFSET, @ENDDATETIMEOFFSET, NULL, 0, @CURRENTDATETIMEOFFSET) as E
inner join dbo.PROGRAM
on PROGRAM.ID = E.PROGRAMID
where ((PROGRAM.ID = @CONTEXTID) OR (@CONTEXTID = '00000000-0000-0000-0000-000000000000') OR (@CONTEXTID IS NULL))
and ((PROGRAM.PROGRAMCATEGORYCODEID = @PROGRAMCATEGORYCODEID) or (@PROGRAMCATEGORYCODEID IS NULL))
and ((@INCLUDESOLDOUT = 1) or (dbo.UFN_EVENT_GETAVAILABILITY(E.ID) > 0))
and ((ISPREREGISTERED = 0) or (ISPREREGISTERED = @INCLUDEPREREGISTERED))
--and (SALESMETHOD.ISACTIVE = 1)
and
(
@SALESMETHODTYPECODE <> 2 or
@HASUNRESTRICTEDDELIVERYMETHOD = 1 or
((E.[ISCOMBINATION] = 1 or E.[ISDAILYADMISSION] = 1) and @HASDELIVERYMETHOD = 1) or
([EVENTSTARTDATETIMEWITHOFFSET] > @EARLIESTVALIDEVENTDATETIMEWITHOFFSET)
)
ORDER BY STARTDATE, STARTTIME, ENDTIME