Tobias & Nicole Krais schrieb:
GnuCash does not crash anymore. Good job! But: the amount isn't still
set properly. When I import a multicurrency transaction via HBCI, the
amount is only properly set in the account in which I use HBCI, the
other account remains without a value.


The fix was a quick workaround to avoid the crash. The fundamental problem is how do we tell what the amount is in a different currency? Ask the user?
Look it up online? For what date?

GnuCash knows when it is a multicurreny transaction. One account in GnuCash is in EUR (my German account) and one is in CHF (Swiss).

I think two different things get confused here with each other.


First, there was a bug in imported transactions where the other gnucash account had a different currency. This bug used to cause a crash, which has been fixed in 1.8.5. Nevertheless Tobias mentioned the amount in the other account "remains without a value", which is still a bug -- the amount in the other account *should* be set to the same amount as in the originating account, i.e. with a hypothetical exchange rate of exactly one point zero. This is our current workaround because the importer isn't yet set up to retrieve the real exchange rate from anywhere. Tobias, if there still is no amount in the other account (even after including my patch last week) then please report so. There should be the same amount as in the originating account.

In case the importer imports a transaction which is a multicurreny transaction,

*Now* we are discussing how the actual implementation of multi-currency transactions should be organized (which is a totally different issue from the bug above). In this case I would like to mention that in principle, the HBCI protocol gives gnucash the correct exchange rate and foreign amount (and even additional charges) for *each* transaction that involved foreign currencies. However, our current hbci library (OpenHBCI) didn't yet implement this information (see http://openhbci.sourceforge.net/doc/api/classHBCI_1_1Transaction.html HBCI::Transaction::originalValue() ). This means the information is probably already there, but it is not yet accessible by gnucash.


In the long term it means the HBCI module will provide the foreign amount / exchange rate for each multi-currency transaction, and the only extensions necessary in the importer is to accept this provided foreign amount somewhere and store it in the gnucash transaction. In fact this might already be possible today (implementation details follow): For a transaction from (HBCI-enabled) EUR account to a CHF account, the HBCI module can simply create a transaction with *transaction* currency CHF, insert the first split into the EUR account with the *amount* set to the EUR amount and the *value* set to the CHF value. Then, upon finishing this transaction, the import-backend will automatically add a second split with amount *and* value set to the CHF value. The import-backend already does the RIGHT THING as long as the transaction's currency is identical to the other account's currency, and this is absolutely independent of whether the txn's currency is identical to the originating account's currency or not.

Christian

_______________________________________________
gnucash-devel mailing list
[EMAIL PROTECTED]
http://www.gnucash.org/cgi-bin/mailman/listinfo/gnucash-devel

Reply via email to