USP_MULTILEVELEVENT_ADD
Adds a multi-level event to the system.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@EVENTMANAGEMENTTEMPLATEID | uniqueidentifier | IN | |
@ATTRIBUTEDEFINED | bit | IN | |
@EVENTHIERARCHY | xml | IN | |
@SOURCEEVENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_MULTILEVELEVENT_ADD
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@EVENTMANAGEMENTTEMPLATEID uniqueidentifier = null,
@ATTRIBUTEDEFINED bit = 0,
@EVENTHIERARCHY xml = null,
@SOURCEEVENTID uniqueidentifier = null
)
as
begin
set nocount on;
if @ID is null
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
begin try
if not exists (
select
SITEID
from
dbo.EVENTMANAGEMENTTEMPLATE
left outer join
dbo.EVENTMANAGEMENTTEMPLATESITE on EVENTMANAGEMENTTEMPLATESITE.EVENTMANAGEMENTTEMPLATEID = EVENTMANAGEMENTTEMPLATE.ID
where
EVENTMANAGEMENTTEMPLATE.ID = @EVENTMANAGEMENTTEMPLATEID
and
(dbo.UFN_SITEALLOWEDFORUSER(@CURRENTAPPUSERID, SITEID) = 1 or SITEID is null)
)
begin
raiserror('ERR_EVENTMANAGEMENTTEMPLATEID_NOSITEACCESS',13,1);
return 1;
end
declare @HierarchyTable table
(
ID uniqueidentifier,
PARENTEVENTID uniqueidentifier,
NAME nvarchar(100),
DESCRIPTION nvarchar(255),
STARTDATE datetime,
STARTTIME dbo.UDT_HOURMINUTE,
ENDDATE datetime,
ENDTIME dbo.UDT_HOURMINUTE,
CAPACITY int,
EVENTLOCATIONID uniqueidentifier,
EVENTLOCATIONROOMID uniqueidentifier,
EVENTLOCATIONCONTACTID uniqueidentifier,
SITES xml,
EVENTCATEGORYCODEID uniqueidentifier,
APPEALID uniqueidentifier,
DISPLAYORDER int,
ISAUCTION bit,
COPYFROMEVENTID uniqueidentifier,
COPYTASKS bit,
COPYINVITATIONS bit,
COPYINVITEES bit,
COPYEXPENSES bit,
COPYPRICES bit,
COPYATTRIBUTES bit,
COPYPREFERENCES bit,
COPYTEAMSTRUCTURE bit,
COPYTEAMFUNDRAISERS bit,
COPYLODGINGOPTIONS bit,
COPYJOBOCCURRENCES bit,
--COPYCAMPAIGNS bit,
EVENTMANAGEMENTOPTIONSCONFLICT bit,
HIDEFROMCALENDAR bit,
ISEXISTINGEVENT bit,
DESIGNATIONSONFEES bit,
COPYDESIGNATIONS bit
);
insert into
@HierarchyTable
select
T.c.value('(ID)[1]','uniqueidentifier'),
T.c.value('(PARENTEVENTID)[1]','uniqueidentifier'),
T.c.value('(NAME)[1]','nvarchar(100)'),
T.c.value('(DESCRIPTION)[1]','nvarchar(255)'),
T.c.value('(STARTDATE)[1]','datetime'),
T.c.value('(STARTTIME)[1]','dbo.UDT_HOURMINUTE'),
T.c.value('(ENDDATE)[1]','datetime'),
T.c.value('(ENDTIME)[1]','dbo.UDT_HOURMINUTE'),
T.c.value('(CAPACITY)[1]','int'),
T.c.value('(EVENTLOCATIONID)[1]','uniqueidentifier'),
T.c.value('(EVENTLOCATIONROOMID)[1]','uniqueidentifier'),
T.c.value('(EVENTLOCATIONCONTACTID)[1]','uniqueidentifier'),
case when T.c.exist('./SITES/ITEM') = 1 then T.c.query('(SITES)[1]') else null end as SITES,
T.c.value('(EVENTCATEGORYCODEID)[1]','uniqueidentifier'),
T.c.value('(APPEALID)[1]','uniqueidentifier'),
T.c.value('(DISPLAYORDER)[1]','int'),
T.c.value('(ISAUCTION)[1]','bit'),
T.c.value('(COPYFROMEVENTID)[1]','uniqueidentifier'),
T.c.value('(COPYTASKS)[1]','bit'),
T.c.value('(COPYINVITATIONS)[1]','bit'),
T.c.value('(COPYINVITEES)[1]','bit'),
T.c.value('(COPYEXPENSES)[1]','bit'),
T.c.value('(COPYPRICES)[1]','bit'),
T.c.value('(COPYATTRIBUTES)[1]','bit'),
T.c.value('(COPYPREFERENCES)[1]','bit'),
T.c.value('(COPYTEAMSTRUCTURE)[1]','bit'),
T.c.value('(COPYTEAMFUNDRAISERS)[1]','bit'),
T.c.value('(COPYLODGINGOPTIONS)[1]','bit'),
T.c.value('(COPYJOBOCCURRENCES)[1]','bit'),
--T.c.value('(COPYCAMPAIGNS)[1]','bit'),
0,
T.c.value('(HIDEFROMCALENDAR)[1]','bit'),
T.c.value('(ISEXISTINGEVENT)[1]','bit'),
T.c.value('(DESIGNATIONSONFEES)[1]','bit'),
T.c.value('(COPYDESIGNATIONS)[1]','bit')
from
@EVENTHIERARCHY.nodes('/EVENTHIERARCHY/ITEM') T(c);
--JamesWill 2010-10-18
update @HierarchyTable
set DESIGNATIONSONFEES = 0
where DESIGNATIONSONFEES is null;
-- validate that there's at least one event in the structure
if ((select count(ID) from @HierarchyTable) = 0)
raiserror('ERR_EVENTHIERARCHY_NOEVENTS',13,1)
-- validate that there's only one root in the structure
if ((select count(ID) from @HierarchyTable where PARENTEVENTID is null) > 1)
raiserror('ERR_EVENTHIERARCHY_MULTIPLEROOT',13,1);
-- validate that auction events do not have children
if exists (
select
[CHILDEVENT].ID
from
@HierarchyTable [AUCTIONEVENT]
inner join
@HierarchyTable [CHILDEVENT] on [CHILDEVENT].PARENTEVENTID = [AUCTIONEVENT].ID
where
[AUCTIONEVENT].ISAUCTION = 1
)
raiserror('ERR_EVENTHIERARCHY_AUCTIONEVENT_CANNOTHAVECHILDREN',13,1);
if exists (
select
[CHILDEVENT].ID
from
@HierarchyTable [TEAMFUNDRAISINGEVENT]
inner join
@HierarchyTable [CHILDEVENT] on [CHILDEVENT].PARENTEVENTID = [TEAMFUNDRAISINGEVENT].ID
where
[TEAMFUNDRAISINGEVENT].APPEALID is not null
)
raiserror('ERR_EVENTHIERARCHY_TEAMFUNDRAISINGEVENT_CANNOTHAVECHILDREN',13,1);
-- validate that the user has site access to each existing event
if exists(
select 1
from
@HierarchyTable [HIERARCHYEVENT]
where
HIERARCHYEVENT.ISEXISTINGEVENT = 1
and not exists (
select 1
from
dbo.EVENT
left join dbo.EVENTSITE on EVENTSITE.EVENTID = EVENT.ID
where
EVENT.ID = HIERARCHYEVENT.ID
and dbo.UFN_SITEALLOWEDFORUSERONFEATURE(@CURRENTAPPUSERID, SITEID, '8e0dc59c-f36e-4144-aa44-4043119a6380', 1) = 1
)
)
raiserror('ERR_EVENT_SITEACCESSREQUIRED', 13, 1);
if exists(
select 1
from
@HierarchyTable [HIERARCHYEVENT]
where
HIERARCHYEVENT.ISEXISTINGEVENT = 1
and exists (select 1 from dbo.EVENTHIERARCHY where EVENTHIERARCHY.ID = HIERARCHYEVENT.ID)
)
raiserror('ERR_EVENT_EXISTINGEVENTSMUSTNOTBEINAHIERARCHY', 13, 1);
select
@ID = ID
from
@HierarchyTable
where
PARENTEVENTID is null;
if @SOURCEEVENTID is not null and exists (select 1 from dbo.EVENTHIERARCHY where ID = @ID)
raiserror('ERR_EVENTHIERARCHY_MAINEVENTALREADYINHIERARCHY',13,1);
declare @MAINEVENTID uniqueidentifier;
declare @EVENTID uniqueidentifier;
declare @PARENTEVENTID uniqueidentifier;
declare @NAME nvarchar(100);
declare @DESCRIPTION nvarchar(255);
declare @STARTDATE datetime;
declare @STARTTIME dbo.UDT_HOURMINUTE;
declare @ENDDATE datetime;
declare @ENDTIME dbo.UDT_HOURMINUTE;
declare @CAPACITY int;
declare @EVENTLOCATIONID uniqueidentifier;
declare @EVENTLOCATIONROOMID uniqueidentifier;
declare @EVENTLOCATIONCONTACTID uniqueidentifier;
declare @SITES xml;
declare @EVENTCATEGORYCODEID uniqueidentifier;
declare @APPEALID uniqueidentifier;
declare @DISPLAYORDER int;
declare @ISAUCTION bit;
declare @COPYFROMEVENTID uniqueidentifier;
declare @COPYTASKS bit;
declare @COPYINVITATIONS bit;
declare @COPYINVITEES bit;
declare @COPYEXPENSES bit;
declare @COPYPRICES bit;
declare @COPYATTRIBUTES bit;
declare @COPYPREFERENCES bit;
declare @COPYTEAMSTRUCTURE bit;
declare @COPYTEAMFUNDRAISERS bit;
declare @COPYLODGINGOPTIONS bit;
declare @COPYJOBOCCURRENCES bit;
declare @COPYCAMPAIGNS bit;
declare @HIDEFROMCALENDAR bit;
declare @ISEXISTINGEVENT bit;
declare @COPYDESIGNATIONS bit;
declare @DESIGNATIONSONFEES bit;
declare EVENTCURSOR cursor local fast_forward for
select
ID,
PARENTEVENTID,
NAME,
DESCRIPTION,
STARTDATE,
STARTTIME,
ENDDATE,
ENDTIME,
CAPACITY,
EVENTLOCATIONID,
EVENTLOCATIONROOMID,
EVENTLOCATIONCONTACTID,
SITES,
EVENTCATEGORYCODEID,
APPEALID,
DISPLAYORDER,
ISAUCTION,
COPYFROMEVENTID,
COPYTASKS,
COPYINVITATIONS,
COPYINVITEES,
COPYEXPENSES,
COPYPRICES,
COPYATTRIBUTES,
COPYPREFERENCES,
COPYTEAMSTRUCTURE,
COPYTEAMFUNDRAISERS,
COPYLODGINGOPTIONS,
COPYJOBOCCURRENCES,
--,COPYCAMPAIGNS
HIDEFROMCALENDAR,
ISEXISTINGEVENT,
DESIGNATIONSONFEES,
COPYDESIGNATIONS
from
@HierarchyTable
-- ensure we create the main event first so the MAINEVENTID foreign key doesn't fail
order by
(case when PARENTEVENTID is null then 0 else 1 end) asc;
open EVENTCURSOR;
fetch next from EVENTCURSOR into @EVENTID,
@PARENTEVENTID,
@NAME,
@DESCRIPTION,
@STARTDATE,
@STARTTIME,
@ENDDATE,
@ENDTIME,
@CAPACITY,
@EVENTLOCATIONID,
@EVENTLOCATIONROOMID,
@EVENTLOCATIONCONTACTID,
@SITES,
@EVENTCATEGORYCODEID,
@APPEALID,
@DISPLAYORDER,
@ISAUCTION,
@COPYFROMEVENTID,
@COPYTASKS,
@COPYINVITATIONS,
@COPYINVITEES,
@COPYEXPENSES,
@COPYPRICES,
@COPYATTRIBUTES,
@COPYPREFERENCES,
@COPYTEAMSTRUCTURE,
@COPYTEAMFUNDRAISERS,
@COPYLODGINGOPTIONS,
@COPYJOBOCCURRENCES,
--,@COPYCAMPAIGNS
@HIDEFROMCALENDAR,
@ISEXISTINGEVENT,
@DESIGNATIONSONFEES,
@COPYDESIGNATIONS
while @@FETCH_STATUS = 0
begin
if @EVENTID = @ID
set @MAINEVENTID = null;
else
set @MAINEVENTID = @ID;
-- Do not add the main event if it exists
if (@MAINEVENTID is null and @SOURCEEVENTID is not null) or @ISEXISTINGEVENT = 1
update
dbo.EVENT
set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
STARTDATE = @STARTDATE,
STARTTIME = @STARTTIME,
ENDDATE = @ENDDATE,
ENDTIME = @ENDTIME,
CAPACITY = @CAPACITY,
EVENTLOCATIONID = @EVENTLOCATIONID,
EVENTLOCATIONROOMID = @EVENTLOCATIONROOMID,
EVENTLOCATIONCONTACTID = @EVENTLOCATIONCONTACTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE,
EVENTCATEGORYCODEID = @EVENTCATEGORYCODEID,
HIDEFROMCALENDAR = @HIDEFROMCALENDAR,
MAINEVENTID = @MAINEVENTID,
DESIGNATIONSONFEES=@DESIGNATIONSONFEES
where
ID = @EVENTID
else
exec dbo.USP_EVENT_ADD
@ID = @EVENTID output,
@CURRENTAPPUSERID = @CURRENTAPPUSERID,
@CHANGEAGENTID = @CHANGEAGENTID,
@NAME = @NAME,
@DESCRIPTION = @DESCRIPTION,
@STARTDATE = @STARTDATE,
@STARTTIME = @STARTTIME,
@ENDDATE = @ENDDATE,
@ENDTIME = @ENDTIME,
@CAPACITY = @CAPACITY,
@EVENTLOCATIONID = @EVENTLOCATIONID,
@EVENTLOCATIONCONTACTID = @EVENTLOCATIONCONTACTID,
@MAINEVENTID = @MAINEVENTID,
@COPYFROMEVENTID = @COPYFROMEVENTID,
@COPYTASKS = @COPYTASKS,
@COPYEXPENSES = @COPYEXPENSES,
@COPYPRICES = @COPYPRICES,
@COPYINVITATIONS = @COPYINVITATIONS,
@COPYINVITEES = @COPYINVITEES,
@COPYATTRIBUTES = @COPYATTRIBUTES,
@ATTRIBUTEDEFINED = @ATTRIBUTEDEFINED,
@SITES = @SITES,
@COPYPREFERENCES = @COPYPREFERENCES,
@EVENTCATEGORYCODEID = @EVENTCATEGORYCODEID,
@COPYTEAMSTRUCTURE = @COPYTEAMSTRUCTURE,
@COPYTEAMFUNDRAISERS = @COPYTEAMFUNDRAISERS,
@APPEALID = @APPEALID,
@ADDQUICKCOMPARE = 0,
@COPYLODGINGOPTIONS = @COPYLODGINGOPTIONS,
@EVENTLOCATIONROOMID = @EVENTLOCATIONROOMID,
@COPYJOBOCCURRENCES = @COPYJOBOCCURRENCES,
@ISAUCTION = @ISAUCTION,
--,@COPYCAMPAIGNS = @COPYCAMPAIGNS
@HIDEFROMCALENDAR = @HIDEFROMCALENDAR,
@DESIGNATIONSONFEES = @DESIGNATIONSONFEES,
@COPYDESIGNATIONS = @COPYDESIGNATIONS
fetch next from EVENTCURSOR into @EVENTID,
@PARENTEVENTID,
@NAME,
@DESCRIPTION,
@STARTDATE,
@STARTTIME,
@ENDDATE,
@ENDTIME,
@CAPACITY,
@EVENTLOCATIONID,
@EVENTLOCATIONROOMID,
@EVENTLOCATIONCONTACTID,
@SITES,
@EVENTCATEGORYCODEID,
@APPEALID,
@DISPLAYORDER,
@ISAUCTION,
@COPYFROMEVENTID,
@COPYTASKS,
@COPYINVITATIONS,
@COPYINVITEES,
@COPYEXPENSES,
@COPYPRICES,
@COPYATTRIBUTES,
@COPYPREFERENCES,
@COPYTEAMSTRUCTURE,
@COPYTEAMFUNDRAISERS,
@COPYLODGINGOPTIONS,
@COPYJOBOCCURRENCES,
--,@COPYCAMPAIGNS
@HIDEFROMCALENDAR,
@ISEXISTINGEVENT,
@DESIGNATIONSONFEES,
@COPYDESIGNATIONS;
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close EVENTCURSOR;
deallocate EVENTCURSOR;
-- Use a recursive CTE to build up paths for the events (i.e. '/2/1/3/')
with EVENT_ROWNUMBER_CTE as (
select
ID,
PARENTEVENTID,
row_number() over (partition by PARENTEVENTID order by DISPLAYORDER) as ROWNUM,
DISPLAYORDER
from
@HierarchyTable
),
EVENT_PATHS_CTE as (
select
ID,
PARENTEVENTID,
cast(dbo.UFN_EVENT_GETHIERARCHYPATHINSERTPOSITION(null) as varchar(900)) as HIERARCHYPATH,
DISPLAYORDER
from
@HierarchyTable
where
PARENTEVENTID is null
union all
select
EVENT_ROWNUMBER_CTE.ID,
EVENT_ROWNUMBER_CTE.PARENTEVENTID,
cast(HIERARCHYPATH + cast(EVENT_ROWNUMBER_CTE.ROWNUM as varchar(20)) + '/' as varchar(900)),
EVENT_ROWNUMBER_CTE.DISPLAYORDER
from
EVENT_PATHS_CTE
inner join
EVENT_ROWNUMBER_CTE on EVENT_ROWNUMBER_CTE.PARENTEVENTID = EVENT_PATHS_CTE.ID
)
insert into dbo.EVENTHIERARCHY (
ID,
HIERARCHYPATH,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
EVENT_PATHS_CTE.ID,
EVENT_PATHS_CTE.HIERARCHYPATH,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
EVENT_PATHS_CTE;
declare @EVENTMANAGEMENTINSTANCEID uniqueidentifier;
exec dbo.USP_EVENTMANAGEMENTTEMPLATE_CREATEINSTANCE @EVENTMANAGEMENTTEMPLATEID, @EVENTMANAGEMENTINSTANCEID output, @CHANGEAGENTID;
-- Check for conflicts before setting properties
update
@HierarchyTable
set
EVENTMANAGEMENTOPTIONSCONFLICT = 1
where
(
ID = @ID
and @SOURCEEVENTID is not null
and dbo.UFN_EVENT_CONFLICTSWITHMANAGEMENTLEVELINSTANCE(ID, @EVENTMANAGEMENTINSTANCEID,1,1,1,1,1,1,1,1,1) = 1
)
or
(
ISEXISTINGEVENT = 1
and dbo.UFN_EVENT_CONFLICTSWITHMANAGEMENTLEVELINSTANCE(ID, @EVENTMANAGEMENTINSTANCEID,1,1,1,1,1,1,1,1,1) = 1
)
or
(
(ID <> @ID or @SOURCEEVENTID is null)
and COPYFROMEVENTID is not null
and dbo.UFN_EVENT_CONFLICTSWITHMANAGEMENTLEVELINSTANCE(
ID,
@EVENTMANAGEMENTINSTANCEID,
COPYTASKS,
case when COPYPRICES = 1 or COPYPREFERENCES = 1 then 1 end,
0,
COPYEXPENSES,
case when COPYINVITATIONS = 1 or COPYINVITEES = 1 then 1 end,
0,
0,
COPYJOBOCCURRENCES,
COPYLODGINGOPTIONS
) = 1
);
with EVENTMANAGEMENTOPTIONS_CTE as (
select
ID,
LEVEL,
HASREGISTRANTSANDOPTIONS,
HASSPEAKERS,
HASEXPENSES,
HASINVITATIONS,
HASTASKSANDCOORDINATORS,
HASLODGINGOPTIONS,
HASJOBOCCURRENCES,
HASAPPEALS,
HASDOCUMENTATION,
HASCAMPAIGNS
from
dbo.EVENTMANAGEMENTLEVELINSTANCE
where
EVENTMANAGEMENTLEVELINSTANCE.EVENTMANAGEMENTINSTANCEID = @EVENTMANAGEMENTINSTANCEID
)
insert into dbo.EVENTMANAGEMENTOPTIONS
(
ID,
EVENTMANAGEMENTLEVELINSTANCEID,
EVENTID,
HASREGISTRANTSANDOPTIONS,
HASSPEAKERS,
HASEXPENSES,
HASINVITATIONS,
HASTASKSANDCOORDINATORS,
HASLODGINGOPTIONS,
HASJOBOCCURRENCES,
HASAPPEALS,
HASDOCUMENTATION,
HASCAMPAIGNS,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
EVENTMANAGEMENTOPTIONS_CTE.ID,
EVENT.ID,
coalesce(
EVENTMANAGEMENTOPTIONS.HASREGISTRANTSANDOPTIONS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASREGISTRANTSANDOPTIONS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASSPEAKERS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASSPEAKERS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASEXPENSES,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASEXPENSES end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASINVITATIONS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASINVITATIONS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASTASKSANDCOORDINATORS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASTASKSANDCOORDINATORS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASLODGINGOPTIONS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASLODGINGOPTIONS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASJOBOCCURRENCES,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASJOBOCCURRENCES end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASAPPEALS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASAPPEALS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASDOCUMENTATION,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASDOCUMENTATION end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASCAMPAIGNS,
case when HIERARCHYTABLE.EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTOPTIONS_CTE.HASCAMPAIGNS end,
1),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.EVENT
inner join
dbo.EVENTHIERARCHY on EVENTHIERARCHY.ID = EVENT.ID
inner join
@HierarchyTable HIERARCHYTABLE on HIERARCHYTABLE.ID = EVENT.ID
left outer join
EVENTMANAGEMENTOPTIONS_CTE on EVENTMANAGEMENTOPTIONS_CTE.LEVEL = EVENTHIERARCHY.HIERARCHYPATH.GetLevel()
left outer join
dbo.EVENTMANAGEMENTOPTIONS on EVENTMANAGEMENTOPTIONS.EVENTID = HIERARCHYTABLE.COPYFROMEVENTID
where
((EVENT.MAINEVENTID = @ID) or (EVENT.ID = @ID));
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end