USP_DATALIST_GROUPSALESCHECKOUT

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
@INCLUDECHECKEDOUT bit IN Include checked out groups

Definition

Copy


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

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

                if @DATESELECTTYPE is null
                    set @DATESELECTTYPE = 0;

                if @INCLUDECHECKEDOUT is null
                    set @INCLUDECHECKEDOUT = 0;

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

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

                declare @ITINERARYCOUNT tinyint;

                select
                    RESERVATION.ID,
                    NAME,
                    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,
                    SECURITYDEPOSITREQUIRED,
                    SECURITYDEPOSITAMOUNT,
                    (select max(DATEADDED) from dbo.RESERVATIONSECURITYDEPOSITPAYMENT where RESERVATIONID = RESERVATION.ID) as SECURITYDEPOSITPAIDDATE,
                    (select sum(AMOUNT) from dbo.RESERVATIONSECURITYDEPOSITPAYMENT where RESERVATIONID = RESERVATION.ID) as SECURITYDEPOSITPAIDAMOUNT,
                    SECURITYDEPOSITSTATUSCODE
                    from dbo.RESERVATION
                inner join dbo.SALESORDER on RESERVATION.ID = SALESORDER.ID
                where ((ARRIVALDATE >= @STARTDATE and ARRIVALDATE <= @ENDDATE) or (@DATESELECTTYPE = 2)) and STATUSCODE in (1, 5) and SECURITYDEPOSITSTATUSCODE > 0
                    and (((@INCLUDECHECKEDOUT = 0) and (SECURITYDEPOSITSTATUSCODE = 1)) or ((@INCLUDECHECKEDOUT = 1) and (SECURITYDEPOSITSTATUSCODE in (1, 2, 3, 4))))
                order by ARRIVALTIME asc;

            return 0;