scheduled trasnactions, initial
Joshua Sled
jsled@asynchronous.org
Mon, 19 Mar 2001 01:42:53 -0800
--OgqxwSJOaUobr8KG
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
To those not on -patches...
I've attached the text of the message accompanying a patch I just submitted.
If you want to see where scheduled transactions is at, the patch is in
the mail archives...
Cheers...
...jsled
--OgqxwSJOaUobr8KG
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=20010319-patch-notes
Initial installment of the scheduled transactions patch.
As per a conversation with dave_p, this won't go in CVS for now; once
I get deeper into modifcations of the register and ledger, we'll
reevaluate.
Additions
---------
. src/engine/FreqSpec.{h,c}
. Frequency Specification
. src/engine/SchedXaction.{h,c}
. Scheduled Transactions, themselves
. src/engine/gnc-freqspec-xml-v2.c
. XMLv2 generator/parser for FreqSpecs.
. src/engine/gnc-schedxaction-xml-v2.c
. XMLv2 generator/parser for SchedXactions.
. src/gnome/dialog-schedxaction.{h,c}
. the Gtk/Gnome UI for the scheduled transactions list and
editor.
. src/gnome/gnc-frequency.{h,c}
. a widget for editing FreqSpecs
Major Other Modifications
-------------------------
. src/MultiLedger.{h,c}
. src/register/splitreg.{h,c}
. support for a "template" ledger
This will [eventually] allow editing of "template"
transactions for a schedXaction. These templates will save
the Split's account references and amounts in kvp_frames so
that engine structures are not created as invalid.
I think... I need to dig into this, soon.
. src/engine/gnc-book.{h,c}
. Added support for a list of scheduled transactions in the
book.
. src/engine/date.{h,c}
. Added support for timespec <-> time_t conversion.
. src/gnome/gnc-dialogs.glade
. Added Scheduled Transaction List, Scheduled Transaction
Editor and GNCFrequency widget [as a window].
Main Broken Things
------------------
. FreqSpecs aren't correct; the xaccFreqSpecGetNextInstance(...) and
xaccFreqSpecGetInstanceAfter(...) functions won't work in a couple of
important cases. Create a weekly-frequency schedXaction for both
Sunday and Wednesday, and look at the dates marked in the "example"
calendar; you'll see that they are wrong. Turns out that the FreqSpec
doesn't have enough data to perform the computation [need a
previous-instance date for each composite FreqSpec-element, not for
the composite FreqSpec as a whole].
. Lots of little things:
. XML output isn't complete.
. XML input isn't at all tested.
. Bunches of little FIXMEs everywhere
. SchedXactions/FreqSpecs don't have GUIDs
. The template ledger in the SchedXaction editor will crash GnuCash
if it's used.
. Can't cancel a round of editing the list of t
Overall TODO
------------
. add a big calendar of upcoming schedXactions to the SX List
. can we steal from GnomeCalendar or Evolution?
. create a template register
. store account and amount data in kvp_frames
. find a way to list multiple registers for template transaction
purposes?
. match existing transactions for long-time users
. based off template
. need policy for start-dates in GNCFrequency
. fix GetNextInstance and GetInstanceAfter, mostly for composite
FreqSpecs
. also needs to deal with >28-mday values WRT last-occur date +
multipliers
. need "since-last-run" UI for instanatiation.
. register modifications to see upcoming sched xactions
. register modification to instantiate template xactions
--OgqxwSJOaUobr8KG--