USP_DATAFORMTEMPLATE_ADD_SUPPORTEVENT
The save procedure used by the add dataform template "Supporting Event Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
@STARTDATE | date | IN | Start date |
@STARTTIME | UDT_HOURMINUTE | IN | Start time |
@ENDDATE | date | IN | End date |
@ENDTIME | UDT_HOURMINUTE | IN | End time |
@CAPACITY | int | IN | Capacity |
@EVENTLOCATIONID | uniqueidentifier | IN | Location |
@EVENTLOCATIONCONTACTID | uniqueidentifier | IN | Contact |
@MAINEVENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@COPYFROMEVENTID | uniqueidentifier | IN | Copy from |
@COPYTASKS | bit | IN | Copy tasks |
@COPYEXPENSES | bit | IN | Copy expenses |
@COPYPRICES | bit | IN | Copy registration options |
@COPYINVITATIONS | bit | IN | Copy invitations |
@COPYINVITEES | bit | IN | Copy invitees |
@COPYATTRIBUTES | bit | IN | Copy attributes |
@ATTRIBUTEDEFINED | bit | IN | Event attributes defined |
@SITES | xml | IN | Sites |
@COPYPREFERENCES | bit | IN | Copy preferences |
@EVENTCATEGORYCODEID | uniqueidentifier | IN | Category |
@COPYTEAMSTRUCTURE | bit | IN | Copy team structure |
@COPYTEAMFUNDRAISERS | bit | IN | Copy team members |
@APPEALID | uniqueidentifier | IN | Appeal |
@EVENTLOCATIONROOMID | uniqueidentifier | IN | Room/Unit |
@ISAUCTION | bit | IN | Event is an auction |
@COPYLODGINGOPTIONS | bit | IN | Copy lodging options |
@COPYJOBOCCURRENCES | bit | IN | Copy job occurrences |
@HIDEFROMCALENDAR | bit | IN | Do not show event on calendar |
@DESIGNATIONSONFEES | bit | IN | Event allows designations on fees |
@COPYDESIGNATIONS | bit | IN | Copy designations |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@COPYPUBLICDESCRIPTION | bit | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SUPPORTEVENT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100) = '',
@DESCRIPTION nvarchar(255) = '',
@STARTDATE date,
@STARTTIME dbo.UDT_HOURMINUTE = null,
@ENDDATE date = null,
@ENDTIME dbo.UDT_HOURMINUTE = null,
@CAPACITY int = 0,
@EVENTLOCATIONID uniqueidentifier = null,
@EVENTLOCATIONCONTACTID uniqueidentifier = null,
@MAINEVENTID uniqueidentifier,
@COPYFROMEVENTID uniqueidentifier = null,
@COPYTASKS bit = 1,
@COPYEXPENSES bit = 1,
@COPYPRICES bit = 1,
@COPYINVITATIONS bit = 1,
@COPYINVITEES bit = 1,
@COPYATTRIBUTES bit = 1,
@ATTRIBUTEDEFINED bit = 0,
@SITES xml = null,
@COPYPREFERENCES bit = 1,
@EVENTCATEGORYCODEID uniqueidentifier = null,
@COPYTEAMSTRUCTURE bit = 0,
@COPYTEAMFUNDRAISERS bit = 0,
@APPEALID uniqueidentifier = null,
@EVENTLOCATIONROOMID uniqueidentifier = null,
@ISAUCTION bit = 0,
@COPYLODGINGOPTIONS bit = 1,
@COPYJOBOCCURRENCES bit = 1,
--,@COPYCAMPAIGNS bit = 1
@HIDEFROMCALENDAR bit = 0,
@DESIGNATIONSONFEES bit = 0,
@COPYDESIGNATIONS bit = 1,
@CURRENTAPPUSERID uniqueidentifier = null,
--Public description is currently only implemented on non-multilevel events (by Web Forms).
--Still adding fields to make it less exceptional to copy helper class + providing easier route in future if that rule changes
@COPYPUBLICDESCRIPTION bit = 0
)
as
set nocount on;
declare @CURRENTDATE datetime;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
if @ENDDATE is null
set @ENDDATE = @STARTDATE;
declare @PARENTEVENTID uniqueidentifier = @MAINEVENTID
-- If the parent is not the main event, set the main event id
select @MAINEVENTID = MAINEVENTID from dbo.EVENT where ID = @PARENTEVENTID and MAINEVENTID is not null
begin try
--CR297394-040708 TMV 04/08/2008 This may change to be a database constraint in a future release
if dbo.UFN_EVENT_CANSUPPORTEVENTS_NULLAPPEAL(@PARENTEVENTID) <> 1
raiserror('ERR_EVENT_CANSUPPORTEVENTS_NULLAPPEAL', 13, 1);
if exists(select 1 from dbo.EVENTAUCTION where EVENTAUCTION.ID = @PARENTEVENTID)
raiserror('ERR_EVENT_AUCTIONSCANNOTHAVECHILDEVENTS', 13, 1);
if @ISAUCTION = 1 and @APPEALID is not null and @APPEALID <> '00000000-0000-0000-0000-000000000000'
raiserror('ERR_EVENTAUCTION_TEAMFUNDRAISINGAPPEAL', 13, 1);
exec dbo.USP_EVENTSITE_VALIDATESITES @SITES;
-- In the Fire release, the context can be any event in the hierarchy, not just the main event as was previously the case.
-- @PARENTEVENTID is set from this context and @MAINEVENTID becomes the ID of the top level event in the event hierarchy.
declare @HIERARCHYINSERTPOSITION hierarchyid = null;
if exists(select (1) from dbo.EVENTHIERARCHY where EVENTHIERARCHY.ID = @PARENTEVENTID)
begin
declare @PARENTEVENTHIERARCHYPATH hierarchyid;
select
@PARENTEVENTHIERARCHYPATH = HIERARCHYPATH
from
dbo.EVENTHIERARCHY
where
EVENTHIERARCHY.ID = @PARENTEVENTID;
set @HIERARCHYINSERTPOSITION = dbo.UFN_EVENT_GETHIERARCHYPATHINSERTPOSITION(@PARENTEVENTID);
end
--The currency of this event should default to the user's default currency.
declare @BASECURRENCYID uniqueidentifier = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);
insert into dbo.EVENT
(ID, NAME, DESCRIPTION, STARTDATE, STARTTIME, ENDDATE, ENDTIME, CAPACITY, EVENTLOCATIONID, EVENTLOCATIONROOMID, EVENTLOCATIONCONTACTID, MAINEVENTID, EVENTCATEGORYCODEID, APPEALID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, HIDEFROMCALENDAR, DESIGNATIONSONFEES, BASECURRENCYID)
values
(@ID, @NAME, @DESCRIPTION, @STARTDATE, @STARTTIME, @ENDDATE, @ENDTIME, @CAPACITY, @EVENTLOCATIONID, @EVENTLOCATIONROOMID, @EVENTLOCATIONCONTACTID, @MAINEVENTID, @EVENTCATEGORYCODEID, @APPEALID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @HIDEFROMCALENDAR, @DESIGNATIONSONFEES, @BASECURRENCYID);
exec dbo.USP_EVENT_GETSITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE
if @COPYFROMEVENTID is not null
begin
if @COPYTASKS = 1
exec dbo.USP_EVENTTASK_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYEXPENSES = 1
exec dbo.USP_EVENTEXPENSE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYPRICES = 1
exec dbo.USP_EVENTPRICE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYTEAMSTRUCTURE = 1
exec dbo.USP_EVENT_TEAMFUNDRAISINGCOPY @COPYFROMEVENTID, null, @ID, @CHANGEAGENTID, @COPYTEAMFUNDRAISERS, @CURRENTAPPUSERID = @CURRENTAPPUSERID, @FEATUREID = '656DE3FC-B4C5-4A96-83E3-5D35B354F0C7';
if @COPYINVITATIONS = 1
exec dbo.USP_INVITATION_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID, @COPYINVITEES;
if @COPYATTRIBUTES = 1
exec dbo.USP_EVENTATTRIBUTE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYPREFERENCES = 1
exec dbo.USP_EVENTPREFERENCE_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYLODGINGOPTIONS = 1
exec dbo.USP_EVENTLODGINGOPTIONS_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYJOBOCCURRENCES = 1
exec dbo.USP_EVENTJOBOCCURRENCES_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
--if @COPYCAMPAIGNS = 1
--exec dbo.USP_EVENTCAMPAIGNS_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
if @COPYDESIGNATIONS = 1
exec dbo.USP_EVENTDESIGNATIONS_COPY @COPYFROMEVENTID, @ID, @CHANGEAGENTID;
end
if @ISAUCTION = 1
insert into dbo.EVENTAUCTION(ID, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID) values(@ID, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
if @HIERARCHYINSERTPOSITION is not null
begin
insert into dbo.EVENTHIERARCHY
(ID, HIERARCHYPATH, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@ID, @HIERARCHYINSERTPOSITION, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
declare @PARENTEVENTMANAGEMENTINSTANCEID uniqueidentifier;
select
@PARENTEVENTMANAGEMENTINSTANCEID = EVENTMANAGEMENTLEVELINSTANCE.EVENTMANAGEMENTINSTANCEID
from
dbo.EVENT
inner join
dbo.EVENTHIERARCHY on EVENTHIERARCHY.ID = EVENT.ID
inner join
dbo.EVENTMANAGEMENTOPTIONS on EVENTMANAGEMENTOPTIONS.EVENTID = EVENT.ID
inner join
dbo.EVENTMANAGEMENTLEVELINSTANCE on EVENTMANAGEMENTLEVELINSTANCE.ID = EVENTMANAGEMENTOPTIONS.EVENTMANAGEMENTLEVELINSTANCEID
where
EVENTHIERARCHY.HIERARCHYPATH = @HIERARCHYINSERTPOSITION.GetAncestor(1);
declare @EVENTMANAGEMENTOPTIONSCONFLICT bit = 0;
select @EVENTMANAGEMENTOPTIONSCONFLICT = 1
from dbo.EVENTMANAGEMENTOPTIONS
inner join dbo.EVENTMANAGEMENTLEVELINSTANCE on EVENTMANAGEMENTLEVELINSTANCE.ID = EVENTMANAGEMENTOPTIONS.EVENTMANAGEMENTLEVELINSTANCEID
where
EVENTMANAGEMENTOPTIONS.EVENTID = @PARENTEVENTID
and @COPYFROMEVENTID is not null
and dbo.UFN_EVENT_CONFLICTSWITHMANAGEMENTLEVELINSTANCE(
@ID,
EVENTMANAGEMENTLEVELINSTANCE.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
--,@COPYCAMPAIGNS
) = 1
insert into dbo.EVENTMANAGEMENTOPTIONS
(
ID,
EVENTMANAGEMENTLEVELINSTANCEID,
EVENTID,
HASREGISTRANTSANDOPTIONS,
HASSPEAKERS,
HASEXPENSES,
HASINVITATIONS,
HASTASKSANDCOORDINATORS,
HASLODGINGOPTIONS,
HASJOBOCCURRENCES,
HASAPPEALS,
HASDOCUMENTATION,
HASCAMPAIGNS,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
EVENTMANAGEMENTLEVELINSTANCE.ID,
@ID,
coalesce(
EVENTMANAGEMENTOPTIONS.HASREGISTRANTSANDOPTIONS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASREGISTRANTSANDOPTIONS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASSPEAKERS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASSPEAKERS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASEXPENSES,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASEXPENSES end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASINVITATIONS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASINVITATIONS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASTASKSANDCOORDINATORS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASTASKSANDCOORDINATORS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASLODGINGOPTIONS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASLODGINGOPTIONS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASJOBOCCURRENCES,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASJOBOCCURRENCES end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASAPPEALS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASAPPEALS end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASDOCUMENTATION,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASDOCUMENTATION end,
1),
coalesce(
EVENTMANAGEMENTOPTIONS.HASCAMPAIGNS,
case when @EVENTMANAGEMENTOPTIONSCONFLICT = 0 then EVENTMANAGEMENTLEVELINSTANCE.HASCAMPAIGNS end,
1),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.EVENTHIERARCHY
left outer join
dbo.EVENTMANAGEMENTLEVELINSTANCE on EVENTMANAGEMENTLEVELINSTANCE.EVENTMANAGEMENTINSTANCEID = @PARENTEVENTMANAGEMENTINSTANCEID and
EVENTMANAGEMENTLEVELINSTANCE.LEVEL = EVENTHIERARCHY.HIERARCHYPATH.GetLevel()
left outer join
dbo.EVENTMANAGEMENTOPTIONS on EVENTMANAGEMENTOPTIONS.EVENTID = @COPYFROMEVENTID
where
EVENTHIERARCHY.ID = @ID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;