Voided item - Reprint all other orders

Hi Samba Forum-
I have a request from my kitchen manager and I’m not really sure how to accomplish it. I think I might need a custom automation command button and separate ticket closing rule, however here it is.

When a server voids an item on an order, our KM would like for us to print a ticket that says “reprint” on the bottom and only prints the remaining orders. Currently we have the default setup where the voided item prints.

They think it is more efficient to replace the ticket, since right now the voided item ticket makes them cross out the item on the full ticket.

If someone can point me in the right direction that would be great.


The printing of void items for kitchen is based on that when it its voided its status is changed back to new.
Kitchen printing by default prints new orders only.
This works for automated printing.
You issue would be how to automate printing all orders without it printing every time the ticket is open/closed.
What you could do is add say a ticket state say reprint. Then as part of void automation update that state to print. That will give a factor to base printing based on when voided items.
Then create a copy kitchen template with your reprint header. However change it to be more like normal ticket template that void items are ignored.
Create a job and action to go with this but action would be like print bill in regards states as it’s not just new orders you want to print.
Then on a ticket closing rule with constraint of reprint ticket state is print, print the new reprint job and update the reprint state to null or something else like printed.
That will mean it wont reprint every ticket close.

If your goal is to make sure the Kitchen Staff does not accidentally make duplicate orders for voids. One easy alternative method is to modify the printer template formatting for [ORDERS:Void] to make it obvious that it’s a voided item. See the image below for my example.


Thanks for the advice @JTRTech.


Thats not the issue. Our Kitchen Manager wants all remaining items printed on a new ticket, not the voided item. As see above with JTR’s advice, this isn’t a simple change to the print template.



Okay so I’m mostly done. I just have two roadblocks to work through. Here’s what I’ve done so far:

  1. Created a Ticket State for Reprint.
  2. Assigned the Ticket State Reprint update action to the void and cancel void automation rules.
  3. Create new Print Job, Print Template, Print Action.
  4. Modified the Ticket Closing rule to choose the Reprint print job action if Ticket State: Reprint is set to reprint.
  5. Modified the print template to not print voids and set no parameters on the print action.

This is what I could use help on:

  1. Since I’ve tied the ticket state to the void/cancel void automation command, its possible someone will void multiple items then cancel a void, which would change the state back to a regular ticket/non-reprint, even though there are voided items. Any idea how I should make this better?

  2. I think it might be a good idea to print the voided items on the bottom of the ticket along with all the other items. I’ve tried “Sort Orders” on the print template, however it doesn’t matter. Printing both new/submitted orders along with voided orders are mixed together. See below.


Ok, I want accounting for cancel void.
In that case you will likely want to change flow and use a report type expression.
Something like {TICKET ORDER QUANTITY TOTAL EXP:(OS.Gift=Void) && (OS.Status=New)} grater than 0

I’m guessing you mean in the Print Template. Not sure I follow. Basically I want to sort the orders by Order State prior to output, moving all Voided orders to the bottom of the print template. What happens now is that the voids are scattered through the ticket.


No, I mean on the ticket state, rather than part of void/cancel void move to before closing (before any printing) to set state based on that expression which should check is and new/void orders rather than on the event of void.

Grouping would be done within template. Search for courses and you’ll see how to group orders on prints

Makes total sense thanks.

@JTRTech So, the reporting constraint worked. The only thing I was still having problems with is ORDER GROUPING. It seems to work if I group by GStatus. Let me know if you have a better solution.

Sample Template:

<L00>Table:{ENTITY NAME:Table}
<L00>Ticket No:{TICKET NO}
<C10>Ticket Reprint


<J00>- {QUANTITY} {NAME}|**Void**

-- Format for order tags
<L00>     * {ORDER TAG NAME}



If it works … :slight_smile:

The main annoyance is that there is a gap for the non-voided orders because it has a blank GStatus.

Im sure something can be done.
Looking at your template, if you remove the empty line and wrap the group key line inc format tag with square brackets might work

I guess it will do for now. The difficulty I’m having with ORDERS GROUP is doing custom “headers” for items without a void status. This is the current look:



  1. Create a new ticket template. Ideally, clone your current your ‘Kitchen Orders Template’ and add grouping or other changes specific to the voided ticket.
    • Add:
      <C10>{GROUP KEY}
  1. Remove {ORDER TAGS} from your [ORDERS:Void] section, this way the list doesn’t get to long.
  2. Create a new print job, indicate your mapping, and assign the new ticket template to the print job.
  3. Create a new print action for the voided ticket.
  4. Open your ‘Ticket Closing Rule’ and add your new voided print action above ‘Update Ticket Status’.
  5. Add constraints to your new action and your standard kitchen order action ‘Execute Kitchen Orders Print Job’
    • Kitchen Orders: [=TN(’{TICKET ORDER QUANTITY TOTAL EXP:(OS.GStatus=Void) AND (OS.Status=New)}’)] == 0
    • Void Print Action: [=TN(’{TICKET ORDER QUANTITY TOTAL EXP:(OS.GStatus=Void) AND (OS.Status=New)}’)] > 0