UFN_TICKET_TEMPLATEINFORMATION
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ORDERID | uniqueidentifier | IN | |
@PROGRAMID | uniqueidentifier | IN | |
@REPRINTJOB | uniqueidentifier | IN | |
@TICKETPRINTINFOID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_TICKET_TEMPLATEINFORMATION
(
@ORDERID uniqueidentifier = null,
@PROGRAMID uniqueidentifier = null,
@REPRINTJOB uniqueidentifier = null,
@TICKETPRINTINFOID uniqueidentifier = null
)
returns @TICKETS table (
PROGRAMNAME nvarchar(100),
EVENTNAME nvarchar(100),
LOCATIONNAME nvarchar(100),
STARTDATETIME datetime,
PRICETYPE nvarchar(100),
PRICE money,
TICKETNUMBER integer,
SALESMETHODTYPE nvarchar(13),
DISPLAYTIME nvarchar(8),
ORGANIZATIONNAME nvarchar(100)
)
with execute as caller
as begin
declare @ORGANIZATIONNAME nvarchar(100);
select
@ORGANIZATIONNAME = NAME
from dbo.ORGANIZATIONINFORMATION;
if @TICKETPRINTINFOID is not null
begin
insert into @TICKETS (PROGRAMNAME, EVENTNAME, LOCATIONNAME, STARTDATETIME, PRICETYPE, PRICE, TICKETNUMBER, SALESMETHODTYPE, DISPLAYTIME, ORGANIZATIONNAME)
select
PROGRAM.NAME as PROGRAMNAME,
isnull(EVENT.NAME, PROGRAM.NAME) as EVENTNAME,
case
when TICKET.EVENTID is not null then
(
select top 1 EVENTLOCATION.NAME
from dbo.PROGRAMEVENTLOCATION
inner join dbo.EVENTLOCATION EVENTLOCATION
on PROGRAMEVENTLOCATION.EVENTLOCATIONID = EVENTLOCATION.ID
where
PROGRAMEVENTLOCATION.EVENTID = TICKET.EVENTID
order by
PROGRAMEVENTLOCATION.SEQUENCE asc
)
when TICKET.PROGRAMID is not null then
(
select top 1 EVENTLOCATION.NAME
from dbo.PROGRAMLOCATION
inner join dbo.EVENTLOCATION
on EVENTLOCATION.ID = PROGRAMLOCATION.EVENTLOCATIONID
where
PROGRAMLOCATION.PROGRAMID = TICKET.PROGRAMID
order by
PROGRAMLOCATION.SEQUENCE asc
)
end as LOCATIONNAME,
EVENT.STARTDATETIME ,
PRICETYPECODE.DESCRIPTION as PRICETYPE,
TICKET.PRICE,
TICKETPRINTINFO.SEQUENCEID as TICKETNUMBER,
SALESORDER.SALESMETHODTYPE,
dbo.UFN_HOURMINUTE_DISPLAYTIME(EVENT.STARTTIME) as DISPLAYTIME,
@ORGANIZATIONNAME as ORGANIZATIONNAME
from dbo.TICKET
inner join dbo.TICKETPRINTINFO
on TICKET.ID = TICKETPRINTINFO.TICKETID
inner join dbo.PRICETYPECODE
on TICKET.PRICETYPECODEID = PRICETYPECODE.ID
inner join dbo.SALESORDERITEMTICKET
on TICKET.SALESORDERITEMTICKETID = SALESORDERITEMTICKET.ID
inner join dbo.SALESORDERITEM
on SALESORDERITEMTICKET.ID = SALESORDERITEM.ID
inner join dbo.SALESORDER
on SALESORDERITEM.SALESORDERID = SALESORDER.ID
left outer join dbo.PROGRAM
on PROGRAM.ID = TICKET.PROGRAMID
left outer join dbo.EVENT
on EVENT.ID = TICKET.EVENTID
where
TICKETPRINTINFO.ID = @TICKETPRINTINFOID
end
else
begin
if @ORDERID is null
begin
declare @PROGRAMNAME nvarchar(100);
declare @LOCATIONNAME nvarchar(100);
declare @ISDAILYADMISSION bit = 0;
select
@PROGRAMNAME = PROGRAM.NAME,
@LOCATIONNAME = EVENTLOCATION.NAME,
@ISDAILYADMISSION = PROGRAM.ISDAILYADMISSION
from
dbo.PROGRAM
left outer join dbo.PROGRAMLOCATION on PROGRAMLOCATION.PROGRAMID = PROGRAM.ID
left outer join dbo.EVENTLOCATION EVENTLOCATION on PROGRAMLOCATION.EVENTLOCATIONID = EVENTLOCATION.ID
where
PROGRAM.ID = @PROGRAMID;
insert into @TICKETS (PROGRAMNAME, EVENTNAME, LOCATIONNAME, STARTDATETIME, PRICETYPE, PRICE, TICKETNUMBER, SALESMETHODTYPE, DISPLAYTIME, ORGANIZATIONNAME)
select
coalesce(@PROGRAMNAME, 'Program Name') as PROGRAMNAME,
coalesce(@PROGRAMNAME, 'Event Name') as EVENTNAME,
coalesce(@LOCATIONNAME, 'Event location') as LOCATIONNAME,
case @ISDAILYADMISSION
when 1 then null
when 0 then getdate()
end as EVENTTIME,
'Adult' as PRICETYPE,
12.34 as PRICE,
99999999 as TICKETNUMBER,
'Sales Method' as SALESMETHODTYPE,
case @ISDAILYADMISSION
when 1 then null
when 0 then dbo.UFN_HOURMINUTE_DISPLAYTIME(dbo.UFN_HOURMINUTE_GETFROMDATE(getdate()))
end as EVENTDISPLAYTIME,
@ORGANIZATIONNAME as ORGANIZATIONNAME
end
else
begin
-- Ugly branch because @REPRINTJOB is optional (MAY HAVE TO FIX REPORT BUGS IN MULTIPLE PLACES)
if @REPRINTJOB is null begin
insert into @TICKETS (PROGRAMNAME, EVENTNAME, LOCATIONNAME, STARTDATETIME, PRICETYPE, PRICE, TICKETNUMBER, SALESMETHODTYPE, DISPLAYTIME, ORGANIZATIONNAME)
select
PROGRAM.NAME as PROGRAMNAME,
isnull(EVENT.NAME, PROGRAM.NAME) as EVENTNAME,
case
when TICKET.EVENTID is not null then dbo.UFN_EVENT_GETLOCATIONNAME(TICKET.EVENTID)
else dbo.UFN_PROGRAM_GETLOCATIONNAME(TICKET.PROGRAMID)
end as LOCATIONNAME,
case
when TICKET.EVENTID is not null then EVENT.STARTDATETIME
end as EVENTTIME,
PRICETYPECODE.DESCRIPTION as PRICETYPE,
TICKET.PRICE,
TICKET.TICKETNUMBER,
SO.SALESMETHODTYPE,
case
when TICKET.EVENTID is not null then dbo.UFN_HOURMINUTE_DISPLAYTIME(EVENT.STARTTIME)
end as EVENTDISPLAYTIME,
@ORGANIZATIONNAME as ORGANIZATIONNAME
from
dbo.TICKET
inner join dbo.PROGRAM on PROGRAM.ID = TICKET.PROGRAMID
inner join dbo.PRICETYPECODE on TICKET.PRICETYPECODEID = PRICETYPECODE.ID
inner join dbo.SALESORDERITEMTICKET SOIT on TICKET.SALESORDERITEMTICKETID = SOIT.ID
inner join dbo.SALESORDERITEM SOI on SOIT.ID = SOI.ID
inner join dbo.SALESORDER SO on SOI.SALESORDERID = SO.ID
left join dbo.EVENT on TICKET.EVENTID = EVENT.ID
where
SO.ID = @ORDERID
and TICKET.PROGRAMID = @PROGRAMID;
end else begin
insert into @TICKETS (PROGRAMNAME, EVENTNAME, LOCATIONNAME, STARTDATETIME, PRICETYPE, PRICE, TICKETNUMBER, SALESMETHODTYPE, DISPLAYTIME, ORGANIZATIONNAME)
select
PROGRAM.NAME as PROGRAMNAME,
isnull(EVENT.NAME, PROGRAM.NAME) as EVENTNAME,
case
when TICKET.EVENTID is not null then dbo.UFN_EVENT_GETLOCATIONNAME(TICKET.EVENTID)
else dbo.UFN_PROGRAM_GETLOCATIONNAME(TICKET.PROGRAMID)
end as LOCATIONNAME,
case
when TICKET.EVENTID is not null then EVENT.STARTDATETIME
end as EVENTTIME,
PRICETYPECODE.DESCRIPTION as PRICETYPE,
TICKET.PRICE,
TICKET.TICKETNUMBER,
SO.SALESMETHODTYPE,
case
when TICKET.EVENTID is not null then dbo.UFN_HOURMINUTE_DISPLAYTIME(EVENT.STARTTIME)
when TICKET.PROGRAMID is not null then null
end as EVENTDISPLAYTIME,
@ORGANIZATIONNAME as ORGANIZATIONNAME
from
dbo.TICKET
inner join dbo.PROGRAM on PROGRAM.ID = TICKET.PROGRAMID
inner join dbo.PRICETYPECODE on TICKET.PRICETYPECODEID = PRICETYPECODE.ID
inner join dbo.SALESORDERITEMTICKET SOIT on TICKET.SALESORDERITEMTICKETID = SOIT.ID
inner join dbo.SALESORDERITEM SOI on SOIT.ID = SOI.ID
inner join dbo.SALESORDER SO on SOI.SALESORDERID = SO.ID
left join dbo.EVENT on TICKET.EVENTID = EVENT.ID
inner join dbo.TICKETPRINTINFO on TICKETPRINTINFO.TICKETID = TICKET.ID
where
SO.ID = @ORDERID
and TICKET.PROGRAMID = @PROGRAMID
and TICKETPRINTINFO.REPRINTJOB = @REPRINTJOB;
end
end
end
return;
end