Hello. In this tutorial I’ll show you some rounding features of SambaPOS. I’ll demonstrate different rounding methods here so you can choose that fits fine to your business needs.
##Method 1: Automatic Rounding to Nearest Value
Automatic rounding to nearest value means it can both increase or decrease ticket amount. So we’ll need two account transactions and ticket calculations here. By default SambaPOS has Discount and Rounding accounts. We’ll create two additional account transactions to differ them from manual discounts.
We’ll start by creating a new Account Transaction for rounding ticket amount to upper values.
… and another one that decreases ticket amount.
On next step we’ll configure calculation types.
This calculation will work if ticket amount needs to be increased. We want to round to nearest
0.50 dollar so we need to configure
Rate or Amount value as
This one works if ticket amount needs to be decreased.
Finally we’ll configure a Calculation Selector to enable calculations.
We’ll leave button header empty because this calculation works automatically without the need of clicking a button. I’ve added both calculation types and SambaPOS will enable appropriate calculation.
As always we shouldn’t forget mapping.
Let’s see how it works.
On this sample ticket balance automatically increases from
To demonstrate the opposite case I’ll add %15 discount. It automatically decreases by
0.02 and Ticket Balance becomes
As the result SambaPOS creates that transaction document. I wont describe it in detail but if you have questions about that feel free to ask.
###Side Note: Payment Screen Prices
As you know you can settle tickets by clicking orders on payment screen. You’ll notice when we have both auto rounding and a discount, payment screen prices becomes too fractional.
You can round these prices too. Change
Settings > Program Settings > Payment Screen Settings > Auto Rounding to round these prices.
Changing it to
0.25 will round each order prices to nearest 25 cent.
Prices are better now. SambaPOS does some magic calculations here to fix prices without changing ticket total. Since it does not change ticket total this rounding is only useful to display rounded prices on payment screen.
##Method 2: Rounding by Lowering Ticket Amount.
If increasing ticket amounts for rounding is not appropriate for your business you can use this method. On this sample I’ll start with a fresh database.
Since we won’t increase ticket amount we only need a
Transaction Type that works with discount account.
The calculation type will be slightly different.
Decrease Amount and choose
Round Ticket Total Exactly calculation method. Since we want it to round to 50 cents I’ll set
Rate or Amount value to
0.5. You can change this value. For example if you want it to round by 5 cents you need to enter
Finally we’ll configure
Calculation Selector. Don’t forget mapping it.
Now we can create a ticket to see how it works. To demonstrate the difference I’ll create the exact same ticket that we created on method 1.
You’ll remember ticket amount increased to
6.50 when we used method 1 but this time ticket amount decreased to
6.00 because we forced it to round ticket amount with discount.
##Method 3: Rounding by Payment Type
Instead of rounding ticket amount automatically you can prefer rounding it when a specific payment type selected. In this tutorial I’ll change
Method 2 configuration to work when ticket paid with
Calculation Selector since I don’t want to apply
Auto Round calculation automatically.
Auto Round Calculation type should disappear.
I’ll change Cash payment type to add a
Payment Processor. Navigate to
Tickets > Payment Types and double click
Cash to edit.
Add and choose
Add Calculation processor.
Add Calculation row by clicking on it and click
On previous tutorial you’ll remember we’ve configured a Calculation Template named
Auto Round. Type it’s name and set an rounding amount. We already have an amount configured for
Auto Round template but I can alter that value here. To test it with a different value I’ll type
Save it and create a ticket to see what will happen.
Balance did not changed. Click
SambaPOS notifies me if I settle with cash ticket amount will become
$10 and click
When I click
Cash SambaPOS will warn me about customer will pay
6.25. We can skip this confirmation by unsetting
Confirm setting while configuring payment processor.
When I click
Yes ticket amount decreases to
##Method 4: Rounding Manually
I’ll start a new default database to demonstrate this feature. Instead of rounding ticket amounts you can prefer doing it manually. SambaPOS automatically creates
Round button to round ticket amounts by typing a rounding amount but since you need to type rounding value it is a little harder to use and it does not support rounding by increasing ticket total.
I’ll demonstrate an alternative solution here.
Since we need to support both increasing and decreasing ticket amount we’ll start by creating two account transactions.
First one for increasing ticket amount.
Second one for decreasing ticket amount.
We’ll also create two
This one will work when ticket amount increases. I want to show something different here. I’ve typed
Template Name as
Service so it will be displayed as
Service when we increase ticket amount.
Please notice I’ve selected
Fixed amount from ticket total as
Calculation Method. I’ll create another one to decrease ticket amount.
When I decrease ticket amount it will appear as
Rounding. Please note I’ve enabled
Decrease Amount setting here.
Now I’ll create a
This time I’ll set a
Button Header value. When I type a Button Header it will display a button instead of applying calculation automatically.
Add a mapping and save it.
On payment screen we’ll have
Auto Round button. You can label is as you want.
By using this button I can change ticket amount by typing a target amount. That means if I type
7 and click
Auto Round ticket amount becomes
0.51 added to Ticket and it appears as
If I type
6 and click
… ticket amount becomes
6 and it displays as
Auto Round without typing a target value will remove calculation.
While configuring calculation selector you can include a single calculation type to support only decreasing or increasing values. You can also configure mapping to display this button to specific users or or ticket types.
Thank you for reading.