USP_EVENT_COPYEVENT
Copies an event to a new instance.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@NEWSTARTDATE | datetime | IN | |
@NEWENDDATE | datetime | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_EVENT_COPYEVENT
(
@EVENTID uniqueidentifier,
@NEWSTARTDATE datetime,
@NEWENDDATE datetime,
@CHANGEAGENTID uniqueidentifier
)
as
begin
declare @ID uniqueidentifier;
set @ID = newid()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
-- handle inserting the data
declare @EVENTHOLDLISTID uniqueidentifier
set @EVENTHOLDLISTID = null
declare @EVENTSALESTYPEID uniqueidentifier
set @EVENTSALESTYPEID = null
insert into dbo.EVENT
(
ID,
PROGRAMID,
NAME,
DESCRIPTION,
CAPACITY,
STARTDATE,
STARTTIME,
ENDDATE,
ENDTIME,
PUBLICDESCRIPTIONTEXT,
PUBLICDESCRIPTIONHTML,
SUPERCEDESPROGRAMPUBLICDESCRIPTION,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@ID,
PROGRAMID,
NAME,
DESCRIPTION,
CAPACITY,
@NEWSTARTDATE,
STARTTIME,
@NEWENDDATE,
ENDTIME,
PUBLICDESCRIPTIONTEXT,
PUBLICDESCRIPTIONHTML,
SUPERCEDESPROGRAMPUBLICDESCRIPTION,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.EVENT
where EVENT.ID = @EVENTID;
--now copy the locations for that event into the new event
begin
insert into dbo.PROGRAMEVENTLOCATION
(
ID,
EVENTID,
EVENTCONFLICTID,
EVENTLOCATIONID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
@ID,
null,
EVENTLOCATIONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.PROGRAMEVENTLOCATION
where PROGRAMEVENTLOCATION.EVENTID=@EVENTID;
end
if exists(select 1 from dbo.EVENTSALESMETHOD where EVENTID = @EVENTID)
begin
set @EVENTSALESTYPEID = newid()
insert into EVENTSALESMETHOD
(
ID,
EVENTID,
SALESMETHODID,
ONSALEDATE,
ONSALETIME,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
@ID,
SALESMETHODID,
ONSALEDATE,
ONSALETIME,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.EVENTSALESMETHOD
where EVENTID = @EVENTID
end
if exists (select 1 from dbo.EVENTHOLDLIST where EVENTID = @EVENTID)
begin
set @EVENTHOLDLISTID = newid()
insert into dbo.EVENTHOLDLIST
(
ID,
NAME,
EVENTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@EVENTHOLDLISTID,
NAME,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.EVENTHOLDLIST
where EVENTID=@EVENTID
insert into dbo.EVENTHOLD
(
ID,
HOLDCODEID,
QUANTITY,
EVENTHOLDLISTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
(
select
newid(),
HOLDCODEID,
QUANTITY,
@EVENTHOLDLISTID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.EVENTHOLD
inner join dbo.EVENTHOLDLIST on EVENTHOLD.EVENTHOLDLISTID = EVENTHOLDLIST.ID
where EVENTHOLDLIST.EVENTID = @EVENTID
)
end
if exists (select 1 from dbo.PROGRAMEVENTPRICE where EVENTID = @EVENTID)
begin
insert into dbo.PROGRAMEVENTPRICE
(
ID,
PRICETYPECODEID,
FACEPRICE,
EVENTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
PRICETYPECODEID,
FACEPRICE,
@ID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.PROGRAMEVENTPRICE
where PROGRAMEVENTPRICE.EVENTID = @EVENTID
end
insert into dbo.EVENTRESOURCE
(
ID,
EVENTID,
RESOURCEID,
QUANTITYNEEDED,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
@ID,
RESOURCEID,
QUANTITYNEEDED,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from dbo.EVENTRESOURCE
where EVENTRESOURCE.EVENTID = @EVENTID
-- Update all resources added to the new event to reflect their consumption
update dbo.[RESOURCE] set
[QUANTITY] = dbo.[RESOURCE].[QUANTITY] - dbo.[EVENTRESOURCE].QUANTITYNEEDED,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.[RESOURCE]
inner join dbo.[EVENTRESOURCE] on dbo.[RESOURCE].ID = dbo.[EVENTRESOURCE].RESOURCEID
where dbo.[EVENTRESOURCE].EVENTID = @ID
and dbo.[RESOURCE].ISPERTICKETITEM = 0
and dbo.[RESOURCE].TYPECODE = 1
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end