Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] Additional/Multiple Currencies Support #19

Open
moriel5 opened this issue Sep 23, 2024 · 3 comments
Open

[Feature Request] Additional/Multiple Currencies Support #19

moriel5 opened this issue Sep 23, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request refactor Warrants a major change

Comments

@moriel5
Copy link

moriel5 commented Sep 23, 2024

As it is, Arru has no way of setting the currency, and assumes that all transactions are made in USD (or other Dollars, depending upon the country).

In many countries (like mine) that is not very realistic, both because the local currency is not in Dollars, as well as due to people importing from abroad.

As an example, in my country it is common to order from both Amazon US (USD) and Amazon DE (Euro), as well as AliExpress (many rely upon USD for this, to avoid additional tariffs originating from the conversion from CNY to USD and the to our local currency), with some ordering from Amazon UK (GBP) or Amazon Japan (JPY) as well, with other platforms on the list (up until the war in Ukraine, platforms such as WildBerries (Russian Roubles) were also purchased from).

It would be nice to be able to choose the currency in use, as well as hook into a currency exchange API to allow easier tracking how much money is used in one's local currency.

@KSSidll
Copy link
Owner

KSSidll commented Sep 23, 2024

It would be nice to be able to choose the currency in use, as well as hook into a currency exchange API to allow easier tracking how much money is used in one's local currency.

I can see the use for choosing currency separate from the language (it would be purely aesthetical if implemented by itself)

when it comes to multiple currencies though, it's a bit of an issue because you have to display that somehow without making it overwhelming to the user
I feel like the easiest way would be to just convert to the main currency (based on the exchange with an option to manually override the rates)
that's also pretty much what Arru is at the moment but without the need to do the calculation manually
the automation in itself opens up another issue of what to do when the user changes the main currency (recalculate every transaction? rates from exchanges might be different from what was actually used, and I'm not even sure if that's viable due to API access constraints)


Naturally none of that should be of a concern for the user
but locales are kinda hard, so it might take a while for me to figure out a reasonable and user friendly solution for multiple currencies support


I will focus on just being able to change the displayed currency symbol for now and will look into multiple currencies support after that

For now the best, even though monotonous, that I can recommend is treating the currency in the app as the main currency you use (or whichever you want really) and input the prices in that currency

@KSSidll KSSidll self-assigned this Sep 23, 2024
@KSSidll KSSidll added the enhancement New feature or request label Sep 23, 2024
@moriel5
Copy link
Author

moriel5 commented Sep 24, 2024

Sorry it took this long (and I had not written the other issues yet, either), I had to help out around the house and I fell asleep afterwards.

when it comes to multiple currencies though, it's a bit of an issue because you have to display that somehow without making it overwhelming to the user

That certainly makes sense, though I think that could go both ways, where it could confuse people used to dealing with multiple simultaneous currencies and tracking them if it too simple.

How about your idea, but show the original currency underneath in small text, and have an option to switch between the roles?

(recalculate every transaction? rates from exchanges might be different from what was actually used, and I'm not even sure if that's viable due to API access constraints)

I think that just updating a static offline list against the API, similar to what Unit Converter Ultimate* does, automatically once a day and/or manually for those who prefer, and recalculating against that list upon entering the value, may be a good idea.

I will focus on just being able to change the displayed currency symbol for now and will look into multiple currencies support after that

Fair enough, don't take upon yourself too much at once.

*Unit Converter Ultimate's source did can be found here, should it be relevant:
https://github.com/physphil/UnitConverterUltimate-Studio

@KSSidll
Copy link
Owner

KSSidll commented Sep 24, 2024

Sorry it took this long

Nobody is being paid here, so there isn't, nor should there be, any time pressure. If you write like this, I will feel bad for not updating the app faster 😢

How about your idea, but show the original currency underneath in small text, and have an option to switch between the roles?

The bigger problem to solve is the aggregate data display.
After sleeping, the best I've got (e.g. for charts) is having the aggregate value as it is now, in the chosen main currency, and color code for how much which currency contributes to that aggregate wherever applicable

I think that just updating a static offline list against the API, similar to what Unit Converter Ultimate* does, automatically once a day and/or manually for those who prefer, and recalculating against that list upon entering the value, may be a good idea.

The problem that I had in mind was the time distributed nature of the transactions. When changing the main currency, we would have to either just ignore it (which would make no sense) or recalculate based on the rate of exchange on that exact day.

rates from exchanges might be different from what was actually used

I thought this would be an issue, but if you change the main currency I feel like the original rate of exchange automatically stops being relevant and the actually relevant rate is the old currency to new currency

If the API allows for it, I feel like a viable solution for multiple currency logic would be something like this:

  • User chooses main currency (app won't allow adding price dependent objects if not chosen)
  • When adding a transaction or an item to it, there is an option to use a different currency, the rate is automatically selected based on a daily updated map of conversions, the user can change the rate if it's inaccurate
  • When user changes the main currency, the app fetches a map of the historical exchange rates from the previous to new main currency for the timespan of first to the newest transaction, updates every price dependent object based on the rate for its specific date

Mind you, this together with the currency display might take some time to implement (I'm talking probably months), I try to implement small changes quickly, but this is a massive change and sadly Arru isn't my current priority in life.

As said before, I will focus on just being able to change the displayed currency symbol for now. If lack of true multiple currencies support is preventing you from using the app, then I'm sorry, but I can't help with that for now. Please do check out Arru once every few [weeks/months] though, and thank you for your input 👍

@KSSidll KSSidll added the refactor Warrants a major change label Sep 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request refactor Warrants a major change
Projects
None yet
Development

No branches or pull requests

2 participants