USP_DATAFORMTEMPLATE_EDIT_STUDENTENROLLMENT
The save procedure used by the edit dataform template "Student Enrollment Edit Data Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | 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. |
@SCHOOLID | uniqueidentifier | IN | School enrolled |
@STARTDATE | UDT_FUZZYDATE | IN | From |
@DATELEFT | UDT_FUZZYDATE | IN | To |
@CURRENTSTATUS | uniqueidentifier | IN | Current status |
@STATUSDATE | date | IN | Status date |
@STATUSREASON | nvarchar(100) | IN | Status reason |
@DATEGRADUATED | UDT_FUZZYDATE | IN | Graduation date |
@CLASSOF | UDT_YEAR | IN | Class of |
@EDUCATIONALREASONLEFTCODEID | uniqueidentifier | IN | Reason left |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_STUDENTENROLLMENT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@SCHOOLID uniqueidentifier,
@STARTDATE dbo.UDT_FUZZYDATE,
@DATELEFT dbo.UDT_FUZZYDATE,
@CURRENTSTATUS uniqueidentifier,
@STATUSDATE date,
@STATUSREASON nvarchar(100),
@DATEGRADUATED dbo.UDT_FUZZYDATE,
@CLASSOF dbo.UDT_YEAR,
@EDUCATIONALREASONLEFTCODEID uniqueidentifier
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
-- Check to see that this entry is unique
declare @STUDENTID uniqueidentifier;
select @STUDENTID = EDUCATIONALHISTORY.CONSTITUENTID
from dbo.EDUCATIONALHISTORY
where EDUCATIONALHISTORY.ID = @ID;
if (dbo.UFN_EDUCATIONALHISTORY_ISUNIQUEENROLLMENT(@ID, @STUDENTID, @SCHOOLID, @STARTDATE, @DATELEFT) = 0)
begin
raiserror('BBERR_STUDENTENROLLMENT_ISNOTUNIQUE', 13, 1);
end
-- handle updating the data
update dbo.EDUCATIONALHISTORY set
EDUCATIONALINSTITUTIONID = @SCHOOLID,
STARTDATE = @STARTDATE,
DATELEFT = @DATELEFT,
DATEGRADUATED = @DATEGRADUATED,
CLASSOF = @CLASSOF,
EDUCATIONALREASONLEFTCODEID = @EDUCATIONALREASONLEFTCODEID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
declare @OLDCURRENTSTATUS uniqueidentifier;
declare @OLDSTATUSDATE date;
declare @OLDSTATUSREASON nvarchar(100);
select top 1
@OLDCURRENTSTATUS=[EDUCATIONALHISTORYSTATUSID], @OLDSTATUSDATE=[STATUSDATE], @OLDSTATUSREASON=[STATUSREASON]
from
dbo.EDUCATIONALHISTORYSTATUSHISTORY
where
[EDUCATIONALHISTORYID] = @ID
order by [DATECHANGED] DESC
if @OLDCURRENTSTATUS <> @CURRENTSTATUS or @OLDSTATUSDATE <> @STATUSDATE or @OLDSTATUSREASON <> @STATUSREASON
begin
insert into dbo.EDUCATIONALHISTORYSTATUSHISTORY
(
[EDUCATIONALHISTORYID],
[EDUCATIONALHISTORYSTATUSID],
[STATUSDATE],
[STATUSREASON],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@CURRENTSTATUS,
@STATUSDATE,
@STATUSREASON,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;