While applying this tutorial a simple mistake can easily break how tickets works. Don’t forget to create a backup in advance.
When you fully settle a ticket it automatically closes and related table color changes from orange to white. To be able to handle some cases you might need to change this behavior. There might be different reasons for it but most common reasons are…
- You want to track delivery status after ticket gets fully paid and want to close ticket after delivery status becomes
- You don’t want to change table color to white as soon as ticket gets fully paid. Customer may still sit on the table and you might want to keep ticket open until he leaves to permit adding more orders and keeping table color as orange.
The reason ticket automatically gets closed is
Mark Ticket as Closed action that works on
Ticket Payment Check rule.
Remove this action to see how SambaPOS behavior changes.
- Create a new ticket for a table.
- Close ticket without paying it.
- Reopen ticket and settle it.
As the result of this
- Table will appear still open.
- Ticket appears paid but you can still add orders or make changes on ticket.
- There is no way to close this ticket.
When ticket state becomes
Paid we assume ticket should be closed but as we don’t want to do it we’ll add a new state called
Closed and close ticket when ticket state becomes
We’ll create a new
Before Ticket Closing rule for this.
If ticket status becomes
Closed we’ll mark ticket as closed. Please keep in mind
Mark Ticket as Closed action only works in
Before Ticket Closing or
Ticket Closing rules. Prefer
Before Ticket Closing.
Now we have a new ticket state called
Closed and we need to fine tune some current rules to work with this new state.
Update New Order Entity Color rule I’ll include
Paid state as I want to display
Paid tickets as orange color.
Ticket Payment Check rule updates ticket state as
Paid when Remaining Amount becomes 0. Now it should do it if ticket is not
Closed. I’ve also added another constraint to ensure this ticket contains orders.
After this setup changing
Ticket Status to Closed will close ticket.
I’ll create an action for this.
I can use existing
Update Ticket Statusaction. I’m creating a new action just to demonstrate better how it works. If you know how it works you can use it.
When I execute that action it will mark ticket’s status as closed and
Ticket Closing Check rule will mark ticket as closed.
I can execute that action according to my need. For example I can execute it when ticket’s delivery status becomes
Delivered or I can manually close it. I’ll show how to close it manually.
I’ll create a new
Automation Command called
Close Paid Ticket.
I want to see this button only if ticket’s status is
Paid. For other states I shouldn’t see this button.
and when this button clicked I’ll execute
Close Paid Ticket action. This action will update Ticket Status to
Closed. I’ll also execute
Close Ticket action to close ticket visually. I’ll create a rule for this.
Now when I open my ticket I should see
Close Ticket button.
Clicking this button should close ticket and your table color should appear as White.