USP_DATAFORMTEMPLATE_EDIT_TRANSFERREDGRADES

The save 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 indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@XFERFROMGRADES xml IN
@XFERTOGRADES xml IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TRANSFERREDGRADES (
    @ID nvarchar(73),
    @CHANGEAGENTID uniqueidentifier = null,
  @XFERFROMGRADES xml,
  @XFERTOGRADES xml
)
as

    set nocount on;

  declare @CLASSID uniqueidentifier
    declare @STUDENTID uniqueidentifier

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try

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

        declare @STUDENTCOURSEID uniqueidentifier
        select
            @STUDENTCOURSEID = STUDENTCOURSE.ID
        from dbo.STUDENTCOURSE
            inner join dbo.STUDENTCLASSMEETINGGROUP on STUDENTCOURSE.ID = STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID
            inner join dbo.CLASSMEETINGGROUP on STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
        where STUDENTCOURSE.STUDENTID = @STUDENTID
            and CLASSMEETINGGROUP.CLASSID = @CLASSID

    declare @TempTbl table (
        [ID] uniqueidentifier,
        [STUDENTCLASSMEETINGGROUPID] uniqueidentifier,
        [COURSEGRADINGMARKINGCOLUMNID] uniqueidentifier,
        [TRANSLATIONTABLEGRADEID] uniqueidentifier,
        [GRADETYPECODE] tinyint,
        [NUMERICGRADE] numeric(14,2),
        [GRADEISBLANK] bit)

    insert into @TempTbl select
    T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
    T.c.value('(STUDENTCLASSMEETINGGROUPID)[1]','uniqueidentifier') as 'STUDENTCLASSMEETINGGROUPID',
    T.c.value('(COURSEGRADINGMARKINGCOLUMNID)[1]','uniqueidentifier') as 'COURSEGRADINGMARKINGCOLUMNID',
    T.c.value('(TRANSLATIONTABLEGRADEID)[1]','uniqueidentifier') as 'TRANSLATIONTABLEGRADEID',
    T.c.value('(GRADETYPECODE)[1]','tinyint') as 'GRADETYPECODE',
    T.c.value('(NUMERICGRADE)[1]','numeric(14,2)') as 'NUMERICGRADE',
    T.c.value('(GRADEISBLANK)[1]','bit') as 'GRADEISBLANK'
    from @XFERFROMGRADES.nodes('/XFERFROMGRADES/ITEM') T(c)

    declare @MARKINGCOLUMNGRADES xml
    set @MARKINGCOLUMNGRADES = (select [ID],[STUDENTCLASSMEETINGGROUPID],[COURSEGRADINGMARKINGCOLUMNID],[TRANSLATIONTABLEGRADEID],
      [GRADETYPECODE],[NUMERICGRADE],[GRADEISBLANK] 
    from @TempTbl for xml raw('ITEM'),type,elements,root('MARKINGCOLUMNGRADES'),BINARY BASE64)

        exec dbo.USP_STUDENTMARKINGCOLUMN_GETCLASSGRADES_UPDATEFROMXML @STUDENTCOURSEID, @MARKINGCOLUMNGRADES, @CHANGEAGENTID, @CURRENTDATE, 3

    delete from @TempTbl

    insert into @TempTbl select
    T.c.value('(ID)[1]','uniqueidentifier') as 'ID',
    T.c.value('(STUDENTCLASSMEETINGGROUPID)[1]','uniqueidentifier') as 'STUDENTCLASSMEETINGGROUPID',
    T.c.value('(COURSEGRADINGMARKINGCOLUMNID)[1]','uniqueidentifier') as 'COURSEGRADINGMARKINGCOLUMNID',
    T.c.value('(TRANSLATIONTABLEGRADEID)[1]','uniqueidentifier') as 'TRANSLATIONTABLEGRADEID',
    T.c.value('(GRADETYPECODE)[1]','tinyint') as 'GRADETYPECODE',
    T.c.value('(NUMERICGRADE)[1]','numeric(14,2)') as 'NUMERICGRADE',
    T.c.value('(GRADEISBLANK)[1]','bit') as 'GRADEISBLANK'
    from @XFERTOGRADES.nodes('/XFERTOGRADES/ITEM') T(c)

    set @MARKINGCOLUMNGRADES = (select [ID],[STUDENTCLASSMEETINGGROUPID],[COURSEGRADINGMARKINGCOLUMNID],[TRANSLATIONTABLEGRADEID],
      [GRADETYPECODE],[NUMERICGRADE],[GRADEISBLANK] 
    from @TempTbl for xml raw('ITEM'),type,elements,root('MARKINGCOLUMNGRADES'),BINARY BASE64)

    exec dbo.USP_STUDENTMARKINGCOLUMN_GETCLASSGRADES_UPDATEFROMXML @STUDENTCOURSEID, @MARKINGCOLUMNGRADES, @CHANGEAGENTID, @CURRENTDATE, 0
      exec dbo.USP_STUDENTMARKINGCOLUMN_CLEARBLANKGRADES @STUDENTCOURSEID, @CHANGEAGENTID

  end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return