Benutzer-Werkzeuge

Webseiten-Werkzeuge


beleg_routing_regeln

Dies ist eine alte Version des Dokuments!


Beleg-Routing-Regeln

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:

  • Kartenzahlungen an der Kassa drucken, wo auch das Kartenterminal steht.
  • Je Bereich einen eigenen Belegdrucker — z. B. Belege aus dem Garten an Schank 2.
  • Nachdrucke aus der Verwaltung immer im Büro drucken.
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

💡 Gut zu wissen

  • Beleg-Routing-Regeln funktionieren genauso wie die Bon-Routing-Regeln — dort sind Aufbau, Schreibweisen und Druckernamen ausführlich erklärt.
  • Soll ein Kellner seine Belege immer auf einem bestimmten Drucker bekommen, brauchst du keine Regel: Dafür gibt es die Drucker-Benutzer-Zuordnung (siehe Schritt 2).


So entscheidet BonDroid

Für jeden Beleg — beim Bezahlen, bei Storno, Nullbeleg und Nachdruck — geht BonDroid so vor:

  1. Standard aus der Konfiguration (Stammdaten → Einstellungen → Konfigurationen):
    • bill_printer — der Belegdrucker
    • bill_backup_printer — der Beleg-Ersatzdrucker
  2. Drucker-Benutzer-Zuordnung (Stammdaten → Drucker-Administration → Drucker-Benutzer-Zuordnungen): Hat der Kellner, der kassiert hat, einen eigenen Drucker, kommt sein Beleg dort heraus. Ersatzdrucker ist dann der normale Belegdrucker.
  3. Beleg-Routingregeln: Alle Regeln mit Häkchen Aktiv werden von oben nach unten geprüft. Die erste Regel, die einen gültigen Drucker setzt, gewinnt — die Regeln darunter werden nicht mehr geprüft.
  4. Keine Regel passt: Es bleibt beim Drucker aus Schritt 1 bzw. 2.

Druckt der gewählte Drucker nicht (kein Papier, ausgeschaltet, nicht erreichbar), wechselt BonDroid nach ca. 11 Sekunden auf den Ersatzdrucker.

⚠ Zwei verschiedene Druckernamen

  • In der Konfiguration (bill_printer, bill_backup_printer) steht der CUPS-Druckername, z. B. schank1.
  • In einer Regel (printer_name, backup_printer_name) steht der Name des Druckers, z. B. Schank 1.
  • Beide findest du unter Stammdaten → Drucker-Administration → Drucker — siehe Druckernamen.
  • Steht in bill_printer der Wert virtual, werden Belege gar nicht gedruckt und keine Beleg-Routingregel ausgeführt.


Regel anlegen

  1. In der BonDroid Verwaltung Stammdaten → Drucker-Administration → Beleg-Routingregeln öffnen.
  2. Rechts oben Beleg-Routingregel hinzufügen anklicken.
  3. Formular ausfüllen und Sichern.
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.

Aufbau einer Regel

if BEDINGUNG:
    printer_name = 'Druckername'
    backup_printer_name = 'Ersatzdruckername'
  • printer_name — auf welchem Drucker der Beleg gedruckt wird (Name aus der Druckerliste).
  • backup_printer_name — welcher Drucker einspringt, wenn dieser nicht druckt. Optional.
  • Die Zeilen unter dem if sind eingerückt (4 Leerzeichen), das if endet mit einem Doppelpunkt.
  • Texte mit ä, ö, ü, ß brauchen ein u davor: u'Überweisung'.

Mehr zu Schreibweisen (==, in, and …) findest du unter Kleine Bedingungs-Kunde.


Verfügbare Angaben

Der Beleg: bill

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).

Der Druckauftrag: bill_queue_entry

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

Der Standarddrucker: main_printer

Angabe Bedeutung Beispielwert
main_printer CUPS-Druckername des Druckers aus Schritt 1 bzw. 2 — also wo ohne Regel gedruckt würde 'schank1'

Beispiele

Alle Druckernamen in den Beispielen (Kassa, Schank 1 …) musst du durch die Namen deiner Drucker ersetzen.

Kartenzahlungen an der Kassa drucken

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'

Belegdrucker je Bereich

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'

Nachdrucke aus der Verwaltung ins Büro

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'

Kleine Belege nicht drucken

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.


Testen und Fehlersuche

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.

beleg_routing_regeln.1790924497.txt.gz · Zuletzt geändert: von bondroid