Force Refresh on Settle Screen

I am attempting to automate a checkout flow with an external application handling payment processing via GQL. The entire process works great and the ticket is properly marked as paid however the launch point is the Settle Screen on my main SambaPOS terminal (Server).

The issue is, if the Server is in the Ticket or Settle screen it ignores all automation commands / actions / rules fired via GQL. Short of actually clicking a button on screen it does nothing. If I go and click close to go back it realizes changes have been made but otherwise it does not.

Is there some way to signal back to SambaPOS when it’s on the Settle or Ticket screen or a way to force the screen to close via GQL? I have no issues calling tickets up from a remote terminal on my server via GQL but there seems to be no escape or update once in the Settle or Ticket screen.

Thanks

I. Don’t think this is an issue I’m fairly sure it’s by design. Emre mentioned allowing payments with gql but never got around to implementing it.

@Jesse I kinda suspected this, I know he is busy. I was really hoping for some alternative. It’s easy enough to implement the part of the actual payment, which is what I did. The only real issue is how to escape or refresh the Ticket/Settle screen so it knows a new payment has been applied. It’s easy to do with a manual button or message but the idea is automated.

Try this (no idea if it will work, but worth a shot):

Send a Message via GQL after payment is complete.

Process the received message and do a Navigate Module Action to Pos …


Or maybe just process the received message an do an Execute Automation Command Action with Automation Command Name Equals Close Ticket (the default Close button), which might (should) close the Payment Screen and take you back to Ticket Screen.

@QMcKay Thanks - Great minds think alike haha, I tried precisely this. Many other things too, none of them worked. I can get the change ticket entity to change things but it’s very sloppy and pulls a new ticket with their name.

For the actual backend payment part, I’ve resorted to using gql.payTerminalTicket now which is working very well. using GQL to Load terminal ticket, payTerminalTicket, closeTerminalTicket.

I think a work around may be to instead launch a dialog on the Server and have an OK button which processes a close rule. It seems there is no easy automated way to do this. I guess I could use autohotkey to help this be automatic but it’s not as integrated as I had wished ;-(

Have you tried firing GQL mutation “postTicketRefresh()” (or similar, can’t look up exact GQL now) after payTerminalTicket() ?

I had tried it initially but when paying via a sloppy system of messages, now I am using GQL to pay it so maybe I should retry the GQL refresh, I will test it now. Thanks for the idea!

@QMcKay No such luck, I can see the refresh works because an awesome HUB script I use registers it (ahem ahem) but SambaPOS Desktop GUI does not. If I click close ticket manually in the GUI it then says the tickets been paid.

Did you try that ^^^ ?

@QMcKay Yes, I can see via rules debugger that it does fire the automation command but marks it as inactive, it does not apply the close action on screen.

The payments screen is special. Emre mentioned it once. None or very little automation can be used when in that screen. However I swear I’ve automated close ticket before

@Jesse - :frowning: I wish I knew how ,I would love you forever! I’m using it for a customer display, my clients have a display facing them and it allows them to complete payment. Due to this my baristas have to come back and hit ok everytime to proceed. It’d be super cool if they could just go make drinks and not do it, especially since my system lets customers print their own recipts haha!

I can perform some automation but only if execute on the actual server terminal with a button click, not if any other terminal or message triggers it.

I can understand reasons for limiting automation like security on this screen but if the execution is via GQL which is quite secure I don’t see why not.

Why you need to go to Settle screen? You can update display on ticket screen as well. I have my split payment on ticket screen.

But how? Are you suggesting… an alternate ticket payment screen or workflow?! I didn’t consider this…

Instead of clicking settle you can create another button to update customer display and all your automations.
It may more complicate than that I have no idea of your flow.

That may be the way to go, i dont use the settle screen at all

2 Likes