UFN_SALESORDERITEMTICKETCOMBINATION_GETCOMBINATIONNUMBER

Returns names of programs/events in ticket combination.

Return

Return Type
nvarchar(10)

Parameters

Parameter Parameter Type Mode Description
@TICKETCOMBINATIONID uniqueidentifier IN

Definition

Copy


CREATE function dbo.UFN_SALESORDERITEMTICKETCOMBINATION_GETCOMBINATIONNUMBER
(
  @TICKETCOMBINATIONID uniqueidentifier
)
returns nvarchar(10)
with execute as caller
as begin
  declare @NUMBERTABLE table (
    NUMBER int not null identity (1, 1),
    TICKETCOMBINATIONID uniqueidentifier,
    DATEADDED datetime
  );
  declare @ORDERID uniqueidentifier
  declare @COMBINATIONID uniqueidentifier

  select @ORDERID = SALESORDERITEM.SALESORDERID, @COMBINATIONID = SALESORDERITEMTICKETCOMBINATION.COMBINATIONID
  from dbo.SALESORDERITEM 
  inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
  inner join dbo.[SALESORDERITEMTICKETCOMBINATION] on [SALESORDERITEMTICKET].[ID] = [SALESORDERITEMTICKETCOMBINATION].[ID]
  where SALESORDERITEMTICKETCOMBINATION.TICKETCOMBINATIONID = @TICKETCOMBINATIONID

  insert into @NUMBERTABLE (TICKETCOMBINATIONID, DATEADDED)
  select distinct TICKETCOMBINATIONID, min(SALESORDERITEM.DATEADDED)
  from dbo.SALESORDERITEM
    inner join dbo.[SALESORDERITEMTICKET] on [SALESORDERITEM].[ID] = [SALESORDERITEMTICKET].[ID]
    inner join dbo.[SALESORDERITEMTICKETCOMBINATION] on [SALESORDERITEMTICKET].[ID] = [SALESORDERITEMTICKETCOMBINATION].[ID]
    inner join dbo.[COMBINATION] on [SALESORDERITEMTICKETCOMBINATION].[COMBINATIONID] = [COMBINATION].[ID]
    inner join dbo.[COMBINATIONPRICETYPE] on [COMBINATIONPRICETYPE].PRICETYPECODEID  = [SALESORDERITEMTICKET].[PRICETYPECODEID]
                                            and [COMBINATION].[ID] = [COMBINATIONPRICETYPE].[COMBINATIONID] 
  where SALESORDERITEMTICKETCOMBINATION.COMBINATIONID = @COMBINATIONID and SALESORDERITEM.SALESORDERID = @ORDERID and
      SALESORDERITEMTICKET.PRICETYPECODEID in (
      select top 1 COMBINATIONPRICETYPE.PRICETYPECODEID from dbo.COMBINATIONPRICETYPE
                inner join dbo.SALESORDERITEMTICKETCOMBINATION SOITC on COMBINATIONPRICETYPE.COMBINATIONID = SOITC.COMBINATIONID
                inner join dbo.SALESORDERITEMTICKET on COMBINATIONPRICETYPE.PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID 
                where SOITC.ID = SALESORDERITEMTICKET.ID and SOITC.TICKETCOMBINATIONID = SALESORDERITEMTICKETCOMBINATION.TICKETCOMBINATIONID 
    )
    group by TICKETCOMBINATIONID 
  order by min(SALESORDERITEM.DATEADDED)

  declare @NUMBER nvarchar(10)
  select @NUMBER = convert(nvarchar(10), NUMBER) from @NUMBERTABLE where TICKETCOMBINATIONID = @TICKETCOMBINATIONID
  return @NUMBER

end