Greg Hains Posted May 28, 2014 Posted May 28, 2014 Hi. I have a query that somebody may be able to help me with. When I see a solution I will kick myself for it being so simple, but at the moment I have gone in too many circles. The concept is this: There is a start date and a finish date - for the sake of ease, let's assume its a hotel (it's not by the way! lol. The list of clients is shown with a book-in date, and once they've left, a checkout date. Whilst they are still there, there is no checkout date. I am looking to get a snapshot in two different scenarios: The first scenario is to provide a single date (lets call it date#1) in the past and see what the occupancy status was at that time - so anybody that was in the facility at the time - including the check-in and check-out dates. This is a snapshot of what-was-what on that date. The second scenario is to provide two dates (a range - date#1 and date#2) in the search process, list all occupancies including and between these two dates for check-in and checkout, which would, of course, provide more results. My question is about the logic of applying the range Find in the checkin and checkout dates. eg. checkin_date...date#1...checkout_date (which I know is not the correct syntax). Whats the best method of executing this find please? Cheers, Greg
Lee Smith Posted May 28, 2014 Posted May 28, 2014 Check and see if this file here helps. Nightwing’s Booking System
comment Posted May 28, 2014 Posted May 28, 2014 To make this simpler (at least for starters), let as consider a Bookings table with the following 4 fields: • StartDate • EndDate • gRangeStart • gRangeEnd The following script: Enter Find Mode[] Set Field [ Bookings::StartDate; "≤" & Bookings::gRangeEnd ] Set Field [ Bookings::EndDate; "≥" & Bookings::gRangeStart ] Perform Find [] will find all bookings that overlap the given range, either fully or partially. Open-ended bookings will not be included; for this, you'll need to add another request before performing the find.
Greg Hains Posted May 28, 2014 Author Posted May 28, 2014 Hi Lee. Thanks for this - I will have a look at the NightWing product. Hi Comment - yes, this is basically what I had - thanks. Given that it would be a new request, the open ended occupancies would assume that the client is still occupying a room so therefore if their date of occupation was after EITHER the gRangeStart or gRangeEnd then it would come back as positive in the search. e.g. Found-True. Would you agree with that? Many thanks to you both for taking the time. Cheers, Greg
comment Posted May 28, 2014 Posted May 28, 2014 the open ended occupancies would assume that the client is still occupying a room so therefore if their date of occupation was after EITHER the gRangeStart or gRangeEnd then it would come back as positive in the search. e.g. Found-True. Would you agree with that? Not really. In order to overlap with the given range, the open-ended booking must satisfy two conditions: [1] start before the end of the range; AND [2] be open-ended. To incorporate this into the above script, you could do: Enter Find Mode[] Set Field [ Bookings::StartDate; "≤" & Bookings::gRangeEnd ] Set Field [ Bookings::EndDate; "≥" & Bookings::gRangeStart ] Duplicate Record/Request Set Field [ Bookings::EndDate; "=" ] Perform Find [] 1
Greg Hains Posted May 28, 2014 Author Posted May 28, 2014 Hi Comment. Thanks for the extra information. I will apply it shortly and see how I go. :-) Cheers, Greg
Recommended Posts
This topic is 3830 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now