casposbridge README: results from the CASPOS 4.12.3 test POS

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DanielS
2026-11-11 23:53:46 +01:00
parent b3b79960e7
commit f038311614

View File

@@ -73,11 +73,19 @@ docker compose -f docker-compose.yml -f docker-compose.server.yml exec -d -u www
docker compose -f docker-compose.yml -f docker-compose.server.yml exec -u www-data app php docker/test-casposbridge.php
```
## Gegen eine echte Kasse noch zu prüfen
## Erfahrungen mit einer echten Kasse (CASPOS 4.12.3, 2026-11-11)
Die API ist aus dem Quellcode der CASPOS OrderApp (`lib/api/api.dart`) abgeleitet, nicht aus einer Doku:
Die API ist aus dem Quellcode der CASPOS OrderApp (`lib/api/api.dart`) abgeleitet; an einer Testkasse bestätigt:
- Einheit von `enteredPrice` (Annahme: Cent) – nur relevant für `@preis`.
- Legt `openByName` unbekannte Tische an oder müssen sie existieren?
- Muss der Client einmalig in der Kasse freigeschaltet werden?
- Verhalten von `finalizeOrder` gegenüber TSE und Bonausgabe (Bestellbon für Zimmer-Tische ggf. abschalten).
- **Gerät freischalten:** Beim ersten Kontakt erscheint „Hotel QloApps“ im *Order-App Gerätemanager* der Kasse
und muss dort eingeschaltet werden (vorher 403 „Dieses Gerät ist in der CASPOS noch nicht aktiviert“).
Die Kasse erkennt den Gerätetyp am User-Agent: nur Clients mit `OrderApp/…` lassen sich aktivieren, alles
andere wird als „Orderman“ geführt und ist gesperrt. Das Modul sendet deshalb `OrderApp/1.4.0 (linux) QloApps-CasposBridge/1.0`.
Jedes aktivierte Gerät belegt eine der OrderApp-Lizenzen („x / 4 Geräte aktiviert“).
- **Kellner:** Kellner-Nummer und Schlüssel des Kassierers (z. B. KS 01 = `1`).
- **Tischnummern:** Jeder Tischbereich hat einen festen Nummernbereich; andere Nummern lehnt die Kasse mit
„Ungültige Tischnummer … für den gewählten Servicebereich“ ab. Freie Tische im Bereich öffnet `openByName`
selbst. Die Zimmernummern in QloApps müssen also gültige Tischnummern des Hotel-Bereichs sein (Testkasse: 101 …).
- **Preise:** `enteredPrice` ist in Cent (gesendet 14500 → 145,00 €; `bookedAmount` des Tisches ebenfalls in Cent).
- **Abschluss:** Nach `finalizeOrder` stehen die Positionen mit Status `committed` auf dem Tisch.
- Noch an der Kasse anzusehen: ob für Zimmer-Tische ein Bestellbon gedruckt wird und wie die TSE den Vorgang protokolliert.