GnuCash
Contact   Instructions
Bug 797237 - User Pref "Default currency" is annoying, if the user has books in different currencies.
Summary: User Pref "Default currency" is annoying, if the user has books in different ...
Status: REOPENED
Alias: None
Product: GnuCash
Classification: Unclassified
Component: Currency and Commodity (show other bugs)
Version: 3.5
Hardware: PC Windows
: Normal major
Target Milestone: ---
Assignee: core
QA Contact: core
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-14 01:53 EDT by Matt
Modified: 2019-12-11 14:38 EST (History)
5 users (show)

See Also:


Attachments

Description Matt 2019-05-14 01:53:23 EDT
When you create a new set of accounts, it asks what currency to use. If you choose anything other than USD, then the entire program becomes a nightmare to use, because ever report and every new customer and every new invoice and everything still defaults to USD. Even going into Edit->Preferences->Accounts and explictly specifying a non-USD currency does not fix it. When you create a new invoice, it of course does not work because it cannot find accounts receivable, because even though the invoice is non-USD and the income account is the same non-USD and the accounts receivable is also the same non-USD, it creates the "customer" as a USD customer and it is a total nightmare.
Comment 1 Frank H. Ellenberger 2019-05-14 02:38:20 EDT
Did you read e.g. https://wiki.gnucash.org/wiki/Locale_Settings?

What is your region, language etc.?
Comment 2 John Ralls 2019-05-14 09:39:35 EDT
We just fixed several localization problems on Windows. Please test a recent nightly build from https://code.gnucash.org/builds/win32/maint.
Comment 3 Matt 2019-05-19 02:31:07 EDT
OK, I can see what the problem is. The default currencies are all based on the user locale, instead of the set of accounts. This is a problem. If I have two sets of books (one for a HK company and one for a US company), the HK company books need to default to HKD while the US company books need to default to USD. There is no way to do that. It just picks up my language as the default, which makes no sense whatsoever. During the account creation process, it asks for the currency of the accounts. Although it uses this to create the initial set of books, it then discards that information entirely. This seems like a complete inversion of the way accounting works. If I have a HK company where my main currency is HKD, then that needs to be the default, but only for the books for that company, not for the books for all of the companies.

The current system-wide defaults approach means it very difficult to deal with accounts for multiple companies in different countries.
Comment 4 Frank H. Ellenberger 2019-12-10 20:14:32 EST
Sorry, you should really have a look at the documentation instead writing things, which are definitely wrong:
See "Choose Currency" in https://code.gnucash.org/docs/C/gnucash-guide/basics-running-gnucash.html#basics-acct-hierarchy and https://code.gnucash.org/docs/C/gnucash-help/set-prefs.html#prefs-accounts for the details.

Feel free to reopen this report, if you have some idea, how we could improve the documentation.
Comment 5 Geert Janssens 2019-12-11 03:58:36 EST
Frank, I believe Mat makes a valid point.

The preference you refer to on the Accounts tab is user level, not book level. So if you have one book in USD and one in HKD the default you set is correct only for one book. So if you switch books often you risk getting bitten by a wrong currency more than you like. Your options are very consistently change the default each time you switch books, or be very vigilant to explicitly set the currency you want when creating accounts or vendors/customers. The same goes for the default report currency (why is that a separate option in the first place by the way?).

This is clearly an example of a preference that should have been book level rather than user level. And I agree the default currency one chooses when setting up an account hierarchy via the assistant should be used as default for the entire book - whether that's creating new accounts, new vendors and customers (which in turn define the currency for bills and invoices), or reporting.

I'd go even further still and derive the default number format from this default currency.

Finally it should of course be possible for the use to change his/her mind, so we still need a preference setting somewhere. As it's book specific, it should probably live under File->Properties instead of Edit->Preferences in the current context.
Comment 6 Frank H. Ellenberger 2019-12-11 13:36:29 EST
Ah, yes, now i see the point "switching between books".

IMHO we should replace in Edit->Preferences->Accounts->Default Currency
the default selection 'Locale' by 'Book Currency'
As long as no book is open, it will fall back to locale.

I doubt there will be much desire for a backward compatible "always use locale" option.
Comment 7 Frank H. Ellenberger 2019-12-11 14:08:33 EST
> I'd go even further still and derive the default number format from this
> default currency.

I believe, this is a bad idea: all LANG={de|fr|nl}_BE use the same formats. But most DE_* use different formats: 
de_DE: € 2.000,00
de_CH: SFr. 2'000.00
In CH books in 4 different currencies are common: CHE, CHF, CHW, EUR.
How will you derive the format?
From the fist 2 letters of the code?
Is there only one format for EU?
How do you want to derive it for X** currencies?
Comment 8 Geert Janssens 2019-12-11 14:38:04 EST
(In reply to Frank H. Ellenberger from comment #7)
> > I'd go even further still and derive the default number format from this
> > default currency.
> 
> I believe, this is a bad idea: all LANG={de|fr|nl}_BE use the same formats.
> But most DE_* use different formats: 
> de_DE: € 2.000,00
> de_CH: SFr. 2'000.00
> In CH books in 4 different currencies are common: CHE, CHF, CHW, EUR.
> How will you derive the format?
> From the fist 2 letters of the code?
> Is there only one format for EU?
> How do you want to derive it for X** currencies?

Firstly you missed my point: I suggested to derive the number format from the currency, not from the locale. In the example above for € the number format would be € 2.000,00, for SFr. it would be 2'000.00. This is not directly related to locale.

Secondly I said *default* number format. As with the currency the user should still have the liberty to change it.

But other than that, point taken. I can't tell if there's a generally recommended number format associated with EUR, or whether each country does its own thing. So let's just forget about this for now.

Note You need to log in before you can comment on or make changes to this bug.