--On March 7, 2007 12:29:04 AM -0400 Peter Selinger <[EMAIL PROTECTED]> wrote:
>> You mean the old 1.8 currency accounts? No, I don't use them. I >> don't recall what they were like and I'm not sure if it's a good >> idea to recycle them for this purpose or not. Right now it creates >> top level Imbalance-xxx accounts for this just like it does for >> value imbalances. I will probably change this to look for a >> Currency place-holder account and find (or create) an income >> account below this as suggested in Peter's document. > > I wonder whether, in this particular instance, an Imbalance account or > a Currency account (as defined in my document) is more appropriate. > > Is the purpose to "fix" a transaction that is not balanced? By putting > it into a Currency account, you would be effectively inventing an > exchange that may not have actually have taken place, and an (implied) > exchange rate. By putting it under Imbalance, you are asking the user > to fix it. > > On the other hand, if the purpose is to "convert" a set of accounts > that used to use the old currency method, and that was already > balanced under the old system, then putting these as Imbalances would > create a huge mess for the user to clean up by hand. In this case, it > would be better to create the correct splits into Currency accounts, > perhaps using the exchange rate info that was saved with the > transaction. You'll note that one of the things I did not do was to turn off the exchange rate prompt when entering a transaction involving more than one commodity. This is because it is important to have reasonable exchange rates defined for such transactions if you are to maintain the rule that the transaction must be balanced in the transaction currency as well as in each commodity in the transaction individually. The transaction balancing code in xaccTransGetImbalance assumes all exchange rates are correct. A transaction involving more than one commodity has an implied exchange rate between the commodities which can be determined by comparing the amount and value fields of the various splits. This is used to create the new splits to balance the individual commodity amounts in the transaction. The bottom line is that the balancing split will be created using the exchange rate specified when the transaction was entered which I think is the best we can do. I don't think it matters too much whether the splits created go into an Imbalance account or into a currency account. It's not that hard to clean things up. After scrubbing some transactions you can just delete the account the splits went into and you'll get a prompt asking where they should be moved to. Or if you want to move a few splits you can use a find register to edit them easily. On the other hand this scrubbing will happen automatically as you enter transactions with multiple commodities if you don't create the balancing splits yourself, so it would be best to make it work as well as possible. Mike _______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel