USP_SEARCHLIST_COURSE_SHARED

This stored procedure returns results for course searches.

Parameters

Parameter Parameter Type Mode Description
@NAME nvarchar(60) IN
@COURSEID nvarchar(12) IN
@SCHOOLID uniqueidentifier IN
@GRADELEVELID uniqueidentifier IN
@ISINACTIVE bit IN
@MAXROWS smallint IN
@SESSIONID uniqueidentifier IN
@CHECKCOURSEGRADING bit IN
@CHECKCOURSERESTRICTION bit IN
@STARTTERMID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_SEARCHLIST_COURSE_SHARED
            (
                @NAME nvarchar(60) = null,
                @COURSEID nvarchar(12) = null,
                @SCHOOLID uniqueidentifier = null,
                @GRADELEVELID uniqueidentifier = null,
                @ISINACTIVE bit = null,
                @MAXROWS smallint = 500,
                @SESSIONID uniqueidentifier = null,
                @CHECKCOURSEGRADING bit = 0,
                @CHECKCOURSERESTRICTION bit = 0,
                @STARTTERMID uniqueidentifier = null
            )
            as
                set nocount on;

                declare @SESSION_STARTDATE date
                declare @SESSION_ENDDATE date

                if @SESSIONID is not null
                begin
                    select
                        @SESSION_STARTDATE = min(STARTDATE),
                        @SESSION_ENDDATE = max(ENDDATE)
                    from dbo.TERM
                    where TERM.SESSIONID = @SESSIONID
                end

                select distinct top(@MAXROWS
                    COURSE.ID,
                    COURSE.COURSEID,
                    COURSE.NAME,
                    CONSTITUENT.KEYNAME as SCHOOL,
                    dbo.UFN_COURSE_GETGRADELEVELSTRING(COURSE.ID) 'GRADE',
                    COURSE.ISINACTIVE
                from dbo.COURSE
                    inner join dbo.CONSTITUENT on CONSTITUENT.ID = COURSE.SCHOOLID
                    left join dbo.COURSEGRADELEVEL on COURSE.ID = COURSEGRADELEVEL.COURSEID
                    left join dbo.SCHOOLGRADELEVEL on COURSEGRADELEVEL.SCHOOLGRADELEVELID = SCHOOLGRADELEVEL.ID
                where 
                    (@COURSEID is null or (dbo.COURSE.COURSEID like @COURSEID + '%')) and
                    (@NAME is null or (dbo.COURSE.NAME like '%' + @NAME + '%')) and
                    (@SCHOOLID is null or (dbo.COURSE.SCHOOLID = @SCHOOLID)) and
                    (@GRADELEVELID is null or (dbo.SCHOOLGRADELEVEL.ID = @GRADELEVELID)) and
                    (@ISINACTIVE is null or (dbo.COURSE.ISINACTIVE = @ISINACTIVE)) and
                    (@SESSIONID is null or @CHECKCOURSERESTRICTION = 0 
                        or exists
                            (select 1
                            from dbo.V_COURSERESTRICTION as COURSERESTRICTION
                                inner join dbo.COURSERESTRICTIONSTARTTERM on COURSERESTRICTION.ID = COURSERESTRICTIONSTARTTERM.COURSERESTRICTIONID
                                inner join dbo.TERM on
                                    COURSERESTRICTIONSTARTTERM.STARTDATE = TERM.STARTDATE and
                                    COURSERESTRICTIONSTARTTERM.ENDDATE = TERM.ENDDATE
                            where dbo.COURSE.ID = COURSERESTRICTION.COURSEID and
                                COURSERESTRICTION.STARTDATE >= @SESSION_STARTDATE and
                                COURSERESTRICTION.ENDDATE <= @SESSION_ENDDATE and
                                (@STARTTERMID is null or TERM.ID = @STARTTERMID))
                    ) and
                    (@SESSIONID is null or @CHECKCOURSEGRADING = 0
                        or exists
                            (select 1
                            from dbo.V_COURSEGRADING as COURSEGRADING
                            where dbo.COURSE.ID = COURSEGRADING.COURSEID and
                                COURSEGRADING.STARTDATE >= @SESSION_STARTDATE and
                                COURSEGRADING.ENDDATE <= @SESSION_ENDDATE)
                    )
                order by
                    COURSE.COURSEID