Hello. In this tutorial I'll show you how to enable foreign currencies and working with them. I'll use default database and make all needed configurations step by step.
We'll assume our primary Currency is Turkish Lira and we accept Dollar and Euro while settling a ticket. Let's see how we'll do it.
First of all we'll start with creating foreign currencies.
We'll create Dollar currency by navigating to Settings > Currency List > Add…
. Currency symbol seems a little complex. We need to define if the currency symbol used as prefix or suffix. We'll use {0} as a placeholder for number and use :N flag for formatting it as a number. If you don't need to see decimal places you can change :N flag with :#. So our Currency Symbol Format becomes {0:N}
Rounding is a special setting used with Order Selectors (the payment screen part where we choose which order paid). When you enter a number other than 0 here SambaPOS will round prices to 0,25 for easier settling. I'll show it in more detail soon.
Name and the Exchange Rate values are filled with needed values.
We'll create another currency called “Euro”.
This time we'll use different Exchange Rate and leave rounding as 0 for understanding how it works.
After creating currencies we need to create seperate Cash Accounts for them. So we'll be able to understand how much Dollar or Euro we have on hand.
Navigate to Accounts > Account List
While creating an account we need to choose correct account type for better grouping. We can choose Payment Accounts
type for foreign currency cash accounts. Let's do it.
After hitting save create a new account for Euro Cash. Account Type will be Payment Accounts and Choose Euro for currency.
We have two more cash accounts for foreign currencies. When we receive Dollar or Euro
Now we need to ask two questions here.
For assigning these payment methods to departments we'll create payment buttons and map them to departments. Let's see how we'll do that.
If you used SambaPOS before you'll remember payment types was hard coded. With V3 we can create new payment types or configure them for our needs. As shown in the screen shot we have four pre-defined payment methods. Now we'll create two more for accepting cash payments in foreign currencies.
Cash ($)
and this will be displayed on payment button. Account Transaction Type
is used for how this payment transaction works. A ticket creates an account transaction from Sales
account to Receivables
account. So we can see how much we sold and how much we'll receive. A cash payment creates a transaction from Receivables
to Cash
. So we'll choose Payment Transaction
here. We'll check this topic in more detail soon.Dollar Cash
account. Since Dollar Cash account attached to a Foreign currency that button will appear when we want to receive dollar cash payment.
Let's switch to Mappings tab
and configure where that button is displayed.
This mapping screen is similar to Print Jobs
configuration. We can choose in which departments that button will appear. Additionally we can configure it for a specific User Role. If you choose Display under Ticket
the button will appear under ticket and works like V2 Fast Food Department.
The last step will be creating an additional button for Euro payments. (at this point Restarting SambaPOS might be needed for refreshing caches.)
It is time to visit Payment Screen. Switch to POS screen. Create a Ticket and click Settle.
Awesome! We have two buttons under the ticket and they displays the remaining amount in foreign currency amounts. We'll use them when we need to receive payments in other currencies.
As you've noticed $ sign used as a prefix and € sign displayed as suffix. This is what we configured while setting up Currency Symbols
on Foreign Currency screen.
I'll click $ 21,82 and add %7 discount
What happened here?
$20,30
We should notice how order prices calculated here. If you can remember we configured Dollar Currency to be rounded to 0,25. For this reason all prices rounded to 0,25 and remaining amount added to smallest order price. This is 3,80 here. To understand what happens if we don't use rounding let's switch to Euro by clicking 17,33 € button.
Now payment button Changed to Cash (€) and all related values updated. Notice how order prices calculated when there is %7 discount and we don't use rounding for a currency.
Now receive 10€ payment, close payment screen, close ticket and see how it displayed at account screen. After leaving ticket unpaid Navigate back to Main Menu and Click Accounts
button.
This screen will give a quick idea about the status of sales, unpaid ticket totals and Cash amounts. As we can see we have 10€ in cash and 15,54 of the ticket still not paid.
Now we'll go back to ticket and Settle the rest as Dollars. Let's see the ticket first.
After clicking $ 8,59
button all prices calculated as dollars. We can settle the rest by clicking All > Cash
. But what happens if customer gives $10 ?
Houston We Have a Problem !!!
The problem is we don't know how we'll calculate change amount. Normally we assume change amounts will paid pack from the currency it settled but in this case we don't have and dollar in our cash. If we proceed how we'll pay $1,41 back? On the other hand customer can specifically request the change from a different currency.
We have two options here:
Let's do this configurations before settling this ticket.
First of all we'll create an Account Transaction Template
for Change Transactions. Let's Navigate To Manage > Accounts > Transaction Types
For now I'll skip details about this topic. Change Transactions
works exactly as reverse of Payment Transactions
so I'll clone Payment Transaction
and reverse Account Types.
This is how we should configure the Change Transaction
. Now SambaPOS know how it should create change transactions. Now we'll create Change Payment Types. For each Change Payment Type
configured SambaPOS will create an option button for choosing change payment currency.
Navigate to Manage > Tickets > Change Payment Types > Add …
This is needed for change payments in base currency. It is Turkish Lira (TL) in our example. If we don't configure additional Change Payment Types
all change payments will paid from base Cash
account. Now we'll configure additional Types for each currencies for the example.
Don't forget adding mappings for new created Change Payment Types
We should see something similar after completing creating them. Now we can go back to ticket and settle $10.
… and Click Cash ($)
Now SambaPOS asks which change amount we prefer. Since we have only € in Cash I'll choose that.
SambaPOS displays Change Amount in €. Let's check Account screen and see what we have on hand.
Did you noticed? We did something crazy here:) We received 10€ and $10. Additionally paid $10 change in Euros.