USP_DATAFORMTEMPLATE_ADD_ASSIGNHOMEROOMS
The save procedure used by the add dataform template "Assign Homeroom Teachers 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. |
@ACADEMICYEARID | uniqueidentifier | IN | Academic year |
@HOMEROOMTEACHERID | uniqueidentifier | IN | Homeroom teacher |
@SCHOOLGRADELEVELID | uniqueidentifier | IN | Grade level |
@STUDENTS | xml | IN | |
@UPDATEEXISTING | bit | IN | Update existing homeroom teacher |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_ASSIGNHOMEROOMS
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@ACADEMICYEARID uniqueidentifier = null,
@HOMEROOMTEACHERID uniqueidentifier = null,
@SCHOOLGRADELEVELID uniqueidentifier = null,
@STUDENTS xml = null,
@UPDATEEXISTING bit = null
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if not exists(select * from @STUDENTS.nodes('/STUDENTS/ITEM') T(c) where T.c.value('(ASSIGN)[1]','bit') = 1)
raiserror('BBERR_ASSIGNHOMEROOMS_ATLEASTONESTUDENT', 13, 1)
if @UPDATEEXISTING = 0
if exists(select STUDENTPROGRESSION.ID
from dbo.STUDENTPROGRESSION
inner join (select T.c.value('(STUDENTPROGRESSIONID)[1]','uniqueidentifier') as STUDENTPROGRESSIONID,
T.c.value('(ASSIGN)[1]','bit') as ASSIGN
from @STUDENTS.nodes('/STUDENTS/ITEM') T(c)) STUDENTS
on STUDENTPROGRESSION.ID = STUDENTS.STUDENTPROGRESSIONID and STUDENTS.ASSIGN = 1
where HOMEROOMTEACHERID IS NOT NULL)
raiserror('BBERR_ASSIGNHOMEROOMS_UPDATEREQUIRED', 13, 1)
begin try
update STUDENTPROGRESSION set HOMEROOMTEACHERID = @HOMEROOMTEACHERID, CHANGEDBYID = @CHANGEAGENTID, DATECHANGED = @CURRENTDATE
from dbo.STUDENTPROGRESSION
inner join (select T.c.value('(STUDENTPROGRESSIONID)[1]','uniqueidentifier') as STUDENTPROGRESSIONID,
T.c.value('(ASSIGN)[1]','bit') as ASSIGN
from @STUDENTS.nodes('/STUDENTS/ITEM') T(c)) STUDENTS
on STUDENTPROGRESSION.ID = STUDENTS.STUDENTPROGRESSIONID and STUDENTS.ASSIGN = 1
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0