Open Source Restaurant POS Software

User Tools

Site Tools


Writing /var/www/ failed
Writing /var/www/ failed
Writing /var/www/ failed



Writing /var/www/ failed

Working with Foreign Currencies

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.

  1. Which payment methods we'll accept? Do we accept Dollar payments with Credit Card? If we do we should create separate accounts for them but for most cases accepting only cash will be enough. For this reason we'll accept cash only.
  2. Does all departments accepts foreign currencies? For example do we need this feature for Delivery Sales?

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.

  • Name will be 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.
  • Account will be 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?

  • Discounted price becomes $20,30
  • All order prices updated.
  • Euro amount becomes 17,33 €.
  • All payment buttons removed and Cash ($) button appeared.

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.

Configuring Change Payment Templates

We have two options here:

  1. We can configure SambaPOS for calculating change amounts from the base currency so no questions asked.
  2. We can configure all permitted change amounts so cashier can choose what customers wants.

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.

en/v3/working_with_foreign_currencies.txt · Last modified: 2012/10/16 20:50 (external edit)