USP_DATAFORMTEMPLATE_EDITLOAD_CLASS_MEETING_TEMPLATE
The load procedure used by the edit dataform template "Class Meeting Template Edit Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
@HEADER | nvarchar(200) | INOUT | |
@TIMETABLEID | uniqueidentifier | INOUT | |
@PATTERNVISIBLE | bit | INOUT | |
@MEETINGS | xml | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_CLASS_MEETING_TEMPLATE
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@HEADER nvarchar(200) = null output,
@TIMETABLEID uniqueidentifier = null output,
@PATTERNVISIBLE bit = null output,
@MEETINGS xml = null output
)
as
set nocount on;
-- be sure to set these, in case the select returns no rows
set @DATALOADED = 0
set @TSLONG = 0
declare @SCHOOLID uniqueidentifier
declare @CLASS_STARTDATE date
declare @CLASS_ENDDATE date
select
@DATALOADED = 1,
@TSLONG = CLASS.TSLONG,
@HEADER = COURSE.[COURSEID] + ' - ' + CLASS.[SECTION],
@SCHOOLID = COURSE.SCHOOLID,
@CLASS_STARTDATE = CLASS.STARTDATE,
@CLASS_ENDDATE = CLASS.ENDDATE
from dbo.CLASS
inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
inner join dbo.V_COURSERESTRICTION as COURSERESTRICTION on COURSE.ID = COURSERESTRICTION.COURSEID
and COURSERESTRICTION.STARTDATE <= CLASS.STARTDATE
and COURSERESTRICTION.ENDDATE >= CLASS.ENDDATE
where dbo.CLASS.ID = @ID
if @DATALOADED = 1
begin
select
@TIMETABLEID = TIMETABLE.ID,
@PATTERNVISIBLE = case when TIMETABLE.SCHEDULETIMECODE = 0 then 1 else 0 end
from dbo.TIMETABLE
inner join dbo.SESSION on TIMETABLE.ID = SESSION.TIMETABLEID
where SESSION.ID = dbo.UFN_SESSION_GET_FORSCHOOL_BYDATE(@SCHOOLID, @CLASS_STARTDATE, @CLASS_ENDDATE)
select @MEETINGS =
(
select
STARTTIME,
ENDTIME,
CYCLEDAYID,
TIMETABLEDAYPERIODID,
LENGTHINPERIODS
from dbo.CLASSMEETINGTEMPLATE
inner join dbo.CLASSMEETINGGROUP on CLASSMEETINGTEMPLATE.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
inner join dbo.CYCLEDAY on CLASSMEETINGTEMPLATE.CYCLEDAYID = CYCLEDAY.ID
where CLASSMEETINGGROUP.CLASSID = @ID
group by
CLASSMEETINGTEMPLATE.STARTTIME,
CLASSMEETINGTEMPLATE.ENDTIME,
CLASSMEETINGTEMPLATE.CYCLEDAYID,
CLASSMEETINGTEMPLATE.TIMETABLEDAYPERIODID,
CLASSMEETINGTEMPLATE.LENGTHINPERIODS,
CYCLEDAY.SEQUENCE
order by CYCLEDAY.SEQUENCE, CLASSMEETINGTEMPLATE.STARTTIME
for xml raw('ITEM'),type,elements,root('MEETINGS'),binary base64
)
end