USP_DATAFORMTEMPLATE_EDIT_CLASS_MEETING_TEMPLATE_SINGLE

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@STARTTIME UDT_HOURMINUTE IN Start time
@ENDTIME UDT_HOURMINUTE IN End time
@CYCLEDAYID uniqueidentifier IN Cycle day
@TIMETABLEDAYPERIODID uniqueidentifier IN Starting in period
@LENGTHINPERIODS int IN Length in periods
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_CLASS_MEETING_TEMPLATE_SINGLE
(
    @ID uniqueidentifier,
    @STARTTIME dbo.UDT_HOURMINUTE,
    @ENDTIME dbo.UDT_HOURMINUTE,
    @CYCLEDAYID uniqueidentifier,
    @TIMETABLEDAYPERIODID uniqueidentifier,
    @LENGTHINPERIODS int,
    @CHANGEAGENTID uniqueidentifier = null
)
as
    set nocount on

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    declare @CLASSID uniqueidentifier
    select @CLASSID = CLASSMEETINGGROUP.CLASSID 
    from dbo.CLASSMEETINGTEMPLATE
        inner join dbo.CLASSMEETINGGROUP on CLASSMEETINGTEMPLATE.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID 
    where CLASSMEETINGTEMPLATE.ID = @ID

    begin try
        if not @TIMETABLEDAYPERIODID is null
        begin
            exec dbo.USP_CLASSMEETINGTEMPLATE_MOVE_GETNEWPERIODVALUES @CLASSID, @STARTTIME, @ENDTIME, @CYCLEDAYID, @TIMETABLEDAYPERIODID output, @LENGTHINPERIODS output, @STARTTIME output, @ENDTIME output
        end

        if @STARTTIME = '' or @ENDTIME = ''
        begin
            raiserror('BBERR_CLASSMEETINGTEMPLATE_INVALIDPERIODLENGTH', 13, 1);
            return 1
        end

        update dbo.CLASSMEETINGTEMPLATE set
            STARTTIME = @STARTTIME,
            ENDTIME = @ENDTIME,
            CYCLEDAYID = @CYCLEDAYID,
            TIMETABLEDAYPERIODID = @TIMETABLEDAYPERIODID,
            LENGTHINPERIODS = @LENGTHINPERIODS,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @ID 
            or ID in (select B.ID from CLASSMEETINGTEMPLATE A
                    inner join CLASSMEETINGGROUP A_CMG on A_CMG.ID = A.CLASSMEETINGGROUPID 
                    inner join CLASSMEETINGTEMPLATE B on A.STARTTIME = B.STARTTIME and A.ENDTIME = B.ENDTIME and A.CYCLEDAYID = B.CYCLEDAYID 
                    inner join CLASSMEETINGGROUP B_CMG on B_CMG.ID = B.CLASSMEETINGGROUPID and A_CMG.CLASSID = B_CMG.CLASSID 
                    where A.ID = @ID)

        update dbo.CLASSMEETINGGROUP
            set PATTERNBLOCKID = null
        from dbo.CLASSMEETINGGROUP
        where CLASSMEETINGGROUP.CLASSID = @CLASSID
            and PATTERNBLOCKID is not null

        exec dbo.USP_CLASSMEETING_CREATEFROMTEMPLATES @CLASSID, @CHANGEAGENTID
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

return 0