UFN_GROUPSALESDEFAULT_GETCAPACITYFORDATES
Returns a table with capacity remaining for dates in group sales.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@STARTDATE | date | IN | |
@ENDDATE | date | IN |
Definition
Copy
CREATE function dbo.UFN_GROUPSALESDEFAULT_GETCAPACITYFORDATES
(
@STARTDATE date = null,
@ENDDATE date = null
)
returns @DATESWITHCAPACITY table(COMPAREDATE date, CAPACITY int)
as
begin
declare @DATES table (DATEVALUE date);
declare @DAYITERATOR date;
set @DAYITERATOR = @STARTDATE;
while @DAYITERATOR <= @ENDDATE
begin
insert into @DATES
values (@DAYITERATOR);
set @DAYITERATOR = dateadd(day, 1, @DAYITERATOR);
end
insert into @DATESWITHCAPACITY
select D.datevalue,
sum(ITINERARYATTENDEE.QUANTITY) as CAPACITY
from @DATES d
left join dbo.RESERVATION
on d.DATEVALUE >= RESERVATION.ARRIVALDATE and d.datevalue <= convert(date, RESERVATION.ENDDATETIME)
inner join dbo.SALESORDER
on SALESORDER.ID = RESERVATION.ID
inner join dbo.ITINERARY
on ITINERARY.RESERVATIONID = RESERVATION.ID
inner join dbo.ITINERARYATTENDEE
on ITINERARY.ID = ITINERARYATTENDEE.ITINERARYID
where ((
d.DATEVALUE >= convert(date, ITINERARY.STARTDATETIME)
and
d.DATEVALUE <= convert(date, ITINERARY.ENDDATETIME)
)
or ITINERARY.STARTDATETIME is null)
and SALESORDER.STATUSCODE <> 5
group by D.DATEVALUE
return;
end