Because I don’t know what is exactly Payment processed, and maybe it works like that:
1 ticket, 2 "payment, let's say one in cash, one in CC. So maybe Payment processed called twice, and so Bill printed twice. So I added that constraint.
Is Payment processed working that way ? (we are back in business and it is difficult to check)
However
It is not working for $ payment and I suspect that it is because the Remaining Amount is not EXACTLY 0, but maybe 0.01 or 0.02 due to the change rate.
When you receive $10 cash for $8.99 ticket SambaPOS will record cash payment as $8.99. However if a change payment type configured for $ payments that means SambaPOS should maintain $ payments separately and you always make change payments with your local currency. In this case you should have $10 in $ cash and decrease local currency account for change payment. Since SambaPOS records payment as $10 (more than ticket amount) Remaining Amount becomes negative since it triggers before we create change payment transaction.
So configuring the rule to work for negative remaining amounts should solve your issue.
@plume great thinking Configuring constraints might be tricky when you have a lot of actions to execute. Please keep in mind it is also possible to create multiple rules for same event and sort them to execute in order. Since you solved your issue there is no need to change but it might be handy for future updates.