* src/scm/fin.scm: Made the exposed calcualtion functions output
positive values.
* src/gnome/window-main.c (gnc_main_window_create_menus): Added
accelerators to SX-related menu items.
* src/gnome/druid-loan.c: Primary change: actually create the
Scheduled Transactions which are setup by the user. Miscellaneous
other cleanups, text, layout and consistency changes.
* src/gnome/dialog-sxsincelast.c: Support handling of the
instance-count in forward-looking transaction creation. Simplfied
some of the internal data-representation regarding lists of items
to be created [removed autoCreateTuple, now uses toCreateTuple].
Removed some DEBUGging output. Handles setting up the implicit
'i' variable.
* src/gnome/dialog-sx-from-trans.c (sxftd_compute_sx): Create SXes
with an appropriate initial instance-count value.
* src/gnome/dialog-scheduledxaction.c
(schedXact_editor_populate): Create SXes with an appropriate
initial instance-count value.
* src/engine/SchedXaction.[ch]: Added support for an
instance-count, in order to support an implicit 'i' [of N]
variable to SX formula/function processing.
* src/engine/SX-ttinfo.c (gnc_ttsplitinfo_free): Made the
ttsplitinfo_free'ing a bit safer.
* src/calculation/expression_parser.c: Added support for
parsing/handling quoted strings. Intended to be parameters to
functions. Fixed bug regarding nested handling of strings in the
parser.
* src/backend/file/gnc-schedxaction-xml-v2.c: Added support for
saving/restoring instance-count field of SXes.
* src/app-utils/test/test-exp-parser.c
(run_parser_test): Fixed pass/fail indication check.
(test_parser): Added tests for string params to functions.
* ChangeLog: Added entry I forgot from last time.
* src/app-utils/gnc-exp-parser.c (func_op): Added support for
typed parameters to functions; params are either numerics or
strings. Result of function is now parsed correctly.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7125 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/druid-loan.[ch]: Added; Initial implementation of
Gnome Druid for setting up loan-repayment Scheduled Transactions.
* src/doc/loans.txt: Added; notes about how loans will be dealt
with in GnuCash.
* src/gnome/glade/sched-xact.glade: Added loan-druid.
* src/gnome/window-main.c (gnc_main_window_create_menus): Added
'Mortgage/Loan Repayment Setup' Druid invocation menu item.
* src/scm/fin.scm: Added. Implementations of 'ipmt', 'ppmt', 'pmt'
and supporting code.
* src/app-utils/test/test-exp-parser.c (test_parser): Added tests
for functions-in-expressions. Added [passed] test for Conrad's
bug.
* src/app-utils/gnc-exp-parser.c (func_op): Added. gnc-side
callback for dealing with a function in an expression.
* src/calculation/expression_parser.c: Added initial, undocumented
support for functions in expressions.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7115 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome-utils/gnc-dense-cal.c (gnc_dense_cal_mark_remove):
Unrealistic marks [such as '-1'] are now ignored instead of
hitting assertion.
* src/gnome/dialog-scheduledxaction.c: Dead code removal; naming
clarifications.
(gnc_sxed_check_consistent): Added.
(gnc_sxed_check_changed): Added; used when the cancel button is
pressed. SX editor now queries the user if the SX has changed.
(gnc_sxed_save_sx): Added; seperated from consistency-check.
(_gnc_sxed_get_widgets): Added; many glade_xml_get_widget(...)s
removed from code.
(free_var_numeric): Added; we now cleanup the temporary variable
table correctly after doing balance checking.
(schedXact_editor_create_ledger): RegWidget toolbar shouldn't
expand; fixed.
(putSchedXactionInDialog): Fixed assertion-failure/abort when a
previously-unscheduled SX is scheduled.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance),
(xaccSchedXactionGetInstanceAfter): Fixed bug in
number-of-occurance instance-state processing.
* src/register/ledger-core/gnc-regwidget.c:
* src/gnome/dialog-schedxaction.c:
* src/gnome/dialog-sxsincelast.c:
* src/engine/SchedXaction.[ch]:
* src/engine/FreqSpec.[ch]: Dead code removal/cleanup.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7054 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Lists of SX instances [the
Reminders and To-Create] are now trees instead of clists.
Better structure of internal state.
Fixed multiple-SX-reminder selection/processing bug [Bug#85997].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7010 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome-utils/gnc-dense-cal.[ch]: Added; a multiply-markable,
visually-dense Gtk calendar widget, to be used by
Scheduled Transactions.
* src/gnome/dialog-scheduledxaction.c
(putSchedXactionInDialog): Renamed; supports marking the new
GncDenseCal.
(delete_button_clicked): Now much less lame about dealing with the
CList when items are removed; supports [un]marking the
GncDenseCal.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Query the user if they want to create an unbalanceable
[varible-containing] transaction. Inform the user if they try to
create an auto-create transaction which has variables, as this is
not allowed.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6980 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sx-from-trans.c (sxftd_get_end_info): Changed
to do the strtoul before we free the data itself; fixes "can't
create once/number-of-occurance SXes" [in from-transaction dialog]
bug.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Do a very lame but good-enough-for-now check to see if we can
determine if the template transactions will still balance. Note
that we don't do anything with the result of that check, yet, but
we perform it.
* src/app-utils/gnc-exp-parser.c (gnc_exp_parser_real_init): Added
so we can conditionaly add the "predefined variables" to the
binding table for parsing a given expression.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6886 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sx-from-trans.c (sxftd_advanced_clicked): Since
"Advanced..." editing completely entails the from-transaction
dialog, we close it if the user selects "Advanced..." to prevent
errors when the from-trans dialog is "Ok"'d.
* src/gnome/dialog-scheduledxaction.c (delete_button_clicked):
Better deletion confirmation checking; we now look for
being-edited scheduled transactions and confirm them specially
with the user to prevent inconsistencies from cropping up.
* src/doc/TODO-schedxactions: Updated; more 'X'-ed off items make
me happy.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6818 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/backend/file/sixtp.c (sixtp_parse_file): Explicitly create
an xmlParserCtxt and keep it in the sixtp_sax_data, so we can...
(sixtp_sax_start_handler): retain line/column numbers for stack
frames, which pays off in...
* src/backend/file/sixtp-stack.c (sixtp_stack_frame_print):
printing the line/column numbers of parsing errors when they
occur.
* src/backend/file/sixtp.c (sixtp_parse_buffer): Analagous change
for in-memory-buffer parsing.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6817 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c
(editor_ok_button_clicked): Added checks for ScheduledTransactions
with no name, same name as existing SchedXaction.
(row_select_handler): Resolved "critical" GTK run-time warning
regarding navigating the Scheduled Transaction list with the arrow
keys.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6805 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c
(editor_ok_button_clicked): Check to see if the user is attempting
to create a Scheduled Transaction which can't occur; confirm with
them if they are.
* src/gnome-utils/gnc-frequency.c
(freq_option_value_changed): StartDate and frequency-specific
options now come into better sync [when possible] on
frequency-type change.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6799 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/register/ledger-core/gnc-ledger-display.c: Some template-GL
cleanup [debugging printf's removed]. Removed never-used
LD_TEMPLATE type.
* src/gnome/glade/sched-xact.glade: Removed unused start page.
* src/gnome/dialog-sxsincelast.c: Added support for using the
gnc-regWidget to display created transactions for review. Added
'Cancel' support. Didn't remove enough dead code, but started to.
* src/gnome/dialog-scheduledxaction.c: Added support for using the
gncRegWidget in the SX editor. Formatting changes.
* src/register/ledger-core/gnc-regWidget.{h,c}: Added; a
macro-widget roughly duplicating the src/gnome/window-register.c
look-and-feel-and-behavior.
* src/engine/SchedXaction.c: Added support for saving a "temporal
snapshot" of a scheduled transaction. Rewrote "sequence state"
manipulations in terms of temporal snapshots.
* src/engine/Query.c: Add support for Querying the template
AccountGroup.
* src/doc/TODO-schedxactions: Updates.
* src/engine/Makefile.am: Prepend-to instead of unconditionally
setting GUILE_LOAD_PATH when creating iso-4217-currencies.c, for
those of us that need to set it for whatever reason we need to do
so.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6795 57a11ea4-9604-0410-9ed3-97b8803252fd
Fixed gnc_template_register_model_add_save_handlers to leave the
split-register's NUM_CELL and DESC_CELL save handlers [as they are Correct
and Relevant].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@6192 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome-utils/gnc-frequency.c: saving state and updating the
calendar markings no longer force so much of a
component-manager/UI refresh.
* src/guile/gw-gnc-spec.scm: Changed sx-since-last return type to
gboolean [bool]; added better sx-since-last-run-wrapper param name
[s/foo/bookfile/].
* src/gnome/dialog-scheduledxaction.c (new_button_clicked): Better
initial-FreqSpec setup to prevent error from GNCFrequency.
* src/engine/SchedXaction.c (xaccSchedXactionSetTemplateTrans):
Added support for setting template-transaction currency from the
TTinfo structure.
* src/gnome/dialog-sxsincelast.c: Correct support for "nothing
to do": if this is the case, don't load/create the UI. Required
much re-working due to my bad design. :(
Added component-manager freeze/thaw [equivalents] around engine
interaction to minimize program-wide GUI refresh during
Transaction creation.
(finish_finish): Added support for 'finish' button.
(cancel_check): Initial support for cancel button, checking with
user regarding.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5769 57a11ea4-9604-0410-9ed3-97b8803252fd
in since-last-run dialog [before: 'break' out of processing further SXes
if a given SX in the list has no instances; now: 'continue' to other SXes
which may have instances yet].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5748 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Unused pages are skipped,
initial version.
* src/gnome/dialog-sx-from-trans.c: Added start date handling; as
well, correctly update the start date when the frequency option
changes. Added using FreqSpecs for start date calculation. Added
correctly
* src/gnome-utils/gnc-account-tree.c (gnc_account_tree_init): Make
account-tree description column auto-resize.
* src/engine/SchedXaction.c (xaccSchedXactionSetEndDate): Removed
end date validity check; an invalid end date is how we signal "no
end date".
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5739 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (sxed_delete_event): Added.
(gnc_ui_scheduled_xaction_editor_dialog_create): Added support for
delete-event [WM window close].
(sxed_check_close): Added close-check, including register check.
(editor_cancel_button_clicked): Renamed from
editor_close_button_clicked; correctly handles a cancel WRT ledger
changes.
* src/gnome/glade/sched-xact.glade: Added as-yet-unused Start
Date widgets to make-from-transaction dialog.
* src/gnome/dialog-sx-from-trans.c (sxftd_add_template_trans): Use
the user-friendly amount formating instead of a stringified
gnc_numeric. Copies the account data over into the template
transaction.
(sxftd_init): Added; supports using the Description of the
transaction as the initial name of the SX.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5715 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/Makefile.am: Removed obsolete dialog-nextrun.{c,h}
* src/gnome/window-main.c (gnc_main_window_create_menus): Added
both Scheduled Transaction-related items to "Scheduled
Transactions" sub-menu of "Tools".
(gnc_main_window_about_cb): Added self to GUI About dlg.
* src/gnome/dialog-scheduledxaction.c: Renamed '_'-led functions.
* src/gnome/dialog-sxsincelast.c: Changed from a loose
confederation of multiple dialogs to the strong central authority
of a GnomeDruid-based since-last-run UI. Renamed '_'-led
functions.
* src/gnome/glade/sched-xact.glade: Fixed a non-unique-name
problem between the GnomeNumberEntry "end_nentry" and it's
GtkEntry "end_nentry". Added Druid-based Since-Last-Run dialog.
* src/gnome/dialog-scheduledxaction.c (schedXact_editor_populate),
(editor_ok_button_clicked): Added support for now-uniquely-named
"end_gnome_nentry".
* src/engine/SchedXaction.c
(xaccSchedXactionCreateSequenceState): Added.
(xaccSchedXactionIncrSequenceState): Added.
(xaccSchedXactionDestroySequenceState): Added.
Added support for opaque state data when generating a sequence of
SX instances to support number-of-occurance-terminated SXes.
* src/backend/file/gnc-freqspec-xml-v2.c (dom_tree_to_freqSpec):
Added missing instance of GNCSession propogation.
* src/backend/file/io-gncxml-v2.c
(write_template_transaction_data): Added correct determination for
writing out the template-transaction section [before: only if
transactions existed in accounts; now: if any accounts exist] to
prevent read errors from SXes with valid-and-referenced Accounts,
but no Transactions in them.
* src/gnome-utils/gnc-frequency.c (gnc_frequency_setup): Better
error text when UIFreqType isn't recognized or appropriate.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Correctly sets SXes to have no occurance data if that's the case.
Better option variable naming, usage.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5710 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (delete_button_clicked):
Fixed multiple bugs in deletion selection-handling.
(schedXact_editor_populate), (schedXact_editor_create_ledger):
Added code for respecting the user's Preferences.
* src/gnome/dialog-scheduledxaction.c
(gnc_ui_scheduled_xaction_dialog_create): Added support for only a
single SX list to be up at any one time; if one already exists,
show and raise that window instead of creating a new one.
* src/gnome/dialog-scheduledxaction.c
(gnc_ui_scheduled_xaction_editor_dialog_create): Only one editor
for any Scheduled Transaction open at a time; if one already
exists, show and raise it's window.
* src/gnome/dialog-scheduledxaction.c
(schedXact_editor_create_ledger): Add [read: steal from
window-register.c] register toolbar, suitably modified for SXes.
* src/app-utils/prefs.scm: Updates to wording, defaults for
Scheduled Transaction preferences.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5659 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-sxsincelast.c: Displays
auto-created-and-notification-requested scheduled transactions in
a GL rather than a clist.
* src/register/ledger-core/split-register-model.c
(gnc_template_register_model_new): Added date-cell entry/io-flags
handler for template register, making date cell inactive, and
stating "Scheduled" instead of a date.
* src/gnome/dialog-sxsincelast.c (_create_transactions_on): Now
does appropriate cleanup in the case it needs to create a
temporary toCreateTuple for transaction-creation.
(_create_each_transaction_helper): Cleanup failed
transaction-creation appropriately. Support for returning a list
of the GUIDs of created transactions.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5445 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/glade/sched-xact.glade: Added seperate reminders
dialog from since-last-run dialog. Removed reminders
frame/section from since-last-run dialog. Added alternative SX
Editor UI [not presently used].
* src/gnome/dialog-sxsincelast.c: Changes for
reminders-as-seperate-dialog; selected reminders then update
since-last-run dialog [whether it's open or not]; the dialogs
[mostly] deal with their closing conditions correctly. Support
for ad-hoc variables in template-transaction-split formulas.
* src/engine/gnc-schedxaction-xml-v2.c
(gnc_schedXaction_end_handler): Added support for restoring
in-development pre-template-account-stored-in-SX change.
(tt_act_handler): Added support for restoring in-devel pre-CIT
.gml2/XMLv2 files.
* src/gnc-exp-parser.c (gnc_exp_parser_parse_seperate_vars): Added
for Scheduled-Transaction-related since-last-run/split-formula
parsing.
* src/gnome/dialog-sxsincelast.c: Added support for variable entry
before creation/formulas in template transactions.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@5058 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/gnc-schedxaction-xml-v2.c: Support for new
SchedXaction options [create/remind-days-in-advance; auto-create,
notify-on-creation].
* src/gnome/dialog-scheduledxaction.c (putSchedXactionInClist):
Fix for next-occurance processing.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance):
Better handling of start date/last-occur date/current dates when
generating the next occurance date. Gotta remember to clear those
g_dates, lest the come up 'valid' due to stack trash... :(
* src/gnome/gnc-sxlastrun.{h,c}: Added; newer/better
since-last-occur dialog.
* src/gnome/window-main.c: Added Scheduled Transaction stuff to
"Tools" menu.
* src/scm/prefs.scm: Added initial cut at Scheduled Transaction
preferences.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4905 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (putSchedXactionInClist):
Fix for next-occurance processing.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance):
Better handling of start date/last-occur date/current dates when
generating the next occurance date. Gotta remember to clear those
g_dates, lest the come up 'valid' due to stack trash... :(
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@4841 57a11ea4-9604-0410-9ed3-97b8803252fd