USP_DATAFORMTEMPLATE_EDIT_STEWARDSHIPPLANMANAGER_REPLACE

The save procedure used by the edit dataform template "Stewardship Plan Replace Manager Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@PREVIOUSMANAGERID uniqueidentifier IN Current manager
@PREVIOUSMANAGERSTARTDATE datetime IN Start date
@PREVIOUSMANAGERENDDATE datetime IN End date
@NEWMANAGERID uniqueidentifier IN New manager
@NEWMANAGERSTARTDATE datetime IN Start date
@NEWMANAGERENDDATE datetime IN End date
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_STEWARDSHIPPLANMANAGER_REPLACE 
                    (
                        @ID uniqueidentifier,
                        @PREVIOUSMANAGERID uniqueidentifier,
                        @PREVIOUSMANAGERSTARTDATE datetime,
                        @PREVIOUSMANAGERENDDATE datetime,
                        @NEWMANAGERID uniqueidentifier,
                        @NEWMANAGERSTARTDATE datetime,
                        @NEWMANAGERENDDATE datetime,
                        @CHANGEAGENTID uniqueidentifier = null
                    ) as
                        set nocount on;

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

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

                        begin try                                                    
                            /*
                                If replacing manager, insert the old record into the history table.
                                Also, clear the record out to prevent constraint violations.
                            */
                            if @PREVIOUSMANAGERID is not null
                            begin
                                update 
                                    dbo.STEWARDSHIPPLAN
                                set 
                                    MANAGERID = null,
                                    DATECHANGED  = @CURRENTDATE,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    MANAGERSTARTDATE = null,
                                    MANAGERENDDATE = null
                                where 
                                    ID = @ID

                                insert into dbo.STEWARDSHIPPLANMANAGERHISTORY(ID, STEWARDSHIPPLANID, MANAGERID, STARTDATE, ENDDATE, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
                                    values(newid(), @ID, @PREVIOUSMANAGERID, @PREVIOUSMANAGERSTARTDATE, @PREVIOUSMANAGERENDDATE, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
                            end

                            if @NEWMANAGERID is not null
                                update 
                                    dbo.STEWARDSHIPPLAN
                                set 
                                    MANAGERID = @NEWMANAGERID,
                                    DATECHANGED  = @CURRENTDATE,
                                    CHANGEDBYID = @CHANGEAGENTID,
                                    MANAGERSTARTDATE = @NEWMANAGERSTARTDATE,
                                    MANAGERENDDATE = @NEWMANAGERENDDATE
                                where 
                                    ID = @ID                                
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                    return 0;