USP_DATAFORMTEMPLATE_VIEW_EDITSTUDENTSCHEDULE_CLASS

The load procedure used by the view dataform template "Edit Student Schedule, Class View"

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.
@CLASSMEETINGGROUPS xml INOUT CLASSMEETINGGROUPS
@TARGETEXCEEDED bit INOUT TARGETEXCEEDED
@MAXIMUMEXCEEDED bit INOUT MAXIMUMEXCEEDED

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_VIEW_EDITSTUDENTSCHEDULE_CLASS
(
    @ID uniqueidentifier,
    @CURRENTAPPUSERID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @CLASSMEETINGGROUPS xml = null output,
    @TARGETEXCEEDED bit = null output,
    @MAXIMUMEXCEEDED bit = null output
)
as
    set nocount on;

    declare @NUMBERENROLLED int
    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

    select
        @DATALOADED = 1,
        @CLASSMEETINGGROUPS = 
            (
                select
                    dbo.UFN_TERM_GET_FORSCHOOL_BYDATE(COURSE.SCHOOLID, CLASSMEETINGGROUP.STARTDATE, CLASSMEETINGGROUP.ENDDATE) as TERMID,
                    dbo.UFN_CLASSMEETINGGROUP_GETFIRSTMEETING(CLASSMEETINGGROUP.ID) as FIRSTMEETING
                from dbo.CLASS
                    inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
                    inner join dbo.CLASSMEETINGGROUP on CLASS.ID = CLASSMEETINGGROUP.CLASSID
                where CLASS.ID = @ID
                for xml raw('ITEM'),type,elements,root('CLASSMEETINGGROUPS'),binary base64
            ),
        @NUMBERENROLLED = dbo.UFN_CLASS_GETNUMBERENROLLED(@ID)

    select
        @TARGETEXCEEDED = case when CLASS.CLASSSIZETARGET <= @NUMBERENROLLED then 1 else 0 end,
        @MAXIMUMEXCEEDED = case when CLASS.CLASSSIZEMAXIMUM <> 0 and CLASS.CLASSSIZEMAXIMUM <= @NUMBERENROLLED then 1 else 0 end
    from dbo.CLASS
    where CLASS.ID = @ID

    return 0;