USP_DATAFORMTEMPLATE_EDIT_EVENTAUTOMATCHSITEPERMISSION
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@EVENTSITEAUTOMATCHMODE | tinyint | IN | |
@SITES | xml | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EVENTAUTOMATCHSITEPERMISSION (
@ID uniqueidentifier,
@EVENTSITEAUTOMATCHMODE tinyint,
@SITES xml,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE=getdate();
declare @siteIDs nvarchar(max);
declare @countNoSiteAssigned int;
declare @hasAllSitePermisson int;
declare @SECURITYFEATUREID uniqueidentifier = '75837763-1AA8-42D9-BE33-BDD5D82BA024b';
begin try
select @siteIDs = @SITES.value('(/SITES/ITEM)[1]', 'nvarchar(max)')
select @countNoSiteAssigned = count(*) from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,@SECURITYFEATUREID, 1) where SITEID is null
select @hasAllSitePermisson = dbo.UFN_APPUSER_HASALLSITESFORFORM(@CURRENTAPPUSERID,@SECURITYFEATUREID)
if @EVENTSITEAUTOMATCHMODE = 2 and @siteIDs is null begin
raiserror('At least one site must be selected.', 13, 1);
end
if @EVENTSITEAUTOMATCHMODE = 1 and (@countNoSiteAssigned = 0) begin
raiserror('You have no right to select records with no site assigned.', 13, 1);
end
if @EVENTSITEAUTOMATCHMODE = 0 and (@hasAllSitePermisson = 0) begin
raiserror('You have no right to select all records.', 13, 1);
end
update dbo.EVENTEXTENSION
set AUTOMATCHSITEMODECODE = @EVENTSITEAUTOMATCHMODE
where EVENTID = @ID
-- Clear the sites collection if 'All records' or 'Records with no site assigned' is set
if @EVENTSITEAUTOMATCHMODE = 0 or @EVENTSITEAUTOMATCHMODE = 1
set @SITES = null
exec USP_EVENT_AUTOMATCHSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
end