USP_SEARCHLIST_CLASS
Search for a Class.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@COURSEID | nvarchar(12) | IN | Course ID |
@NAME | nvarchar(60) | IN | Course name |
@CLASSID | nvarchar(35) | IN | Class ID |
@GRADELEVELID | uniqueidentifier | IN | Grade level |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
@CHECKCOURSEGRADING | bit | IN | CHECKCOURSEGRADING |
@CHECKCOURSERESTRICTION | bit | IN | CHECKCOURSERESTRICTION |
@SCHOOLID | uniqueidentifier | IN | School |
@ACADEMICYEARID | uniqueidentifier | IN | Academic year |
@SESSIONID | uniqueidentifier | IN | Session |
Definition
Copy
CREATE procedure dbo.USP_SEARCHLIST_CLASS
(
@COURSEID nvarchar(12) = null,
@NAME nvarchar(60) = null,
@CLASSID nvarchar(35) = null,
@GRADELEVELID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier,
@MAXROWS smallint = 500,
@CHECKCOURSEGRADING bit = 0,
@CHECKCOURSERESTRICTION bit = 0,
@SCHOOLID uniqueidentifier = null,
@ACADEMICYEARID uniqueidentifier = null,
@SESSIONID uniqueidentifier = null
)
as
set nocount on;
select top(@MAXROWS)
CLASS.ID,
COURSE.[COURSEID] + ' - ' + CLASS.[SECTION] as CLASSID,
CLASS.[NAME] As NAME,
dbo.UFN_TERMNAMECODE_GETDESCRIPTION(TERM.TERMNAMECODEID) as TERM,
dbo.UFN_CLASS_GETFACULTYSTRING(CLASS.[ID]) as FACULTY,
dbo.UFN_CLASS_GETNUMBERENROLLED(CLASS.[ID]) as NUMBERENROLLED,
dbo.UFN_COURSE_GETGRADELEVELSTRING(COURSE.ID) as GRADELEVEL,
CONSTITUENT.NAME as SCHOOL
from dbo.CLASSMEETINGGROUP with (nolock)
inner join dbo.CLASS with (nolock) on CLASSMEETINGGROUP.CLASSID = CLASS.ID
inner join dbo.COURSE with (nolock) on dbo.CLASS.COURSEID = dbo.COURSE.ID
inner join dbo.CONSTITUENT with (nolock) on dbo.COURSE.SCHOOLID = CONSTITUENT.ID
inner join dbo.ACADEMICYEAR with (nolock) on COURSE.SCHOOLID = ACADEMICYEAR.SCHOOLID
inner join dbo.SESSION with (nolock) on ACADEMICYEAR.ID = SESSION.ACADEMICYEARID
inner join dbo.TERM with (nolock) on SESSION.ID = TERM.SESSIONID
and TERM.STARTDATE = CLASSMEETINGGROUP.STARTDATE
and TERM.ENDDATE = CLASSMEETINGGROUP.ENDDATE
and TERM.STARTDATE = CLASS.STARTDATE
left join dbo.APPUSERSESSION with (nolock) on SESSION.ID = APPUSERSESSION.SESSIONID
and APPUSERSESSION.ID = @CURRENTAPPUSERID
left join dbo.GRADINGAPPUSERSESSION with (nolock) on SESSION.ID = GRADINGAPPUSERSESSION.SESSIONID
and GRADINGAPPUSERSESSION.ID = @CURRENTAPPUSERID
where (@CHECKCOURSEGRADING = 0 or GRADINGAPPUSERSESSION.ID is not null) and
(@CHECKCOURSERESTRICTION = 0 or APPUSERSESSION.ID is not null) and
(@COURSEID is null or (dbo.COURSE.COURSEID like @COURSEID + '%')) and
(@NAME is null or (dbo.COURSE.NAME like '%' + @NAME + '%')) and
(@CLASSID is null or ((COURSE.[COURSEID] + ' - ' + CLASS.[SECTION]) like @CLASSID + '%')) and
(@GRADELEVELID is null or exists (
select COURSEGRADELEVEL.ID
from dbo.COURSEGRADELEVEL with (nolock)
inner join dbo.SCHOOLGRADELEVEL with (nolock) on COURSEGRADELEVEL.SCHOOLGRADELEVELID = SCHOOLGRADELEVEL.ID
where COURSEGRADELEVEL.COURSEID = dbo.COURSE.ID
and SCHOOLGRADELEVEL.GRADELEVELID = @GRADELEVELID
)) and
(@SCHOOLID is null or COURSE.SCHOOLID = @SCHOOLID) and
(@ACADEMICYEARID is null or ACADEMICYEAR.ID = @ACADEMICYEARID) and
(@SESSIONID is null or SESSION.ID = @SESSIONID)
order by COURSE.[COURSEID], CLASS.[SECTION], TERM.[STARTDATE]