Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
bon_routing_regeln [2024/06/15 15:33] bondroid angelegt |
bon_routing_regeln [2024/11/13 17:40] (aktuell) bondroid |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | round robin | + | Standardmäßig werden Produkte auf dem Drucker der jeweiligen Produktgruppe gedruckt. |
| + | 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. Der Wert der Variable printer_name muss einem logischen Druckernamen (Stammdaten->Druckerverwaltung->Drucker) entsprechen. | ||
| - | if pos.product_group_id in [1, ]: | + | ==== verfügbare Variable ==== |
| - | if pos.order.order_time.second % 2 == 0: | + | === OrderPos Objekt === |
| - | printer_name = 'Schank 1' | + | pos.product_id Produkt ID (int) |
| - | backup_printer_name = 'Schank 2' | + | pos.product_name Produkt Name (string) |
| - | else: | + | pos.count Anzahl (int) |
| - | printer_name = 'Schank 2' | + | pos.product_group_id Produktgruppen ID (int) |
| - | backup_printer_name = 'Schank 1' | + | pos.product_group_name Produktgruppen Name (string) |
| + | |||
| + | === OrderPos Objekt === | ||
| + | pos.order.order_time Bestellzeit (datetime.datetime) | ||
| + | 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) | ||
| + | |||
| + | |||
| + | ==== 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. | ||
| + | |||
| + | if pos.product_group_id in [1, ]: | ||
| + | if pos.order.order_time.second % 2 == 0: | ||
| + | printer_name = 'Schank 1' | ||
| + | backup_printer_name = 'Schank 2' | ||
| + | else: | ||
| + | printer_name = 'Schank 2' | ||
| + | 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' | ||