USP_TIXEVENT_COPYEVENT

Copies an event to a new instance.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN
@NEWDATE datetime IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_TIXEVENT_COPYEVENT
                (
                    @EVENTID uniqueidentifier,
                    @NEWDATE 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 @EVENTPRICELISTID uniqueidentifier
                      set @EVENTPRICELISTID = null

                    declare @EVENTSALESTYPEID uniqueidentifier
                      set @EVENTSALESTYPEID = null

                    insert into dbo.TIXEVENT
                        (
                          ID, 
                          PROGRAMID, 
                          NAME, 
                          DESCRIPTION,
                          CAPACITY,
                          EVENTDATE,
                          STARTTIME,
                          ENDTIME,
                          ADDEDBYID, 
                          CHANGEDBYID, 
                          DATEADDED, 
                          DATECHANGED
                        )
                    select
                        @ID,
                        PROGRAMID,
                        NAME,
                        DESCRIPTION,
                        CAPACITY,
                        @NEWDATE,
                        @NEWDATE + convert(datetime, left(dbo.UFN_HOURMINUTE_GETFROMDATE(STARTTIME), 2) + ':' + right(dbo.UFN_HOURMINUTE_GETFROMDATE(STARTTIME), 2)),
                        @NEWDATE + convert(datetime, left(dbo.UFN_HOURMINUTE_GETFROMDATE(ENDTIME), 2) + ':' + right(dbo.UFN_HOURMINUTE_GETFROMDATE(ENDTIME), 2)),
                        @CHANGEAGENTID,
                        @CHANGEAGENTID,
                        @CURRENTDATE,
                        @CURRENTDATE
                    from dbo.TIXEVENT
                    where TIXEVENT.ID = @EVENTID;

                    --now copy the locations for that event into the new event

                    begin 
                        insert into dbo.TIXEVENTLOCATION
                        (
                            ID,
                            TIXEVENTID,
                            EVENTCONFLICTID,
                            EVENTLOCATIONID,
                            ADDEDBYID, 
                            CHANGEDBYID, 
                            DATEADDED, 
                            DATECHANGED
                        )
                        select 
                            newid(),
                            @ID,
                            null,
                            EVENTLOCATIONID,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE
                        from dbo.TIXEVENTLOCATION
                        where TIXEVENTLOCATION.TIXEVENTID=@EVENTID;
                    end

                    if exists(select 1 from dbo.EVENTSALESMETHOD where TIXEVENTID = @EVENTID)
                      begin
                      set @EVENTSALESTYPEID = newid()

                      insert into EVENTSALESMETHOD
                      (
                        ID,
                        TIXEVENTID,
                        SALESMETHODID,
                        ONSALEDATE,
                        ONSALETIME,
                        ADDEDBYID, 
                        CHANGEDBYID, 
                        DATEADDED, 
                        DATECHANGED
                      )
                        select
                          newid(),
                          @ID,
                          SALESMETHODID,
                          ONSALEDATE,
                          ONSALETIME,
                          @CHANGEAGENTID
                          @CHANGEAGENTID
                          @CURRENTDATE
                          @CURRENTDATE
                        from dbo.EVENTSALESMETHOD
                        where TIXEVENTID = @EVENTID

                    end

                    if exists (select 1 from dbo.EVENTHOLDLIST where TIXEVENTID = @EVENTID)
                      begin

                      set @EVENTHOLDLISTID = newid()

                      insert into dbo.EVENTHOLDLIST
                      (
                        ID, 
                        NAME, 
                        TIXEVENTID,
                        ADDEDBYID, 
                        CHANGEDBYID, 
                        DATEADDED, 
                        DATECHANGED
                      )
                        select 
                          @EVENTHOLDLISTID
                          NAME,
                          @ID,
                          @CHANGEAGENTID
                          @CHANGEAGENTID
                          @CURRENTDATE
                          @CURRENTDATE 
                        from dbo.EVENTHOLDLIST 
                        where TIXEVENTID=@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.TIXEVENTID = @EVENTID
                      )
                      end

                    if exists (select 1 from dbo.EVENTPRICELIST where TIXEVENTID = @EVENTID)
                      begin

                      set @EVENTPRICELISTID = newid()

                      insert into dbo.EVENTPRICELIST
                      (
                        ID, 
                        NAME, 
                        TIXEVENTID,
                        ADDEDBYID, 
                        CHANGEDBYID, 
                        DATEADDED, 
                        DATECHANGED
                      )
                        select 
                          @EVENTPRICELISTID
                          NAME,
                          @ID,
                          @CHANGEAGENTID
                          @CHANGEAGENTID
                          @CURRENTDATE
                          @CURRENTDATE 
                        from dbo.EVENTPRICELIST 
                        where TIXEVENTID=@EVENTID

                      insert into dbo.TIXEVENTPRICE
                      (
                        ID,
                        PRICETYPECODEID,
                        FACEPRICE,
                        EVENTPRICELISTID,
                        ADDEDBYID, 
                        CHANGEDBYID, 
                        DATEADDED, 
                        DATECHANGED
                      )
                        select
                          newid(),
                          PRICETYPECODEID,
                          FACEPRICE,
                          @EVENTPRICELISTID,
                          @CHANGEAGENTID
                          @CHANGEAGENTID
                          @CURRENTDATE
                          @CURRENTDATE 
                        from dbo.TIXEVENTPRICE
                        inner join dbo.EVENTPRICELIST on TIXEVENTPRICE.EVENTPRICELISTID = EVENTPRICELIST.ID
                        where EVENTPRICELIST.TIXEVENTID = @EVENTID
                      end
                end try

                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch
            end