Customer payments not working in v2.0.5

Graham Leggett minfrin at
Fri Aug 3 11:54:21 EDT 2007

On Fri, August 3, 2007 5:17 pm, Derek Atkins wrote:

> If it's been working for the last five years then what changed between
> the last time it worked and the when it stopped working?

What caused the problem was a change made 3 months ago when I started a
new business in a new country. The problem was subtle - the transactions
made since the change three months ago, some of them were silently
incorrect when you looked at the data file, but still worked.

I think the vector that caused the problem to become visible was when a
customer was added after the currency change from 3 months ago. As soon as
an invoice was raised from this particular customer, the problem started.
Most of the invoices raised are from long running customers.

> This implies, to me, that the Customer's "Currency" configuration
> is wrong.  I bet you have it set to "Locale Currency" instead of
> specifying one.

Quite possibly - the principle of least astonishment would dictate that
when you enter the amount of money in the "customer payment" dialog, that
it would be prefixed with the customer's currency so that this is clear.

Right now, if the currency is wrong, the register fields become blanked
out, and the end user is given no clue as to what is wrong.

>> The plot thickens... looking inside the XML of the gnucash data file,
>> it looks like gnucash has been ignoring the currencies on each
>> register, and instead been using the the gnucash-wide currency for
>> transactions.
> Sorry, but that's incorrect.  Transactions entered through a currency-
> based register will use that currency.  Transactions entered through
> a STOCK or MUTUAL register (or the GL) will use the locale currency.
> How do you enter your transactions?

The problems are happening when you raise an invoice, and when you try and
pay for an invoice using "customer payment". The general ledger works

>> This particular gnucash is responsible for loading two xac files, one
>> in one currency, and a second xac file in another currency, but this
>> should not make any difference to the xac files themselves - it seems
>> they do.
> Data files don't have an inherent currency, so saying "one in one
> currency and one in another" is wrong on many levels.

So the real problem is that data file has no inherent currency, but
instead relies on the currency that may or may not be present on gnucash
installation where the file was opened.

In order to be accurate, gnucash needs to rely on a well defined currency,
not the currency that happens to be the locale currency on a particular

>> I suspect what is happening is that when the certain transactions are
>> created, the currency of the transaction is being taken from the
>> default currency, instead of the register currency.
> This is true.  There ARE certain cases where it uses the locale
> currency.  In particular: Stock, Mutual, and GL registers, and when
> configured to do so in the business features.
> Also keep in mind that many of the currency configurations are stored
> in GCONF and not in your data file or data metadata file, so things
> like "Report Currency" dont stay with the data file.

This is definitely broken - an accounting system needs to be repeatable.


More information about the gnucash-devel mailing list