Zum Inhalt

Konfiguration

Voraussetzungen am CCO Manager

Die Table Areas, auf die die Pläne der tableplan.json zeigen (plans[].tableArea), müssen am Manager existieren und dem Org-Knoten der Kasse (bzw. root) zugewiesen sein.

Stockwerke und Bereiche bildet man über Table Areas ab: eine Area pro Etage, ein Plan pro Area. Der Stockwerk-Wechsler (Dropdown links unten in der Tischübersicht) erscheint erst ab zwei für die Kasse sichtbaren Areas.

Berechtigungen

Das Plugin bringt keine eigenen Rollen mit, sondern nutzt vorhandene CCO-Berechtigungen:

Berechtigung Wirkung im Tischplan
SETTINGS_SCREEN Zeigt den Knopf „Plan bearbeiten". Wer die Kasseneinstellungen öffnen darf, darf auch den Raum umstellen — eine Servicekraft sieht den Knopf nicht.
TABLE_SEE_AMOUNT_OF_OTHER_TABLES Zeigt Beträge auch auf Tischen anderer Kellner (orange). Ohne die Berechtigung sieht man dort nur den Kellnernamen.

Plugin-Einstellungen

Unter Konfiguration → Plugins → TablePlanPlugin an der Kasse (bzw. per Umgebungsvariable, etwa im Container):

Einstellung Umgebungsvariable Bedeutung
hubUrl TABLEPLAN_HUB_URL Adresse des Tischplan-Hubs. Leer = kein Hub, die Kasse arbeitet nur mit ihrer lokalen Datei.
hubToken TABLEPLAN_HUB_TOKEN Zugangstoken für den Hub.
hubTenant TABLEPLAN_HUB_TENANT Name des Betriebs am Hub (Default default).
hubPollSeconds — Wie oft die Kasse den Hub im Hintergrund nach Änderungen fragt (Default 20 Sekunden; die Anfrage ist ein paar hundert Byte klein).

Die Umgebungsvariable dient als Vorgabe; ein in den Plugin-Einstellungen gesetzter Wert geht vor.

Die Layoutdatei

Der Plan liegt als tableplan.json neben dem Plugin-Jar (<POS-Datenverzeichnis>/POSPlugins/AP/tableplan.json). Aufbau, Felder und Beispiele: tableplan.json — Layout-Format.

Die Datei wird zur Laufzeit gelesen: Beim Öffnen des Tischplan-Tabs holt die Oberfläche den aktuellen Stand — eine Änderung wirkt sofort, ohne Kassenneustart. Jede Speicherung schreibt atomar und legt Sicherungen an (tableplan.json.1 … tableplan.json.5).

Die Tab-Beschriftung steuert das Feld title in der Datei (Default „Tischplan"; die Kasse rendert Tab-Beschriftungen in Großbuchstaben).

Zugriff über Rechnernamen oder Reverse Proxy

Die Kasse akzeptiert schreibende Aufrufe (z. B. das Speichern des Plans) nur, wenn die Adresse im Browser zu ihr passt — localhost, ihr eigener Rechnername oder eine ihrer IP-Adressen. Wird die Kassen-Oberfläche unter einem anderen Namen aufgerufen (DNS-Alias, Reverse Proxy), muss dieser Name in der CCO-Einstellung internal.web.server.remoteAccessAllowedHosts (customerCheckout.properties) stehen. Lesen funktioniert auch ohne — der Tischplan erscheint dann zwar, aber Speichern scheitert mit HTTP 403.