USP_DATAFORMTEMPLATE_VIEW_EVENTONLINE

The load procedure used by the view dataform template "Event Online View"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@NAME nvarchar(100) INOUT Name
@PUBLICDESCRIPTIONHTML nvarchar(max) INOUT Description
@ONSALEDATETIME datetime INOUT Web sale date
@BEFOREONSALE bit INOUT Event is not yet on sale
@AVAILABILITY int INOUT Availability
@CAPACITY int INOUT Capacity
@LOCATIONNAME nvarchar(500) INOUT Location
@DATE datetime INOUT Date
@STARTTIME UDT_HOURMINUTE INOUT Time
@ENDTIME UDT_HOURMINUTE INOUT End time
@PROGRAMID uniqueidentifier INOUT Program ID
@PROGRAMNAME nvarchar(100) INOUT Program name
@PROGRAMPUBLICDESCRIPTIONHTML nvarchar(max) INOUT Program description
@PROGRAMISACTIVE bit INOUT Program active
@PROGRAMISPREREGISTERED bit INOUT Program requires registration
@ACKNOWLEDGEMENTEMAILTEMPLATEID int INOUT
@STARTDATETIMEWITHOFFSET datetimeoffset INOUT
@ENDDATETIMEWITHOFFSET datetimeoffset INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_EVENTONLINE
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @NAME nvarchar(100) = null output,
    @PUBLICDESCRIPTIONHTML nvarchar(max) = null output,
    @ONSALEDATETIME datetime = null output,
    @BEFOREONSALE bit = null output,
    @AVAILABILITY int = null output,
    @CAPACITY int = null output,
    @LOCATIONNAME nvarchar(500) = null output,
    @DATE datetime = null output,
    @STARTTIME dbo.UDT_HOURMINUTE = null output,
    @ENDTIME dbo.UDT_HOURMINUTE = null output,
    @PROGRAMID uniqueidentifier = null output,
    @PROGRAMNAME nvarchar(100) = null output,
    @PROGRAMPUBLICDESCRIPTIONHTML nvarchar(max) = null output,
    @PROGRAMISACTIVE bit = null output,
    @PROGRAMISPREREGISTERED bit = null output,
    @ACKNOWLEDGEMENTEMAILTEMPLATEID int = null output,
    @STARTDATETIMEWITHOFFSET datetimeoffset(3) = null output,
    @ENDDATETIMEWITHOFFSET datetimeoffset(3) = null output
)
as
    set nocount on;

    -- be sure to set this, in case the select returns no rows
    set @DATALOADED = 0;

    declare @ONLINESALESMETHOD uniqueidentifier = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(2);--2 = online

    select 
        @DATALOADED = 1,
        @NAME = EVENT.NAME,
        @PUBLICDESCRIPTIONHTML = case when EVENT.SUPERCEDESPROGRAMPUBLICDESCRIPTION = 0 then PROGRAM.PUBLICDESCRIPTIONHTML else EVENT.PUBLICDESCRIPTIONHTML end,
        @ONSALEDATETIME = EVENTSALESMETHOD.ONSALEDATETIMEWITHOFFSET,
        @BEFOREONSALE = case when (sysdatetimeoffset() < EVENTSALESMETHOD.ONSALEDATETIMEWITHOFFSET) then 1 else 0 end,
        @AVAILABILITY = dbo.UFN_EVENT_GETAVAILABILITY(@ID),
        @CAPACITY = EVENT.CAPACITY,
        @LOCATIONNAME = dbo.UFN_EVENT_GETLOCATIONNAME(@ID),
        @DATE = EVENT.STARTDATE,
        @STARTTIME = EVENT.STARTTIME,
        @ENDTIME = EVENT.ENDTIME,
        @PROGRAMID = PROGRAM.ID,
        @PROGRAMNAME = PROGRAM.NAME, 
        @PROGRAMPUBLICDESCRIPTIONHTML = PROGRAM.PUBLICDESCRIPTIONHTML,
        @PROGRAMISACTIVE = PROGRAM.ISACTIVE,
        @PROGRAMISPREREGISTERED = PROGRAM.ISPREREGISTERED,
        @ACKNOWLEDGEMENTEMAILTEMPLATEID = isnull([EVENT_MICROSITEEMAILTEMPLATE].[EMAILTEMPLATEID], [PROGRAM_MICROSITEEMAILTEMPLATE].[EMAILTEMPLATEID]),
        @STARTDATETIMEWITHOFFSET = EVENT.STARTDATETIMEWITHOFFSET,
        @ENDDATETIMEWITHOFFSET = 
            case
                when [PROGRAMSALESMETHOD].[ID] is null then [EVENT].[ENDDATETIMEWITHOFFSET]
                when [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE] = 0 then [EVENT].[STARTDATETIMEWITHOFFSET]
                when [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE] = 1 then dateadd(mi, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
                when [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE] = 2 then dateadd(hh, -1 * [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
                when [PROGRAMSALESMETHOD].[ONSALEENDTYPECODE] = 3 then dateadd(mi, [PROGRAMSALESMETHOD].[ONSALEENDINTERVAL], [EVENT].[STARTDATETIMEWITHOFFSET])
            end
    from dbo.EVENT
    left join dbo.[EVENT_MICROSITEEMAILTEMPLATE] on
        ([EVENT].[ID] = [EVENT_MICROSITEEMAILTEMPLATE].[EVENTID]) and ([EVENT_MICROSITEEMAILTEMPLATE].[ACTIVE] = 1)
    left outer join dbo.EVENTSALESMETHOD
        on (EVENT.ID = EVENTSALESMETHOD.EVENTID)
        and (EVENTSALESMETHOD.SALESMETHODID = @ONLINESALESMETHOD)
    inner join dbo.PROGRAM 
        on (EVENT.PROGRAMID = PROGRAM.ID)
    left join dbo.[PROGRAMSALESMETHOD]
            on PROGRAM.ID = [PROGRAMSALESMETHOD].[PROGRAMID]
            and    [PROGRAMSALESMETHOD].[SALESMETHODID] = @ONLINESALESMETHOD
    left join dbo.[PROGRAM_MICROSITEEMAILTEMPLATE] on
        ([PROGRAM].[ID] = [PROGRAM_MICROSITEEMAILTEMPLATE].[PROGRAMID]) and ([PROGRAM_MICROSITEEMAILTEMPLATE].[ACTIVE] = 1)
    where EVENT.ID = @ID

    return 0;