USP_DATAFORMTEMPLATE_ADD_STUDENTSKILL

The save procedure used by the add dataform template "Student Skill Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@STUDENTSKILLRATINGGROUPID uniqueidentifier IN Ratings table
@STUDENTSKILLS xml IN Skills
@STUDENTSKILLMARKINGCOLUMNS xml IN Marking Columns
@STUDENTSKILLCOURSES xml IN Add skill to
@STARTINACADEMICYEARNAMECODEID uniqueidentifier IN Start in
@STOPAFTERACADEMICYEARNAMECODEID uniqueidentifier IN Stop after

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_STUDENTSKILL
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @STUDENTSKILLRATINGGROUPID uniqueidentifier,
    @STUDENTSKILLS xml,
    @STUDENTSKILLMARKINGCOLUMNS xml = null,
    @STUDENTSKILLCOURSES xml = null,
    @STARTINACADEMICYEARNAMECODEID uniqueidentifier = null,
    @STOPAFTERACADEMICYEARNAMECODEID uniqueidentifier = null
)
as

set nocount on;

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

begin try

    declare @skillgrid table(ID uniqueidentifier, NAME nvarchar(400), STUDENTSKILLCATEGORYCODEID uniqueidentifier, SEQUENCE integer primary key identity)
    insert into @skillgrid 
        (ID, NAME, STUDENTSKILLCATEGORYCODEID)
    select
        newid(),
        c.value('NAME[1]', 'nvarchar(400)'),
        c.value('STUDENTSKILLCATEGORYCODEID[1]', 'uniqueidentifier')
    from @STUDENTSKILLS.nodes('/STUDENTSKILLS/ITEM') as T(c)

    -- handle inserting the data

    if not exists (select ID from @skillgrid)    
        raiserror('BBERR_STUDENTSKILLCOURSE_SKILLS_REQUIRED', 13, 1)

    insert into dbo.STUDENTSKILL
        (ID, STUDENTSKILLRATINGGROUPID, NAME, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, STUDENTSKILLCATEGORYCODEID)
    select
        S.ID, @STUDENTSKILLRATINGGROUPID, S.NAME, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, S.STUDENTSKILLCATEGORYCODEID
    from @skillgrid S

    -- prepare skill grid XML

    declare @STUDENTSKILLSWITHID xml
    set @STUDENTSKILLSWITHID = (select S.ID, S.NAME, S.SEQUENCE
                            from @skillgrid S
                            for xml raw('ITEM'),type,elements,root('STUDENTSKILLS'),binary base64)

    -- add skill to selected courses

    exec dbo.USP_STUDENTSKILL_ADDCOURSES @STUDENTSKILLSWITHID, @CHANGEAGENTID, @CURRENTDATE, @STARTINACADEMICYEARNAMECODEID, @STOPAFTERACADEMICYEARNAMECODEID, @STUDENTSKILLMARKINGCOLUMNS, @STUDENTSKILLCOURSES

end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0