Euro conversion druid -- RFC
Christian Stimming
stimming@tuhh.de
Mon, 3 Dec 2001 21:47:38 +0100
-----BEGIN PGP SIGNED MESSAGE-----
This is a concept of what the Euro Conversion druid is supposed to do. I
especially would like to get some feedback on how much user interaction is
needed and how much is not needed. Please keep in mind that due to limited
coding resources this druid should be as simple as possible. Thus it should
work for the common case, but the non-common case can happily be left to the
user -- especially since this druid is needed only once.
Necessary Tasks:
1. Create new accounts of currency EUR.
2. Create exchange accounts Euroland -> EUR.
3. Exchange the amounts.
Note: "Euroland" refers to any currency that is a denomination of the EURO,
i.e. any country withing Euroland. "EUR" refers to the currency Euro.
Details:
1. Create new accounts of currency EUR. There can be different choices on
which accounts should be newly created. IMHO it is reasonable to say that for
*every* Euroland account (minus the ones where the rules below don't apply)
there should be created one EUR account. There can be different choices on
where these should be created:
A) Create a new toplevel account hierarchy as a copy of the existing one
such that if there were N Euroland toplevel accounts, finally there will be N
Euroland and N EUR toplevel accounts, i.e. a total of 2*N toplevel accounts.
B) Let the toplevel accounts remain the same, but create every
sub-hierarchy as a copy of the existing ones under the respective toplevel
account.
C) Create only the leaf accounts (i.e. those without subaccounts) anew, in
parallel to the place of the existing ones.
D) For every Euroland leaf account, create an EUR account as a subaccount
of the existing Euroland account.
E) For every Euroland leaf account, create an EUR account that replaces the
Euroland account in the hierarchy. The Euroland account then is modified to
be the subaccount of the respective EUR account. (i.e. the inverse of D)
However, in my opinion the choices A, B (my favorite), and C should be enough
for the common case.
There are different possible naming schemes:
A) The name of the newly created EUR account is similar to the Euroland
account plus an appended "EUR".
B) The name of the newly created EUR account is the same as the Euroland
account. The name of the old Euroland account is modified by appending the
"Euroland" currency acronym.
As before, I think that these choices are enough for the common case.
2. Create exchange accounts Euroland -> EUR. The druid should create one
currency-exchange account for each Euroland currency that exists in the
current book. Those currency accounts should be created as toplevel accounts.
IMHO there is no user interaction necessary for this step. The place of the
currency accounts can be changed afterwards quite easily, so this doesn't
have to be specified here.
I'm not totally sure whether either the currency or the security of those
accounts should be in EUR... I think the security EUR would be better, since
then they are distinguishable by the account currency -- but it doesn't
really matter.
3. Exchange the amounts. It is not immediately obvious which Euroland
accounts' amounts need to be converted. For the common case this would be all
Asset-type accounts, e.g. Assets, Liabilities... basically all account types
minus Income and Expense accounts. I'm unsure about the equity accounts --
for the common case I would just exchange those as well since the user can
easily delete the exchange transactions afterwards. RFC: Maybe it would be
useful to ask the user by an account selection dialog, with
Asset/Liabilities/Equity accounts selected as default. But maybe even this is
not necessary in the common case.
Eventually the druid's job is this: For every chosen Euroland account with
nonzero amount, the druid should create one transaction from the Euroland
account to the exchange account and another one from the exchange account to
the new EUR account.
Christian Stimming
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.5 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iQCVAwUBPAvk72XAi+BfhivFAQHz2AP/X5qPzVX+cAmWHI/xm626vOQq8EP2g11G
pUZSaxF4eGuwCVwLrsJMUk4OeW7ALuBQb07gYP/8yJWLiTz8Edm8NvaZQODgabzh
IwK+SZXS/WG4bNWRh4StqhjLsL0sEKJ5nJtE7RMSa3Zjdczv3JDXfyTkzyM9q6Sd
gY6k2bXrmTM=
=8U/W
-----END PGP SIGNATURE-----