USP_DATAFORMTEMPLATE_EDIT_EDUCATIONALHISTORY_2

The save procedure used by the edit dataform template "Educational History Edit Form 2".

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.
@ISPRIMARYRECORD bit IN Primary education information
@EDUCATIONALINSTITUTIONID uniqueidentifier IN Educational institution
@ACADEMICCATALOGPROGRAMID uniqueidentifier IN Program
@EDUCATIONALPROGRAMCODEID uniqueidentifier IN Program
@CONSTITUENCYSTATUSCODE tinyint IN Status
@DATEGRADUATED UDT_FUZZYDATE IN Graduation date
@DATELEFT UDT_FUZZYDATE IN To
@ACADEMICCATALOGDEGREEID uniqueidentifier IN Degree
@EDUCATIONALDEGREECODEID uniqueidentifier IN Degree
@EDUCATIONALAWARDCODEID uniqueidentifier IN Honor awarded
@STARTDATE UDT_FUZZYDATE IN From
@CLASSYEAR UDT_YEAR IN Class of
@PREFERREDCLASSYEAR UDT_YEAR IN Preferred class of
@EDUCATIONALSOURCECODEID uniqueidentifier IN Information source
@EDUCATIONALSOURCEDATE UDT_FUZZYDATE IN Source date
@COMMENT nvarchar(500) IN Comments
@AFFILIATEDADDITIONALINFORMATION xml IN
@UNAFFILIATEDADDITIONALINFORMATION xml IN
@ISAFFILIATED bit IN Affiliated
@EDUCATIONALHISTORYLEVELCODEID uniqueidentifier IN Level
@EDUCATIONALHISTORYREASONCODEID uniqueidentifier IN Reason
@EDUCATIONALHISTORYSTATUSID uniqueidentifier IN Status

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EDUCATIONALHISTORY_2
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @ISPRIMARYRECORD bit,
    @EDUCATIONALINSTITUTIONID uniqueidentifier,
    @ACADEMICCATALOGPROGRAMID uniqueidentifier,
    @EDUCATIONALPROGRAMCODEID uniqueidentifier,
    @CONSTITUENCYSTATUSCODE tinyint,
    @DATEGRADUATED dbo.UDT_FUZZYDATE,
    @DATELEFT dbo.UDT_FUZZYDATE,
    @ACADEMICCATALOGDEGREEID uniqueidentifier,
    @EDUCATIONALDEGREECODEID uniqueidentifier,
    @EDUCATIONALAWARDCODEID uniqueidentifier,
    @STARTDATE dbo.UDT_FUZZYDATE,
    @CLASSYEAR dbo.UDT_YEAR,
    @PREFERREDCLASSYEAR dbo.UDT_YEAR,
    @EDUCATIONALSOURCECODEID uniqueidentifier,
    @EDUCATIONALSOURCEDATE dbo.UDT_FUZZYDATE,
    @COMMENT nvarchar(500),
    @AFFILIATEDADDITIONALINFORMATION xml,
    @UNAFFILIATEDADDITIONALINFORMATION xml,
    @ISAFFILIATED bit,
    @EDUCATIONALHISTORYLEVELCODEID uniqueidentifier,
    @EDUCATIONALHISTORYREASONCODEID uniqueidentifier,
    @EDUCATIONALHISTORYSTATUSID uniqueidentifier
)
as
    set nocount on;

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getdate();

    if @CHANGEAGENTID is null  
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    if @DATEGRADUATED is null
        set @DATEGRADUATED = '00000000';

    if @DATELEFT is null
        set @DATELEFT = '00000000';

    declare @OLDEDUCATIONALINSTITUTIONID uniqueidentifier;
    select @OLDEDUCATIONALINSTITUTIONID = EDUCATIONALINSTITUTIONID
      from dbo.EDUCATIONALHISTORY
      where ID = @ID;

    --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;    


    begin try
        declare @USEACADEMICCATALOG bit;                        
        select top 1
            @USEACADEMICCATALOG = EC.USEACADEMICCATALOG
        from
            dbo.EDUCATIONALCONFIGURATION EC;

        set @USEACADEMICCATALOG = coalesce(@USEACADEMICCATALOG,0);

        if @USEACADEMICCATALOG = 1 and @ISAFFILIATED = 1
        begin

            --Bug 56849 - AdamBu 1/27/10 - Clear educational program\degree when using an 

            --    academic catalog program/degree

            update dbo.EDUCATIONALHISTORY
            set
                ISPRIMARYRECORD = @ISPRIMARYRECORD,
                EDUCATIONALINSTITUTIONID = @EDUCATIONALINSTITUTIONID,
                ACADEMICCATALOGPROGRAMID = @ACADEMICCATALOGPROGRAMID,
                EDUCATIONALPROGRAMCODEID = null,
                CONSTITUENCYSTATUSCODE = @CONSTITUENCYSTATUSCODE,
                DATEGRADUATED = @DATEGRADUATED,
                DATELEFT = @DATELEFT,
                ACADEMICCATALOGDEGREEID = @ACADEMICCATALOGDEGREEID,
                EDUCATIONALDEGREECODEID = null,
                EDUCATIONALAWARDCODEID = @EDUCATIONALAWARDCODEID,
                STARTDATE = @STARTDATE,
                CLASSOF = @CLASSYEAR,
                PREFERREDCLASSYEAR = @PREFERREDCLASSYEAR,
                EDUCATIONALSOURCECODEID = @EDUCATIONALSOURCECODEID,
                EDUCATIONALSOURCEDATE = @EDUCATIONALSOURCEDATE,
                COMMENT = @COMMENT,
                EDUCATIONALHISTORYLEVELCODEID = @EDUCATIONALHISTORYLEVELCODEID,
                EDUCATIONALHISTORYREASONCODEID = @EDUCATIONALHISTORYREASONCODEID,
                CHANGEDBYID = @CHANGEAGENTID
                DATECHANGED = @CURRENTDATE
            where
                ID = @ID;

            exec dbo.USP_EDUCATIONALHISTORY_GETAFFILIATEDADDITIONALINFORMATION_UPDATEFROMXML @ID, @AFFILIATEDADDITIONALINFORMATION, @CHANGEAGENTID;
        end
        else
        begin

            --Bug 56849 - AdamBu 1/27/10 - Clear academic catalog program\degree 

            --    when using an educational program/degree

            update dbo.EDUCATIONALHISTORY
            set
                ISPRIMARYRECORD = @ISPRIMARYRECORD,
                EDUCATIONALINSTITUTIONID = @EDUCATIONALINSTITUTIONID,
                ACADEMICCATALOGPROGRAMID = null,
                EDUCATIONALPROGRAMCODEID = @EDUCATIONALPROGRAMCODEID,
                CONSTITUENCYSTATUSCODE = @CONSTITUENCYSTATUSCODE,
                DATEGRADUATED = @DATEGRADUATED,
                DATELEFT = @DATELEFT,
                ACADEMICCATALOGDEGREEID = null,
                EDUCATIONALDEGREECODEID = @EDUCATIONALDEGREECODEID,
                EDUCATIONALAWARDCODEID = @EDUCATIONALAWARDCODEID,
                STARTDATE = @STARTDATE,
                CLASSOF = @CLASSYEAR,
                PREFERREDCLASSYEAR = @PREFERREDCLASSYEAR,
                EDUCATIONALSOURCECODEID = @EDUCATIONALSOURCECODEID,
                EDUCATIONALSOURCEDATE = @EDUCATIONALSOURCEDATE,
                COMMENT = @COMMENT,
                EDUCATIONALHISTORYLEVELCODEID = @EDUCATIONALHISTORYLEVELCODEID,
                EDUCATIONALHISTORYREASONCODEID = @EDUCATIONALHISTORYREASONCODEID,
                CHANGEDBYID = @CHANGEAGENTID
                DATECHANGED = @CURRENTDATE
            where
                ID = @ID;

            exec dbo.USP_EDUCATIONALHISTORY_GETUNAFFILIATEDADDITIONALINFORMATION_UPDATEFROMXML @ID, @UNAFFILIATEDADDITIONALINFORMATION, @CHANGEAGENTID;
        end

        --update any involvements for this constituent if the educational institution has changed

        if @OLDEDUCATIONALINSTITUTIONID != @EDUCATIONALINSTITUTIONID
        begin
        update dbo.EDUCATIONALINVOLVEMENT
        set
          EDUCATIONALINSTITUTIONID = @EDUCATIONALINSTITUTIONID
        where
          ID in 
            (select EI.ID
              from dbo.EDUCATIONALINVOLVEMENT EI
                  left join dbo.EDUCATIONALHISTORY EH on EH.CONSTITUENTID = EI.CONSTITUENTID
              where
                EH.ID = @ID and EI.EDUCATIONALINSTITUTIONID = @OLDEDUCATIONALINSTITUTIONID);
        end

        if (not exists(select ID from dbo.EDUCATIONALHISTORYSTATUSHISTORY where EDUCATIONALHISTORYID=@ID and EDUCATIONALHISTORYSTATUSID=@EDUCATIONALHISTORYSTATUSID)
            or (select EDUCATIONALHISTORYSTATUSID from dbo.EDUCATIONALHISTORY where ID=@ID) <> @EDUCATIONALHISTORYSTATUSID)
        begin

            if @EDUCATIONALHISTORYSTATUSID = null
                set @EDUCATIONALHISTORYSTATUSID=dbo.UFN_EDUCATIONALHISTORYSTATUS_FROMCONSTITUENCYSTATUSCODE(@CONSTITUENCYSTATUSCODE);

            insert into [dbo].[EDUCATIONALHISTORYSTATUSHISTORY]
            (
                [EDUCATIONALHISTORYID],
                [EDUCATIONALHISTORYSTATUSID],
                [STATUSDATE],
                [ADDEDBYID],
                [CHANGEDBYID],
                [DATEADDED],
                [DATECHANGED]
            )
            values
            (
                @ID,
                @EDUCATIONALHISTORYSTATUSID,                                            
                @CURRENTDATE,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );

        end
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;