UFN_PROGRAMSALESMETHOD_ONSALEINFORMATION
Describes when tickets can go on sale using the given sales method
Return
Return Type |
---|
nvarchar(50) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_PROGRAMSALESMETHOD_ONSALEINFORMATION
(
@ID uniqueidentifier
) returns nvarchar(50)
as
begin
declare @MESSAGE nvarchar(50);
declare @PERIODBEGINSCODE tinyint;
select @PERIODBEGINSCODE = ONSALETYPECODE from dbo.PROGRAMSALESMETHOD where ID = @ID;
if @PERIODBEGINSCODE = 0
begin
set @MESSAGE = 'Immediately';
end
else
begin
declare @ONSALETIME char(4);
declare @MESSAGEBEGINNING nvarchar(38);
if @PERIODBEGINSCODE = 1
begin
declare @ONSALEDATE datetime;
select
@ONSALEDATE = ONSALEDATE
from
dbo.PROGRAMSALESMETHOD
where
ID = @ID;
set @MESSAGEBEGINNING = convert(nvarchar(38), @ONSALEDATE, 107);
end
else --@PERIODBEGINSCODE = 2, 3 or 4
begin
declare @TIMEBEFOREVALUE int;
select
@TIMEBEFOREVALUE = ONSALETIMEBEFORE
from
dbo.PROGRAMSALESMETHOD
where
ID = @ID;
set @MESSAGEBEGINNING = cast(@TIMEBEFOREVALUE as nvarchar(12)) + ' ' + dbo.UFN_PROGRAMSALESMETHOD_ONSALETYPECODE_GETDESCRIPTION(@PERIODBEGINSCODE);
end
--We need to do some fancypants parsing with the time field to get it to display correctly
select @ONSALETIME = ONSALETIME from dbo.PROGRAMSALESMETHOD where ID = @ID;
set @MESSAGE = @MESSAGEBEGINNING + ' at ' + dbo.UFN_HOURMINUTE_DISPLAYTIME(@ONSALETIME);
end
return @MESSAGE;
end