UFN_SALESORDERTICKET_VALIDQUANTITY
Validates the quantity of tickets for a sales order event.
Return
Return Type |
---|
bit |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@ORDERID | uniqueidentifier | IN | |
@QUANTITY | int | IN |
Definition
Copy
CREATE function dbo.UFN_SALESORDERTICKET_VALIDQUANTITY(@EVENTID uniqueidentifier, @ORDERID uniqueidentifier, @QUANTITY int)
returns bit
with execute as caller
as begin
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @RETVAL bit;
set @RETVAL = 0;
declare @AVAILABILITY int
declare @CURRENTTICKETS int
select @CURRENTTICKETS = isnull(sum(SALESORDERITEM.QUANTITY),0)
from dbo.SALESORDERITEM
inner join dbo.SALESORDERITEMTICKET on SALESORDERITEM.ID = SALESORDERITEMTICKET.ID
where
SALESORDERITEM.SALESORDERID = @ORDERID and
SALESORDERITEMTICKET.EVENTID = @EVENTID and
--Don't count expired tickets
not exists(
select 1
from dbo.SALESORDERRESERVEDITEM
where
SALESORDERRESERVEDITEM.[ID] = [SALESORDERITEM].[ID] and
[EXPIRATIONDATE] <= @CURRENTDATE
)
select @AVAILABILITY = AVAILABILITY
from dbo.V_PROGRAMEVENT_TICKETCOUNTS
where ID = @EVENTID
-- Put the number we are trying to modify back into availability
set @AVAILABILITY = @AVAILABILITY + @CURRENTTICKETS
if @AVAILABILITY >= @QUANTITY
set @RETVAL = 1;
return @RETVAL;
end