USP_MULTIPLEGROUPMEMBERROLES_VALIDDATES
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@GROUPMEMBERID | uniqueidentifier | IN | |
@GROUPROLES | xml | IN |
Definition
Copy
create procedure dbo.USP_MULTIPLEGROUPMEMBERROLES_VALIDDATES(
@GROUPMEMBERID uniqueidentifier,
@GROUPROLES xml
)
as
declare @ROLES table (
[ENDDATE] date,
[GROUPMEMBERROLECODEID] uniqueidentifier,
[ID] uniqueidentifier,
[STARTDATE] date)
insert into @ROLES select
[ENDDATE],
[GROUPMEMBERROLECODEID],
[ID],
[STARTDATE]
from dbo.UFN_CONSTITUENT_GETGROUPROLES_FROMITEMLISTXML(@GROUPROLES)
select * from @ROLES
set nocount on;
declare @CURRENTDATE date;
set @CURRENTDATE = getdate();
declare @GROUPMEMBERSTARTDATE date;
declare @GROUPMEMBERENDDATE date;
select
@GROUPMEMBERSTARTDATE = DATEFROM,
@GROUPMEMBERENDDATE = DATETO
from
dbo.GROUPMEMBERDATERANGE
where GROUPMEMBERID = @GROUPMEMBERID
if exists(
select 1
from @ROLES
where STARTDATE is not null
and STARTDATE > @CURRENTDATE
)
begin
raiserror('ERR_STARTDATE_CANNOT_BE_IN_FUTURE', 13, 1)
return 1
end
if exists(
select 1
from @ROLES
where STARTDATE is not null
and STARTDATE < @GROUPMEMBERSTARTDATE
)
begin
raiserror('ERR_STARTDATE_CANNOT_BE_BEFORE_MEMBERSTART', 13, 1)
return 1
end
if exists(
select 1
from @ROLES
where STARTDATE is not null
and STARTDATE > @GROUPMEMBERENDDATE
)
begin
raiserror('ERR_STARTDATE_CANNOT_BE_AFTER_MEMBEREND', 13, 1)
return 1
end
if exists(
select 1
from @ROLES
where ENDDATE is not null
and ENDDATE < @GROUPMEMBERSTARTDATE
)
begin
raiserror('ERR_ENDDATE_CANNOT_BE_BEFORE_MEMBERSTART', 13, 1)
return 1
end
if exists(
select 1
from @ROLES
where ENDDATE is not null
and ENDDATE > @GROUPMEMBERENDDATE
)
begin
raiserror('ERR_ENDDATE_CANNOT_BE_AFTER_MEMBEREND', 13, 1)
return 1
end
return 0;