USP_DATAFORMTEMPLATE_VIEW_EDITSTUDENTSCHEDULE_STUDENTWITHDRAWNCLASSESFORM
The load procedure used by the view dataform template "Edit Student Schedule, Student Withdrawn Classes Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@CLASSES | xml | INOUT | CLASSES |
Definition
Copy
create procedure dbo.USP_DATAFORMTEMPLATE_VIEW_EDITSTUDENTSCHEDULE_STUDENTWITHDRAWNCLASSESFORM
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@DATALOADED bit = 0 output,
@CLASSES xml = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 1;
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;
with CLASSMAP_CTE (COURSEID, SECTION, NAME, TERM_STARTDATE, TERM_ENDDATE, CLASS_STARTDATE, CLASS_ENDDATE, SCHOOLID, ROW)
as
(
select
COURSE.[COURSEID],
CLASS.[SECTION],
COURSE.[NAME],
CLASSMEETINGGROUP.STARTDATE as TERM_STARTDATE,
CLASSMEETINGGROUP.ENDDATE as TERM_ENDDATE,
CLASS.STARTDATE as CLASS_STARTDATE,
CLASS.ENDDATE as CLASS_ENDDATE,
COURSE.SCHOOLID,
(ROW_NUMBER() over (partition by COURSE.[COURSEID], CLASS.[SECTION] order by CLASSMEETINGGROUP.STARTDATE)) as ROW
from dbo.STUDENTCOURSE
inner join dbo.STUDENTCLASSMEETINGGROUP on STUDENTCOURSE.ID = STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID
inner join dbo.CLASSMEETINGGROUP on STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
inner join dbo.CLASS on CLASSMEETINGGROUP.CLASSID = CLASS.ID
and CLASSMEETINGGROUP.STARTDATE >= @SESSION_STARTDATE
and CLASSMEETINGGROUP.ENDDATE <= @SESSION_ENDDATE
inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
where STUDENTCOURSE.STUDENTID = @ID
and STUDENTCLASSMEETINGGROUP.STATUSCODE = 2
)
select @CLASSES = (
select
CLASSMAP_CTE.[COURSEID] + ' - ' + CLASSMAP_CTE.[SECTION] as CLASSID,
CLASSMAP_CTE.NAME,
(select stuff((
select '; ' + TERMNAMECODE.DESCRIPTION
from CLASSMAP_CTE LOCAL_CTE
inner join dbo.SESSION on SESSION.ID = dbo.UFN_SESSION_GET_FORSCHOOL_BYDATE(LOCAL_CTE.SCHOOLID, LOCAL_CTE.CLASS_STARTDATE, LOCAL_CTE.CLASS_ENDDATE)
inner join dbo.TERM on TERM.SESSIONID = SESSION.ID
and LOCAL_CTE.TERM_STARTDATE = TERM.STARTDATE
and LOCAL_CTE.TERM_ENDDATE = TERM.ENDDATE
inner join dbo.TERMNAMECODE on TERM.TERMNAMECODEID = TERMNAMECODE.ID
where LOCAL_CTE.COURSEID = CLASSMAP_CTE.COURSEID
and LOCAL_CTE.SECTION = LOCAL_CTE.SECTION
order by LOCAL_CTE.TERM_STARTDATE
for xml path(''), type).value('.', 'nvarchar(max)'),1, 2, '')) as TERMS
from CLASSMAP_CTE
where CLASSMAP_CTE.ROW = 1
for xml raw('ITEM'),type,elements,root('CLASSES'),binary base64)
return 0;