Cash the ticket without closing

I would like to make a change but do not know if you can do.
I should settle without closing the ticket and then add a button that closes it.
Is there a way to do this?
Thank You

It can probably be done, since this behavior is simply a Rule with some Actions.

This is the default Rule that is responsible for automatically closing a Ticket when it has been Paid.

Removing the action Mark Ticket as Closed prevents the Ticket from closing (i.e. the Tickets screen shows this Ticket as still being Open).

However, somewhere within the Payment Processed flow, we are exited from the Payment Screen if no change is due - it appears to be hard-coded.

Still, with some more Automation, we may be able to store and recall the Ticket to bring it back on the screen … it would take some more experimentation to implement and test this flow.

I have tested the action and actually removing the ticket is closed. I created a button connected with the closing of the ticket but this does not happen! pressing the button the ticket remains open!

I created a button called Close2 and put this action in it:

Close Ticket

The Automation Command Mapping for Close2 needs to have less constraints on the Enabled State, but it works for me, so long as the Ticket is Paid.

I do not want to just close the ticket, I want to mark as closed!
I tried but the ticket is always open. what is wrong?

Hmm… you’re right. It isn’t being marked as closed even with this action:

Mark Ticket as Closed

Need to know the built-in internal flow of the Events:

Payment Processed
Before Ticket Closing
Ticket Closing
Ticket Closed

Not sure that is the actual order of the flow, or if it is different, but we need to know how it operates before we can know how to alter it. Would be good to know too, which Actions are responsible for those Events

I have tested, tried to reopen the ticket and unlock it, changed the sequence but nothing! any transaction does not close the ticket. perhaps it is connected to the screen cash?

I am thinking that the payment screen has a hard coded behavior. Try using the Pay Ticket Action from ticket screen instead?

I tried using the Pay Ticket Action already, but it has no effect, since the Ticket is already Paid. I think it has to do with a hard-coded behavior in Payment Screen as well.

1 Like

But it is strange, the action that closes the ticket verification that the amount is zero, and if it meets this action closes the ticket. it is strange that with a button the same action is not done.

Here is a solution that seems to work:

First edit your Before Ticket Closing rule as follows:

Create Automation Command Button: Mark Paid

Create a Automation Command Executed rule as follows:

PS: You could tweak this for better performance. For example you could instead of making it look for Paid status you could make it look for a new status like Ticket Closed. You can then add the action to update status to Paid on the event Payment Processed. This way your ticket will show Paid status but still remain open until you press button. Pressing button would trigger the state change to Ticket Closed and this would trigger the mark ticket action.

@QMcKay I am pretty sure now that Payment Screen has a built in Close Ticket function that is hard coded. This triggers all the other rules.

@spanky, what it is that you are really trying to achieve here?

As @Jesse shows, it is rather simple to make the Ticket State change from one Status to another, though I suspect you need to give more details on what you are trying to accomplish.

@Jesse, the real issue that we have run into while playing around with this is that the Ticket remains Open (it has no close date/time in the Tickets screen), and there appears to be no way to close it. This is also evidenced in the DB with a field called isClosed which remains at 0. I am fairly convinced the only way to get the Ticket to officially close is to go through the Payment Screen. The Close Ticket (or Mark Ticket as Closed) Actions do not appear to “officially” close the Ticket.

I would expect Mark Ticket as Closed action would do the DB update, while Close Ticket action simply removes the Ticket from the screen, allowing for a new Ticket to commence.

However, in my experiments, the Mark Ticket as Closed action isn’t working properly when called from another Event (such as Automation Command). I think it may only work in the Before Ticket Closing Event. And as far as I can tell, this event is never fired other than from the Payment Screen.

I made the change indicated by kendash and everything seems to work!
I want to do is cash the ticket and have a tracking in the account but deliver the product later.
I got this in a preorder ticket.
everything works! my concern is that by doing so you are not handling dirty data that could compromise the db?

1 Like

Not sure what you mean by dirty data. Nothing in what I posted would ever compromise the database.

@qmckay it is fired outside payment screen you just have to get the sequence right. I too think the action is bound by the Before Ticket Closing event.

1 Like

after working a while I found the following problem,
if I try to combine 2 ticket creates other two empty as you can see in the attached picture.
someone has encountered the same problem?

Did you pay for the other 2? Or did you just add them to a paid ticket?

EDIT: I see what your saying. I will have to figure out why this behavior is.

EDIT: Ok it is because you have not paid for the ticket 23. the other 2 are paid. They are not blank it just means they have no balance but ticket 23 still has unpaid balance of 3,00 So it is still working you just read it wrong.

exactly! the first two are not paid but are empty. there is a way to overcome this problem?

What do you mean by empty? They will not show an amount because they are Paid. The amount you see is for unpaid tickets. This is by design to show any unpaid tickets and the amount owed.

the ticket is empty but remains open!
or solved by creating a role as in Annex