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--