USP_DATAFORMTEMPLATE_EDITLOAD_COURSERESTRICTION

The load procedure used by the edit dataform template "Course Restriction Edit Data 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.
@COURSENAME nvarchar(60) INOUT
@SCHOOLID uniqueidentifier INOUT
@ACADEMICYEARID uniqueidentifier INOUT Academic year
@SESSIONID uniqueidentifier INOUT Session
@SESSIONSTARTDATE date INOUT
@SESSIONENDDATE date INOUT
@LENGTHINTERMS int INOUT Terms in length
@STARTTERMS xml INOUT Starting in terms
@PATTERNID uniqueidentifier INOUT Pattern
@COURSEID uniqueidentifier INOUT
@COURSEGRADINGID uniqueidentifier INOUT
@COURSEGRADINGMARKINGCOLUMNS xml INOUT
@HASCLASSES bit INOUT
@HASMEETINGSWITHBLOCKS bit INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_COURSERESTRICTION(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @COURSENAME nvarchar(60) = null output,
    @SCHOOLID uniqueidentifier = null output,
    @ACADEMICYEARID uniqueidentifier = null output,
    @SESSIONID uniqueidentifier = null output,
    @SESSIONSTARTDATE date = null output,
    @SESSIONENDDATE date = null output,
    @LENGTHINTERMS int = null output,
    @STARTTERMS xml = null output,
    @PATTERNID uniqueidentifier = null output,
    @COURSEID uniqueidentifier = null output,
    @COURSEGRADINGID uniqueidentifier = null output,
    @COURSEGRADINGMARKINGCOLUMNS xml = null output,
    @HASCLASSES bit = null output,
    @HASMEETINGSWITHBLOCKS bit = 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 @STARTDATE date
    declare @ENDDATE date

    -- populate the output parameters, which correspond to fields on the form.  Note that

    -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system

    -- will display a "no data loaded" message.  Also note that we fetch the TSLONG so that concurrency

    -- can be considered.

    select
        @DATALOADED = 1,
        @COURSENAME = COURSE.NAME,
        @SCHOOLID = COURSE.SCHOOLID,
        @TSLONG = COURSERESTRICTION.TSLONG,
        @STARTDATE = COURSERESTRICTION.STARTDATE,
        @ENDDATE = COURSERESTRICTION.ENDDATE,
        @LENGTHINTERMS = COURSERESTRICTION.LENGTHINTERMS,
        @STARTTERMS = dbo.UFN_COURSERESTRICTION_GETSTARTTERMS_TOITEMLISTXML(@ID),
        @PATTERNID = COURSERESTRICTION.PATTERNID,
        @SESSIONID = dbo.UFN_SESSION_GET_FORSCHOOL_BYDATE(COURSE.SCHOOLID, COURSERESTRICTION.STARTDATE, COURSERESTRICTION.ENDDATE),
        @SESSIONSTARTDATE = COURSERESTRICTION.STARTDATE,
        @SESSIONENDDATE = COURSERESTRICTION.ENDDATE,
        @COURSEID = COURSERESTRICTION.COURSEID,
        @HASCLASSES = case when exists(
                select 1
                from dbo.CLASS
                where CLASS.COURSEID = COURSE.ID
                    and CLASS.STARTDATE >= COURSERESTRICTION.STARTDATE
                    and CLASS.ENDDATE <= COURSERESTRICTION.ENDDATE) then 1 else 0 end,
        @HASMEETINGSWITHBLOCKS = case when exists(
                select 1
                from dbo.CLASS
                    inner join dbo.CLASSMEETINGGROUP on CLASS.ID = CLASSMEETINGGROUP.CLASSID
                where CLASS.COURSEID = COURSE.ID
                    and CLASS.STARTDATE >= COURSERESTRICTION.STARTDATE
                    and CLASS.ENDDATE <= COURSERESTRICTION.ENDDATE
                    and CLASSMEETINGGROUP.PATTERNBLOCKID is not null) then 1 else 0 end            
    from dbo.COURSERESTRICTION
        inner join dbo.COURSE on COURSE.ID = COURSERESTRICTION.COURSEID
    where COURSERESTRICTION.ID = @ID

    select @ACADEMICYEARID = ACADEMICYEARID
    from dbo.SESSION
    where ID = @SESSIONID

    return 0;