USP_DATAFORMTEMPLATE_EDITLOAD_STUDENTPROGRESSION

The load procedure used by the edit dataform template "Student Progression 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.
@ISSINGLESCHOOL bit INOUT
@SCHOOLID uniqueidentifier INOUT School
@SCHOOLNAME nvarchar(154) INOUT School
@SCHOOLGRADELEVELID uniqueidentifier INOUT Grade level
@ACADEMICYEARID uniqueidentifier INOUT Academic year
@HOMEROOMTEACHERID uniqueidentifier INOUT Homeroom teacher
@STUDENTADVISORID uniqueidentifier INOUT
@ADVISORID uniqueidentifier INOUT Advisor
@STUDENTENROLLEDINCLASS bit INOUT
@GRADELEVEL nvarchar(200) INOUT
@ADVISORNAME nvarchar(154) INOUT

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_STUDENTPROGRESSION(
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @TSLONG bigint = 0 output,
                    @ISSINGLESCHOOL bit = null output,
                    @SCHOOLID uniqueidentifier = null output,
                    @SCHOOLNAME nvarchar(154) = null output,
                    @SCHOOLGRADELEVELID uniqueidentifier = null output,
                    @ACADEMICYEARID uniqueidentifier = null output,
                    @HOMEROOMTEACHERID uniqueidentifier = null output,
                    @STUDENTADVISORID uniqueidentifier = null output,
                    @ADVISORID uniqueidentifier = null output,
                    @STUDENTENROLLEDINCLASS bit = null output,
                    @GRADELEVEL nvarchar(200) = null output,
                    @ADVISORNAME nvarchar(154) = null output
                )
                as

                    set nocount on;

                    -- be sure to set these, in case the select returns no rows

                    set @DATALOADED = 0
                    set @TSLONG = 0
                    set @ISSINGLESCHOOL = dbo.UFN_SCHOOL_ISSINGLESCHOOL();

                    -- 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,
                        @TSLONG = dbo.STUDENTPROGRESSION.[TSLONG],
                        @SCHOOLID = dbo.SCHOOLGRADELEVEL.[SCHOOLID],
                        @SCHOOLNAME = dbo.CONSTITUENT.[NAME],
                        @SCHOOLGRADELEVELID = dbo.STUDENTPROGRESSION.[SCHOOLGRADELEVELID],    
                        @ACADEMICYEARID = dbo.UFN_ACADEMICYEAR_GET_FORSCHOOL_BYDATE(dbo.SCHOOLGRADELEVEL.[SCHOOLID], STUDENTPROGRESSION.[STARTDATE], STUDENTPROGRESSION.[ENDDATE]),
                        @HOMEROOMTEACHERID = dbo.STUDENTPROGRESSION.[HOMEROOMTEACHERID],
                        @GRADELEVEL = GRADELEVEL.ABBREVIATION
                    from dbo.STUDENTPROGRESSION
                    inner join dbo.SCHOOLGRADELEVEL on dbo.STUDENTPROGRESSION.[SCHOOLGRADELEVELID] = dbo.SCHOOLGRADELEVEL.[ID]
                    inner join dbo.GRADELEVEL on dbo.SCHOOLGRADELEVEL.GRADELEVELID = GRADELEVEL.ID
                    inner join dbo.CONSTITUENT on dbo.SCHOOLGRADELEVEL.[SCHOOLID] = dbo.CONSTITUENT.[ID]
                    where dbo.STUDENTPROGRESSION.[ID] = @ID

                    set @STUDENTADVISORID = dbo.UFN_STUDENTADVISOR_GETFIRSTID(@ID)
                    set @ADVISORID = (select dbo.STUDENTADVISOR.[FACULTYID] from dbo.STUDENTADVISOR where dbo.STUDENTADVISOR.[ID] = @STUDENTADVISORID)
                    set @ADVISORNAME = (select dbo.UFN_CONSTITUENT_BUILDNAME(@ADVISORID))

                    if exists (
                        select 1
                        from dbo.STUDENTPROGRESSION
                            inner join dbo.EDUCATIONALHISTORY on STUDENTPROGRESSION.ENROLLMENTID = EDUCATIONALHISTORY.ID
                            inner join dbo.CLASSMEETINGGROUP on
                                STUDENTPROGRESSION.STARTDATE <= CLASSMEETINGGROUP.STARTDATE and
                                STUDENTPROGRESSION.ENDDATE >= CLASSMEETINGGROUP.ENDDATE
                            inner join dbo.STUDENTCLASSMEETINGGROUP on CLASSMEETINGGROUP.ID = STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID
                            inner join dbo.STUDENTCOURSE on
                                STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID = STUDENTCOURSE.ID and
                                EDUCATIONALHISTORY.CONSTITUENTID = STUDENTCOURSE.STUDENTID
                        where dbo.STUDENTPROGRESSION.[ID] = @ID
                        )
                    begin
                        set @STUDENTENROLLEDINCLASS = 1
                    end

                    return 0;