Rounding and issuing change in multiple currencies

Yes. Just to demonstrate how it works internally.

Did you understand what to was trying to suggest?
A inverse tendered amount screen - if that makes sence…

Hmm. do you suggest operator to type the amount and choose the currency?

I’m trying to find a way to do it automatic when split button is clicked :slight_smile: I guess it follows a similar pattern like … whole amount from Foreign Currency and remaining from base currency.

However it really depends on physical cash availability in that currency so allowing operator to type the amount might be a solution. I mean this is not a good solution as it is very open to typing errors but it looks like there is no better way to do it.

Also how are you defining whole amount for foreign??
If you want to split change in multiple currencies I think you need to have a way to enter change given in perticular curency.

If it shows total change in each curency and then you enter an amount and press the curency it calculates that change in that curency and updates the change due figures to the remaining it would allow you to give change in any combo of currencies you have in your system.

1 Like

I think so too. So for example, if you had clicked the US Change amount, instead of automatically using the entire US amount, a prompt appears, pre-populated with the entire amount (or maybe better, pre-populated with the “whole” (integer) US amount without the decimals), then you either change the amount or click ok.

Then, if there were no decimals to the US change given, the process is done and displays the change given (in each currency?), but if there were decimals, the process repeats with displaying the updated change amount remaining in each currency.

As an aside, thinking forward, I suppose we’ll need support for the currencies in Printer Tags, like {CHANGE AMOUNT:<currency>}, as well as Total Amount and Tendered Amount …

Well had to make a lot of changes on payment screen but I think I finally achieved something useful. Let me demonstrate it for now, I’ll upload it soon.

Case 1. Single Foreign Currency, Two Change Templates.

In this case additional change template configured for default cash account. This account have no currency assigned.

Exchange rate for MXN configured as 20.
We assume default currency is $.

On this sample we’ll tender 9$ give 40 MXN and $0.51 back.

I cleared transactions to review how it reflects to accounting and made a similar transaction. This time I selected MXN before entering tendered amount.

Same Transaction. This time I selected $ as whole change.

###Case 2: 3 Currencies. 3 Change templates

In this case I also configured a currency for default currency so with additional 2 foreign currencies (TL, MXN) we have 3 currencies. We also have 3 Change Templates.

To create an extreme case I’ll create $6.49 ticket, settle $10 and split change to 10 TL and remaining as MXN.

Bonus Uber Case :slight_smile:

Modifications I’ve made how change templates works now allows us to apply change amounts to non payment accounts. For example we can credit all or part of change amount to Customer Account.

In this case we have single foreign currency and 3 change templates. One for Default currency, one for foreign (MXN) currency and one for customer account. I’ll create two tickets to demonstrate splitting change amount or apply it as a whole.

You’ll notice Customer Credit option appears when we select a customer to ticket. For SambaCard implementation we may have additional change templates so related change buttons will appear.

I hope these features improves how you handle changes.

1 Like

That look s fantastic @emre! Can’t wait to try it out.

1 Like

Wow - What else can I say. This is really exciting and I appreciate all your work so much.

I was just making some images to try to demostrate how I thought this could be achieved, but what you have put together is so much quicker and easier than what I could come up with. You have a great eye for User Interface design and functionality.

Congratulations. I can’t wait to check-out the latest beta of v5 - So if possible, please add me to the group.

Just one (extra) wish…

Could we have a recipt that looks something like this? (I think probably everything could be acomplished with the variables that are already exposed, but I haven’t looked closely at this yet…)

In this example I am usinging exchange rates which are changing day-by-day as clients make multiple partial payments each day

DIVE CENTER

1 x DIVE      $70
1 x GO-PRO    $30
==================
TOTAL:        $100
==================

PAID: 50 USD  08-NOV-2016
PAID: 200 MXN 08-NOV-2016 (10.26 @ 19.50 MXN/USD)
PAID: 50 CAD  09-NOV-2016 (37.04 USD @ 1.35 CAD/USD)
PAID: 200 MXN 10-NOV-2016 (9.62 @ 20.80 MXN/USD)

---------------------
TOTAL PAID:   $106.92
CHANGE DUE: $6.92
---------------------

CHANGE GIVEN: 5 USD
CHANGE GIVEN: 40 MXN (1.90 USD @ 21 MXN/USD)
------------------------------------------
TOTAL CHANGE GIVEN: $6.90 ($0.02 ROUNDING)

2 Likes

I am sure Emre will give us the necessary Printer Tags to achieve this. Most of it is already there (ie. XR Tags), save for {CHANGE AMOUNT:x} and {TENDERED AMOUNT:x} which will require sub-selection.

1 Like

@QMcKay is it related?

Yes, exactly. We currently have Tags for Change and Tendered, but they are based on default Currency. We will need to be able to drill-down those Tags so we can show how much was paid and how much change was given in each currency. So I think we need “sub-selection” added to those Tags, for example:

{TENDERED AMOUNT:<currency>}
{CHANGE AMOUNT:<currency>}

There might be others that I can’t think of right now, but those a 2 that come to mind.

Well we store no currency info within payments. I’ll try to find a way to fetch them from accounting.

@mjb2000 I uploaded the update and added you to beta group. Search for 5.1.61 topic for updates.

1 Like

Hi @emre

Thanks so much for all your help on this. I have downloaded the very latest version from the Beta group and the inverse exchange rate is working perfectly, but I am only able to get change in the currency which was last tendered. I seem to have taken a step backwards as before I was able to issue USD when someone paid with MXN, but now it jumps straight to issueing change with no buttons at all.

From a vanilla install, I have

  • Created a new currency called MXN
  • Created a new account called Cash (MX) (default currency is selected as MXN)
  • Created an account transaction called Change Transaction (this is a reversed clone of payment transaction)
  • Created a change transaction type called Change MX and Change US each of this has * mappings and " Change transaction" selected as the transaction type. I have also tried setting these with and without the respective cash accounts selected.

Whatever I do I only ever seem to be offered change in the last currency tendered.

What do you think I might have missed?

I just tried this and had the same problem. Needed an additional Change Transaction Type.

This is backwards from what you want (my foreign is USD), but you should get the idea…

1 Like

And here is additional for using Change amount to Credit Customer Account …

Although I didn’t tested it looks like a valid setup. I’ll check that.

Edit: I uploaded a new update. It should handle that setup fine.

Thanks so much @emre
The latest update seems to work great with multiple change currency. I really appreciate your time in helping with this.

I am not sure if you have seen my post in another thread, but I am trying to buy SambaPOS right now, but at the moment the payment doesn’t seem to be working.

I am looking forward to seeing the future development of SambaPOS, in particular I’d be really excited if we can get recipts printed detailing the amounts paid in the various currencies.

I think we might already have the needed Printer Tags …

--Payment Values-- 
PAYMENT AMOUNT Payment Amount
PAYMENT NAME Payment Name
PAYMENT TYPE NAME Payment Name
TENDERED Tendered Amount
CHANGE Change Amount
DESCRIPTION Description

--Change Payment Values-- 
CHANGE PAYMENT AMOUNT Change Payment Amount
CHANGE PAYMENT NAME Change Payment Name

Those Tags would be used in the following sections:

{PAYMENTS}
{CHANGES}

For example:

[PAYMENTS]
<J00>{PAYMENT NAME}| {PAYMENT AMOUNT}

[CHANGES]
<J00>{CHANGE PAYMENT NAME}| {CHANGE PAYMENT AMOUNT}
1 Like

Ahh - awesome. Thanks @QMcKay

It looks like I have a lot more learning still ahread of me. But I am looking forward to it now! :slight_smile: