USP_DATAFORMTEMPLATE_ADD_SESSION
The save procedure used by the add dataform template "Session Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@ACADEMICYEARID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@SESSIONNAMECODEID | uniqueidentifier | IN | Name |
@MARKINGCOLUMNSETID | uniqueidentifier | IN | Marking columns |
@TIMETABLEID | uniqueidentifier | IN | Timetable |
@SUNDAY | bit | IN | Sunday |
@MONDAY | bit | IN | Monday |
@TUESDAY | bit | IN | Tuesday |
@WEDNESDAY | bit | IN | Wednesday |
@THURSDAY | bit | IN | Thursday |
@FRIDAY | bit | IN | Friday |
@SATURDAY | bit | IN | Saturday |
@SESSIONTERMS | xml | IN | Terms |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SESSION
(
@ID uniqueidentifier = null output,
@ACADEMICYEARID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SESSIONNAMECODEID uniqueidentifier = null,
@MARKINGCOLUMNSETID uniqueidentifier = null,
@TIMETABLEID uniqueidentifier = null,
@SUNDAY bit = null,
@MONDAY bit = null,
@TUESDAY bit = null,
@WEDNESDAY bit = null,
@THURSDAY bit = null,
@FRIDAY bit = null,
@SATURDAY bit = null,
@SESSIONTERMS xml = null
)
as
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
-- handle inserting the data
insert into dbo.SESSION
(ID, SESSIONNAMECODEID, MARKINGCOLUMNSETID, TIMETABLEID, SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, ACADEMICYEARID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ID, @SESSIONNAMECODEID, @MARKINGCOLUMNSETID, @TIMETABLEID, @SUNDAY, @MONDAY, @TUESDAY, @WEDNESDAY, @THURSDAY, @FRIDAY, @SATURDAY, @ACADEMICYEARID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
exec dbo.USP_SESSION_GETTERMS_ADDFROMXML @ID, @SESSIONTERMS, @CHANGEAGENTID, @CURRENTDATE;
if exists(select TERM.ID from dbo.TERM
inner join SESSION on SESSION.ID = TERM.SESSIONID
where TERM.SESSIONID = @ID
and TERM.TIMETABLEDAYID not in (select TIMETABLEDAY.ID
from TIMETABLEDAY
where TIMETABLEDAY.TIMETABLEID = SESSION.TIMETABLEID ))
raiserror('BBERR_TERM_TIMETABLEDAYVALID', 13, 1)
if not exists(select ID from dbo.TERM where SESSIONID = @ID)
raiserror('BBERR_SESSION_ATLEASTONETERM', 13, 1)
--generate calendar entries
declare @TempTbl table (
[ROWID] int identity(1,1),
[TERMID] uniqueidentifier)
insert into @TempTbl (TERMID)
select [ID]
from
dbo.[TERM]
where
SESSIONID = @ID
declare @rowId int
declare @maxRowId int
declare @TERMID uniqueidentifier = null
select
@rowId = min(ROWID),
@MaxRowId = max(ROWID)
from @TempTbl
while @RowId <= @MaxRowId
begin
select
@TERMID = TERMID
from
@TempTbl
where
ROWID = @RowId
exec dbo.USP_SCHEDULEDATE_GENERATEENTRIES @TERMID, null, null, null, @CHANGEAGENTID
set @RowId = @RowId + 1
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0