USP_DATALIST_PROGRAMTICKETSELECT

Lists programs available for sale.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@DATESELECTTYPE tinyint IN Date
@STARTDATE datetime IN From
@ENDDATE datetime IN To
@NAME nvarchar(512) IN Name
@SHOWPAST bit IN Show past events

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_PROGRAMTICKETSELECT
                (
                    @ID uniqueidentifier,
                    @DATESELECTTYPE tinyint = null,
                    @STARTDATE datetime = null,
                    @ENDDATE datetime = null,
                    @NAME nvarchar(512) = null,
                    @SHOWPAST bit = null
                )
                as
                set nocount on;

        -- Get sales method ID and constituent ID

        declare @CONSTITUENTID uniqueidentifier
        declare @SALESMETHODID uniqueidentifier
        select @CONSTITUENTID = SALESORDER.CONSTITUENTID, @SALESMETHODID = SALESMETHOD.ID
                from dbo.SALESORDER left outer join dbo.SALESMETHOD on SALESORDER.SALESMETHODTYPECODE = SALESMETHOD.TYPECODE
        where SALESORDER.ID = @ID

        set @NAME = '%' + replace(replace(@NAME, '*', '%'), '?', '_') + '%';

        declare @CURRENTDATE datetime = getdate();

        if @DATESELECTTYPE is null
            set @DATESELECTTYPE = 1;

        set @STARTDATE = case @DATESELECTTYPE
            when 1 then dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE)
            when 2 then dbo.UFN_DATE_GETEARLIESTTIME(@CURRENTDATE)
            when 3 then dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE)
            when 4 then dbo.UFN_DATE_GETEARLIESTTIME(@STARTDATE)
        end;

        set @ENDDATE = case @DATESELECTTYPE
            when 1 then dbo.UFN_DATE_GETLATESTTIME(@CURRENTDATE)
            when 2 then dbo.UFN_DATE_GETLATESTTIME(dateadd(week,1, @CURRENTDATE))
            when 3 then dbo.UFN_DATE_GETLATESTTIME(@STARTDATE)
            when 4 then dbo.UFN_DATE_GETLATESTTIME(@ENDDATE)
        end;

        --If past events shouldn't be shown and the start date is before now, fix start date to now

        if (@SHOWPAST = 0 or @SHOWPAST is null) and (@STARTDATE < @CURRENTDATE)
            set @STARTDATE = @CURRENTDATE;        

        select 
          [ID], 
          [PROGRAMID],
          [NAME],
          [AVAILABILITY],
          [STARTDATE],
          [STARTTIME], 
          [ENDTIME],
          [PROGRAMCATEGORY],                    
          [ISDAILYADMISSION],
          [ISCOMBINATION],
          [EVENTSTATUSCODE]
        from dbo.UFN_SALESORDER_PROGRAMTICKETSELECT
              (
                @SALESMETHODID,
                @CONSTITUENTID,
                @DATESELECTTYPE,
                @STARTDATE,
                @ENDDATE,
                @NAME,
                @SHOWPAST,
                @CURRENTDATE
              )