The Restaurant has taken orders, then the customers have gone to the Bar and gotten drinks which were added to the Table ticket. Then at the end of the meal the customer has paid for all at the Restaurant with Credit Card.
That case does not creates that problem but after investigating it further I found the problem.
1. Bar terminal creates a ticket
2. Clicks "Select Table" and moves that ticket to a table. At that point this is still a bar ticket because user did it while bar terminal is active. Assigning it to a table does not change ticket department because this is still a bar sale and at that point we don't consider it as a cross sale from restaurant to bar.
3. Restaurant user settles that bar ticket with credit card. Since he accessed it from restaurant department screen he could settle that.
The cross sales are working great for the items, its just the payment side that needs fixing.
What we should do is changing ticket department to restaurant and display it as a cross sale. That will fix that case. (In fact I don't call it a bug fix, I call it cross payment feature
) By disabling settle buttons I tried disabling cross payments but that case was something I didn't noticed. If it is the case, cross sale numbers should be wrong too.
Changing ticket department will solve that case without disabling settle buttons but permitting it creates other problems. Since we permit half payments and if customer drinks a $10 beer and pays $5 cash at bar and $5 credit card at restaurant, we'll show that beer sale as restaurant cross sale and they won't be able to match numbers. Our current database scheme won't permit splitting a beer sale between departments by payment amounts. So we'll assume users won't do that or disable some features.
Maybe your user does not do what I found and another case we didn't noticed created that problem. We should find the reason of the problem to be able to fix it.