UFN_GETSTUDENTCOURSEREQUESTS
Returns the course requests associated with the student in the current scheduling session.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@STUDENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_GETSTUDENTCOURSEREQUESTS
(
@CURRENTAPPUSERID as uniqueidentifier,
@STUDENTID as uniqueidentifier
)
returns @RESULTS table
(
ID uniqueidentifier,
COURSEID uniqueidentifier,
STARTTERMID uniqueidentifier,
FULFILLED bit
)
as
begin
declare @SESSION_STARTDATE date
declare @SESSION_ENDDATE date
select
@SESSION_STARTDATE = min(STARTDATE),
@SESSION_ENDDATE = max(ENDDATE)
from dbo.TERM
inner join dbo.APPUSERSESSION on TERM.SESSIONID = APPUSERSESSION.SESSIONID
where APPUSERSESSION.ID = @CURRENTAPPUSERID
group by APPUSERSESSION.ID, APPUSERSESSION.SESSIONID
insert into @RESULTS
(
ID,
COURSEID,
STARTTERMID,
FULFILLED
)
select
STUDENTCOURSEREQUEST.ID,
STUDENTCOURSE.COURSEID,
TERM.ID as STARTTERMID,
case when count(STUDENTCLASSMEETINGGROUP.ID) > 0 then 1 else 0 end as FULFILLED
from dbo.STUDENTCOURSEREQUEST
inner join dbo.STUDENTCOURSE on STUDENTCOURSEREQUEST.ID = STUDENTCOURSE.ID
inner join dbo.COURSE on STUDENTCOURSE.COURSEID = COURSE.ID
inner join dbo.SESSION on dbo.UFN_SESSION_GET_FORSCHOOL_BYDATE(COURSE.SCHOOLID, STUDENTCOURSEREQUEST.STARTDATE, STUDENTCOURSEREQUEST.ENDDATE) = SESSION.ID
left join dbo.TERM on STUDENTCOURSEREQUEST.CLASSSTARTDATE = TERM.STARTDATE
and TERM.SESSIONID = SESSION.ID
left join dbo.STUDENTCLASSMEETINGGROUP
on STUDENTCOURSE.ID = STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID
where STUDENTCOURSE.STUDENTID = @STUDENTID
and STUDENTCOURSEREQUEST.STARTDATE >= @SESSION_STARTDATE
and STUDENTCOURSEREQUEST.ENDDATE <= @SESSION_ENDDATE
group by
STUDENTCOURSEREQUEST.ID,
STUDENTCOURSE.COURSEID,
TERM.ID,
STUDENTCOURSEREQUEST.CLASSSTARTDATE,
COURSE.COURSEID
order by
STUDENTCOURSEREQUEST.CLASSSTARTDATE,
COURSE.COURSEID
return
end