USP_GROUPMEMBERROLE_UPDATEDATESFORGROUP
This stored procedure is used to update dates on all group members roles to fall within the group dates.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_GROUPMEMBERROLE_UPDATEDATESFORGROUP
(
@GROUPID 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 < GROUPDATA.STARTDATE then GROUPDATA.STARTDATE
else GMR.STARTDATE end,
ENDDATE = case when GMR.ENDDATE > GROUPMEMBERDATERANGE.DATETO then GROUPMEMBERDATERANGE.DATETO
when GMR.ENDDATE < GROUPDATA.STARTDATE then GROUPDATA.STARTDATE
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
inner join dbo.GROUPDATA on GROUPDATA.ID = GROUPMEMBER.GROUPID
where GROUPDATA.ID = @GROUPID
return 0;