USP_DATAFORMTEMPLATE_EDIT_CLASS

The save procedure used by the edit dataform template "Class Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier 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.
@SECTION nvarchar(20) IN Section
@FACULTYID uniqueidentifier IN Faculty

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CLASS
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @SECTION nvarchar(20),
    @FACULTYID uniqueidentifier
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        -- handle updating the data

        update dbo.CLASS set
            SECTION = @SECTION,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @ID

        delete from dbo.FACULTYCLASSMEETINGGROUP
        from dbo.FACULTYCLASSMEETINGGROUP
            inner join dbo.CLASSMEETINGGROUP on FACULTYCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
        where CLASSMEETINGGROUP.CLASSID = @ID
            and (@FACULTYID is null or FACULTYCLASSMEETINGGROUP.FACULTYCOURSEID <> @FACULTYID)

        if @FACULTYID is not null and @FACULTYID <> '00000000-0000-0000-0000-000000000000'
        begin
      declare @COURSEID uniqueidentifier
      select @COURSEID = COURSEID
      from dbo.CLASS where ID = @ID

      declare @FACULTYCOURSEID uniqueidentifier
            select @FACULTYCOURSEID = ID
            from dbo.FACULTYCOURSE where FACULTYID = @FACULTYID and COURSEID = @COURSEID

            if @FACULTYCOURSEID is null
            begin    
                set @FACULTYCOURSEID = newid()

                insert into dbo.FACULTYCOURSE
                (
                    ID,
                    FACULTYID,
                    COURSEID,
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                )
        values
        (
                    @FACULTYCOURSEID,
                    @FACULTYID,
                    @COURSEID,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
        )
            end

            insert into dbo.FACULTYCLASSMEETINGGROUP
            (
                ID,
                FACULTYCOURSEID,
                CLASSMEETINGGROUPID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            )
            select
                newid(),
                @FACULTYCOURSEID,
                CLASSMEETINGGROUP.ID,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            from dbo.CLASSMEETINGGROUP 
                left join dbo.FACULTYCLASSMEETINGGROUP on FACULTYCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
            where CLASSID = @ID
                and FACULTYCLASSMEETINGGROUP.ID is null
        end        
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0;