UFN_CLASS_GETDEFAULTSECTION
Returns the default section for the specified course, session, and start term.
Return
Return Type |
---|
nvarchar(21) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@COURSEID | uniqueidentifier | IN | |
@SESSIONID | uniqueidentifier | IN | |
@TERMID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_CLASS_GETDEFAULTSECTION
(
@COURSEID uniqueidentifier,
@SESSIONID uniqueidentifier,
@TERMID uniqueidentifier
)
returns nvarchar(21)
with execute as caller
as begin
declare @SECTION nvarchar(21)
declare @LENGTHINTERMS int
select
@LENGTHINTERMS = COURSERESTRICTION.LENGTHINTERMS
from dbo.COURSE
inner join dbo.V_COURSERESTRICTION as COURSERESTRICTION on COURSE.ID = COURSERESTRICTION.COURSEID
where COURSE.ID = @COURSEID
declare @STARTTERMDATE datetime
select
@STARTTERMDATE = STARTDATE
from dbo.TERM
where ID = @TERMID
declare @TERMS table (
ID uniqueidentifier
)
insert into @TERMS (ID)
select top (@LENGTHINTERMS) TERM.ID
from TERM
where SESSIONID = @SESSIONID and STARTDATE >= @STARTTERMDATE
order by TERM.STARTDATE
select @SECTION = max(convert(numeric(21,0), CLASS.SECTION))
from dbo.CLASS
inner join dbo.CLASSMEETINGGROUP on CLASS.ID = CLASSMEETINGGROUP.CLASSID
inner join dbo.COURSE on dbo.CLASS.COURSEID = dbo.COURSE.ID
inner join dbo.ACADEMICYEAR on COURSE.SCHOOLID = ACADEMICYEAR.SCHOOLID
inner join dbo.CONSTITUENT on COURSE.SCHOOLID = CONSTITUENT.ID
inner join dbo.SESSION on ACADEMICYEAR.ID = SESSION.ACADEMICYEARID
inner join dbo.TERM on SESSION.ID = TERM.SESSIONID
and TERM.STARTDATE = CLASSMEETINGGROUP.STARTDATE
and TERM.ENDDATE = CLASSMEETINGGROUP.ENDDATE
inner join @TERMS CLASSTERMS on TERM.ID = CLASSTERMS.ID
where CLASS.COURSEID = @COURSEID
and SESSION.ID = @SESSIONID
and isnumeric(CLASS.SECTION) <> 0
if (@SECTION is not null and isnumeric(@SECTION) <> 0)
begin
select @SECTION = convert(numeric(21,0), @SECTION) + 1
if convert(numeric(21,0), @SECTION) < 10
select @SECTION = '0' + @SECTION
end
else
begin
select @SECTION = '01'
end
return @SECTION
end