USP_DATAFORMTEMPLATE_EDITLOAD_TRANSFERREDGRADES

The load procedure used by the edit dataform template "Transferred Grades Edit Data Form"

Parameters

Parameter Parameter Type Mode Description
@ID nvarchar(73) 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.
@NAME nvarchar(200) INOUT Student
@GRADELEVEL nvarchar(100) INOUT Grade level
@COURSE nvarchar(300) INOUT Course
@ACADEMICYEAR nvarchar(100) INOUT Academic year
@XFERFROMGRADES xml INOUT
@XFERTOGRADES xml INOUT

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_TRANSFERREDGRADES(
    @ID nvarchar(73),
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
  @NAME nvarchar(200) = null output,
    @GRADELEVEL nvarchar(100) = null output,
    @COURSE nvarchar(300) = null output,
    @ACADEMICYEAR nvarchar(100) = null output,
  @XFERFROMGRADES xml = null output,
  @XFERTOGRADES xml = null output
)
as

    set nocount on;

  declare @STUDENTID uniqueidentifier,
    @CLASSID uniqueidentifier

  select
    @CLASSID = cast(substring(@ID,1,36) as uniqueidentifier),
        @STUDENTID = cast(substring(@ID,38,36) as uniqueidentifier)

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

    set @DATALOADED = 0
    set @TSLONG = 0

    -- 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 top 1
        @DATALOADED = 1,
        @TSLONG = COURSE.TSLONG,
        @NAME = CONSTITUENT.NAME,
        @GRADELEVEL = dbo.UFN_CLASS_GETSTUDENTGRADELEVELSTRING(@CLASSID, STUDENTCOURSE.ID),    
        @COURSE = COURSE.COURSEID + ', ' + COURSE.NAME,
        @ACADEMICYEAR = ACADEMICYEARNAMECODE.DESCRIPTION,
    @XFERFROMGRADES = (select ID, MCDISPLAYNAME, TRANSLATIONTABLEID, VALUESALLOWEDCODE, GRADETYPECODE, NUMERICGRADE, TRANSLATIONTABLEGRADEID,
      STUDENTCLASSMEETINGGROUPID, COURSEGRADINGMARKINGCOLUMNID, LOWESTSCOREALLOWED, HIGHESTSCOREALLOWED, GRADEISBLANK, SECTION
      from UFN_STUDENTMARKINGCOLUMN_GETCLASSGRADES(STUDENTCOURSE.ID, 3)
      order by MCSEQUENCE
      for xml raw('ITEM'),type,elements,root('XFERFROMGRADES'),BINARY BASE64),
    @XFERTOGRADES = (select ID, MCDISPLAYNAME, TRANSLATIONTABLEID, VALUESALLOWEDCODE, GRADETYPECODE, NUMERICGRADE, TRANSLATIONTABLEGRADEID,
      STUDENTCLASSMEETINGGROUPID, COURSEGRADINGMARKINGCOLUMNID, LOWESTSCOREALLOWED, HIGHESTSCOREALLOWED, GRADEISBLANK, SECTION
      from UFN_STUDENTMARKINGCOLUMN_GETCLASSGRADES(STUDENTCOURSE.ID, 0)
      order by MCSEQUENCE
      for xml raw('ITEM'),type,elements,root('XFERTOGRADES'),BINARY BASE64)
    from dbo.CLASS
        inner join dbo.COURSE on CLASS.COURSEID = COURSE.ID
        inner join dbo.ACADEMICYEAR on COURSE.SCHOOLID = ACADEMICYEAR.SCHOOLID
            and ACADEMICYEAR.STARTDATE <= CLASS.STARTDATE
            and ACADEMICYEAR.ENDDATE >= CLASS.ENDDATE
        inner join dbo.ACADEMICYEARNAMECODE on ACADEMICYEAR.ACADEMICYEARNAMECODEID = ACADEMICYEARNAMECODE.ID
        inner join dbo.CLASSMEETINGGROUP on CLASS.ID = CLASSMEETINGGROUP.CLASSID
        inner join dbo.STUDENTCLASSMEETINGGROUP on CLASSMEETINGGROUP.ID = STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID
        inner join dbo.STUDENTCOURSE on STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID = STUDENTCOURSE.ID
        inner join dbo.CONSTITUENT on STUDENTCOURSE.STUDENTID = CONSTITUENT.ID
    where CLASS.ID = @CLASSID
        and STUDENTCOURSE.STUDENTID = @STUDENTID

    return 0;