USP_DATAFORMTEMPLATE_ADD_TIMETABLEDAYPERIODS
The save procedure used by the add dataform template "Timetable Day Add Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@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. |
@TIMETABLEID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CYCLEDAYID | uniqueidentifier | IN | Cycle day |
@PERIODS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_TIMETABLEDAYPERIODS
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@TIMETABLEID uniqueidentifier,
@CYCLEDAYID uniqueidentifier,
@PERIODS xml = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
begin try
if @CYCLEDAYID = '00000000-0000-0000-0000-000000000001' --all cycle days
begin
declare @TempTbl table (
[ROWID] int identity(1,1),
[TIMETABLEDAYID] uniqueidentifier)
insert into @TempTbl (TIMETABLEDAYID)
select [ID]
from
dbo.[TIMETABLEDAY]
where
TIMETABLEID = @TIMETABLEID
declare @rowId int
declare @maxRowId int
declare @TIMETABLEDAYID uniqueidentifier = null
select
@rowId = min(ROWID),
@MaxRowId = max(ROWID)
from @TempTbl
while @RowId <= @MaxRowId
begin
select
@TIMETABLEDAYID = TIMETABLEDAYID
from
@TempTbl
where
ROWID = @RowId
exec dbo.USP_TIMETABLEDAY_GETTIMETABLEDAYPERIODS_ADDFROMXML @TIMETABLEDAYID, @PERIODS, @CHANGEAGENTID
if not exists(select ID from dbo.TIMETABLEDAYPERIOD where TIMETABLEDAYID = @TIMETABLEDAYID)
raiserror('BBERR_TIMETABLEDAY_ATLEASTONEPERIOD', 13, 1)
set @RowId = @RowId + 1
end
end
else
begin
if @ID is null
select
@ID = TIMETABLEDAY.ID
from
TIMETABLEDAY
where
CYCLEDAYID = @CYCLEDAYID AND TIMETABLEID = @TIMETABLEID
-- link timetable periods
exec dbo.USP_TIMETABLEDAY_GETTIMETABLEDAYPERIODS_ADDFROMXML @ID, @PERIODS, @CHANGEAGENTID
if not exists(select ID from dbo.TIMETABLEDAYPERIOD where TIMETABLEDAYID = @ID)
raiserror('BBERR_TIMETABLEDAY_ATLEASTONEPERIOD', 13, 1)
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0