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;