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]