Multi currency invoicing (bug 715123)
janssens-geert at telenet.be
Tue Dec 3 17:29:11 EST 2013
I'm looking into bug 715123 - Post invoice problem, cannot unpost.
Mini summary: when an invoice is created with entries referring to
accounts in a different currency than the invoice currency, the user is
asked for an exchange rate at post time. This works fairly well, except
that if the tax table associated with the entry also uses a foreign
currency (relative to the invoice currency), the post process aborts.
The conceptual fix is to check the tax tables for foreign currencies as
well and if they have one, ask for the respective exchange rate(s). In
concept this is fairly easy to do.
I am however mulling over the level of detail to expose to the user. The
current implementation asks the user for an exchange rate for each entry
for which no exchange rate is known (yet).
Concrete example: invoice in EUR, 3 entries referring to a USD account.
When this invoice gets posted: the user will be asked for a conversion
rate from EUR to USD only once - for the first entry referring to a USD
account. The other entries are skipped because the exchange rate is
already known. To get the exchange rate gnucash will show the user the
amount of the entry (tax included).
And there's my point of uncertainty: what amount would make most sense
to the user to see for a conversion:
- the amount of one single entry, with or without tax included ?
- the total amounts for each currency as they appear on the invoice ? In
the example that would mean the sum of the three USD entries, possibly
with tax if tax is in the same currency. If tax is in yet another
currency another exchange rate would be asked for the total amount of
all taxes in that currency.
For me the second option makes more sense.
Note particularly in the second option that currently it's possible to
have entries in invoices for which the referring account's currency is
different from the accounts' currencies in the tax tables. I'm not sure
if there is any real world use case for this, but the code doesn't
restrict this. You can currently even create one tax table with accounts
in several currencies, so for one invoice entry you could end up with an
invoice currency, and entry account currency and several tax table
account currencies all being different.
So the second question would be: how flexible should gnucash be to still
be practical and not overly confusing ?
For example, would there exist real world situations where a tax table
should support accounts in multiple currencies ?
More information about the gnucash-devel