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