USP_GROUPMEMBERROLE_UPDATEDATES
This stored procedure is used to update dates on a group member role to fall within the group member dates.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPMEMBERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_GROUPMEMBERROLE_UPDATEDATES
(
@GROUPMEMBERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
update dbo.GROUPMEMBERROLE set
STARTDATE = case when GMR.STARTDATE < GROUPMEMBERDATERANGE.DATEFROM then GROUPMEMBERDATERANGE.DATEFROM
when GMR.STARTDATE > GROUPMEMBERDATERANGE.DATETO then GROUPMEMBERDATERANGE.DATETO
when GMR.STARTDATE is null and GROUPMEMBERDATERANGE.DATEFROM is not null then GROUPMEMBERDATERANGE.DATEFROM
else GMR.STARTDATE end,
ENDDATE = case when GMR.ENDDATE > GROUPMEMBERDATERANGE.DATETO then GROUPMEMBERDATERANGE.DATETO
when GMR.ENDDATE < GROUPMEMBERDATERANGE.DATEFROM then GROUPMEMBERDATERANGE.DATEFROM
when GMR.ENDDATE is null and GROUPMEMBERDATERANGE.DATETO is not null then GROUPMEMBERDATERANGE.DATETO
else GMR.ENDDATE end,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
from dbo.GROUPMEMBERROLE GMR
inner join dbo.GROUPMEMBER on GROUPMEMBER.ID = GMR.GROUPMEMBERID
inner join dbo.GROUPMEMBERDATERANGE on GROUPMEMBERDATERANGE.GROUPMEMBERID = GROUPMEMBER.ID
where GMR.GROUPMEMBERID = @GROUPMEMBERID
return 0;