Looking through the IRC history, I see carol bringing up scheduled
transactions...
Yes, I'm working on it, though slowly, and no, it won't hit 1.6 [whenever
that will be [?]].
But, in lieu of a patch, which I haven't done before and am not quite ready
for [I want to add a src/tests/ module for the frequency specification
object [at least]], I figured I should update the world about the status
of scheduled transactions.
I've created two new engine objects: FreqSpec and SchedXaction.
These are, respectively, for frequency specification [including the
user's/user-interface idea of frequency, which may be different from the
more simplified internal representation of the frequency] and the actual
scheduled transaction. I've modified GNCBook to include a list of the
scheduled transaction, but due to some XML I/O problems I haven't had
time to diagnose, they aren't yet saved.
I've created some new gnome UI components, including a scheduled transaction
list, a scheduled transaction editor, and a frequency-specification
widget [which the editor uses]. The list is just that: presently simply
a list of upcoming scheduled transactions. The editor allows editing of
a scheduled transaction, including the name start/end dates [or number
of occurances], the frequency, and the template transaction which will
be instantiated when the scheduled transaction comes due next...
Attached are screenshots of the scheduled transaction list [accessible
via the Tools | Scheduled Transactions menu item], and the editor for
a single scheduled transaction [in this case a monthly-recurring "Rent"
transaction]. I've also included a sub-capture of the frequency-selection
widget for a semi-monthly expense...
There are a set of changes I'm planning on making from the attached
screenshots:
. The frequency-selection notebook tabs will be replaced by an option menu,
which better indicates the mutual-exclusivity of frequency selection.
. The scheduled transaction list will have a calendar widget next to the
list that will show upcoming transactions. This calendar widget will
need to be created from scratch. :(
Outstanding issues to solve include:
. Major modification to the register widget enabling a "template mode",
in which account data is stored in a kvp_data structure, so that engine
policies regarding the validity of Splits's Transaction values are not
violated [as per my conversations in #gnucash with dave_p].
. How to allow multiple template register types for a single scheduled
transaction. Maybe it's the case that for such instances [I think of
a "paycheck" transaction in which some subset of the paycheck goes to
purchase stock/MF shares, or something], multiple scheduled transactions
are required.
. How to allow the user to create novel "composite" frequency
specifications. I think we just punt on this for a while...
. How to allow user specification of the amounts of template transactions.
At some point [once the frequency specification "getNextInstance" code is
proved to work [it seems to now, but really wants a test program because
of the number of variations]], it should be relatively easy to modify the
account register to show upcoming scheduled transactions in that account
within a user-defined window of time.
In any case, I hope to have a patch out once that test program is
written... maybe sometime this weekend.
I'm curious about the state of 1.6. If it's coming soon, I'll delay
a patch until it's done and the patch can more easily be applied to
CVS... otherwise, I'll get it out this weekend...?
...jsled
20010315-editor_rent.png
20010315-list.png
20010315-freqsel_paycheck.png