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