In this case, how about there is a Buy 2 drinks for $1, the drinks are different price, then the customer wants to split bill and each person pays for one drink. That is a big headache! So in that scenario, for equal benefit to all parties, you would want to make both drinks as $0.50. But that could cause a lot of issues with cost/profit reporting.
So, I want to say 0.40 is 25% of the total and calculate like that, so
That equally distributes the discount across all products.
But that doesn’t work with what I said above about splitting bill, and would end in an unfair situation for one customer. So like you say, getting something that works for typical scenarios in restaurants is not so straightforward.
I don’t know what is the best way really. Maybe we should look at other POS software that implemented this already that is being used and see how they do it, and also how it works when you split?
I tried this but it seems to only work on “Unpaid” ticket, not on “New Orders” (after adding orders the ticket has to be closed, opened again and settled).
Not a big issue though, you usually don’t need to split a ticket you just created in real environment.
The other thing is that I don’t know how to load back the original ticket after partial payment is made. I thought the action saves it’s Id as a setting so I can Load Ticket and Display Payment Screen but there is no such setting in database. Do I have to store the ticket’s Id in the splitting rule “manually”?
For my setup this is by far the greatest function aded sice v5 release. As I have to register each sale with Financial Authority in Czech Rep, I run a script that communicates the data with their servers and saves a unique code that has been assigned to thie ticket which is being settled as a ticket tag.
Until now there was no convenient way to do partial payments and register each sale separately (except for splitting a ticket from orders screen).
I can split the order but after settling the partial order it takes me to the tables entity screen where it wants me to select a new table for the remaining ticket…
It does not save the ticket id to database (ProgramSettingValues table) but thats how it should work when it’s local setting (Is Local is set to True), right?