USP_DATAFORMTEMPLATE_EDIT_EDUCATIONALHISTORY
The save procedure used by the edit dataform template "Educational History Edit 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. |
@EDUCATIONALINSTITUTIONID | uniqueidentifier | IN | Educational institution |
@ISPRIMARYRECORD | bit | IN | Primary alumni information |
@KNOWNNAME | nvarchar(50) | IN | Known name |
@EDUCATIONALHISTORYTYPECODEID | uniqueidentifier | IN | Type |
@EDUCATIONALHISTORYSTATUSCODEID | uniqueidentifier | IN | Detail |
@CONSTITUENCYSTATUSCODE | tinyint | IN | Status |
@EDUCATIONALDEGREECODEID | uniqueidentifier | IN | Degree |
@STARTDATE | UDT_FUZZYDATE | IN | Start date |
@ENDDATE | UDT_FUZZYDATE | IN | End date |
@EDUCATIONALMAJOR | xml | IN | Major |
@EDUCATIONALMINOR | xml | IN | Minor |
@GPA | decimal(3, 2) | IN | GPA |
@CLASSOF | UDT_YEAR | IN | Class of |
@FRATERNITY | nvarchar(50) | IN | Greek affiliation |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EDUCATIONALHISTORY
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@EDUCATIONALINSTITUTIONID uniqueidentifier,
@ISPRIMARYRECORD bit,
@KNOWNNAME nvarchar(50),
@EDUCATIONALHISTORYTYPECODEID uniqueidentifier,
@EDUCATIONALHISTORYSTATUSCODEID uniqueidentifier,
@CONSTITUENCYSTATUSCODE tinyint,
@EDUCATIONALDEGREECODEID uniqueidentifier,
@STARTDATE dbo.UDT_FUZZYDATE,
@ENDDATE dbo.UDT_FUZZYDATE,
@EDUCATIONALMAJOR xml,
@EDUCATIONALMINOR xml,
@GPA decimal(3,2),
@CLASSOF dbo.UDT_YEAR,
@FRATERNITY nvarchar(50)
)
as
set nocount on;
declare @CURRENTDATE datetime;
declare @ISAFFILIATED bit;
declare @STATUSREASON nvarchar(100);
declare @EDUCATIONALHISTORYSTATUSID uniqueidentifier;
begin try
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
--reset Primary Record Flag for existing records
update dbo.EDUCATIONALHISTORY
set ISPRIMARYRECORD = 0,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
CONSTITUENTID in
(select CONSTITUENTID
from dbo.CONSTITUENT
inner join dbo.EDUCATIONALHISTORY on CONSTITUENT.ID = EDUCATIONALHISTORY.CONSTITUENTID
where EDUCATIONALHISTORY.ID = @ID)
and ISPRIMARYRECORD = 1
and @ISPRIMARYRECORD = 1;
update dbo.EDUCATIONALHISTORY
set EDUCATIONALINSTITUTIONID = @EDUCATIONALINSTITUTIONID,
EDUCATIONALHISTORYTYPECODEID = @EDUCATIONALHISTORYTYPECODEID,
ISPRIMARYRECORD = @ISPRIMARYRECORD,
KNOWNNAME = @KNOWNNAME,
EDUCATIONALHISTORYSTATUSCODEID = @EDUCATIONALHISTORYSTATUSCODEID,
CONSTITUENCYSTATUSCODE = @CONSTITUENCYSTATUSCODE,
EDUCATIONALDEGREECODEID = @EDUCATIONALDEGREECODEID,
STARTDATE = @STARTDATE,
ENDDATE = @ENDDATE,
GPA = coalesce(@GPA, 0),
CLASSOF = @CLASSOF,
FRATERNITY = @FRATERNITY,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where ID = @ID;
exec dbo.USP_EDUCATIONALHISTORY_GETMAJOR_UPDATEFROMXML @ID, @EDUCATIONALMAJOR, @CHANGEAGENTID;
exec dbo.USP_EDUCATIONALHISTORY_GETMINOR_UPDATEFROMXML @ID, @EDUCATIONALMINOR, @CHANGEAGENTID;
select @ISAFFILIATED=ISAFFILIATED from dbo.EDUCATIONALINSTITUTION where ID=@EDUCATIONALINSTITUTIONID
if @ISAFFILIATED = 1
begin
if @CONSTITUENCYSTATUSCODE=1 or @CONSTITUENCYSTATUSCODE=3
begin
set @EDUCATIONALHISTORYSTATUSID=dbo.UFN_EDUCATIONALHISTORYSTATUS_FROMCONSTITUENCYSTATUSCODE(@CONSTITUENCYSTATUSCODE)
if not exists(select ID from dbo.EDUCATIONALHISTORYSTATUSHISTORY where EDUCATIONALHISTORYID=@ID AND EDUCATIONALHISTORYSTATUSID=@EDUCATIONALHISTORYSTATUSID)
begin
select @STATUSREASON=DESCRIPTION from dbo.EDUCATIONALHISTORYSTATUS where ID=@EDUCATIONALHISTORYSTATUSID;
INSERT INTO [dbo].[EDUCATIONALHISTORYSTATUSHISTORY]
(
[EDUCATIONALHISTORYID],
[EDUCATIONALHISTORYSTATUSID],
[STATUSDATE],
[STATUSREASON],
[ADDEDBYID],
[CHANGEDBYID],
[DATEADDED],
[DATECHANGED]
)
values
(
@ID,
@EDUCATIONALHISTORYSTATUSID,
@CURRENTDATE,
@STATUSREASON,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else
UPDATE [dbo].[EDUCATIONALHISTORYSTATUSHISTORY] SET STATUSDATE=@CURRENTDATE,DATECHANGED=@CURRENTDATE,CHANGEDBYID=@CHANGEAGENTID WHERE EDUCATIONALHISTORYID=@ID AND EDUCATIONALHISTORYSTATUSID=@EDUCATIONALHISTORYSTATUSID;
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;