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