USP_BBNC_COMMITPROFILEUPDATEEDUCATIONALHISTORY
Updates a constituent's educational history information from a Blackbaud Internet Solutions profile transaction to the system from a given batch.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@ADDNEWRECORD | bit | IN | |
@EDUCATIONALHISTORYID | uniqueidentifier | INOUT | |
@EDUCATIONALINSTITUTIONID | uniqueidentifier | IN | |
@EDUCATIONALHISTORYSTATUSID | uniqueidentifier | IN | |
@EDUCATIONALPROGRAMCODEID | uniqueidentifier | IN | |
@EDUCATIONALDEGREECODEID | uniqueidentifier | IN | |
@EDUCATIONALAWARDCODEID | uniqueidentifier | IN | |
@COMMENTS | nvarchar(500) | IN | |
@STARTDATE | UDT_FUZZYDATE | IN | |
@ENDDATE | UDT_FUZZYDATE | IN | |
@GRADUATIONDATE | UDT_FUZZYDATE | IN | |
@CLASSOF | UDT_YEAR | IN | |
@PREFERREDCLASSOF | UDT_YEAR | IN | |
@ISPRIMARY | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN | |
@ACADEMICCATALOGPROGRAMID | uniqueidentifier | IN | |
@ACADEMICCATALOGDEGREEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_BBNC_COMMITPROFILEUPDATEEDUCATIONALHISTORY
(
@ID uniqueidentifier = null,
@ADDNEWRECORD bit = 0,
@EDUCATIONALHISTORYID uniqueidentifier = null output,
@EDUCATIONALINSTITUTIONID uniqueidentifier = null,
@EDUCATIONALHISTORYSTATUSID uniqueidentifier = null,
@EDUCATIONALPROGRAMCODEID uniqueidentifier = null,
@EDUCATIONALDEGREECODEID uniqueidentifier = null,
@EDUCATIONALAWARDCODEID uniqueidentifier = null,
@COMMENTS nvarchar(500) = '',
@STARTDATE dbo.UDT_FUZZYDATE = '00000000',
@ENDDATE dbo.UDT_FUZZYDATE = '00000000',
@GRADUATIONDATE dbo.UDT_FUZZYDATE = '00000000',
@CLASSOF dbo.UDT_YEAR = null,
@PREFERREDCLASSOF dbo.UDT_YEAR = null,
@ISPRIMARY bit = 0,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null,
@ACADEMICCATALOGPROGRAMID uniqueidentifier = null,
@ACADEMICCATALOGDEGREEID uniqueidentifier = null
)
as
set nocount on;
declare @PRIMARYID uniqueidentifier;
if @ID is null
begin
raiserror('The constituent ID is required',16,1);
return -2;
end
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHANGEDATE is null
set @CHANGEDATE = getdate();
begin try
if @ISPRIMARY = 1
begin
select
@PRIMARYID = ID
from
dbo.EDUCATIONALHISTORY
where
CONSTITUENTID = @ID and ISPRIMARYRECORD = 1;
if @PRIMARYID is not null and @PRIMARYID <> @EDUCATIONALHISTORYID
begin
update
dbo.EDUCATIONALHISTORY
set
ISPRIMARYRECORD = 0
where
ID = @PRIMARYID;
end
end
if @ADDNEWRECORD = 0
begin
if @EDUCATIONALHISTORYID is not null
begin
if not exists(select ID from dbo.EDUCATIONALHISTORY where ID = @EDUCATIONALHISTORYID)
begin
raiserror('BBERR_EDUCATIONALHISTORYIDDOESNOTEXIST',16,1);
return -2;
end
declare @OLDEDUCATIONALINSTITUTIONID uniqueidentifier;
select @OLDEDUCATIONALINSTITUTIONID = EDUCATIONALINSTITUTIONID
from dbo.EDUCATIONALHISTORY
where ID = @EDUCATIONALHISTORYID;
update
dbo.EDUCATIONALHISTORY
set
EDUCATIONALINSTITUTIONID = @EDUCATIONALINSTITUTIONID,
EDUCATIONALPROGRAMCODEID = @EDUCATIONALPROGRAMCODEID,
EDUCATIONALDEGREECODEID = @EDUCATIONALDEGREECODEID,
EDUCATIONALAWARDCODEID = @EDUCATIONALAWARDCODEID,
COMMENT = @COMMENTS,
STARTDATE = @STARTDATE,
DATELEFT = @ENDDATE,
DATEGRADUATED = @GRADUATIONDATE,
CLASSOF = coalesce(@CLASSOF, 0),
PREFERREDCLASSYEAR = coalesce(@PREFERREDCLASSOF, 0),
ISPRIMARYRECORD = @ISPRIMARY,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CHANGEDATE,
ACADEMICCATALOGPROGRAMID = @ACADEMICCATALOGPROGRAMID,
ACADEMICCATALOGDEGREEID = @ACADEMICCATALOGDEGREEID
where
ID = @EDUCATIONALHISTORYID;
--update any involvements for this constituent if the educational institution has changed
if @OLDEDUCATIONALINSTITUTIONID != @EDUCATIONALINSTITUTIONID
update
dbo.EDUCATIONALINVOLVEMENT
set
EDUCATIONALINSTITUTIONID = @EDUCATIONALINSTITUTIONID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CHANGEDATE
where
ID in
(select EI.ID
from dbo.EDUCATIONALINVOLVEMENT EI
left join dbo.EDUCATIONALHISTORY EH on EH.CONSTITUENTID = EI.CONSTITUENTID
where
EH.ID = @EDUCATIONALHISTORYID and EI.EDUCATIONALINSTITUTIONID = @OLDEDUCATIONALINSTITUTIONID);
if (not exists(select ID from dbo.EDUCATIONALHISTORYSTATUSHISTORY where EDUCATIONALHISTORYID=@EDUCATIONALHISTORYID and EDUCATIONALHISTORYSTATUSID=@EDUCATIONALHISTORYSTATUSID)
or (select EDUCATIONALHISTORYSTATUSID from dbo.EDUCATIONALHISTORY where ID=@EDUCATIONALHISTORYID) <> @EDUCATIONALHISTORYSTATUSID)
insert into dbo.EDUCATIONALHISTORYSTATUSHISTORY
(
EDUCATIONALHISTORYID,
EDUCATIONALHISTORYSTATUSID,
STATUSDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@EDUCATIONALHISTORYID,
@EDUCATIONALHISTORYSTATUSID,
@CHANGEDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
);
end
end
else
begin
set @EDUCATIONALHISTORYID = newid();
insert into dbo.EDUCATIONALHISTORY
(
ID,
CONSTITUENTID,
EDUCATIONALINSTITUTIONID,
EDUCATIONALPROGRAMCODEID,
EDUCATIONALDEGREECODEID,
EDUCATIONALAWARDCODEID,
COMMENT,
STARTDATE,
DATELEFT,
DATEGRADUATED,
CLASSOF,
PREFERREDCLASSYEAR,
ISPRIMARYRECORD,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
ACADEMICCATALOGPROGRAMID,
ACADEMICCATALOGDEGREEID
)
values
(
@EDUCATIONALHISTORYID,
@ID,
@EDUCATIONALINSTITUTIONID,
@EDUCATIONALPROGRAMCODEID,
@EDUCATIONALDEGREECODEID,
@EDUCATIONALAWARDCODEID,
@COMMENTS,
@STARTDATE,
@ENDDATE,
@GRADUATIONDATE,
coalesce(@CLASSOF, 0),
coalesce(@PREFERREDCLASSOF, 0),
@ISPRIMARY,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE,
@ACADEMICCATALOGPROGRAMID,
@ACADEMICCATALOGDEGREEID
);
insert into dbo.EDUCATIONALHISTORYSTATUSHISTORY
(
EDUCATIONALHISTORYID,
EDUCATIONALHISTORYSTATUSID,
STATUSDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@EDUCATIONALHISTORYID,
@EDUCATIONALHISTORYSTATUSID,
@CHANGEDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
);
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;