#Kitchen Display
Use the HUB Actions and Rules.
NOTE: The following documents the Actions/Rules that are required for the Javascript Kitchen Display Module. Actions required by a native Entity Screen are not shown, since the JS Module method supersedes the “old” method.
In addition, the Kitchen Display only supports a single display of a single
productType
… in this case, the setup for “Food” is shown, while “Drink” is not.
The Printer Template uses HTML and CSS to produce “colorful” Task Cards. You can edit zcss\sambapos.css
to change the styles used in the Task Cards …
The Kitchen Display styles in sambapos.css
are prefixed with KD_
…
##Task Type
Also, in the zconfigs\config.js
file, find the following line and ensure it matches the Task Type Name that you used above …
var KD_HTMLtaskType = 'KD Task - Food'; // the KD Module works with this Task Type
##Printer
This is a Custom Printer for printing Tasks.
- use a DOT (
.
) for thePrinter Share Name / Port Name
… if you don’t put a DOT (.
) here, the Printer will not function! - click on the Settings link and enter the Task Type Name:
KD Task - Food
##KD Printer - Food
[Custom Printer] [Task Printer]
(Printer)##
Printer Name: | KD Printer - Food |
Printer Share Name / Port Name: | . (you must use a DOT here!) |
Printer Type: | Custom Printer [Task Printer] |
Character Set: | 437 |
RTL Support: | None |
Line Count: | 0 |
Line Character Count: | 42 |
Char Replacement: |
|
Custom Task Printer Settings
Task Type: | KD Task - Food |
##Printer Template
##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={NAME}-{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:Modified]
++{ORDER TIME} - {ENTITY NAME:Table} {ENTITY NAME:Customer}
(Id={NAME}-{ORDER UID})
(Color=#FF555533)
<div style="font-size:12px;"> </div>
<div class="KD_Task_Modified">!!!! MODIFIED !!!!</div>
<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]
++{ORDER TIME} - {ENTITY NAME:Table} {ENTITY NAME:Customer}
(Id={NAME}-{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:Void]
++{ORDER TIME} - {ENTITY NAME:Table} {ENTITY NAME:Customer}
(Id={NAME}-{ORDER UID})
(Color=#FF550000)
<div style="font-size:12px;"> </div>
<div class="KD_Task_Void">XXXX VOID XXXX</div>
<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: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:EXTRA Addons]
<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:Sides]
<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:Special Instructions]
<div class="KD_Task_OrderTags KD_Task_OrderTags_SpecialInstructions"><span class="KD_Task_OrderTags_Quantity">[=('{ORDER TAG QUANTITY}'>1 ? '{ORDER TAG QUANTITY}'+'x' : '')]</span> [='{ORDER TAG NAME}'.replace('SPIOTV ','')]</div>
[SORTED ORDER TAGS GROUP|ADD,Sauteed,OTS,Side,SPIOTV]
[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>
[SORTED ORDER TAGS GROUP:SPIOTV]
<div class="KD_Task_OrderTagGroupHeader"> ~~~ SPECIAL ~~~</div>
##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 |
##Custom Product Tag Caption
Create a Product Tag Caption in Manage > Settings > Program Settings
with the name productType
. This will be used to separate Food and Drink.
##Product Tag Editor
Set your Food and Drink Products to have the proper productType
in Manage > Products > Product Tag Editor
…
##Entity Screen
##KD Kitchen Display
[]
(Entity Screen)##
Name: | KD Kitchen Display |
Ticket Type: | Ticket |
View Mode: | Layout |
Search Value Replace Pattern: |
|
Appearance
Background Image: |
|
Background Color: | #00FFFFFF |
Use State Display Format: | unchecked |
Column Count: | 0 |
Row Count: | 0 |
Button Height: | 0 |
Page Count: | 1 |
Font Size: | 50 |
Header Button Font Size: | 0 |
Entity List (0)
Entity Type: | |
Display State: |
|
State Filter: |
|
Details Template (none)
(none)Mappings (1)
Terminal | User Role | Department | Ticket Type | Visibility |
* | * | * | * | All |
##Entity Screen Widgets
##KD HTML Viewer
[Html Viewer]
(Widget)##
Entity Screen:KD Kitchen Display
###Properties (13):###
Widget Type: | Html Viewer |
Name: | KD HTML Viewer |
X: | 0 |
Y: | 0 |
Height: | 100 |
Width: | 100 |
Zindex: | 0 |
Angle: | 0 |
Scale: | 0 |
Corner Radius: | 0 |
Auto Refresh: | checked |
Auto Refresh Interval: | 0 |
Margin: |
|
###Settings (4):###
Allow Scripting: | checked |
Is Toolbar Visible: | unchecked |
Url: | http://localhost/?module=kitchen_display |
Zoom: | 100 |
##Automation Command
##KD Kitchen Display
[KD Kitchen Display]
(Automation Command)##
Name: | KD Kitchen Display |
Category: | KD Kitchen Display |
Button Header: | Kitchen\rDisplay |
Color: | #FFCA6919 |
Font Size: | 26 |
Confirmation: | None |
Navigation Settings
Symbol: | |
Image: | |
Auto Refresh: | 0 |
Tile Cache: | 0 |
Navigation Module: | Entity |
Nav Module Parameter: | KD Kitchen Display |
</details>
<details>
<summary><b><u>Mappings</u></b></summary><table><tr><td><b>Terminal</b> </td><td><b>User Role</b> </td><td><b>Department</b> </td><td><b>Ticket Type</b> </td><td><b>Enabled States</b> </td><td><b>Visible States</b> </td><td><b>Visibility</b> </td></tr><tr><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>Display on Navigation</code></td></tr></table></details>
----------
##Actions
<img src="/uploads/default/original/3X/7/4/748ed1ff1a088c0915542335b07bae22cc9909c7.png" width="690" height="427">
>##KD Update Order KDStatus `[Update Order State]` (Action)##
<table><tr><td><b>Action Name:</b> </td><td><code>KD Update Order KDStatus</code></td></tr><tr><td><b>Action Type:</b> </td><td><code>Update Order State</code></td></tr></table>
###Parameters:###
<table><tr><td><b>State Name:</b> </td><td><code>KDStatus</code></td></tr><tr><td><b>Group Order:</b> </td><td><code></code></td></tr><tr><td><b>Current State:</b> </td><td><code>[:CurrentState]</code></td></tr><tr><td><b>State:</b> </td><td><code>[:NewState]</code></td></tr><tr><td><b>State Order:</b> </td><td><code></code></td></tr><tr><td><b>State Value:</b> </td><td><code></code></td></tr></table>
----------
<img src="/uploads/default/original/3X/9/d/9da4633213c3cd7bebb5610ff1c06c2eb1b31e51.png" width="690" height="560">
>##KD Execute Print Job - ANY `[Execute Print Job]` (Action)##
<table><tr><td><b>Action Name:</b> </td><td><code>KD Execute Print Job - ANY</code></td></tr><tr><td><b>Action Type:</b> </td><td><code>Execute Print Job</code></td></tr></table>
###Parameters:###
<table><tr><td><b>Print Job Name:</b> </td><td><code>KD Print Tasks - ANY</code></td></tr><tr><td><b>Print Ticket:</b> </td><td><code>True</code></td></tr><tr><td><b>Ticket Ids:</b> </td><td><code></code></td></tr><tr><td><b>High Priority:</b> </td><td><code>[:hiPriority]</code></td></tr><tr><td><b>Order State Name:</b> </td><td><code>[:orderStateName]</code></td></tr><tr><td><b>Order State:</b> </td><td><code>[:orderState]</code></td></tr><tr><td><b>Order State Value:</b> </td><td><code></code></td></tr><tr><td><b>Order Tag Name:</b> </td><td><code></code></td></tr><tr><td><b>Order Tag Value:</b> </td><td><code></code></td></tr><tr><td><b>Ignore Selected Orders:</b> </td><td><code>[:ignoreSelectedOrders]</code></td></tr><tr><td><b>Copies:</b> </td><td><code>1</code></td></tr></table>
----------
##Rules
<img src="/uploads/default/original/3X/9/d/9d16d940859216040ee6b913b49d8ad74725b6be.png" width="690" height="725">
>##KD Order Added to Ticket - ANY `[Order Added]` (Rule)##
<table><tr><td><b>Rule Name:</b> </td><td><code>KD Order Added to Ticket - ANY</code></td></tr><tr><td><b>Event Name:</b> </td><td><code>Order Added</code></td></tr><tr><td><b>Rule Tags:</b> </td><td><code></code></td></tr></table>
<i>Custom Constraint List (0):</i>
<table><tr><td><b>Execute Rule if:</b> </td><td><code>Matches</code></td></tr></table>
<table></table>
##Actions (2):##
<details>
<summary><b><u>KD Update Order KDStatus</u></b></summary>
<b>Constraint:</b> <code>'{ITEM TAG:productType}' == 'Food'</code>
<table><tr><td><b>CurrentState:</b> </td><td><code> </code></td></tr><tr><td><b>NewState:</b> </td><td><code>FNotPrinted</code></td></tr></table></details>
<details>
<summary><b><u>KD Update Order KDStatus</u></b></summary>
<b>Constraint:</b> <code>'{ITEM TAG:productType}' == 'Drink'</code>
<table><tr><td><b>CurrentState:</b> </td><td><code> </code></td></tr><tr><td><b>NewState:</b> </td><td><code>DNotPrinted</code></td></tr></table></details>
##Mappings##
<details>
<summary><b><u>Mappings</u></b></summary><table><tr><td><b>Terminal</b> </td><td><b>User Role</b> </td><td><b>Department</b> </td><td><b>Ticket Type</b> </td></tr><tr><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td></tr></table></details>
----------
<img src="/uploads/default/original/3X/c/a/cafe4a82c8970752f88a38728ff487f1566ffbeb.png" width="690" height="716">
>##KD Update Printed Status - Food - Void or Cancel Void `[Automation Command Executed]` (Rule)##
<table><tr><td><b>Rule Name:</b> </td><td><code>KD Update Printed Status - Food - Void or Cancel Void</code></td></tr><tr><td><b>Event Name:</b> </td><td><code>Automation Command Executed</code></td></tr><tr><td><b>Rule Tags:</b> </td><td><code></code></td></tr></table>
<i>Custom Constraint List (3):</i>
<table><tr><td><b>Execute Rule if:</b> </td><td><code>Matches</code></td></tr></table>
<table><tr><td><code>Automation Command Name</code></td><td><b><i>Equals</i></b></td><td><code>Void</code></td></tr><tr><td><code>Automation Command Name</code></td><td><b><i>Equals</i></b></td><td><code>Cancel Void</code></td></tr><tr><td><code>{ITEM TAG:productType}</code></td><td><b><i>Contains</i></b></td><td><code>Food</code></td></tr></table>
##Actions (1):##
<details>
<summary><b><u>KD Update Order KDStatus</u></b></summary>
<b>Constraint:</b> <i>(none)</i>
<table><tr><td><b>CurrentState:</b> </td><td><code> </code></td></tr><tr><td><b>NewState:</b> </td><td><code>FNotPrinted</code></td></tr></table></details>
##Mappings##
<details>
<summary><b><u>Mappings</u></b></summary><table><tr><td><b>Terminal</b> </td><td><b>User Role</b> </td><td><b>Department</b> </td><td><b>Ticket Type</b> </td></tr><tr><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td></tr></table></details>
----------
<img src="/uploads/default/original/3X/9/9/991428b714e31d1a69b00042c5d4f91383e338cf.png" width="690" height="609">
>##KD Ticket Closing - Update KDStatus - Food `[Ticket Closing]` (Rule)##
<table><tr><td><b>Rule Name:</b> </td><td><code>KD Ticket Closing - Update KDStatus - Food</code></td></tr><tr><td><b>Event Name:</b> </td><td><code>Ticket Closing</code></td></tr><tr><td><b>Rule Tags:</b> </td><td><code></code></td></tr></table>
<i>Custom Constraint List (0):</i>
<table><tr><td><b>Execute Rule if:</b> </td><td><code>Matches</code></td></tr></table>
<table></table>
##Actions (1):##
<details>
<summary><b><u>KD Update Order KDStatus</u></b></summary>
<b>Constraint:</b> <i>(none)</i>
<table><tr><td><b>CurrentState:</b> </td><td><code>FNotPrinted</code></td></tr><tr><td><b>NewState:</b> </td><td><code>FPrinting</code></td></tr></table></details>
##Mappings##
<details>
<summary><b><u>Mappings</u></b></summary><table><tr><td><b>Terminal</b> </td><td><b>User Role</b> </td><td><b>Department</b> </td><td><b>Ticket Type</b> </td></tr><tr><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td></tr></table></details>
----------
<img src="/uploads/default/original/3X/4/1/4127485ec9b148571366b6e19a7b1144e1fbf96d.png" width="605" height="1000">
>##KD Print Order - Food `[Order State Updated]` (Rule)##
<table><tr><td><b>Rule Name:</b> </td><td><code>KD Print Order - Food</code></td></tr><tr><td><b>Event Name:</b> </td><td><code>Order State Updated</code></td></tr><tr><td><b>Rule Tags:</b> </td><td><code></code></td></tr></table>
<i>Custom Constraint List (4):</i>
<table><tr><td><b>Execute Rule if:</b> </td><td><code>Matches</code></td></tr></table>
<table><tr><td><code>State Name</code></td><td><b><i>Equals</i></b></td><td><code>KDStatus</code></td></tr><tr><td><code>State</code></td><td><b><i>Equals</i></b></td><td><code>FPrinting</code></td></tr><tr><td><code>Previous State</code></td><td><b><i>Equals</i></b></td><td><code>FNotPrinted</code></td></tr><tr><td><code>{ITEM TAG:productType}</code></td><td><b><i>Contains</i></b></td><td><code>Food</code></td></tr></table>
##Actions (3):##
<details>
<summary><b><u>KD Execute Print Job - ANY</u></b></summary>
<b>Constraint:</b> <i>(none)</i>
<table><tr><td><b>hiPriority:</b> </td><td><code> </code></td></tr><tr><td><b>orderStateName:</b> </td><td><code>KDStatus</code></td></tr><tr><td><b>orderState:</b> </td><td><code>FPrinting</code></td></tr><tr><td><b>ignoreSelectedOrders:</b> </td><td><code> </code></td></tr></table></details>
<details>
<summary><b><u>KD Update Order KDStatus</u></b></summary>
<b>Constraint:</b> <i>(none)</i>
<table><tr><td><b>CurrentState:</b> </td><td><code>FPrinting</code></td></tr><tr><td><b>NewState:</b> </td><td><code>FPrinted</code></td></tr></table></details>
<details>
<summary><b><u>HUB ExecAMC</u></b></summary>
<b>Constraint:</b> <i>(none)</i>
<table><tr><td><b>AMCname:</b> </td><td><code>HUB Broadcast - Task Printed</code></td></tr><tr><td><b>AMCvalue:</b> </td><td><code>{ITEM TAG:productType}</code></td></tr><tr><td><b>runInBG:</b> </td><td><code> </code></td></tr><tr><td><b>delay:</b> </td><td><code> </code></td></tr></table></details>
##Mappings##
<details>
<summary><b><u>Mappings</u></b></summary><table><tr><td><b>Terminal</b> </td><td><b>User Role</b> </td><td><b>Department</b> </td><td><b>Ticket Type</b> </td></tr><tr><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td><td><code>*</code></td></tr></table></details>