Is it possible to extend the functionality of the drupal rooms module to incooporate "house keeping" functionality. For the moment rooms are available as

  • unavailable
  • available
  • on request
  • anonymous booking

If one could extent this to

  • unavailable, not checked in
  • unavailable, checked in
  • available, room dirty
  • available, room clean
  • on request # I don't need this
  • anonymous booking # I don't need this

and give it a nice UI, while not showing the options after the coma, one would have basic house keeping functionality. If customer books online, it gets set to "unavailable, not checked in". Once checked in, internally it is being changed to "unavailable, checked in". If the customer checks out, it is being changed to "available, room dirty" and once the room is made, internally it is being updated to "available, room clean". For short term booking, like arrival within the hour or two, one can only book "available, room clean".

Comments

jwilson3’s picture

I wouldn't want to mix availability state with checkin status and housekeeping state, but keep these things separate. After all, a room could be occupied and still need cleaning. I guess this depends on how tightly you control your housekeepers or how you intend to use this feature, but suffice it to say that the Availability status should be kept as simple as possible for the booking / availability engine to work correctly. Availability works on a continuum and each day in the calendar year has a different availability state based on whether a room is *reserved* or not. This is completely different from Housekeeping and checkin state which can only relate to the *current day* and *current customer*.

I would go about this in the following way:

  1. Add a custom text list field with radio buttons widget called 'Housekeeping' to all Unit types. (Admin > Rooms > Units > Unit Type > Manage Fields), add the necessary options you need: "Room clean", "Needs cleaning", "Customer requested cleaning", etc.
  2. Add another custom field with single on/off checkbox widget called 'Checkin status' to all Unit types. Add an on value of 'Checked in' or 'Occupied'.
  3. Add some rules integration or custom code that executes the automated updates of this status to the various values needed when users check-in online.
  4. Add a business process whereby your receptionist staff can update the units checkin status when clients arrive, and modify the housecleaning status if they request that the room be cleaned or skipped or whatever.
  5. Add a business process whereby your housecleaning staff can *view* the Checkin status, and update the units housecleaning status on a daily basis as necessary.
  6. Create a view that let you create reports on a daily basis showing current availability status, checkin status and housecleaning status.
ashzade’s picture

Here's how we did it.

  1. Added a Cleaning field to the unit: Needs Cleaning / Clean
  2. Added a Checked-out field to Bookings
  3. Created a Rule that says when a Booking - Checked-out=Yes, Find the Unit, Change the value of Cleaning = Needs Cleaning
  4. Created a view for the Cleaners that shows the Units that have Cleaning = Needs Cleaning and made that field editable in the view so that they can update them as they go or when they get back to the backroom
  5. The front desk always has a live view of which rooms are clean when someone checks in and which need cleaning: Added the Cleaning field to the booking view, which they're always looking at so when someone walks in ready to check-in, they know if the unit is clean or not before sending them up.

It is pretty much what jwilson3 describes, which makes me happy because I wasn't sure if there was a better way.

pozzo-balbi’s picture

Thanks, I will work on it this weekend and see, if it fits.