USP_DATAFORMTEMPLATE_VIEW_MICROSITE_EVENT
The load procedure used by the view dataform template "Microsite Programming Event 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. |
@ROWTYPE | tinyint | INOUT | Row Type |
@PROGRAMNAME | nvarchar(100) | INOUT | Program |
@PROGRAMISACTIVE | bit | INOUT | Program active |
@PROGRAMONLINE | bit | INOUT | Approved for website |
@EVENTNAME | nvarchar(100) | INOUT | Event |
@EVENTISACTIVE | bit | INOUT | Event active |
@EVENTONLINE | bit | INOUT | Approved for website |
@EVENTONSALEDATETIME | datetime | INOUT | Web sale date |
@AVAILABILITY | nvarchar(max) | INOUT | Remaining capacity |
@STARTDATE | date | INOUT | |
@STARTTIME | UDT_HOURMINUTE | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MICROSITE_EVENT
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@ROWTYPE tinyint = null output,
@PROGRAMNAME nvarchar(100) = null output,
@PROGRAMISACTIVE bit = null output,
@PROGRAMONLINE bit = null output,
@EVENTNAME nvarchar(100) = null output,
@EVENTISACTIVE bit = null output,
@EVENTONLINE bit = null output,
@EVENTONSALEDATETIME datetime = null output,
@AVAILABILITY nvarchar(max) = null output,
@STARTDATE date = null output,
@STARTTIME dbo.UDT_HOURMINUTE = 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
declare @CURRENTDATETIME datetime = getdate();
if exists(select ID from PROGRAM where ID = @ID)
select
@DATALOADED = 1,
@ROWTYPE = PROGRAM.ISDAILYADMISSION,
@PROGRAMNAME = PROGRAM.NAME,
@PROGRAMISACTIVE = PROGRAM.ISACTIVE,
@PROGRAMONLINE = case when PROGRAMSALESMETHOD.ID is null then 0 else 1 end,
@EVENTNAME = null,
@EVENTISACTIVE = null,
@EVENTONLINE = null,
@EVENTONSALEDATETIME = null,
@AVAILABILITY = '',
@STARTDATE = null,
@STARTTIME = null
from dbo.PROGRAM
left outer join dbo.PROGRAMSALESMETHOD
on PROGRAM.ID = PROGRAMSALESMETHOD.PROGRAMID
and PROGRAMSALESMETHOD.SALESMETHODID = @ONLINESALESMETHOD
where PROGRAM.ID = @ID
else
select
@DATALOADED = 1,
@ROWTYPE = 2, -- 2 = Programmed Event
@PROGRAMNAME = PROGRAM.NAME,
@PROGRAMISACTIVE = PROGRAM.ISACTIVE,
@PROGRAMONLINE = null, -- not really applicable for events, not bothering joining to PROGRAMSALESMETHOD
@EVENTNAME = EVENT.NAME,
@EVENTISACTIVE = EVENT.ISACTIVE,
@EVENTONLINE = case when EVENTSALESMETHOD.ONSALEDATETIME is null then 0 else 1 end,--(@CURRENTDATETIME between EVENTSALESMETHOD.ONSALEDATETIME and EVENT.ENDDATETIME) --dbo.UFN_DATE_ADDHOURMINUTE(EVENTSALESMETHOD.ONSALEDATE, EVENTSALESMETHOD.ONSALETIME) (EVENTSALESMETHOD.ONSALEDATE is not null) and (EVENTSALESMETHOD.ONSALETIME is not null)
@EVENTONSALEDATETIME = EVENTSALESMETHOD.ONSALEDATETIME,
@AVAILABILITY = cast(dbo.UFN_EVENT_GETAVAILABILITY(@ID) as nvarchar(20)) + '/' + cast(EVENT.CAPACITY as nvarchar(20)),
@STARTDATE = EVENT.STARTDATE,
@STARTTIME = EVENT.STARTTIME
from dbo.EVENT
left outer join dbo.EVENTSALESMETHOD
on (EVENT.ID = EVENTSALESMETHOD.EVENTID)
and (EVENTSALESMETHOD.SALESMETHODID = @ONLINESALESMETHOD )
inner join dbo.PROGRAM
on EVENT.PROGRAMID = PROGRAM.ID
where EVENT.ID = @ID
return 0;