2007-02-05 18:14:10 -06:00
-*- mode: rst; buffer-file-coding-system: utf-8 -* -
2007-01-20 09:27:21 -06:00
2007-01-19 17:45:45 -06:00
Scheduled Transactions
2007-06-30 09:58:45 -05:00
======================
2007-01-19 17:45:45 -06:00
TODO
2007-06-30 09:58:45 -05:00
----
2007-01-19 17:45:45 -06:00
- meta
2007-06-30 08:32:58 -05:00
2007-01-19 17:45:45 -06:00
- [ ] GncSxListTreeModelAdapter: s/real/adapted/
- [ ] generic tree model adapter setup code
2007-02-05 17:59:39 -06:00
- [ ] move documentation into doxygen comments, here and in sources.
2007-02-09 18:25:16 -06:00
- [x] move files around
- [x] printf -> logging
2007-01-19 17:45:45 -06:00
- core
2007-06-30 08:32:58 -05:00
2007-06-20 17:33:09 -05:00
- ! [ ] @fixme-s
- ! [ ] after updating/merging new instances, ensure sx-instance-state consistency
2007-01-19 17:45:45 -06:00
- [x] sx list -> qof collection
- [x] sx engine events
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] sx list collection add/remove -- sx-list GNC_EVENT_ITEM_ADDED, _REMOVED
- [x] sx modified -- QOF_EVENT_MODIFY
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] sx upcoming instance model
2007-06-20 17:33:09 -05:00
- ! [x] implement sort model
2007-01-19 17:45:45 -06:00
- [x] rename, re-home gnc-sx-instance-model:sxsl_get_sx_vars
- [x] rename, re-home gnc-sx-instance-model:parse_vars_from_formula
- unit testing
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [ ] model updating in the face of change
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [ ] insert sx
- [ ] remove sx
- [ ] update sx
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [ ] add instances
- [ ] remove instances
- [ ] make "weird"
2007-06-20 17:33:09 -05:00
2007-02-05 18:14:10 -06:00
- [ ] ± disabled flag
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] ensure state consistency model is upheld
- [ ] check variables-unbound logic
- [ ] verify summary counts
- [ ] check "since last run" states
2007-06-20 17:33:09 -05:00
2007-01-29 19:25:57 -06:00
- [ ] specious datafile dirty-ing
2007-01-19 17:45:45 -06:00
- [ ] -autocreate[, ±notify]
- [ ] +autocreate, -notify
- [ ] +autocreate, +notify
- [ ] +autocreate, -notify, w/postponed
- [ ] +autocreate, +notify, w/postponed
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [ ] bugs
2007-06-20 17:33:09 -05:00
2018-09-28 07:51:40 -05:00
- [?] Expired scheduled transactions never run - <https://bugs.gnucash.org/show_bug.cgi?id=375892>
2007-06-20 17:33:09 -05:00
2007-02-09 10:47:53 -06:00
- remove
2007-06-20 17:33:09 -05:00
2007-02-19 13:45:19 -06:00
- [x] display-using src/gnome-utils/test/test-sx.c
2007-01-19 17:45:45 -06:00
- bugs
2007-02-25 13:51:00 -06:00
2007-06-20 17:33:09 -05:00
- ! [x] with SLR open (with instances), add variables to SX; only newly-created instances will have appropriate variable tables.
2007-03-14 21:41:20 -05:00
2007-06-20 17:33:09 -05:00
- ! [x] parse from 1.8 file doesn't setup start date correctly;
2007-02-25 13:51:00 -06:00
daily-auto-yes-notify.xac has start date of 2006-09-26, but new TXN is
for $today.
2007-02-09 13:07:00 -06:00
2007-03-14 21:41:20 -05:00
- [x] this causes phantom "SX has been changed, confirm cancel?" problems.
2007-02-14 08:43:18 -06:00
2007-03-07 19:53:39 -06:00
- [x] created/review txns disappear, eventual crash [ve20070303]_
2007-03-06 08:12:00 -06:00
2007-06-20 17:33:09 -05:00
- ! [x] auto-create (+notify) txns not in review list. [ve20070209]_
2007-02-25 13:51:00 -06:00
2007-02-18 14:52:57 -06:00
- [x] sx-from-trans: "unknown get.type [3]" [dh20070120]_
2007-06-20 17:33:09 -05:00
- ! [x] crash with two sx lists open and SX mutation
2007-02-09 20:30:43 -06:00
- I'm pretty sure this is due to SX lists not getting cleaned up on page close, somehow.
- [x] no way to clear a variable entry [ve20070209]_
2019-06-06 08:49:22 -05:00
.. [dh20070120] https://lists.gnucash.org/pipermail/gnucash-devel/2007-January/019667.html
.. [ve20070209] https://lists.gnucash.org/pipermail/gnucash-devel/2007-February/019834.html
.. [ve20070303] https://lists.gnucash.org/pipermail/gnucash-devel/2007-March/020069.html
2007-01-20 16:19:01 -06:00
2007-01-19 17:45:45 -06:00
- sx list page
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [/] make into split panel
2007-06-20 17:33:09 -05:00
2007-02-21 20:34:15 -06:00
- [ ] fix default slider position
- [ ] conf-save slider position
2007-06-20 17:33:09 -05:00
- ! [x] use gnc-tree-view
- ! [x] save/restore state
2007-01-19 17:45:45 -06:00
- sx editor
2007-06-20 17:33:09 -05:00
2007-02-19 13:08:23 -06:00
- [/] clean up source formatting
2007-04-06 12:24:11 -05:00
- [ ] move "non-editor" general app/ui code out of bottom of dialog-sx-editor.c
- [x] re-layout dialog
2007-06-20 17:33:09 -05:00
2007-02-09 10:47:53 -06:00
- tabs: "overview", "frequency", "template transaction" [, "estimation"]
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [ ] model-ize
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- (check_consistent, especially...)
2007-06-30 10:05:01 -05:00
Notes::
2007-01-19 17:45:45 -06:00
2007-06-20 18:20:46 -05:00
GncSxEditModel* gnc_sx_edit_model_new(SchedXaction * sx);
2007-06-30 08:32:58 -05:00
2007-06-20 18:20:46 -05:00
gnc_sxed_check_changed( GncSxEditorDialog *sxed )
gnc_sxed_check_consistent( GncSxEditorDialog *sxed )
gnc_sxed_save_sx( GncSxEditorDialog *sxed )
2007-06-30 08:32:58 -05:00
2007-06-20 18:20:46 -05:00
gchar* gnc_sx_edit_model_get_name(GncSxEditModel * mdl);
void gnc_sx_edit_model_set_name(GncSxEditModel *mdl, gchar * new_name);
2007-04-06 12:24:11 -05:00
2007-01-19 17:45:45 -06:00
- gnc_dense_cal
2007-06-20 17:33:09 -05:00
2007-04-04 17:22:12 -05:00
- [ ] code cleanup
2007-06-20 17:33:09 -05:00
2007-04-04 19:43:09 -05:00
- [x] min-size
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [ ] change number-of-month properties to display-named properties (width, length)
2007-02-14 08:43:18 -06:00
- [ ] gconf setting for dense-cal font-size reduction
2007-01-19 17:45:45 -06:00
- [?] better transient/floating window
- [/] (re-format file)
2007-06-20 18:42:22 -05:00
- [x] eliminate the "couldn't find tag [1]" messages.
2007-06-20 17:33:09 -05:00
- ! [x] font handling: gdk -> pango
2007-06-20 18:20:46 -05:00
- [x] start-of-week := {sun,mon} (via locale)
- [x] {0, 1, 2, 3, 4, 6, 12} month selection for dense calendar
- [x] conf-save value
2007-01-19 17:45:45 -06:00
- [x] set_model(GncTemporalInstancesModel *mdl)
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] new interface creation.
- [x] register callbacks for signals
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] remove clist usage
- sx-from-trans
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [?] convert to GObject
- [x] hookup destroy/finalize
- FreqSpec
2007-06-20 17:33:09 -05:00
2007-02-09 10:47:53 -06:00
- [#] type+ui-type -> type
2007-01-19 17:45:45 -06:00
- use Recurrence instead of FreqSpec
2007-06-20 17:33:09 -05:00
- ! [x] load druid
2018-09-28 07:51:40 -05:00
- ! [x] sx-from-trans, <https://bugs.gnucash.org/show_bug.cgi?id=412633>
2007-06-20 17:33:09 -05:00
- ! [x] XML migration, handling
2007-02-18 11:39:54 -06:00
- xml:freqSpec -> obj:Recurrence
2007-06-20 17:33:09 -05:00
2007-02-18 13:32:07 -06:00
- [x] none (Recurrence doesn't support)
2007-02-18 11:39:54 -06:00
- [x] once
2007-06-20 17:33:09 -05:00
2007-02-18 13:32:07 -06:00
- [x] if once, fix Recurrence date to be SX start date. :p
2007-06-20 17:33:09 -05:00
2007-02-18 11:39:54 -06:00
- [x] daily
2007-02-18 13:32:07 -06:00
- [x] daily [m-f] (composite)
2007-02-18 11:39:54 -06:00
- [x] weekly, single
2007-02-18 13:32:07 -06:00
- [x] weekly, multiple (composite)
2007-02-18 11:39:54 -06:00
- [x] monthly (+quarterly, tri-anually, semi-annually, yearly)
2007-02-18 13:32:07 -06:00
- [x] semi-monthly (composite)
2007-06-20 17:33:09 -05:00
2007-02-18 17:16:05 -06:00
- [x] write Recurrences into new-version SX
2007-06-20 17:33:09 -05:00
2007-02-18 11:39:54 -06:00
- gnc-frequency
2007-06-20 17:33:09 -05:00
- ! [x] Support Recurrence
2007-02-18 11:39:54 -06:00
- [x] in
- [x] out
2007-06-20 17:33:09 -05:00
- ! [x] Support 'last-day-of-month'
2007-02-18 11:39:54 -06:00
- [x] simplify
2007-06-20 17:33:09 -05:00
2007-02-18 11:39:54 -06:00
- [x] remove daily [m-f] (-> weekly)
- [x] remove biweekly page (-> weekly)
- [x] remove > monthly pages (-> monthly)
2007-06-20 17:33:09 -05:00
2007-02-19 13:08:23 -06:00
- [x] clean up, reformat source
2007-06-20 17:33:09 -05:00
2007-02-21 20:20:56 -06:00
- gnc-plugin-page-sx-list
2007-06-20 17:33:09 -05:00
2007-02-21 20:34:15 -06:00
- [x] gnc_plugin_page_sx_list_cmd_new
2007-06-20 17:33:09 -05:00
2007-02-18 11:39:54 -06:00
- dialog-sx-editor
2007-06-20 17:33:09 -05:00
2007-02-19 16:52:44 -06:00
- [x] gnc_sxed_check_changed
2007-02-19 16:22:17 -06:00
- [x] gnc_sxed_check_consistent
2007-02-18 14:27:24 -06:00
- [x] gnc_sxed_update_cal
2007-02-18 11:39:54 -06:00
- [x] gnc_sxed_save_sx
2007-06-20 17:33:09 -05:00
2007-02-19 15:16:51 -06:00
- sx list
2007-06-20 17:33:09 -05:00
2007-02-19 16:08:57 -06:00
- [x] recurrence_cmp(...)
2007-02-19 15:16:51 -06:00
- [x] More compact recurrenceListToString(...).
2007-06-20 17:33:09 -05:00
2007-02-09 13:07:00 -06:00
- [ ] remove FreqSpec code
2007-06-20 17:33:09 -05:00
2007-06-30 08:36:02 -05:00
- [x] don't write FreqSpecs out.
2007-02-14 08:43:18 -06:00
- [ ] SX code
2007-06-20 17:33:09 -05:00
2007-03-08 20:44:03 -06:00
- [ ] engine
- [ ] backend
- [ ] gnc-frequency
- [ ] gnc-dense-cal-store
2007-06-20 17:33:09 -05:00
2007-02-19 17:06:41 -06:00
- [x] src/gnome/druid-acct-period.c
- gnc_frequency
2007-06-20 17:33:09 -05:00
2007-06-06 16:12:36 -05:00
- [ ] 'every x months' spin button makes large jumps::
2007-06-06 15:56:11 -05:00
2007-06-30 10:05:01 -05:00
<andi5> jsled: another topic: you have probably seen the "every x months" spin button make jumps greater than one, right? ... this seems to be due to a spin button timeout event which controls "fast-forward" spinning... it is run because the changed(?) signal handler is too slow
2007-06-06 15:56:11 -05:00
2007-02-19 17:06:41 -06:00
- [ ] support nth-weekday Recurrence period.
2007-06-20 18:20:46 -05:00
2007-06-18 22:02:36 -05:00
- [x] Freq=none doesn't work::
* 17:00:29 CRIT <gnc.engine.recurrence> recurrenceListNextInstance: assertion `rlist && ref && next && g_date_valid(ref)' failed
* 17:00:36 CRIT <gnc.engine.sx> gnc_sx_set_schedule: assertion `sx && schedule' failed
2007-01-19 17:45:45 -06:00
- since-last-run
2007-06-20 17:33:09 -05:00
2007-04-06 12:24:11 -05:00
- [ ] "reminder" instances should show number of days until due
2007-02-18 11:39:54 -06:00
- [ ] "Find unfinished" button; count; sensitize Ok as function of unfinished.
2007-06-18 20:49:22 -05:00
- [ ] bold SX names [tw20070614]_
2007-06-30 09:58:45 -05:00
- [ ] checkbox/option to show/hide reminders [tw20070614]_ , or a multi-part tree [tw20070619]_
2007-06-18 20:49:22 -05:00
- [ ] filter/remove SXes that don't have any instances in the list [tw20070614-2]_
- [ ] remove tree expand controls, except for non-to-create instances with variables [tw200070614-2]_
2007-06-20 18:20:46 -05:00
- [x] text changes [tw20070614]_
- "Sx, Instance, Variable" -> "Transaction"
- "Instance State" -> "Status"
- "Variable Value" -> "Value"
2007-06-20 17:33:09 -05:00
- ! [x] save/restore dialog window size
2007-02-19 13:08:23 -06:00
- [x] remove split pane
- [x] "auto" scrollbars
2007-06-20 17:33:09 -05:00
- ! [x] rewrite adapter (re-)population logic
2007-01-19 17:45:45 -06:00
- [x] move "effect_change" up to app-utils/, test.
- [x] move state-change up to app-utils
- [x] move variable-setting up to app-utils
- [x] move summarization up to app-utils
- [x] add reminders, postponed to SxInstanceModel
- [x] add mutation support to sx instance model
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] state machine
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] add variable state to sx instance model
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] handle (hidden/system not for editing) variables.
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] add sx_upcoming_instance_model()
2007-06-20 17:33:09 -05:00
- [x] add effect_auto_create()
2007-01-19 17:45:45 -06:00
- [x] add some sort of "ready to go" flag and api
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] variable setting, primarily
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- [x] some sort of commit_changes()
- [x] add variable table to instances
- [x] ui: add 'review created transactions' checkbox to SLR dialog
using txn search.
2019-06-06 08:49:22 -05:00
.. [tw20070614] https://lists.gnucash.org/pipermail/gnucash-devel/2007-June/020718.html
.. [tw20070614-2] https://lists.gnucash.org/pipermail/gnucash-devel/2007-June/020729.html
.. [tw20070619] https://lists.gnucash.org/pipermail/gnucash-devel/2007-June/020757.html
2007-06-18 20:49:22 -05:00
2007-02-09 10:47:53 -06:00
- destroy/cleanup, notes:
2007-06-20 17:33:09 -05:00
2007-01-20 16:19:01 -06:00
- dispose: break references; callable multiple times
- finalize: complete destruction; just before free; only called once
2007-01-19 17:45:45 -06:00
Pedantic Todo
2007-06-30 10:05:01 -05:00
-------------
2007-01-19 17:45:45 -06:00
- s/SchedXaction/Scheduled/
- s/temporal_state/instance_sequence_context/
- change instance variable from 'i' to '__i' or something
============================================================
(eventually real documentation... (?))
Since Last Run
2007-06-30 10:05:01 -05:00
--------------
2007-01-19 17:45:45 -06:00
+------------------+------------------+------------------+
| Thing | State | Value |
+------------------+------------------+------------------+
| - Foo | | |
+------------------+------------------+------------------+
| - 2006-08-27 | [Postponed|v] | |
+------------------+------------------+------------------+
| - variable-a | | 42 |
+------------------+------------------+------------------+
| - variable-b | | 75 |
+------------------+------------------+------------------+
| - 2006-08-27 | [To-Create|v] | |
+------------------+------------------+------------------+
| - variable-a | | 31 |
+------------------+------------------+------------------+
| - variable-b | | (value needed) |
+------------------+------------------+------------------+
The since-last-run dialog is a key user interface. More frequently than the
SX list or editor, the user will be in the process of creating transaction
instances through this interface.
The old SLR dialog has the following stages:
- Reminders
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- can be promoted to "to-create"
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- Auto-created, with notification
- To-Create
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- postponed, to-create
- ignore state.
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- Created review
- Obsolete SX cleanup
The new SLR dialog will have the following:
2007-06-20 17:33:09 -05:00
- Creation (treemodel consisting of)
2007-01-19 17:45:45 -06:00
- auto-created
- reminder
- postponed
- to-create
- [obsolete SX]?
There is no separate to-review page, however the user may (optionally) want
to see the created transactions. This is done using the transaction-search
functionality over the created transactions by ID.
Upcoming instance states
2007-06-30 10:05:01 -05:00
------------------------
2007-01-19 17:45:45 -06:00
2007-06-30 10:05:01 -05:00
- reminder -> to-create
- postponed -> to-create
- to-create -> postponed
- to-create -> ignore
- to-create -> created [terminal]
2007-01-19 17:45:45 -06:00
Definitions:
2007-06-30 10:05:01 -05:00
reminder
a transient upcoming transaction that will not be created.
postponed
a historical to-create transaction that the user has explicitly deferred.
to-create
an upcoming SX instance that should be created.
ignore
a scheduled instance the user has explicitly prevented the instantiation of.
created
the instance has been created in this interaction cycle.
2007-01-19 17:45:45 -06:00
Formula Parsing
2007-06-30 10:05:01 -05:00
---------------
2007-01-19 17:45:45 -06:00
A SXes formula is parsed in the context of:
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- the template transaction
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- the accounts of the splits
2007-06-30 10:05:01 -05:00
2007-01-19 17:45:45 -06:00
- the sequence number
- the date of the transaction
- a variable-binding table.
Testing Notes
2007-06-30 10:05:01 -05:00
-------------
2007-01-19 17:45:45 -06:00
- auto-create
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- auto-create with postponed instances shouldn't destroy postponed
instances
- basic sequence stuff
dialog-sxsincelast.c: ~L1241:
"Handle an interesting corner case of postponing or
ignoring the first instance. We only want to increment the
counters for newly-discovered-as-to-be-created SXes."
- auto-create
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- auto-create transactions can be created w/o user interaction
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- their state is transitioned to 'created', which is not modifiable
- auto-create (+notify) transactions should be displayed, even if they are
the only transactions created.
- auto-create (-notify) transactions should not be displayed, unless there
are other transactions.
- Scenarios
2007-06-20 17:33:09 -05:00
2007-01-19 17:45:45 -06:00
- only auto-create (-notify): no SLR, info dialog w/count (*** )
- only auto-create (+notify): SLR dialog, already created
- others, auto-create (-notify): SLR dialog, incl. created
- others, auto-create (+notify): SLR dialog, incl. created