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