Dies ist eine alte Version des Dokuments!
Normalerweise druckt BonDroid alle Belege (Rechnungen) auf dem Belegdrucker aus der Konfiguration. Mit Beleg-Routing-Regeln legst du fest, dass bestimmte Belege woanders gedruckt werden.
Typische Einsätze:
| Schritt | Was? |
|---|---|
| 1. Verstehen | wie BonDroid den Drucker für einen Beleg auswählt |
| 2. Anlegen | Menü Stammdaten → Drucker-Administration → Beleg-Routingregeln |
| 3. Vorlage wählen | passendes Beispiel kopieren und Namen anpassen |
| 4. Testen | einen Testbeleg erstellen und prüfen, wo er herauskommt |
Für jeden Beleg — beim Bezahlen, bei Storno, Nullbeleg und Nachdruck — geht BonDroid so vor:
bill_printer — der Belegdruckerbill_backup_printer — der Beleg-ErsatzdruckerDruckt der gewählte Drucker nicht (kein Papier, ausgeschaltet, nicht erreichbar), wechselt BonDroid nach ca. 11 Sekunden auf den Ersatzdrucker.
| Nr. | Feld | Bedeutung |
|---|---|---|
| 1 | Name | Frei wählbar, damit du die Regel wiederfindest (max. 25 Zeichen, jeder Name nur einmal). |
| 2 | Aktiv | Nur aktive Regeln werden ausgeführt. Häkchen entfernen = Regel vorübergehend ausschalten. |
| 3 | Rule | Der Regel-Code (siehe Verfügbare Angaben und Beispiele). |
| 4 | Sichern | Speichert die Regel. Sie gilt ab dem nächsten Beleg. |
Die Reihenfolge änderst du in der Liste der Beleg-Routingregeln mit den Pfeilen in der Spalte Anordnen — die oberste Regel wird zuerst geprüft. Die Liste funktioniert genauso wie bei den Bon-Routing-Regeln.
if BEDINGUNG: printer_name = 'Druckername' backup_printer_name = 'Ersatzdruckername'
if sind eingerückt (4 Leerzeichen), das if endet mit einem Doppelpunkt.u davor: u'Überweisung'.
Mehr zu Schreibweisen (==, in, and …) findest du unter Kleine Bedingungs-Kunde.
| Angabe | Bedeutung | Beispielwert |
|---|---|---|
bill.total | Summe brutto in Euro | 42.50 |
bill.total_nv | Summe netto in Euro | 36.80 |
bill.total_vat | darin enthaltene Umsatzsteuer in Euro | 5.70 |
bill.tip_amount | Trinkgeld in Euro | 2.50 |
bill.payment_method | Zahlungsart, siehe unten | 'Bankomat' |
bill.bill_time | Zeitpunkt des Belegs — .hour = Stunde | bill.bill_time.hour → 21 |
bill.bill_user_id | ID des Kellners, der kassiert hat (Zahl) | 21 |
bill.bill_user_name | Benutzername des Kellners, der kassiert hat | 'Anna' |
bill.site_name | Name des Bereichs | 'Garten' |
bill.table_name | Name bzw. Nummer des Tisches | '05' |
bill.is_storno | True bei einem Storno-Beleg | False |
Zahlungsarten (bill.payment_method), wie die App sie sendet: 'Bar', 'Bankomat', 'Kreditkarte', u'Überweisung', 'Gutschein', 'GP tom' (siehe GP tom einrichten).
| Angabe | Bedeutung | Beispielwert |
|---|---|---|
bill_queue_entry.from_gui | True, wenn der Beleg in der Verwaltung über die Belegliste nachgedruckt wurde; False bei allen anderen Belegen (auch Nachdrucken aus der App) | False |
bill_queue_entry.request_user_name | Benutzername dessen, der den Druck ausgelöst hat | 'Anna' |
bill_queue_entry.request_user_id | ID dessen, der den Druck ausgelöst hat (Zahl) | 21 |
bill_queue_entry.queue_time | Zeitpunkt des Druckauftrags |
| Angabe | Bedeutung | Beispielwert |
|---|---|---|
main_printer | CUPS-Druckername des Druckers aus Schritt 1 bzw. 2 — also wo ohne Regel gedruckt würde | 'schank1' |
Alle Druckernamen in den Beispielen (Kassa, Schank 1 …) musst du durch die Namen deiner Drucker ersetzen.
Belege, die mit Bankomat-, Kredit- oder GP-tom-Karte bezahlt wurden, kommen an der Kassa heraus.
if bill.payment_method in ['Bankomat', 'Kreditkarte', 'GP tom']: printer_name = 'Kassa' backup_printer_name = 'Schank 1'
Belege von Tischen im Garten werden an Schank 2 gedruckt, alle anderen bleiben beim Standard.
if bill.site_name == 'Garten': printer_name = 'Schank 2' backup_printer_name = 'Schank 1'
Wer in der Verwaltung einen Beleg nachdruckt, sitzt meist im Büro — der Nachdruck soll dort herauskommen und nicht an der Schank.
if bill_queue_entry.from_gui: printer_name = 'Buero'
Belege bis 30 Euro werden auf den virtuellen Drucker „Nirvana“ umgeleitet (Drucker mit Häkchen Virtuell, siehe Druckernamen) und damit nicht ausgedruckt. Ein Nachdruck aus der Verwaltung wird trotzdem gedruckt.
if bill.total <= 30 and not bill_queue_entry.from_gui: printer_name = 'Nirvana'
Den zuletzt „gedruckten“ Beleg siehst du in der Verwaltung unter Drucker → Virtuelle Drucker. Prüfe vorher, ob das zu deiner Belegerteilungspflicht passt.
Es gibt keinen Testknopf und keine Fehlermeldung beim Speichern. Eine Regel mit Tippfehler wird einfach übersprungen — der Beleg kommt dann aus dem Standarddrucker. Erstelle deshalb nach jeder Änderung einen Testbeleg, der die Regel treffen sollte, und prüfe, wo er herauskommt.
| Problem | Mögliche Ursache |
|---|---|
| Keine Regel wirkt | In der Konfiguration steht bill_printer = virtual — dann laufen keine Beleg-Routingregeln |
| Eine Regel wirkt nicht | Häkchen Aktiv fehlt · Druckername falsch (in Regeln den Namen, nicht den CUPS-Namen) · Einrückung oder Doppelpunkt fehlt · Umlaut ohne u davor |
| Regel wirkt nur manchmal | Eine weiter oben stehende Regel greift zuerst — Reihenfolge prüfen |
| Kellner-Belege kommen woanders heraus als erwartet | Eine Drucker-Benutzer-Zuordnung ist aktiv — Regeln werden erst danach geprüft und haben das letzte Wort |
| Beleg kommt aus dem Ersatzdrucker | Der Drucker druckt nicht (Papier, Strom, Netzwerk) — BonDroid ist nach ca. 11 Sekunden ausgewichen |
Kommst du nicht weiter, schick uns den Regel-Code — wir schauen ihn uns gerne an.