Multiple Currency Transactions

Michael Culbertson michael.culbertson at gmail.com
Thu Oct 7 15:39:29 EDT 2004


Hello,

  I was pleased to hear that the 1.8 branch of GnuCash would support
transactions in multiple currencies since I knew I would soon be working in
France and would need to keep track of income and expenditures in both USD
and EUR and didn't want to migrate out of my well-established GnuCash
environment.  But, now that I've taken a look at the new functionality, I
think it may have fallen short of what I was expecting---unless I've failed
to underrstand the features.  The Concept Guide explains how to use the
Price Editor to allow parent account values to include the amounts of
sub-accounts with different currencies, but it seems that the chapter on
recording purchases in a foreign currency has yet to be written.  By
experimenting with the "Edit Exchange Rate" option in the Actions menu of
the register, I was able to figure out how to get a cross-currency
transaction recorded such that the appropriate values were visible from each
account.  But, as far as I can tell, it's currently necessary to enter an
exchange rate for each and every transaction (and for each split in a
multi-split transaction, even if several splits share the same
non-transaction currency!).  If you fail to provide an exchange rate for
each foreign-currency split, the split's value is set appropriately to the
amount in the transaction's currency but the split's amount (what I
underestand to be the value in the split's account's currency) is recorded
as zero (I assume because the register's rate cell is empty).  When such a
trannsaction is viewed from the foreign-currency account, all of the values
are empty and the account's balance remains unchanged.

  As far as I can tell, the price editor is used only for displaying amounts
in account trees and reports.  Couldn't we use the price database to
automatically populate the register's rate cell for foreign currency splits
so that the splits' amount fields are calculated appropriately?  Or is this
not a good idea for some reason I haven't considered?  I'm not all _that_
familiar with the GnuCash internals, but from what I've seen in exploring
the code, it seems that gnc_split_register_handle_exchange() might be a
likely candidate for the lookup---that way if the lookup fails, the user can
be prompted with the exchange dialog.  There are a couple of other places
that might work too, I think, but I'm not quite sure how they all fit
together yet.

  What does everyone else think about this issue?  I don't think the problem
of wanting to keep track of expenditures in one currency and the asset used
to pay for them in another is all that unreasonable (but then again, I'm not
an accountant).  As I see it now, the only two options are to manually enter
currency conversion information for each split or to create sub-accounts for
each currency under each expenditure type.  Both solutions seem overly
cumbersome to me.

Michael Culbertson


More information about the gnucash-devel mailing list