USP_DATAFORMTEMPLATE_ADD_CLASS
The save procedure used by the add dataform template "Class Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@SESSIONID | uniqueidentifier | IN | |
@COURSEID | uniqueidentifier | IN | Create class for |
@TERMID | uniqueidentifier | IN | Starting in |
@SECTION | nvarchar(20) | IN | Section |
@FACULTYID | uniqueidentifier | IN | Faculty |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@PATTERNBLOCKID | uniqueidentifier | IN | Block |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_CLASS
(
@ID uniqueidentifier = null output,
@SESSIONID uniqueidentifier = null,
@COURSEID uniqueidentifier = null,
@TERMID uniqueidentifier = null,
@SECTION nvarchar(20) = null,
@FACULTYID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@PATTERNBLOCKID uniqueidentifier = 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()
declare @SESSION_STARTDATE date
declare @SESSION_ENDDATE date
select
@SESSION_STARTDATE = min(STARTDATE),
@SESSION_ENDDATE = max(ENDDATE)
from dbo.TERM
where TERM.SESSIONID = @SESSIONID
declare @NAME nvarchar(100)
declare @LENGTHINTERMS int
select
@NAME = COURSE.NAME,
@LENGTHINTERMS = COURSERESTRICTION.LENGTHINTERMS
from dbo.COURSE
inner join dbo.V_COURSERESTRICTION as COURSERESTRICTION on COURSE.ID = COURSERESTRICTION.COURSEID
where COURSE.ID = @COURSEID
and COURSERESTRICTION.STARTDATE = @SESSION_STARTDATE
and COURSERESTRICTION.ENDDATE = @SESSION_ENDDATE
if @NAME is null
raiserror('BBERR_COURSE_MISSING_COURSERESTRICTION', 13, 1);
declare @START datetime
declare @END datetime
select @START = STARTDATE
from dbo.TERM
where ID = @TERMID
select @END = T.ENDDATE
from
(
select ENDDATE, ROW_NUMBER() OVER(ORDER BY STARTDATE ASC) AS TERMNUMBER
from dbo.TERM
where SESSIONID = @SESSIONID and STARTDATE >= @START
) T
where T.TERMNUMBER = @LENGTHINTERMS
insert into dbo.CLASS
(
ID,
COURSEID,
NAME,
SECTION,
CLASSSIZEMINIMUM,
CLASSSIZETARGET,
CLASSSIZEMAXIMUM,
CLASSESPERTERMMINIMUM,
CLASSESPERTERMTARGET,
CLASSESPERTERMMAXIMUM,
STARTDATE,
ENDDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@ID,
@COURSEID,
@NAME,
@SECTION,
CLASSSIZEMINIMUM,
CLASSSIZETARGET,
CLASSSIZEMAXIMUM,
CLASSESPERTERMMINIMUM,
CLASSESPERTERMTARGET,
CLASSESPERTERMMAXIMUM,
@START,
@END,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.COURSE
where COURSE.ID = @COURSEID
insert into dbo.CLASSMEETINGGROUP
(
ID,
CLASSID,
STARTDATE,
ENDDATE,
PATTERNBLOCKID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select top (@LENGTHINTERMS)
newid(),
@ID,
STARTDATE,
ENDDATE,
@PATTERNBLOCKID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.TERM
where SESSIONID = @SESSIONID and STARTDATE >= @START
order by TERM.STARTDATE
if @FACULTYID is not null
begin
declare @FACULTYCOURSEID uniqueidentifier
select @FACULTYCOURSEID = ID
from dbo.FACULTYCOURSE where FACULTYID = @FACULTYID and COURSEID = @COURSEID
if @FACULTYCOURSEID is null
begin
set @FACULTYCOURSEID = newid()
insert into dbo.FACULTYCOURSE
(
ID,
FACULTYID,
COURSEID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@FACULTYCOURSEID,
@FACULTYID,
@COURSEID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
insert into dbo.FACULTYCLASSMEETINGGROUP
(
ID,
FACULTYCOURSEID,
CLASSMEETINGGROUPID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
@FACULTYCOURSEID,
CLASSMEETINGGROUP.ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.CLASSMEETINGGROUP
where CLASSID = @ID
end
if @PATTERNBLOCKID is not null
begin
exec dbo.USP_CLASSMEETINGTEMPLATE_CREATEFROMBLOCK @ID, @PATTERNBLOCKID, @CHANGEAGENTID
exec dbo.USP_CLASSMEETING_CREATEFROMTEMPLATES @ID, @CHANGEAGENTID
end
return 0