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.table_name == "Halle" or pos.order.table_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'