Bump Bar for Kitchen display

Sounds good. I look forward testing. Thank you.

I was going to demonstrate a 3rd method which is also the “original” method that is talked about early on in this thread, with a single Widget and a sequence like:

1,1,1,Recall,Recall,Recall

That ^ is the the way the original concept of Bump Bar operation is explained, and it would be good to be able to operate in that fashion if that is what people are used to. It alleviates the need of using Arrow Keys to move around between Cards.

But again (still), we are limited to a single Recall command. @emre, any chance you could increase the “Recall Queue”?

OK. As I’ve said before having a longer recall queue may confuse users but seems like you want that. So can you help me to understand what will happen in that case?

1>1>R>1>R>R

What should last recall do?

I assume it should be treated as a stack. Last On, First Off.

1 2 3 4  (position)
A B C D  (order name)

                Incomplete  RecallStack
Position:        1 2 3 4
(start)          A B C D
1 Complete A     B C D      A
1 Complete B     C D        BA
R Recall B       B C D      A
1 Complete B     C D        BA
R Recall B       B C D      A
R Recall A       A B C D

That is the way I would think it should go. If not, others should chime in.

2 Likes

Method 3 using single widget and no arrow keys. Sequence is:

1,1,1,Recall,Recall,Recall

We set the maximum Recall Queue in the Task Editor Widget Settings …

This Rule handles the Task Completion and Recalls …

1 Like

DB Tools file containing:

  • Bump Bar Task Type
  • Entity Screen
  • Printer, Template, Print Job
  • Automation for controlling the BB Screen, includes 3 Rules for different scenarios:
  • 1 Widget with no arrows - reacts to numeric keys (complete task) and Backspace Key (recall)
  • 1 Widget with left/right arrows - reacts to numeric keys (complete task), left/right arrow keys (Task Selection), and Backspace Key (recall)
  • 2 Widgets with up/down arrows - reacts to numeric keys (complete task), up/down arrow keys (Task Selection), and Backspace Key (recall)

The biggest part of the setup is the Entity Screen. So the hard part has been done for you.

Of the 3 Rules described above, the first 2 are not mapped, so they are disabled. Only the 3rd Rule has a mapping. They are not meant to work together, so you should only have 1 Rule mapped at a time. So if you enable mapping on a Rule, make sure you delete the mapping for the other 2 Rules.

Everything contained in this file has a “BB” prefix.

BB_EntityScreen_TaskType_Printer_Automation.zip (3.3 KB)


The following DB Tools file is from the Kitchen Display (separate Tutorial) and it contains the Automation responsible for Printing the BB Tasks by handling KDStatus Order State and firing the BB Print Job.

Everything contained in this file has a “KD” prefix.

BB_KDStatus_KDPrinting.zip (1.2 KB)

3 Likes

I just imported the 2 DB Tools files into a fresh database on 5.1.61 and the entity screen showing KD and BB doesn’t appear to work. It just looks like this:

Sending orders to kitchen makes no difference.

Am I missing something? Was there something I had to setup manually in addition to the DB Tools import?

That seems to be a bug or feature missing from DB export/import that it does not restore Widgets to the proper position when using Layout Mode. All required widgets are there, and their settings should be correct as well… you just need to position them.

So you need to go into Design mode, grab and drag those widgets to where they should be.

grab 1 and move it to right of x
grab 2 and move it to right of 1
grab 3 and move it to right of 2

highlight the Task Editor Widget and expand it to full height.

Ok I have rearranged the widgets, it looks similar as your screenshots except the header captions are missing as are the group captions above the bump bar buttons (“Bump Bar” and “Recall Controls”) - there seems to be no widget there to hold those.

However it is not working. See below, I think a lot of settings are missing for the widgets, either missing in the DB Tools file or possibly a bug with 5.1.61 beta ?

Did you tagged your menu items as food and drink?

Yes. The tag was not created also by DB Tools import. I saw in some rules {ITEM TAG:ItemType} so I added the Product Tag ItemType and applied “Food” to food items:

Automation is looking for itemType with lowercase i … so you need to either rename your caption and re-tag everything, or change any Constraints to look for ItemType with uppercase I.

Does not appear so, I haven’t modified any of these from what was added by the DB Tools import…everything is set with uppercase IItemType

Maybe you can test your DB Tools files by importing into a fresh DB just as I did…

I stand corrected then. In recent implementations on my own system, it uses productType for the Caption.

No thanks :wink:

Check your Print Jobs for proper filtering by Product Tag. And troubleshoot the Rules with Show Message action. Will be good to know what you find to be the cause.

Here is the KD config that I use… the BB automation is separate… and you can ignore the “HUB” Actions in the Rules… they are for GQL-Modules.


##Actions

##KD Update Order KDStatus [Update Order State] (Action)##

Action Name: KD Update Order KDStatus
Action Type: Update Order State
###Parameters:###
State Name: KDStatus
Group Order:
Current State: [:CurrentState]
State: [:NewState]
State Order:
State Value:

##KD Execute Print Job - ANY [Execute Print Job] (Action)##

Action Name: KD Execute Print Job - ANY
Action Type: Execute Print Job
###Parameters:###
Print Job Name: KD Print Tasks - ANY
Print Ticket: True
Ticket Ids:
High Priority: [:hiPriority]
Order State Name: [:orderStateName]
Order State: [:orderState]
Order State Value:
Order Tag Name:
Order Tag Value:
Ignore Selected Orders: [:ignoreSelectedOrders]
Copies: 1

##Rules

##KD Order Added to Ticket - ANY [Order Added] (Rule)##

Rule Name: KD Order Added to Ticket - ANY
Event Name: Order Added
Rule Tags:
Custom Constraint List (0):
Execute Rule if: Matches

##Actions (2):##

KD Update Order KDStatus

Constraint: ‘{ITEM TAG:productType}’ == ‘Food’

CurrentState:
NewState: FNotPrinted
KD Update Order KDStatus

Constraint: ‘{ITEM TAG:productType}’ == ‘Drink’

CurrentState:
NewState: DNotPrinted

##Mappings##

Mappings
Terminal User Role Department Ticket Type
* * * *

##KD Update Printed Status - Food - Void or Cancel Void [Automation Command Executed] (Rule)##

Rule Name: KD Update Printed Status - Food - Void or Cancel Void
Event Name: Automation Command Executed
Rule Tags:
Custom Constraint List (3):
Execute Rule if: Matches
Automation Command Name Equals Void
Automation Command Name Equals Cancel Void
{ITEM TAG:productType} Contains Food

##Actions (1):##

KD Update Order KDStatus

Constraint: (none)

CurrentState:
NewState: FNotPrinted

##Mappings##

Mappings
Terminal User Role Department Ticket Type
* * * *

##KD Ticket Closing - Update KDStatus - Food [Ticket Closing] (Rule)##

Rule Name: KD Ticket Closing - Update KDStatus - Food
Event Name: Ticket Closing
Rule Tags:
Custom Constraint List (0):
Execute Rule if: Matches

##Actions (1):##

KD Update Order KDStatus

Constraint: (none)

CurrentState: FNotPrinted
NewState: FPrinting

##Mappings##

Mappings
Terminal User Role Department Ticket Type
* * * *

##KD Ticket Closing - Update KDStatus - Drinks (Print) [Ticket Closing] (Rule)##

Rule Name: KD Ticket Closing - Update KDStatus - Drinks (Print)
Event Name: Ticket Closing
Rule Tags:
Custom Constraint List (0):
Execute Rule if: Matches

##Actions (3):##

KD Update Order KDStatus

Constraint: (none)

CurrentState: DNotPrinted
NewState: DPrinting
KD Execute Print Job - ANY

Constraint: (none)

hiPriority:
orderStateName: KDStatus
orderState: DPrinting
ignoreSelectedOrders:
KD Update Order KDStatus

Constraint: (none)

CurrentState: DPrinting
NewState: DPrinted

##Mappings##

Mappings
Terminal User Role Department Ticket Type
* * * *

##KD Print Order - Food [Order State Updated] (Rule)##

Rule Name: KD Print Order - Food
Event Name: Order State Updated
Rule Tags:
Custom Constraint List (4):
Execute Rule if: Matches
State Name Equals KDStatus
State Equals FPrinting
Previous State Equals FNotPrinted
{ITEM TAG:productType} Contains Food

##Actions (3):##

KD Execute Print Job - ANY

Constraint: (none)

hiPriority:
orderStateName: KDStatus
orderState: FPrinting
ignoreSelectedOrders:
KD Update Order KDStatus

Constraint: (none)

CurrentState: FPrinting
NewState: FPrinted
HUB ExecAMC

Constraint: (none)

AMCname: HUB Broadcast - Task Printed
AMCvalue: {ITEM TAG:productType}
runInBG:
delay:

##Mappings##

Mappings
Terminal User Role Department Ticket Type
* * * *

##Templates

##KD Template - Food (Printer Template)##

Template Name: KD Template - Food
Sort Orders:
Merge Lines: Don't Merge

Template:

[LAYOUT]
{ORDERS}

[ORDERS]
++{ORDER TIME} - {ENTITY NAME:Table} {ENTITY NAME:Customer}
(Id={ORDER ID}-{NAME}-{TICKET ID}-{ORDER UID})
(Color=#FF333333)
<div class="KD_Task_Product"><span class="KD_Task_Product_Quantity">[=('{QUANTITY}'>1 ? '{QUANTITY}' : '')]</span> {PRODUCT NAME}</div>
[='{PORTION}'=='' ? '' : '<div class="KD_Task_Portion">{PORTION}</div>']
{SORTED ORDER TAGS}

[ORDERS:Gift]
<color White><bold><size 16><font Consolas>[=('{QUANTITY}'+'  ').substr(0,2)] {PRODUCT NAME}</font></size></bold></color>[='{PORTION}'=='' ? '' : '<font Consolas> <color #FF55FF33><size 14><italic>{PORTION}</italic></size></color></font>'] <bold> FREE</bold>
{SORTED ORDER TAGS}

[ORDERS:Void]
++{ORDER TIME} - {ENTITY NAME:Table} {ENTITY NAME:Customer}
(Id={ORDER ID}-{NAME}-{TICKET ID}-{ORDER UID})
(Color=#FF550000)
XXXXX VOID XXXXXXXXXXXXXXX
<div class="KD_Task_Product">[=('{QUANTITY}'>1 ? ('{QUANTITY}'+'  ').substr(0,2) : '  ')] {PRODUCT NAME}</div>
[='{PORTION}'=='' ? '' : '<div class="KD_Task_Portion">{PORTION}</div>']
{SORTED ORDER TAGS}

[SORTED ORDER TAGS:VIP Discount]
-- do not print

[SORTED ORDER TAGS:Happy Hour Discount]
-- do not print

[SORTED ORDER TAGS:Bread]
-- do not print

[SORTED ORDER TAGS:Meat]
<div class="KD_Task_OrderTags KD_Task_OrderTags_Meat"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> {ORDER TAG NAME}</div>

[SORTED ORDER TAGS:Cheese]
<div class="KD_Task_OrderTags KD_Task_OrderTags_Cheese"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> {ORDER TAG NAME}</div>

[SORTED ORDER TAGS:ExtraAddons]
<div class="KD_Task_OrderTags KD_Task_OrderTags_ExtraAddons"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> {ORDER TAG NAME}</div>

[SORTED ORDER TAGS:Veggies]
<div class="KD_Task_OrderTags KD_Task_OrderTags_Veggies"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> {ORDER TAG NAME}</div>

[SORTED ORDER TAGS:Condiments]
<div class="KD_Task_OrderTags KD_Task_OrderTags_Condiments"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> {ORDER TAG NAME}</div>

[SORTED ORDER TAGS:SideServings]
<div class="KD_Task_OrderTags KD_Task_OrderTags_SideServings"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> [='{ORDER TAG NAME}'.replace('SIDE ','')]</div>

[SORTED ORDER TAGS GROUP|Sauteed,OTS,ADD,SIDE]

[SORTED ORDER TAGS GROUP:ADD]
<div class="KD_Task_OrderTagGroupHeader">     ~~~ ADDONS ~~~</div>

[SORTED ORDER TAGS GROUP:Sauteed]
<div class="KD_Task_OrderTagGroupHeader">     ~~~ SAUTEED ~~~</div>

[SORTED ORDER TAGS GROUP:OTS]
<div class="KD_Task_OrderTagGroupHeader">     ~~~ ON THE SIDE ~~~</div>

[SORTED ORDER TAGS GROUP:SIDE]
<div class="KD_Task_OrderTagGroupHeader">     ~~~ SIDES ~~~</div>


##KD Template - Drink (Printer Template)##

Template Name: KD Template - Drink
Sort Orders:
Merge Lines: Don't Merge

Template:

[LAYOUT]
++{TIME} {ENTITY NAME:Table} {ENTITY NAME:Customer}
{ORDERS}

[ORDERS GROUP|PRODUCT GROUP]
<color Orange><size 12><font Consolas>[='~~~ {GROUP KEY} ~~~~~~~~~~~~~~~~~~~~~~~~~'.substr(0,40)]</font></size></color>

[ORDERS]
<color White><bold><size 16><font Consolas>[=('{QUANTITY}'+'  ').substr(0,2)] {PRODUCT NAME}</font></size></bold></color>[='{PORTION}'=='' ? '' : '<font Consolas> <color #FF55FF33><size 14><italic>{PORTION}</italic></size></color></font>']
{SORTED ORDER TAGS}

[ORDERS:Gift]
<color White><bold><size 16><font Consolas>[=('{QUANTITY}'+'  ').substr(0,2)] {PRODUCT NAME}</font></size></bold></color>[='{PORTION}'=='' ? '' : '<font Consolas> <color #FF55FF33><size 14><italic>{PORTION}</italic></size></color></font>'] <bold> FREE</bold>
{SORTED ORDER TAGS}

[ORDERS:Void]
<color White><bold><size 16><font Consolas>[=('{QUANTITY}'+'  ').substr(0,2)] {PRODUCT NAME}</font></size></bold></color>[='{PORTION}'=='' ? '' : '<font Consolas> <color #FF55FF33><size 14><italic>{PORTION}</italic></size></color></font>'] <bold> VOID</bold>
{SORTED ORDER TAGS}

[SORTED ORDER TAGS]
<size 14><color Yellow><font Consolas>    [=('{ORDER TAG QUANTITY}'>1 ? {ORDER TAG QUANTITY} : ' ')] {ORDER TAG NAME}</font></color></size>

[SORTED ORDER TAGS:VIP Discount]
-- do not print

[SORTED ORDER TAGS:Happy Hour Discount]
-- do not print

##Print Job

##KD Print Tasks - ANY [All Lines] (Print Job)##

Print Job Name: KD Print Tasks - ANY
Printing Content: All Lines
Always Exclude Tax: unchecked
Mappings (2)
Department Ticket Type Terminal Product Group Product Tag Product Printer Printer Template
* * * * productType=Food * KD Printer - Food KD Template - Food
* * * * productType=Drink * KD Printer - Drink KD Template - Drink

After messing around with this for a couple hours, even testing it on 5.1.59 in case it was related to 5.1.61 beta, I found out the reason… the Task Printer “Printer Share Name / Port Name” was blank! :stuck_out_tongue: Adding a . for the printer name and it works now. Totally missed that. I checked the DB Tools file, the printer share name isn’t included, so I’m guessing it doesn’t get exported via DB Tools.

1 Like

What is the difference between the Toggle and Complete buttons? I noticed marking orders as either has the same result.

Ahh that’s right! I have had that problem time and again with the import - I have noticed this too… Yes, it needs a value, like DOT (.). Maybe @emre can have a look at Layout Widget Positions and Print Share Name in the Exports. :wink:


Toggle will take a Completed Task and mark it Incomplete (and vice-versa). Complete will only mark a Task Completed.

1 Like

I solved it but a re-export will needed to position widgets properly.

2 Likes

Thanks @emre. I will try to find the time to re-make the export.

Do you mean you also fixed issue where the widgets are not positioned properly when imported?