Skip to main content

Tables and floor plans

Floor plan = restaurant zone​

A floor plan represents a physical zone: main dining room, terrace, bar, private room, VIP. Each plan has its own canvas with coordinates and groups the tables that live in that zone.

A restaurant can have one or several active plans at the same time.

Create, rename, delete plans​

In the editor (Settings → Tables):

  • + New zone → dialog with name. Creates a 1000x700 px canvas.
  • Rename → edit the name on the active tab.
  • Delete zone → only if you have more than one plan. The tables aren't deleted, they're just unlinked and you can reassign them.

Create tables and move them with drag & drop​

  • + New table creates a table at the center of the canvas with an auto-generated name and capacity 2.
  • Drag & drop on the canvas with snap to a 20 px grid.
  • Drag threshold: 8 px (on tablet/mobile this prevents accidental drags on taps).

"Undo" button after moving​

When you move a table, a toast with an Undo button appears. It captures the previous position and lets you revert with one click. Covers 90% of the real case (accidental drag during peak service).

Table properties​

  • Capacity: how many people fit.
  • Shape: rectangle (default) or circle.
  • Rotation: 0-359 degrees, with quick -90 / +90 buttons.
  • Visual size: 40-400 px width/height (does not affect capacity).
  • Zone: dropdown to reassign to another plan without moving it visually.

Merge group: combine tables for large groups​

For groups that take up several tables:

  1. In the table list, the Combines with column - you enter a code (A, B, Group 1).
  2. The Order column - you number the tables in the group (1, 2, 3).

When a large reservation needs that group, RestaPro assigns the tables as a block. They're highlighted as a set visually.

One-off table block​

Table blocks mark a table as unassignable during a time range:

  • Maintenance ("table 4's leg broke").
  • Private event at a specific table.
  • Zone reconfiguration.

In the service view, the table appears in gray (blocked state) and isn't offered as an assignment option. It expires by itself when the range ends.

Visual states​

ColorStateMeaning
Light greenFreeNo reservation or block
Light redBusyConfirmed reservation in this time slot
Dark greenSeated (arrived)Customer is on the floor
GrayBlockedActive table_block
BlueSelectedMarked for editing

Badges can appear on each table: red ⚠ (high-risk customer), gold star (frequent customer), clock (minutes seated / overstay).

Live service view​

/app/local takes you to a tablet-optimized screen for floor/expediter use:

  • Large floor plan with every table.
  • Sidebar with the day's reservations sorted by urgency.
  • Live KPIs: seated, free tables, pending, no-shows today, occupancy.
  • Drag & drop from the sidebar to a table to assign reservations.

In kiosk mode there's also the global "Accept reservations" toggle that closes the public channel indefinitely (careful: it doesn't reopen by itself, see Service pause for temporary closures).

Mobile​

The floor plan can be scrolled with your finger. Pinch zoom isn't implemented yet. For quick reassignments, open the reservation detail and use the table selector.

ESENCA