USP_DATAFORMTEMPLATE_ADD_CREATEMULTIPLECLASSES_PRELOAD

The load procedure used by the edit dataform template "Create multiple classes"

Parameters

Parameter Parameter Type Mode Description
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@COURSES xml INOUT
@TERMDATA xml INOUT
@TERMCOLMETA xml INOUT
@HEADER nvarchar(310) INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CREATEMULTIPLECLASSES_PRELOAD
(
    @CURRENTAPPUSERID uniqueidentifier,
    @COURSES xml = null output,
    @TERMDATA xml = null output,
    @TERMCOLMETA xml = null output,
    @HEADER nvarchar(310) = null output
)
as
    set nocount on

    declare @SESSIONID uniqueidentifier
    declare @ACADEMICYEARID uniqueidentifier
    declare @SCHOOLID uniqueidentifier    

    select
        @SESSIONID = SESSIONID,
        @ACADEMICYEARID = ACADEMICYEARID,
        @HEADER = HEADER,
        @SCHOOLID = SCHOOLID
    from dbo.UFN_APPUSERSESSION_GETHEADERTEXT(@CURRENTAPPUSERID)

    declare @STARTDATE date
    declare @ENDDATE date
    select @STARTDATE = STARTDATE, @ENDDATE = ENDDATE from dbo.UFN_SESSION_GETDATES(@SESSIONID)               

    --@COURSES

    declare @Temp table(ID uniqueidentifier, COURSEID nvarchar(12), NAME nvarchar(60), CLASSESPERTERMMINIMUM int, CLASSESPERTERMTARGET int, CLASSESPERTERMMAXIMUM int)

    insert into @Temp
    select
        COURSE.ID,
        COURSE.COURSEID,
        COURSE.NAME,
        COURSE.CLASSESPERTERMMINIMUM, 
        COURSE.CLASSESPERTERMTARGET,
        COURSE.CLASSESPERTERMMAXIMUM
    from dbo.COURSE
        inner join dbo.V_COURSERESTRICTION as COURSERESTRICTION on COURSERESTRICTION.COURSEID = COURSE.ID
    where SCHOOLID = @SCHOOLID and COURSERESTRICTION.STARTDATE = @STARTDATE
        and COURSERESTRICTION.ENDDATE = @ENDDATE
    order by dbo.UFN_COURSE_GETFIRSTGRADELEVELSEQUENCE(COURSE.ID), COURSE.COURSEID asc

    select 
        @COURSES = (select ID, COURSEID, NAME, CLASSESPERTERMMINIMUM, CLASSESPERTERMTARGET, CLASSESPERTERMMAXIMUM from @temp
            for xml raw('ITEM'),type,elements,root('COURSES'),binary base64),
        @TERMDATA = (select TM.ID, (select COUNT(*)
                    from dbo.CLASS
                    inner join dbo.CLASSMEETINGGROUP on CLASSMEETINGGROUP.CLASSID = CLASS.ID  
                    inner join dbo.TERM on TERM.ID = TM.ID and  
                        TERM.STARTDATE = CLASS.STARTDATE and
                        TERM.STARTDATE = CLASSMEETINGGROUP.STARTDATE and 
                        TERM.ENDDATE = CLASSMEETINGGROUP.ENDDATE
                    where CLASS.COURSEID = COURSERESTRICTION.COURSEID) as COUNT_ORIGINAL, 
                    (select COUNT(*)
                    from dbo.CLASS
                    inner join dbo.CLASSMEETINGGROUP on CLASSMEETINGGROUP.CLASSID = CLASS.ID  
                    inner join dbo.TERM on TERM.ID = TM.ID and  
                        TERM.STARTDATE = CLASS.STARTDATE and
                        TERM.STARTDATE = CLASSMEETINGGROUP.STARTDATE and 
                        TERM.ENDDATE = CLASSMEETINGGROUP.ENDDATE
                    where CLASS.COURSEID = COURSERESTRICTION.COURSEID) as COUNT_NEW, 
                    (select COUNT(*)
                    from dbo.CLASS
                    inner join dbo.CLASSMEETINGGROUP on CLASSMEETINGGROUP.CLASSID = CLASS.ID 
                    inner join dbo.TERM on TERM.ID = TM.ID and 
                        TERM.STARTDATE = CLASS.STARTDATE and
                        TERM.STARTDATE = CLASSMEETINGGROUP.STARTDATE and 
                        TERM.ENDDATE = CLASSMEETINGGROUP.ENDDATE
                    where CLASS.COURSEID = COURSERESTRICTION.COURSEID and
                        exists (select * from dbo.STUDENTCLASSMEETINGGROUP where CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID)
                    ) as NUMWITHSTUDENTS,
                    COURSERESTRICTION.COURSEID
            from dbo.V_COURSERESTRICTION as COURSERESTRICTION 
                inner join dbo.COURSERESTRICTIONSTARTTERM on COURSERESTRICTION.ID = COURSERESTRICTIONSTARTTERM.COURSERESTRICTIONID
                inner join dbo.TERM TM on TM.STARTDATE = COURSERESTRICTIONSTARTTERM.STARTDATE
                    and TM.ENDDATE = COURSERESTRICTIONSTARTTERM.ENDDATE
            where TM.SESSIONID = @SESSIONID
            for xml raw('ITEM'),type,elements,root('TERMDATA'),binary base64), 
        @TERMCOLMETA = (select distinct
                TERM.ID, 
                DESCRIPTION as TERM,
                TERM.STARTDATE
            from TERM 
                inner join dbo.TERMNAMECODE on TERM.TERMNAMECODEID = TERMNAMECODE.ID
                left join dbo.COURSERESTRICTIONSTARTTERM on TERM.STARTDATE = COURSERESTRICTIONSTARTTERM.STARTDATE
                    and TERM.ENDDATE = COURSERESTRICTIONSTARTTERM.ENDDATE
                left join dbo.V_COURSERESTRICTION as COURSERESTRICTION on COURSERESTRICTION.ID = COURSERESTRICTIONSTARTTERM.COURSERESTRICTIONID
            where TERM.SESSIONID = @SESSIONID
            order by TERM.STARTDATE
            for xml raw('ITEM'),type,elements,root('TERMCOLMETA'),binary base64)
    from 
        @Temp as T

    return 0