USP_PERFORMANCECATEGORYLEVELSKILL_ADDSKILLSBYLEVEL_FROMXML

Used to save different skill levels for a performance category.

Parameters

Parameter Parameter Type Mode Description
@PERFORMANCECATEGORYLEVELID uniqueidentifier IN
@NODENAME nvarchar(64) IN
@SKILLS xml IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_PERFORMANCECATEGORYLEVELSKILL_ADDSKILLSBYLEVEL_FROMXML(
    @PERFORMANCECATEGORYLEVELID uniqueidentifier,
    @NODENAME nvarchar(64),
    @SKILLS xml,
    @CHANGEAGENTID uniqueidentifier = null
)
as
begin

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    -- add level skills

    insert into dbo.PERFORMANCECATEGORYLEVELSKILLCATEGORY
        (ID, PERFORMANCECATEGORYLEVELID, STUDENTSKILLCATEGORYCODEID,
            ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    select 
        newid(), 
        @PERFORMANCECATEGORYLEVELID
        c.value('SKILLCATEGORYCODEID[1]', 'uniqueidentifier'),
        @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
    from @SKILLS.nodes('/*[local-name()=sql:variable("@NODENAME")]/ITEM') as T(c)


    -- add ratings associated with each skill. level add form can only add one high/low rating range per skill category.

    insert into dbo.PERFORMANCECATEGORYLEVELSKILLCATEGORYRATING
        (ID, PERFORMANCECATEGORYLEVELSKILLCATEGORYID, LOWESTSTUDENTSKILLRATINGID, HIGHESTSTUDENTSKILLRATINGID,
            ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    select 
        newid(), 
        sc.ID, 
        c.value('LOWESTRATING[1]', 'uniqueidentifier'),
        c.value('HIGHESTRATING[1]', 'uniqueidentifier'),
        @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
    from @SKILLS.nodes('/*[local-name()=sql:variable("@NODENAME")]/ITEM') as T(c)
        join PERFORMANCECATEGORYLEVELSKILLCATEGORY as sc on (sc.STUDENTSKILLCATEGORYCODEID = c.value('SKILLCATEGORYCODEID[1]', 'uniqueidentifier')
            or sc.STUDENTSKILLCATEGORYCODEID is null and c.value('SKILLCATEGORYCODEID[1]', 'uniqueidentifier') is null) -- could be 'uncategorized' skill category

            and sc.PERFORMANCECATEGORYLEVELID = @PERFORMANCECATEGORYLEVELID
    where
        c.value('LOWESTRATING[1]', 'uniqueidentifier') is not null
            and c.value('LOWESTRATING[1]', 'uniqueidentifier') <> '00000000-0000-0000-0000-000000000000'

end