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;