USP_DATALIST_MYCLASSES
Returns a list of classes taught by the current application user in the current session to be used in the My Classes UI Widget.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_MYCLASSES
(
@CURRENTAPPUSERID uniqueidentifier
)
as
set nocount on;
declare @FACULTYID uniqueidentifier;
declare @ACADEMICYEARNAMECODEID uniqueidentifier;
declare @SESSIONNAMECODEID uniqueidentifier;
declare @TODAY datetime = floor(cast(getdate() as float));
declare @CLASSES table
(
ID uniqueidentifier not null,
NAME nvarchar(200) not null,
CLASSMEETINGID uniqueidentifier null,
STARTTIME datetime null,
PERIOD nvarchar(20) null,
SHOWSETUP bit not null,
SHOWGRADEBOOK bit not null
)
select
@FACULTYID = CONSTITUENTID
from
dbo.APPUSER
where
ID = @CURRENTAPPUSERID
select
@SESSIONNAMECODEID=SESSIONNAMECODEID,
@ACADEMICYEARNAMECODEID=ACADEMICYEARNAMECODEID
from
dbo.SESSION
inner join dbo.ACADEMICYEAR on SESSION.ACADEMICYEARID = ACADEMICYEAR.ID
inner join dbo.GRADINGAPPUSERSESSION on SESSION.ID = GRADINGAPPUSERSESSION.SESSIONID
where
GRADINGAPPUSERSESSION.ID = @CURRENTAPPUSERID
insert into @CLASSES
(
ID,
NAME,
SHOWSETUP,
SHOWGRADEBOOK
)
select
DISTINCT CLASSID,
NAME,
1,
1
from
dbo.UFN_FACULTY_GETCLASSMEETINGGROUPS
(
@FACULTYID,
@ACADEMICYEARNAMECODEID,
@SESSIONNAMECODEID,
null
) T1
update CL set
CLASSMEETINGID =
(
select
TOP 1 CLASSMEETING.ID
from
dbo.FACULTYCLASSMEETINGGROUP
inner join dbo.FACULTYCOURSE on FACULTYCLASSMEETINGGROUP.FACULTYCOURSEID = FACULTYCOURSE.ID
inner join dbo.CLASSMEETINGGROUP on FACULTYCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
inner join dbo.CLASS on CLASSMEETINGGROUP.CLASSID = CLASS.ID
inner join dbo.CLASSMEETING on CLASSMEETINGGROUP.ID = CLASSMEETING.CLASSMEETINGGROUPID
inner join dbo.EDUCATIONMEETING on CLASSMEETING.EDUCATIONMEETINGID = EDUCATIONMEETING.ID
where
FACULTYID = @FACULTYID
and CLASS.ID = CL.ID
and dateadd(mi, cast(substring(EDUCATIONMEETING.STARTTIME, 3, 2) as int), dateadd(hh, cast(substring(EDUCATIONMEETING.STARTTIME, 1, 2) as int), convert(datetime, EDUCATIONMEETING.STARTDATE))) >= GETDATE()
order by
EDUCATIONMEETING.STARTDATE, EDUCATIONMEETING.STARTTIME
)
from
@CLASSES CL
update CL set
STARTTIME = dbo.UFN_DATE_ADDHOURMINUTE(EDUCATIONMEETING.STARTDATE, EDUCATIONMEETING.STARTTIME),
PERIOD = CASE WHEN EDUCATIONMEETING.STARTDATE = @TODAY THEN '' ELSE CYCLEDAY.DAY + ' ' END + dbo.UFN_CLASSMEETINGTEMPLATE_GETPERIODSTRING(CLASSMEETINGTEMPLATE.ID, CLASSMEETINGTEMPLATE.LENGTHINPERIODS)
from
@CLASSES CL
inner join dbo.CLASSMEETING on CL.CLASSMEETINGID = CLASSMEETING.ID
inner join dbo.EDUCATIONMEETING on CLASSMEETING.EDUCATIONMEETINGID = EDUCATIONMEETING.ID
inner join dbo.CLASS on CL.ID = CLASS.ID
inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
inner join dbo.SCHEDULEDATE on COURSE.SCHOOLID = SCHEDULEDATE.SCHOOLID
and EDUCATIONMEETING.STARTDATE = SCHEDULEDATE.DATE
inner join dbo.TIMETABLEDAY on SCHEDULEDATE.TIMETABLEDAYID = TIMETABLEDAY.ID
inner join dbo.CYCLEDAY on TIMETABLEDAY.CYCLEDAYID = CYCLEDAY.ID
inner join dbo.CLASSMEETINGTEMPLATE on CLASSMEETING.CLASSMEETINGGROUPID = CLASSMEETINGTEMPLATE.CLASSMEETINGGROUPID
and TIMETABLEDAY.CYCLEDAYID = CLASSMEETINGTEMPLATE.CYCLEDAYID
and EDUCATIONMEETING.STARTTIME = CLASSMEETINGTEMPLATE.STARTTIME
and EDUCATIONMEETING.ENDTIME = CLASSMEETINGTEMPLATE.ENDTIME
update CL set
SHOWSETUP = 0,
SHOWGRADEBOOK = 0
from
@CLASSES CL
inner join dbo.CLASS on CL.ID = CLASS.ID
where
not exists(select COURSEGRADINGMARKINGCOLUMN.ID from dbo.COURSEGRADINGMARKINGCOLUMN
inner join dbo.COURSEGRADING on COURSEGRADINGMARKINGCOLUMN.COURSEGRADINGID = COURSEGRADING.ID
where COURSEGRADING.STARTDATE <= CLASS.STARTDATE and COURSEGRADING.ENDDATE >= CLASS.ENDDATE and COURSEGRADING.COURSEID = CLASS.COURSEID)
update CL set
SHOWSETUP = 0
from
@CLASSES CL
where
exists(select ID from dbo.CLASSCATEGORY where CLASSID = CL.ID)
select TOP 8
ID,
NAME,
PERIOD,
CASE SHOWGRADEBOOK WHEN 1 THEN 'Gradebook' ELSE '' END "GRADEBOOK",
CASE SHOWSETUP WHEN 1 THEN 'Setup' ELSE '' END "SETUP"
from
@CLASSES
order by
ISNULL(STARTTIME, '99991231'), NAME