USP_DATAFORMTEMPLATE_ADD_STUDENTSKILLCOPY

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

Parameters

Parameter Parameter Type Mode Description
@STUDENTSKILLID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@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.
@SCHOOLID uniqueidentifier IN Apply to
@GRADELEVELID uniqueidentifier IN Apply to
@COURSEID uniqueidentifier IN Apply to
@STUDENTSKILLRATINGGROUPID uniqueidentifier IN Rating
@NAME nvarchar(400) IN Skill name
@STARTDATE datetime IN Start using on
@ENDDATE datetime IN Stop using after
@STUDENTSKILLMARKINGCOLUMNS xml IN Marking Columns

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_STUDENTSKILLCOPY
(
    @STUDENTSKILLID uniqueidentifier,
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @SCHOOLID uniqueidentifier = null,
    @GRADELEVELID uniqueidentifier = null,
    @COURSEID uniqueidentifier = null,
    @STUDENTSKILLRATINGGROUPID uniqueidentifier = null,
    @NAME nvarchar(400) = '',
    @STARTDATE datetime = null,
    @ENDDATE datetime = null,
    @STUDENTSKILLMARKINGCOLUMNS xml = null
)
as

set nocount on;

declare @LINKTYPE int

-- determine linktype from copied @STUDENTSKILLID

select @LINKTYPE = 
        case 
            when STUDENTSKILLSCHOOL.SCHOOLID is not null then 1
            when STUDENTSKILLGRADELEVEL.GRADELEVELID is not null then 2
            when STUDENTSKILLCOURSE.COURSEID is not null then 3
        end
from dbo.STUDENTSKILL
    left join dbo.STUDENTSKILLSCHOOL on STUDENTSKILLSCHOOL.STUDENTSKILLID = STUDENTSKILL.ID
    left join dbo.STUDENTSKILLGRADELEVEL on STUDENTSKILLGRADELEVEL.STUDENTSKILLID = STUDENTSKILL.ID
    left join dbo.STUDENTSKILLCOURSE on STUDENTSKILLCOURSE.STUDENTSKILLID = STUDENTSKILL.ID
where dbo.STUDENTSKILL.ID = @STUDENTSKILLID

if @ID is null
    set @ID = newid()

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

declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()

begin try
    -- handle inserting the data

    insert into dbo.STUDENTSKILL
        --(ID, STUDENTSKILLRATINGGROUPID, NAME, STARTDATE, ENDDATE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)

        (ID, STUDENTSKILLRATINGGROUPID, NAME, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
    values
        --(@ID, @STUDENTSKILLRATINGGROUPID, @NAME, @STARTDATE, @ENDDATE, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

        (@ID, @STUDENTSKILLRATINGGROUPID, @NAME, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

    -- link to marking columns

    exec dbo.USP_STUDENTSKILL_GETMARKINGCOLUMN_ADDFROMXML @ID, @STUDENTSKILLMARKINGCOLUMNS, @CHANGEAGENTID

    if @LINKTYPE = 1    -- link school

    begin
        if @SCHOOLID is null raiserror('SCHOOLID is required', 13, 1)

        insert into dbo.STUDENTSKILLSCHOOL
            (ID, SCHOOLID, STUDENTSKILLID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
            (@ID, @SCHOOLID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
    end

    if @LINKTYPE = 2    -- link grade level

    begin
        if @GRADELEVELID is null raiserror('GRADELEVELID is required', 13, 1)

        insert into dbo.STUDENTSKILLGRADELEVEL
            (ID, GRADELEVELID, STUDENTSKILLID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
            (@ID, @GRADELEVELID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
    end

    if @LINKTYPE = 3    -- link course

    begin
        if @COURSEID is null raiserror('COURSEID is required', 13, 1)

        insert into dbo.STUDENTSKILLCOURSE
            (ID, COURSEID, STUDENTSKILLID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
            (@ID, @COURSEID, @ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
    end


end try

begin catch
    exec dbo.USP_RAISE_ERROR
    return 1
end catch

return 0