USP_DATAFORMTEMPLATE_EDIT_TIMETABLEDAY

The save procedure used by the edit dataform template "Timetable Day Edit Data 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.
@PERIODS xml IN

Definition

Copy


                        CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TIMETABLEDAY (
                            @ID uniqueidentifier,
                            @CHANGEAGENTID uniqueidentifier = null,
                            @PERIODS xml 
                        )
                        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.TIMETABLEDAY set
                                    TIMETABLEDAY.CHANGEDBYID = @CHANGEAGENTID,
                                    TIMETABLEDAY.DATECHANGED = @CURRENTDATE
                                where TIMETABLEDAY.ID = @ID

                                declare @contextCache varbinary(128);

                                /* cache current context information */
                                set @contextCache = CONTEXT_INFO();

                                /* set CONTEXT_INFO to @CHANGEAGENTID */
                                if not @CHANGEAGENTID is null
                                    set CONTEXT_INFO @CHANGEAGENTID

                                delete 
                                    PATTERNBLOCKMEETING
                                from 
                                    PATTERNBLOCKMEETING
                                where 
                                    PATTERNBLOCKMEETING.TIMETABLEDAYID = @ID
                                    and PATTERNBLOCKMEETING.TIMETABLEDAYPERIODID not in (select ID from dbo.UFN_TIMETABLEDAY_GETTIMETABLEDAYPERIODS_FROMITEMLISTXML(@PERIODS))

                                /* reset CONTEXT_INFO to previous value */
                                if not @contextCache is null
                                    set CONTEXT_INFO @contextCache

                                exec dbo.USP_PATTERNBLOCK_UNUSED_DELETE @CHANGEAGENTID

                                exec dbo.USP_TIMETABLEDAY_GETTIMETABLEDAYPERIODS_UPDATEFROMXML @ID, @PERIODS, @CHANGEAGENTID;

                                if not exists(select ID from dbo.TIMETABLEDAYPERIOD where TIMETABLEDAYID = @ID)
                                    raiserror('BBERR_TIMETABLEDAY_ATLEASTONEPERIOD', 13, 1)

                                exec dbo.USP_PATTERNBLOCKMEETING_TIMES_UPDATE @ID, @CHANGEAGENTID
                            end try

                            begin catch
                                exec dbo.USP_RAISE_ERROR
                                return 1
                            end catch

                        return 0;