Hi Mike,

> It seems to me that the simplest solution, and one that might work reasonably 
> well, is to make it possible (via a view option) to switch any register into 
> the format used for non-currency registers where there are separate columns 
> for shares, price, and value for each split.


as a heavy user of multiple currencies and trading accounts I would very much 
welcome that.

Cheers,
Christoph

> Am 20.08.2019 um 00:36 schrieb Mike Alexander <m...@umich.edu>:
> 
> I’ve been thinking for a while about how the register could be changed to 
> better handle multiple currency transactions with trading accounts   turned 
> on.  Back when I implemented trading accounts I knew this was a problem.  
> However at that time it was expected that the Register2 rewrite of the 
> register code would make the old register code obsolete so I didn’t worry 
> about it too much.  This is clearly no longer a valid assumption.
> 
> It seems to me that the simplest solution, and one that might work reasonably 
> well, is to make it possible (via a view option) to switch any register into 
> the format used for non-currency registers where there are separate columns 
> for shares, price, and value for each split.  The labels would need to be 
> changed for currency splits since “shares” becomes the value in the split’s 
> currency, “price” becomes exchange rate, and "value" remains the value in the 
> transaction currency.  Getting all the details right might be tricky, but 
> this seems to have possibilities.
> 
> The current code shows only one of those three values, and which one depends 
> on whether trading accounts are turned on.  If they are on it shows the value 
> in the split’s currency.  If off, it shows the value in the transaction's 
> currency.  This adds still more confusion to the situation.  A simple change 
> would be to make it always show the value in the split’s currency.  At least 
> then there wouldn’t be this confusion about what is being shown.  I didn’t do 
> this at the time because one of the goals was to make GnuCash work identical 
> to the way it worked before if trading accounts were turned off.
> 
> If I get some free time I might try to play around with this idea and see 
> where it goes.  If anyone else thinks this might work and wants to take a 
> crack at it, be my guest.  My time for software development is very limited 
> these days.
> 
>           Mike
> 
> PS: this probably should be moved to the Dev list if someone wants to 
> continue the discussion.
> 
>> On Aug 16, 2019, at 2:12 PM, John Ralls <jra...@ceridwen.us> wrote:
>> 
>> It's a difference in the way that the register works with or without trading 
>> accounts. If trading accounts are turned off then the register displays all 
>> splits converted to that register account's currency. If they're on then it 
>> displays each split in its own account's currency, with symbols for all but 
>> the current register's currency.
>> 
>> When dealing with multiple currencies "balance" can adopt different 
>> meanings. GnuCash requires that a transaction must balance in the 
>> transaction currency, which is generally the one for the account in whose 
>> register the transaction was created (or the first parent account 
>> denominated in a currency if the register is for a non-currency account). 
>> Since in a currency register the transaction currency value and the exchange 
>> rate between the register currency and transaction currency are hidden that 
>> can be difficult, especially in split view where the user is responsible for 
>> getting the (possibly invisible) values right. The more currencies involved 
>> in the transaction the harder it gets.
>> 
>> Regards,
>> John Ralls
>> 
>> 
>>> On Aug 16, 2019, at 9:39 AM, Jeff Abrahamson <j...@p27.eu> wrote:
>>> 
>>> Thanks, that's great, I'll have a play with that after work.
>>> 
>>> Two points concern me:
>>> 
>>> 1.  I don't see currency symbols in my registers.  Is this a setting?
>>> 
>>> 2.  I've been taught in accounting that transactions must balance, and
>>> so I was expecting to see the GBP register all in GBP, the CHF register
>>> all in CHF, and the EUR register all in EUR.  That is, if one sums the
>>> columns of a register, the Dr and Cr columns should have the same sum. 
>>> Am I confused about this principle?
>>> 
>>> I'll need to read about the trading accounts feature.  As someone who
>>> regularly spends money in several currencies, I don't really think of
>>> these transactions as P&L related, though I'm aware they could be
>>> modeled that way.
>>> 
>>> Jeff
>>> 
>>> 
>>> On 16/08/2019 18:13, Adrien Monteleone wrote:
>>>> So the Cafe’s price was CHF 5.70?
>>>> Your card was debited GBP 4.67?
>>>> 
>>>> The Expense:Coffee account is set to EUR?
>>>> 
>>>> 
>>>> First, yes, you’ll need Trading Accounts turned on.
>>>> 
>>>> Second, open the price db and fetch rates, then check the EUR-GBP rate, 
>>>> you’ll need it later. (I don’t see a way around this at present) For this 
>>>> example, we’ll use 1.0957 which I fetched just now.
>>>> 
>>>> 
>>>> Third, start your transaction by entering the following to ‘fund’ the card 
>>>> with CHF:
>>>> 
>>>>    Cr. Transferwise                GBP 4.67
>>>> Dr. Transferwise_CHF               CHF 5.70
>>>> 
>>>> (GnuCash will prompt for a GBP-CHF exhange rate, use the ‘debit’ radio 
>>>> button and field and enter the CHF amount, in this case, “-5.70")
>>>> 
>>>> The transaction should now read something like:
>>>> 
>>>> 
>>>> -----
>>>>    
>>>> Account                                            Debit           Credit
>>>> 
>>>> Assets:Current Assets:Transferwise                                 4.67
>>>> Assets:Current Assets:Transferwise_CHF             SFr.5.70
>>>> 
>>>> -----
>>>> 
>>>> 
>>>> (the 4.67 has no currency symbol because it is in the account’s currency - 
>>>> GBP)
>>>> 
>>>> Fourth, enter the actual expense part of the transaction:
>>>> 
>>>> Dr. Expenses:Coffee                EUR 5.12
>>>> 
>>>> The EUR 5.13 price is based on today’s rate between EUR-GBP above and 
>>>> calculated either on the side, or directly in the debit-entry field. 
>>>> (enter as: GBP*rate or 4.67*1.0957) We’re using the EUR-GBP instead of 
>>>> CHF-EUR because this transaction is being entered in the Transferwise 
>>>> (GBP) account.
>>>> 
>>>> When GnuCash prompts for the exchange rate, simply commit the FX window. 
>>>> We couldn’t wait to fetch the rate here, because we’d have to back out and 
>>>> re-enter the amount in the register to match.
>>>> 
>>>> Now, the transaction reads like this:
>>>> 
>>>> 
>>>> -----
>>>>    
>>>> Account                                            Debit           Credit
>>>> 
>>>> Assets:Current Assets:Transferwise                                 4.67
>>>> Assets:Current Assets:Transferwise_CHF             SFr.5.70
>>>> Expenses:Coffee                                    €5.12
>>>> 
>>>> -----
>>>> 
>>>> 
>>>> Fifth, you need to balance this with CHF funds taken from the card:
>>>> 
>>>> Cr. Transferwise_CHF               5.70
>>>> 
>>>> (GnuCash will again prompt for exchange rate, use ‘debit’ and “5.70” for 
>>>> the amount)
>>>> 
>>>> The transaction now looks like this:
>>>> 
>>>> 
>>>> -----
>>>>    
>>>> Account                                            Debit           Credit
>>>> 
>>>> Assets:Current Assets:Transferwise                                 4.67
>>>> Assets:Current Assets:Transferwise_CHF             SFr.5.70
>>>> Expenses:Coffee                                    €5.12
>>>> Assets:Current Assets:Transferwise_CHF                             SFr.5.70
>>>> 
>>>> -----
>>>> 
>>>> 
>>>> Sixth, since you have Trading Accounts turned on, when you hit `Enter` to 
>>>> commit this transaction GnuCash will add the balancing splits so your 
>>>> transaction looks like this in final form:
>>>> 
>>>> 
>>>> -----
>>>>    
>>>> Account                                            Debit           Credit
>>>> 
>>>> Assets:Current Assets:Transferwise_CHF             SFr.5.70
>>>> Expenses:Coffee                                    €5.12
>>>> Trading:CURRENCY:GBP                               £4.67
>>>> Assets:Current Assets:Transferwise                                 4.67
>>>> Assets:Current Assets:Transferwise_CHF                             SFr.5.70
>>>> Trading:CURRENCY:EUR                                               €5.12
>>>> 
>>>> -----
>>>> 
>>>> You can of course, make the transaction more ‘complete’ (or complicated as 
>>>> per your perspective) by also using actual CHF-GBP and CHF-EUR rates and 
>>>> accounting for the conversion fee rather than using the ‘debit’ option for 
>>>> those two splits.
>>>> 
>>>> You could also separate this into two transactions, one to ‘fund’ the CHF, 
>>>> then another to spend that on Coffee.
>>>> 
>>>> Note, that I tried doing this from the Expense account, but it was messy. 
>>>> I also couldn’t find a way to get GnuCash to calculate the EUR price of 
>>>> the transaction for me using the fetched rate. Maybe someone else has a 
>>>> trick up their sleeve.
>>>> 
>>>> Regards,
>>>> Adrien
>>>> 
>>>> 
>>>>> On Aug 15, 2019, at 9:38 AM, Jeff Abrahamson <j...@p27.eu> wrote:
>>>>> 
>>>>> I purchased a coffee in Switzerland using my GBP-based Transferwise
>>>>> card.  That card could hold a CHF balance, but on that day it held only
>>>>> GBP.  My local currency is EUR.  So I can think of my coffee purchase as
>>>>> two FX transactions: funding (GBP -> CHF) and an expense (CHF -> EUR).
>>>>> 
>>>>> What Transferwise tells me is the amount of the purchase and the amount
>>>>> of the transaction.  (I can also poke further and find the exchange rate
>>>>> they used and the minuscule fee, but the important point to me is the
>>>>> the two endpoints.)
>>>>> 
>>>>> Now what makes sense to me based on reading about accounting principles
>>>>> for multiple currencies is that I should make one transaction thus:
>>>>> 
>>>>> Coffee (CHF)   <--  Bank (GBP)        # This is the funding part of
>>>>> the transaction.
>>>>> Expense acct   <--  Coffee (CHF)      # Here I'm tracking the actual
>>>>> expense.
>>>>> 
>>>>> I put those in a single transaction for easier understanding later. 
>>>>> Here I've created a bank account for Transferwise (GBP) as well as
>>>>> subaccounts of that called Transferwise_CHF and some others, denominated
>>>>> in the indicated currencies.  Those three accounts are transfer
>>>>> accounts: I usually expect them to have zero balance.
>>>>> 
>>>>> Transferwise_CHF   <--  Transferwise (GBP)       # This is the
>>>>> funding part of the transaction.
>>>>> Expense/cafe       <--  Transferwise_CHF         # Here I'm tracking
>>>>> the actual expense.
>>>>> 
>>>>> Gnucash asks me for some exchange rates, and I answer for the CHF - GBP
>>>>> part with the specific numbers provided by Transferwise and for the GBP
>>>>> - EUR part with the exchange rate I've downloaded for that date.
>>>>> 
>>>>> I expect to see this in the account Transferwise_CHF
>>>>> 
>>>>> 5.70   <--  5.70       # This is the funding part of the transaction.
>>>>> 5.70   <--  5.70       # Here I'm tracking the actual expense.
>>>>> 
>>>>> and this in the Transferwise (GBP) account
>>>>> 
>>>>> 4.67   <--  4.67       # This is the funding part of the transaction.
>>>>> 4.67   <--  4.67       # Here I'm tracking the actual expense.
>>>>> 
>>>>> and something similar looking at the splits in the (euro-denominated
>>>>> expense account).
>>>>> 
>>>>> But what I see (from the perspective of the CHF account) is this, which
>>>>> makes no sense to me:
>>>>> 
>>>>> Gnucash has entered the 2.80, and deleting that split just makes it pop
>>>>> up again.  Something is terribly wrong if any  account's view of the
>>>>> transaction doesn't balance.  (This is gnucash 3.4, ubuntu, build id
>>>>> 3.4+ (2018-12-30).
>>>>> 
>>>>> Is this my error or a bug in gnucash?  Any pointers?
>>>>> 
>>>>> 
>>>>> Somewhat related, I thought to import historical currencies, as I'm back
>>>>> filling some data for analysis purposes.  I grabbed 10 years of daily
>>>>> quotes and imported them (3600 or so rows of data per currency).  All ok
>>>>> for GBP - EUR.  When I do the same for CHF - EUR, gnucash says it's done
>>>>> it, but the price database doesn't show more than a handful.  When I do
>>>>> it for JPY - EUR, gnucash says it's done but the price editor shows none
>>>>> of them.  The proposed exchange rates when entering transactions are
>>>>> consistent with what the price editor thinks it knows.
>>>>> 
>>>>> Is there a limit on FX rates?  (This is about 4000, which doesn't strike
>>>>> me as terribly large.)
>>>>> 
>>>>> -- 
>>>>> 
>>>>> Jeff Abrahamson
>>>> 
>>>> _______________________________________________
>>>> gnucash-user mailing list
>>>> gnucash-user@gnucash.org
>>>> To update your subscription preferences or to unsubscribe:
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>>> If you are using Nabble or Gmane, please see 
>>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>>> -----
>>>> Please remember to CC this list on all your replies.
>>>> You can do this by using Reply-To-List or Reply-All.
>>> 
>>> -- 
>>> 
>>> Jeff Abrahamson
>>> +33 6 24 40 01 57
>>> +44 7920 594 255
>>> 
>>> http://p27.eu/jeff/
>>> http://transport-nantes.com/
>>> 
>>> _______________________________________________
>>> gnucash-user mailing list
>>> gnucash-user@gnucash.org
>>> To update your subscription preferences or to unsubscribe:
>>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>>> If you are using Nabble or Gmane, please see 
>>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
>>> -----
>>> Please remember to CC this list on all your replies.
>>> You can do this by using Reply-To-List or Reply-All.
>> 
>> _______________________________________________
>> gnucash-user mailing list
>> gnucash-user@gnucash.org
>> To update your subscription preferences or to unsubscribe:
>> https://lists.gnucash.org/mailman/listinfo/gnucash-user
>> If you are using Nabble or Gmane, please see 
>> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
> 
> 
> 
> _______________________________________________
> gnucash-user mailing list
> gnucash-user@gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> If you are using Nabble or Gmane, please see 
> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.

_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
If you are using Nabble or Gmane, please see 
https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to