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