USP_DATALIST_GROUPSALESCHECKIN

Provides a list of reservations for a certain date range.

Parameters

Parameter Parameter Type Mode Description
@DATESELECTTYPE tinyint IN Date
@STARTDATE date IN From
@ENDDATE date IN To
@INCLUDECHECKEDIN bit IN Include checked in groups

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_GROUPSALESCHECKIN
            (
                @DATESELECTTYPE tinyint = null,
                @STARTDATE date = null,
                @ENDDATE date = null,
                @INCLUDECHECKEDIN bit = 0
            )
            as
                set nocount on;

                declare @CURRENTDATE date;
                set @CURRENTDATE = getdate();

                if @DATESELECTTYPE is null
                    set @DATESELECTTYPE = 0;

                if @INCLUDECHECKEDIN is null
                    set @INCLUDECHECKEDIN = 0;

                set @STARTDATE = case @DATESELECTTYPE
                    when 0 then @CURRENTDATE 
                    when 1 then @CURRENTDATE 
                    when 3 then @STARTDATE
                    when 4 then @STARTDATE
                end;

                set @ENDDATE = case @DATESELECTTYPE
                    when 0 then @CURRENTDATE 
                    when 1 then dateadd(week,1, @CURRENTDATE
                    when 3 then @ENDDATE
                    when 4 then @STARTDATE
                end;

                declare @ITINERARYCOUNT tinyint;

                select
                    RESERVATION.ID,
                    case when ARRIVALDATE <= @CURRENTDATE and STATUSCODE not in (1, 5) then 1
                        else 0 end CANCOMPLETE,
                    NAME,
                    case when STATUSCODE = 1 then 'RES:check'
                        else 'RES:bullet_crystal'
                    end CHECKEDIN,
                    case when ARRIVALTIME = '' then 
                        (case when ((select count(ITINERARYITEM.ID) 
                                    from dbo.ITINERARY 
                                    inner join dbo.ITINERARYITEM on ITINERARYITEM.ITINERARYID = ITINERARY.ID
                                    where RESERVATIONID = RESERVATION.ID) = 0)
                            then ''
                        else
                            dbo.UFN_HOURMINUTE_GETFROMDATE(STARTDATETIME) end
                    else ARRIVALTIME end ARRIVALTIME,
                    dbo.UFN_RESERVATION_TOTALVISITORCOUNT(RESERVATION.ID) as NUMBEROFVISITORS,
                    ARRIVALDATE,
                    STATUSCODE,
                    coalesce((select count(ITINERARY.ID)
                                                from dbo.RESERVATION RES
                                                inner join dbo.ITINERARY on RES.ID = ITINERARY.RESERVATIONID
                                                where RES.ID = RESERVATION.ID), 0) as ITINERARYCOUNT
                    from dbo.RESERVATION
                inner join dbo.SALESORDER on RESERVATION.ID = SALESORDER.ID
                where ((ARRIVALDATE >= @STARTDATE and ARRIVALDATE <= @ENDDATE) or (@DATESELECTTYPE = 2))
                    and (((@INCLUDECHECKEDIN = 0) and (STATUSCODE not in (1, 5))) or ((@INCLUDECHECKEDIN = 1) and (STATUSCODE <> 5)))
                order by ARRIVALTIME asc;

            return 0;