Customer Display- Having a delay before changing screens

Ok so I finally managed to setup the customer display to the way I like. It’s basic but it’s really made me get the hang of customization and familiarisation with html coding and power of samba.

There is something that I would like help with that would pretty much complete my customer display setup

I have two template, one for customer display orders, and the other for customer display IDLE.

When there is a new ticket, the customer display IDLE appears. As soon as there is an item in the order list, the customer display ORDER screen shows up.

Once it’s paid, it would refresh the screen with the payment type, tendered amount, and change amount(if any) at the bottom of the order.

Now once that is done, a new ticket is opened, however the screen doesn’t go back to idle screen, it just stays on tendered screen which shows the order as well.

In the rule section I can add an action which can take the screen back to IDLE, however it instantly does that when the amount is settled.

What I would like it to do is to have about a 5 second delay before going back to the idle screen after the payment has been made.

So customer just made a payment, and new ticket started, the tendered amount is currently on screen, it should stay on the screen for about 5 seconds before going back to idle screen, ready to take the next order.

Is there anyway we could accomplish this? Is there any feature inside samba that fires a delay between actions within a rule?

Do you have a a display change message on the employee side?
You could set the idle screen update to happen after the change message is OK’ed on the employee side?
I mean generally wouldnt they give the change and say thank you before clearing the change message?

Either way you can do a delay using exacute automation command action, it has a delay in second field.
Just note that that action will still fire after the delay time regardless of anything else that happens so dont set it long enough that another ticket can be started, 5 seconds should be about right though.

I would have to create a new delay rule in order for that to occur? or can I just alter the rule that has the actions already set to fire?

Make a new action of execute automation command with command name something like ‘DelayedAfterSaleIdle’ and delay of 5.
Take the idle screen action out from where it is and replace it with the delayed automation command action.
Make a new rule for Command Name == DelayedAfterSaleIdle and put the idle scree refresh action in that.

The execute automation command will fire at the end of the existing rule but not action until after delay at which point the delayed idle rule will trigger.

I’m sorry buddy, as easy as it sounds, I got as far as “Make a new action of execute automation command with command name something like 'DelayedAfterSaleIdle” and delay for 5 seconds.

“Take the idle screen action from where it is”

Do you mean that action in the screenshot, or the action that is set within the rule?

Where was your idle screen refresh before? On payment processed?

I just had this

and this

I just added the idle action in there, but it didn’t work haha. I thought that If the action was after the order display, it would have a delay of 5 seconds, the fire the idle screen.

NO, take the Customer Display when Idle action out of that rule and put in a new rule.
The rule event would be automation command executed and the constraint would be command name = DelayedAfterSaleIdle

FYI you didnt need to include the ’ ’ int he DelayedAfterSaleIdle LOL

Haha I know, but I just copied and pasted that data haha. Its 2am in the morning, I got work at 8am and I have to have this ready by 2pm :stuck_out_tongue:

Create an Action for Execute Automation Command …

Remove the “Idle” Print Job Action from your Rule, and replace it with the above Action.

Create a new Rule to handle the new Action and place your “Idle” Screen Action within it …

Wouldn’t I have to create an Automation Command with ‘Fire_Idle_Screen_Print_Job’ before I’m able to select it in the rule?

You did, the ‘Execute Automation Command’ action.

Automation Commands defined in the Automation section is a way to make a button to execute a command, but that action is a way to trigger one automatically.

Then do I have to actually type ‘Fire_Idle_Screen_Print_Job’ or should I be able to choose it from the drop down list? Because I can’t find it in the drop down list, but I am able to type it.

The drop down only shows ones defined within buttons/automation commands section.
If using the action you will have to type it.
You already made the action didnt you with command name DelayedAfterSaleIdle

Yes I did, but I understand this a little better now. I just type it and it worked. the delay fired and back to Idle screen.

Learnt many new things from you guys. Really appreciate the help.

Am I able to get help on one more thing or should I create a separate thread for it?

Create a new thread… it facilitates searches for different subjects.

Alright. I’ll do that. I just tested it and it worked fine. However I just realised one thing, when customer pays in multiple type of payments. E.G.

Total Amount: $50
Customer gives $20
Screen shows : $30 Remaining
After 5 seconds, screen goes to Idle screen
Customer pays another 15
Order screen shows up, and after 5 seconds it goes back to idle screen.

Can we make it so that once the whole amount has been tendered to, delay the screen for 5-10 seconds then it goes back to idle screen?

You want a constraint on the execute automation command for ‘REMAINING TOTAL’ == ‘0’

That works. However there’s another issue.

I’ve got my template to show the payment type, tendered amount, change and remaining amount at the bottom for every time there is a partial payment done until it’s fully settled.

When I put that constraint in the rule, and apply the partial payments, it doesn’t display that until after payment is made, and then for about 5-10 seconds the page with that information is on the screen before going to idle screen.

The way I want to set it up is that so as long as there is a remaining total left, the screen doesn’t go idle until it’s settled, then wait 5-10 seconds, then go to Idle screen.

I feel as though I may need a new action and rule to make this occur.

Or can you guys think of a better way of how I should do this?

Think you put the constraint in the wrong place by sounds of it.
Show screen show of the payment processed rule.