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;