I keep having an issue where after I go back in and void an order it still prints a ticket to the kitchen that is blank… it has all the kitchen order information just no orders on the ticket… below is my printer template… and ill post a picture of the ticket that is being printed.
<XCT>27,33,16
<XCT>27,69,1
<T>Kitchen Order
<L>{TICKET DATE} {TICKET TIME}
<L>Tbl:{ENTITY NAME:Customer}{ENTITY NAME:Customer Number} Chk:{TICKET NO}
<F>=
<XCT>27,114,1
<L>{TICKET TAG:Ticket Type} {TICKET TAG:Ticket Type} {TICKET TAG:Ticket Type}
<XCT>27,114,0
<F>=
{ORDERS}
<F>=
<XCT>27,114,1
<L>{TICKET TAG:Ticket Type} {TICKET TAG:Ticket Type} {TICKET TAG:Ticket Type}
<XCT>27,114,0
<F>=
[ORDERS]
<L>- {QUANTITY} {NAME}
{ORDER TAGS}
[ORDER TAGS]
-- Format for order tags
<XCT>27,114,1
<J> {ORDER TAG NAME}
<XCT>27,114,0
[ORDERS:Void]
-- do not print voided orders
The ticket on the right is the order before it is voided it prints to the kitchen as it should… the ticket to the left is printed after the order has been voided…
How does the Print Job know anything about the State of any of the Orders? It doesn’t.
The Rule is firing the Print Job and it is printing according to the Template.
You will need to Constrain the Printing Action based on some criteria so that it does not fire when the Ticket does not contain any Orders with a Status State of New.
I tried both of these, but they do not seem to be reporting properly, though in theory something like this should work as a Constraint on the Print Action …
[=TN('{ORDER STATE TOTAL:New}')] > 0
[=TN('{ORDER STATE QUANTITY TOTAL:New}')] > 0
EDIT: Those ^ are not helping because the last Action in the Void Rule is setting Order Status State to New - so they are in fact reporting correct values.
So you can edit the Void Rule as such to stop the last Action in the Rule from firing:
Then Constrain the Ticket Closing Rule Print Action with:
Ok so QMcKay pointed something out that I missed. By default it normally does print Voided orders to kitchen so the chef knows not to make that order or knows not to send it out. The reason yours is printing blank ticket is because you took the Void Orders print template out of your ticket template.
Thank you @QMcKay for clearing that up I was mistakenly thinking he knew that already and had automated it not to print already and now it was broken. Looks like I was wrong in assuming that.
This is a good example of why it really pays off to study the default flow of how things work extensively so once you do start to modify for your needs you wont run into small issues like this.
Would just removing the action in the void rule to update the order status to new keep it from printing? From my understanding based on the void orders rule… and i may be wrong the update order status in that rule is causing the voided order to be set as new which is causing the ticket to print to the kitchen because it is a new order correct?.. if i remove that would it fix it?
Ok I will test that out… it makes sense to me to print the voided orders to the kitchen but the staff just wants to be told and mark it down on the ticket which also kind of makes sense since its the ticket your working off of. Ill give this a shot and see Thanks!
Yes, screenshot is correct. Typo has been fixed/edited in my post. It should have been:
[=TN('{ORDER STATE QUANTITY TOTAL:New}')] > 0
Yes it would. But I do not like to, and do not suggest that you remove anything from default Rules. Instead, placing the Constraint 1==2 on that Update Order State Action accomplishes the same thing. It is like “commenting out” a piece of code so that it does not execute. Then 1 day, when you are wondering how or why something is not working as expected, you can see that the Action is still there and remove the Constraint to get it back to “default” behavior.