USP_DATALIST_COURSE_CURRENTSESSION_CLASS
Returns the class meeting times for the specified time frame.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@COURSEID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
Definition
Copy
create procedure dbo.USP_DATALIST_COURSE_CURRENTSESSION_CLASS
(
@COURSEID uniqueidentifier
)
as
set nocount on;
declare @CURRENTDATE date = getdate()
declare @CLASSMAP table
(
ID uniqueidentifier,
SECTION nvarchar(20),
COLORSTYLECODE int
)
insert into @CLASSMAP
select
CLASS.ID,
CLASS.SECTION,
(ROW_NUMBER() over (order by CLASS.STARTDATE, CLASS.SECTION) -1) % 12
from dbo.CLASS
where CLASS.COURSEID = @COURSEID
and CLASS.STARTDATE <= @CURRENTDATE
and CLASS.ENDDATE >= @CURRENTDATE
select
T.ID,
T.CYCLEDAYID,
@CURRENTDATE as STARTDATE,
CLASS.SECTION as NAME,
coalesce(TIMETABLEDAYPERIOD.PERIOD, '') + coalesce(' (' + PATTERNBLOCK.NAME + ')', '') + '<br\>' + 'test' as DESCRIPTION,
T.STARTTIME,
T.ENDTIME,
CLASS.COLORSTYLECODE
from (
select
CLASSMEETINGTEMPLATE.ID,
CLASSMEETINGTEMPLATE.CYCLEDAYID,
CLASSMEETINGTEMPLATE.STARTTIME,
CLASSMEETINGTEMPLATE.ENDTIME,
CLASSMEETINGTEMPLATE.TIMETABLEDAYPERIODID,
CLASSMEETINGGROUP.CLASSID,
CLASSMEETINGGROUP.PATTERNBLOCKID,
ROW_NUMBER() OVER (PARTITION BY
CLASSMEETINGTEMPLATE.CYCLEDAYID,
CLASSMEETINGTEMPLATE.STARTTIME,
CLASSMEETINGTEMPLATE.ENDTIME,
CLASSMEETINGTEMPLATE.TIMETABLEDAYPERIODID,
CLASSMEETINGGROUP.CLASSID
ORDER BY CLASSMEETINGTEMPLATE.DATEADDED DESC
) ROW
from dbo.CLASSMEETINGTEMPLATE
inner join dbo.CLASSMEETINGGROUP on CLASSMEETINGTEMPLATE.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
) T
inner join @CLASSMAP CLASS on T.CLASSID = CLASS.ID
inner join dbo.CYCLEDAY on T.CYCLEDAYID = CYCLEDAY.ID
left join dbo.TIMETABLEDAYPERIOD on T.TIMETABLEDAYPERIODID = TIMETABLEDAYPERIOD.ID
left join dbo.PATTERNBLOCK on T.PATTERNBLOCKID = PATTERNBLOCK.ID
where T.ROW = 1
order by CYCLEDAY.SEQUENCE, T.STARTTIME