Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
bon_routing_regeln [2024/06/18 11:10] bondroid |
bon_routing_regeln [2024/11/13 17:40] (aktuell) bondroid |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| Standardmäßig werden Produkte auf dem Drucker der jeweiligen Produktgruppe gedruckt. | Standardmäßig werden Produkte auf dem Drucker der jeweiligen Produktgruppe gedruckt. | ||
| Um dieses Verhalten zu überschreiben können Routing-Regeln verwendet werden. | Um dieses Verhalten zu überschreiben können Routing-Regeln verwendet werden. | ||
| - | Bei Routing-Regeln handelt es sich um Python-Code. Dieser Programm-Code wird für jede Position einer Bestellung ausgeführt. Werden im Code die Variablen printer_name und backup_printer_name gesetzt, wird der Drucker für dieses Produkt geändert. | + | Bei Routing-Regeln handelt es sich um Python-Code. Dieser Programm-Code wird für jede Position einer Bestellung ausgeführt. Werden im Code die Variablen printer_name und backup_printer_name gesetzt, wird der Drucker für dieses Produkt geändert. Der Wert der Variable printer_name muss einem logischen Druckernamen (Stammdaten->Druckerverwaltung->Drucker) entsprechen. |
| ==== verfügbare Variable ==== | ==== verfügbare Variable ==== | ||
| + | === OrderPos Objekt === | ||
| + | pos.product_id Produkt ID (int) | ||
| + | pos.product_name Produkt Name (string) | ||
| + | pos.count Anzahl (int) | ||
| + | pos.product_group_id Produktgruppen ID (int) | ||
| + | pos.product_group_name Produktgruppen Name (string) | ||
| - | pos OrderPos Objekt | + | === OrderPos Objekt === |
| - | pos.product_id | + | pos.order.order_time Bestellzeit (datetime.datetime) |
| - | pos.product_name | + | pos.order.user_id Benutzer ID des Bestellers (int) |
| + | pos.order.user_name Benutzer Name des Bestellers (string) | ||
| + | pos.order.site_id Bereichs ID (int) | ||
| + | pos.order.site_name Bereichs Name (string) | ||
| + | pos.order.table_id Tisch ID (int) | ||
| + | pos.order.table_name Tisch Name (string) | ||
| - | pos.order Order Objekt | + | ==== Beispiele ==== |
| - | + | === Round Robin by order_time === | |
| - | + | Hier werden Produkte der Produktgruppe Getränke (produt_group_id = 1) abhängig von der Bestellsekunde auf den Druckern "Schank 1" oder "Schank 2" gedruckt. | |
| - | + | ||
| - | + | ||
| - | round robin | + | |
| if pos.product_group_id in [1, ]: | if pos.product_group_id in [1, ]: | ||
| Zeile 24: | Zeile 32: | ||
| printer_name = 'Schank 2' | printer_name = 'Schank 2' | ||
| backup_printer_name = 'Schank 1' | backup_printer_name = 'Schank 1' | ||
| + | | ||
| + | === Drucker pro Bereich === | ||
| + | Hier werden Produkte der Produktgruppe Getränke (produt_group_id = 1) abhängig vom Bereich auf den Druckern "Schank 1" oder "Schank 2" gedruckt. | ||
| + | |||
| + | if pos.product_group_id in [1, ]: | ||
| + | if pos.order.site_name == "Halle" or pos.order.site_name == "Zelt": | ||
| + | printer_name = 'Schank 1' | ||
| + | backup_printer_name = 'Schank 2' | ||
| + | else: | ||
| + | printer_name = 'Schank 2' | ||
| + | backup_printer_name = 'Schank 1' | ||
| + | | ||
| + | === Drucker für ein bestimmtes Produkt ändern (id match) === | ||
| + | Wenn die Produkt-ID 22 oder 23 ist, sollen diese Produkte auf dem Drucker "Bier" gedruckt werden. | ||
| + | |||
| + | if pos.product_id in [22, 23]: | ||
| + | printer_name = 'Bier' | ||
| + | backup_printer_name = 'Schank 1' | ||
| + | |||
| + | === Drucker für ein bestimmtes Produkt ändern (string match) === | ||
| + | Wenn der Sting Waffel im Namen des Produkts enthalten ist, wird der Drucker auf Waffeln geändert. | ||
| + | | ||
| + | if 'Waffel' in pos.product_name: | ||
| + | printer_name = 'Waffeln' | ||
| + | backup_printer_name = 'Kueche' | ||