USP_DATAFORMTEMPLATE_EDIT_WITHDRAWSTUDENT
The save procedure used by the edit dataform template "Withdraw Student Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(73) | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@WITHDRAWNDATE | date | IN | Withdrawn date |
@WITHDRAWNTERMID | uniqueidentifier | IN | Withdraw starting in |
@MARKINGCOLUMNGRADES | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_WITHDRAWSTUDENT (
@ID nvarchar(73),
@CHANGEAGENTID uniqueidentifier,
@WITHDRAWNDATE date,
@WITHDRAWNTERMID uniqueidentifier,
@MARKINGCOLUMNGRADES xml
)
as
set nocount on;
declare @CLASSID uniqueidentifier
declare @STUDENTID uniqueidentifier
begin try
select
@CLASSID = cast(substring(@ID,1,36) as uniqueidentifier),
@STUDENTID = cast(substring(@ID,38,36) as uniqueidentifier)
declare @STUDENTCOURSEID uniqueidentifier
select
@STUDENTCOURSEID = STUDENTCOURSE.ID
from dbo.STUDENTCOURSE
inner join dbo.STUDENTCLASSMEETINGGROUP on STUDENTCOURSE.ID = STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID
inner join dbo.CLASSMEETINGGROUP on STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
where STUDENTCOURSE.STUDENTID = @STUDENTID
and CLASSMEETINGGROUP.CLASSID = @CLASSID
declare @TERM_STARTDATE date
select @TERM_STARTDATE = TERM.STARTDATE
from dbo.TERM
where TERM.ID = @WITHDRAWNTERMID
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime = getdate()
exec dbo.USP_STUDENTMARKINGCOLUMN_GETCLASSGRADES_UPDATEFROMXML @STUDENTCOURSEID, @MARKINGCOLUMNGRADES, @CHANGEAGENTID, @CURRENTDATE, 0
update dbo.STUDENTCLASSMEETINGGROUP set
STUDENTCLASSMEETINGGROUP.STATUSCODE = 2,
STUDENTCLASSMEETINGGROUP.STATUSDATE = coalesce(@WITHDRAWNDATE, getdate()),
STUDENTCLASSMEETINGGROUP.CHANGEDBYID = @CHANGEAGENTID,
STUDENTCLASSMEETINGGROUP.DATECHANGED = @CURRENTDATE
from dbo.STUDENTCLASSMEETINGGROUP
inner join dbo.CLASSMEETINGGROUP on STUDENTCLASSMEETINGGROUP.CLASSMEETINGGROUPID = CLASSMEETINGGROUP.ID
where STUDENTCLASSMEETINGGROUP.STUDENTCOURSEID = @STUDENTCOURSEID
and CLASSMEETINGGROUP.STARTDATE >= @TERM_STARTDATE
and STUDENTCLASSMEETINGGROUP.STATUSCODE in (0,2)
and (STUDENTCLASSMEETINGGROUP.STATUSDATE is null or STUDENTCLASSMEETINGGROUP.STATUSDATE != coalesce(@WITHDRAWNDATE, getdate()))
exec dbo.USP_STUDENTMARKINGCOLUMN_CLEARBLANKGRADES @STUDENTCOURSEID, @CHANGEAGENTID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;