Hotel front office

Change Room (mid-stay transfer)

Move an in-house guest to a different room mid-stay. Common reasons: broken AC, upgrade, noise complaint, type swap. The server handles the atomic dance — close the old line, open a new one under the same folio, flip room links, and stamp an audit row.

How to open

  • Room Status Board (the usual way): click the guest's room → Change Room. The wizard asks for the destination room, then the billing for it (choose the same billing interval, e.g. Daily — the rate carries over), then shows a summary. Click Confirm Change Room. No money is collected: the new room's charges accrue on the same folio.
  • Booking Calendar: right-click an Occupied band → Change room….

Steps

  1. Pick the target room from the Move to room dropdown. Search by name; the dropdown shows every room.
  2. Add an optional reason — e.g. "AC broken", "guest requested upgrade", "noise complaint". This goes into the room-change audit log.
  3. Click Change room.

The page refreshes and the band is now on the new room's row, starting from the current moment. The former room enters the housekeeping queue as Dirty.

What happens server-side

  1. The former InvoiceDetailSpace is closed: CheckedOut = true, TimeOut = now, ActualCheckOutTime = now, HasBeenCleaned = false.
  2. The former room's ReservationSpace.TransactionLink clears, and SpaceStatus flips to CleanUp.
  3. A new InvoiceDetailSpace is appended under the SAME InvoiceDetail, with SpaceID = target, TimeIn = now, TimeOut = original scheduled end, and the rate / tax flags carried over verbatim.
  4. The target room's TransactionLink repoints at the new line; SpaceStatus flips to Occupied.
  5. A RoomChangeAudit row stamps FormerRoom, NewRoom, TimeOfChange, ReasonForChange, EditorID, and the former room's original FormerRoomCheckInTime.

Guards

The server rejects the change with a clear message when:

  • The source is already checked out.
  • The target is the same as the source.
  • The target is currently occupied (any in-flight billing).
  • The target is OutOfUse / Maintenance / Renovation.
  • The target has an active RoomBlock overlapping the remaining stay.

Tips

  • The new room's rate carries over from the old one. If you want to charge a different rate (e.g. for an upgrade), post the rate difference as a manual folio charge after the change.
  • The audit log lets the night auditor reconstruct which room was used when during the stay — important for incident investigations.

Common problems

  • "Target room is currently occupied" → Pick a vacant room. The vacancy check looks at in-flight billing, not just status flags.
  • "Target room has an active block" → Maintenance / Cleaning / Damage block covers part of the remaining stay. Either end the block first, or pick a different room.
  • The change happened but the calendar still shows the old room → The page refetches automatically; if you've been on it a while, hit Refresh in the toolbar.

See it working on your own business

Start a 45-day free trial — no card needed — and follow this guide in your own practice company.