USP_DATAFORMTEMPLATE_EDIT_TIMETABLE
The save procedure used by the edit dataform template "Timetable 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. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@CYCLEID | uniqueidentifier | IN | Cycle |
@SCHEDULETIMECODE | tinyint | IN | Schedule class meetings |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TIMETABLE (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@CYCLEID uniqueidentifier,
@SCHEDULETIMECODE tinyint
)
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
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
-- cycle changed...attempt to remove days
delete dbo.TIMETABLEDAY
where TIMETABLEDAY.TIMETABLEID = @ID
and TIMETABLEDAY.CYCLEDAYID not in (select CYCLEDAY.ID
from CYCLEDAY
where CYCLEID = @CYCLEID)
/* reset CONTEXT_INFO to previous value */
if not @contextCache is null
set CONTEXT_INFO @contextCache
update dbo.TIMETABLE set
TIMETABLE.NAME = @NAME,
TIMETABLE.DESCRIPTION = @DESCRIPTION,
TIMETABLE.CYCLEID = @CYCLEID,
TIMETABLE.SCHEDULETIMECODE = @SCHEDULETIMECODE,
TIMETABLE.CHANGEDBYID = @CHANGEAGENTID,
TIMETABLE.DATECHANGED = @CURRENTDATE
where TIMETABLE.ID = @ID
insert into dbo.TIMETABLEDAY
(ID, TIMETABLEID, CYCLEDAYID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
select
newid(),
@ID,
CYCLEDAY.ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
CYCLEDAY
where
CYCLEID = @CYCLEID and not exists (select TIMETABLEDAY.ID
from TIMETABLEDAY
where TIMETABLEDAY.TIMETABLEID = @ID
and TIMETABLEDAY.CYCLEDAYID = CYCLEDAY.ID)
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;