USP_TIXEVENT_INSERT

Inserts values into the event table.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@SCHEDULEID uniqueidentifier IN
@PROGRAMID uniqueidentifier IN
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(500) IN
@CAPACITY int IN
@EVENTDATE date IN
@STARTTIME datetime IN
@ENDTIME datetime IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_TIXEVENT_INSERT
            (
                @ID uniqueidentifier=null output,
                @SCHEDULEID uniqueidentifier=null,
                @PROGRAMID uniqueidentifier=null,
                @NAME nvarchar(100)=null,
                @DESCRIPTION nvarchar(500)=null,
                @CAPACITY integer=null,
                @EVENTDATE date=null,
                @STARTTIME datetime=null,
                @ENDTIME datetime=null,
                @CHANGEAGENTID uniqueidentifier=null
            )
            as 
            set nocount on;
            begin

                set @ID = newid();


                if @CHANGEAGENTID is null  
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                declare @CURRENTDATE datetime
                set @CURRENTDATE = getdate()


                declare @HOLDLISTID uniqueidentifier = null;
                declare @PRICELISTID uniqueidentifier = null;
            begin try 
                --handle inserting all the data 


                declare @EVENTHOLDLISTID uniqueidentifier
                set @EVENTHOLDLISTID = null

                declare @EVENTPRICELISTID uniqueidentifier
                set @EVENTPRICELISTID = null

                declare @EVENTSALESTYPEID uniqueidentifier
                set @EVENTSALESTYPEID = null    

                --handle the event first          

                insert into dbo.TIXEVENT
                (
                ID,
                SCHEDULEID,
                PROGRAMID,
                NAME,
                DESCRIPTION,
                CAPACITY,
                EVENTDATE,
                STARTTIME,
                ENDTIME,
                ADDEDBYID, 
                CHANGEDBYID, 
                DATEADDED, 
                DATECHANGED
            )
            values
            (
                @ID,
                @SCHEDULEID,
                @PROGRAMID,
                @NAME,
                @DESCRIPTION,
                @CAPACITY,
                @EVENTDATE,
                @STARTTIME,
                @ENDTIME,
                @CHANGEAGENTID
                @CHANGEAGENTID
                @CURRENTDATE
                @CURRENTDATE
            )


            --handle the sales type

             if exists(select * from dbo.PROGRAMSALESMETHOD where PROGRAMID = @PROGRAMID)
              begin
                set @EVENTSALESTYPEID = newid()

                  insert into EVENTSALESMETHOD
                  (
                    ID,
                    TIXEVENTID,
                    SALESMETHODID,
                    ONSALEDATE,
                    ONSALETIME,
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED
                  )
                  (
                 select
                    newid(),
                    @ID,
                    SALESMETHODID,
                    case ONSALETYPECODE
                        when 0 then @CURRENTDATE
                        when 1 then ONSALEDATE
                        when 2 then dateadd(day, -1 * ONSALETIMEBEFORE, @EVENTDATE)
                        when 3 then dateadd(week, -1 * ONSALETIMEBEFORE, @EVENTDATE)
                        when 4 then dateadd(month, -1 * ONSALETIMEBEFORE, @EVENTDATE)
                    end,
                    case ONSALETYPECODE
                        when 0 then dbo.UFN_HOURMINUTE_GETFROMDATE(@CURRENTDATE)
                        else ONSALETIME
                    end,
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CURRENTDATE
                    @CURRENTDATE
                from dbo.PROGRAMSALESMETHOD
                where PROGRAMID = @PROGRAMID
                  )
              end


              --handle the event price list now

              -- TEMPORARILY REMOVED Price List has been removed from Program; still waiting on how Event will handle it.

              --select @PRICELISTID=PRICELISTID from dbo.PROGRAM where ID = @PROGRAMID;

              IF @PRICELISTID is not null
              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.PRICELIST 
                where ID=@PRICELISTID
              )
             end

             --handle hold list here 

             select @HOLDLISTID=HOLDLISTID from dbo.PROGRAM where ID=@PROGRAMID;
              if @HOLDLISTID is not null
   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.HOLDLIST 
                where ID=@HOLDLISTID
              )
             end
        end try     
        begin catch
            exec dbo.USP_RAISE_ERROR
            return 1
        end catch
   end