* src/app-utils/option-util.[ch]: create dateformat option utility functions
* src/app-utils/options.scm: create a dateformat option
* src/engine/date.[ch]: create APIs to handle date-format types.
- conversions of date-format to/from strings
- move the month format enum to here
- conversion of month format to/from strings
* src/gnome/top-level.c: move date-format string conversion from here
* src/gnome-utils/dialog-options.c: implement a date-format options
that uses the gnc-date-format widget.
* src/gnome-utils/gnc-date-format.h: remove month format (to date.h)
Initial fix for #99574
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8496 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/TransLog.c: Now log the transaction notes field (kvp actually).
* src/engine/kvp_frame.h: Docs
* src/import-export/log-replay/gnc-log-replay.c: Actually make it work:) Thanks Derek for pointing me to the private headers. Support the new note field.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8448 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/import-export/import-settings.c: Revert previous gettext macro addition.
* src/engine/TransLog.c,h: Change the log format to use GUID instead of C pointers and to use ISO8601 instead of proprietary format.
* src/engine/gnc-numeric.h
* src/import-export/import-match-map.c: Doxygen update
* configure.in
* src/scm/main.scm
* src/import-export/Makefile.am
* src/import-export/log-replay/*: New log replay module. This ALMOST works, except I forgot you can't set the GUID of gnucash's objects, and thus completely screwed up on the playback logic. I'll think of a solution when I am rested.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8440 57a11ea4-9604-0410-9ed3-97b8803252fd
-- needed to make portions of engine more generic for use
by other apps.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8417 57a11ea4-9604-0410-9ed3-97b8803252fd
a general QueryList Dialog.
* src/gnome-utils/Makefile.am: compile the new dialog.
* src/business/business-gnome/business-gnome.scm: use the new
querylist dialog to display the due bills
* src/business/business-gnome/dialog-invoice.[ch]: create a new
API to run a due-bills dialog.
* src/business/businss-gnome/gw-business-gnome-spec.scm: wrap the
new due-bills api
* src/engine/gnc-book.c: forcibly signal a book destroy event
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8340 57a11ea4-9604-0410-9ed3-97b8803252fd
events are suspended. Without such an API, events can be lost
if the event system is suspended when the event comes in.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8338 57a11ea4-9604-0410-9ed3-97b8803252fd
list of books in a query.
* src/business/business-core/gncInvoice.[ch]: add INVOICE_POST_LOT
query parameter methods
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8336 57a11ea4-9604-0410-9ed3-97b8803252fd
to allow callers to look it up without requiring the private
header.
* src/business/business-core/gncInvoice.[ch]: define
INVOICE_IS_PAID and create gncInvoiceIsPaid() function (the
prototype already existed, but it was never implemented).
* src/business/business-gnome/dialog-invoice.c: add IS_PAID column
and the ability to search for paid/not-paid invoices.
* src/gnome-utils/Makefile.am: build gnc-query-list
* src/gnome-utils/gnc-query-list.[ch]: finish the GNCQueryList.
- allow active-column sorting
- watch all the entities in the query and update when an entry changes
- use a checkbox to display booleans
* src/gnome-utils/search-param.[ch]: add extra APIs required to support
the initial QueryList implementation
* src/gnome-search/dialog-search.c: Convert to use the new
GNCQueryList to display the search results.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8308 57a11ea4-9604-0410-9ed3-97b8803252fd
test, since it breaks on guile-1.6 (which does mean that
importing into a guile-1.6-based system will fail, but so much
else fails when upgrading from 1.6 to 1.8 that it really doesn't
matter. Users will have to reset their reports anyways.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8254 57a11ea4-9604-0410-9ed3-97b8803252fd
* lots of files...
fixes for GCC 3.3 warnings
comparison between signed and unsigned and
dereferencing type-punned pointer will break strict-aliasing rules
fixes#110320
* src/engine/gnc-pricedb-p.h
* src/engine/gnc-pricedb.c
* src/engine/gnc-pricedb.h:
gnc_pricedb_lookup_at_time_any_currency,
gnc_pricedb_lookup_day_any_currency and
gnc_pricedb_lookup_nearest_in_time_any_currency functions
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8223 57a11ea4-9604-0410-9ed3-97b8803252fd
actually return the account Code, not the account Name! Fixes
#110561.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8220 57a11ea4-9604-0410-9ed3-97b8803252fd
-- kvp changes require that account be marked dirty so that its saved
-- Fix memory leak in GetSubAccounts (the returned value is already
a copy, a second copy is not needed).
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8214 57a11ea4-9604-0410-9ed3-97b8803252fd
add additional debug printouts of actions performed.
Will catch fixes of type reported by Dave Reed <drlinux@columbus.rr.com>
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8186 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gnc-pricedb.c
* src/engine/gnc-pricedb.h: new function
gnc_pricedb_lookup_latest_any_currency, return any available
prices for given commodity regardless of currency
* src/app-utils/gnc-ui-util.c: do a "two stage" price lookup in
gnc_ui_convert_balance_to_currency if no price for the commodity
is found in the requested currency, then look for prices in any
currency and for a exchange rate from the price currency to the
requested currency
* src/gnome/gnc-split-reg.c: do currency conversion and show the
value in the status line of stock and mutual fund accounts
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8145 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gnc-session.c: OpenBSD fix by Todd T. Fries
<todd@flare.fries.net>
* src/engine/Transaction.c: OpenBSD fix by Todd T. Fries
<todd@flare.fries.net>: time_t is not long everywhere.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8104 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gnc-book.h, src/engine/*.h: Added a lot of
documentation comments, improved doxygen output. At least the most
important header files will now show up in doxygen.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8081 57a11ea4-9604-0410-9ed3-97b8803252fd
we're compiling against an external -lintl (like on Solaris)
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8076 57a11ea4-9604-0410-9ed3-97b8803252fd
0..255 instead of -128..127. Force a "signed char" to make sure
we get the latter interpretation.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7946 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/Makefile.am: add ${INTLLIBS} for gettext() et al on
platforms that don't have it in libc
* src/backend/file/io-gncbin-r.c: don't need to define functions
that are never used, so move the #ifdef around. Fixes # 105124
* rpm/gnucash.in: don't call autoconf
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7937 57a11ea4-9604-0410-9ed3-97b8803252fd
Added ENTER/LEAVE statements
* src/backend/postgres/escape.c: Adde gnc-engine-util.h,
and "module = MOD_BACKEND"
- (sqlEscape_destroy): Added ENTER/LEAVE statemtents.
* src/backend/postgres/gncquery.c (sql_Query_destroy): Added
ENTER/LEAVE statements.
* src/backend/postgres/putil.h: Cleaned up the formatting on the
SEND/FINISH/EXEC/GET_RESULT macros. Changed them to use
PQresultErrorMessage where possible. Made them all set the Backend
error message string. Removed the PQfinish() calls, and setting
be->connection to NULL. Reasoning: if a malformed query fails, there is
no reason to close the connection. If an update/insert fails,
again, there is no need to close the connection. The user should
be presented an error message and respond appropriately. If
a update/insert/delete fails, then generally the transaction is
rolled back to the last BEGIN, thereby preventing data corruption.
* src/engine/QueryNew.c (gncQueryPrint): Check that q is not NULL
prior to processing it.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7905 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/gnome/dialog-scheduledxaction.c (gnc_sxed_update_cal): Fix
the Recurrence-Frequency example-calendar date calculation to show
upcoming instances correctly.
* src/engine/SchedXaction.c (xaccSchedXactionGetNextInstance):
Remove the validity check on the temporal-state-data's notion of
the last-occurance date; as invalidity means something important,
we must let it through; fixes Bug#103955.
* src/backend/file/gnc-schedxaction-xml-v2.c
(gnc_schedXaction_dom_tree_create): Make output of the
deferred-instance last-date node optional on it's validity.
* src/gnome/dialog-sxsincelast.c (cancel_check): Change assertion
into conditional-activity, allowing rational use-case and fixing
Bug #103182.
* src/gnome/dialog-scheduledxaction.c (editor_ok_button_clicked):
Correctly update available SX lists instead of the one we were
spawned from, which may have disappeared in the mean time. Fixes
Bug#103629 [and allows the future fix of not needing to open the
SX List Dialog when clicking "Advanced..." in the sx-from-transaction
SX Editor-open vector].
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7885 57a11ea4-9604-0410-9ed3-97b8803252fd
actually work with numbers that are not co-divisible but have
multiple-powers of co-factors. For example, the old algorithm
thought the LCM of 100,96875 was 3100, when it is really 387500,
because it was removing the factor of '5' too many times..
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7864 57a11ea4-9604-0410-9ed3-97b8803252fd
and on big queries the merge can appear to take a long time.
So, let's use g_list_prepend() and g_list_reverse() to speed
up the process significantly.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7860 57a11ea4-9604-0410-9ed3-97b8803252fd
* doc/Makefile.am
* src/doc/Makefile.am
* src/doc/design/Makefile.am
* src/experimental/cgi-bin/Makefile.am
Added docs that were missing from dist.
Moved doxygen clean rules to maintainer-clean.
Moved texinfos to maintainer-clean.
* lib/libc/Makefile.am
Added sources needed for OS X to dist.
* src/app-utils/Makefile.am
* src/backend/postgres/Makefile.am
* src/business/business-core/Makefile.am
* src/business/business-gnome/Makefile.am
* src/business/dialog-tax-table/Makefile.am
* src/core-utils/Makefile.am
* src/engine/Makefile.am
* src/gnc-module/Makefile.am
* src/gnc-module/test/mod-bar/Makefile.am
* src/gnc-module/test/mod-baz/Makefile.am
* src/gnc-module/test/mod-foo/Makefile.am
* src/gnome/Makefile.am
* src/gnome-search/Makefile.am
* src/import-export/Makefile.am
* src/import-export/binary-import/Makefile.am
* src/import-export/qif-io-core/Makefile.am
* src/register/register-core/Makefile.am
* src/report/report-gnome/Makefile.am
* src/scm/Makefile.am
* src/app-file/Makefile.am
* src/gnome-utils/Makefile.am
Put generated headers into dist.
Moved symlinks to distclean.
Moved generated files to maintainer-clean.
Put generated gw-.*.scm files in dist for parity.
Put generated sources into dist.
Moved generated source to maintainer-clean.
* src/bin/overrides/Makefile
Made built scripts depend on config.status to ensure
they're rebuilt when paths change.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7859 57a11ea4-9604-0410-9ed3-97b8803252fd
on numbers of different denominators. In particular, convert
both numbers to the lcd and then operate on them, instead of
assuming that a "cross-multiply" is safe.
* src/app-utils/test/test-print-parse-amount.c -- add more tests for
PrintAmountInternal by checking force_fit and round. Excercises
a bug (fixed in this patch) where cross-multiplies were NOT safe.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7848 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/engine.scm: export gnc:commodity-is-currency?
* src/report/report-system/report-system.scm: remove ref to same.
* src/report/report-system/report-system.scm: remove function above
* src/import-export/qifiimport/qif-to-gnc.scm: fix the algorithm
to find/create new accounts. All "parent" accounts are of
commodity "default-currency" (but don't really care about that).
When creating a leaf account, use the security if it's a
stock/mmf account, but the default-currency otherwise.
Fixes#103633.
NOTE: Might need similar fixed in qif-io-core?
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7841 57a11ea4-9604-0410-9ed3-97b8803252fd
with multiple versions of the autotools suite. Make generated g-wrap
sources depend on config.status.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7837 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/business/business-core/gncCustomer.c:
* src/business/business-core/gncEmployee.c:
* src/business/business-core/gncInvoice.c:
* src/business/business-core/gncJob.c:
* src/business/business-core/gncOrder.c:
* src/business/business-core/gncVendor.c:
add the QUERY_PARAM_ACTIVE parameter support
* src/app-util/prefs.scm: add hidden preference to store
the user's choice of searchin
* src/gnome-search/search.glade: add a checkbox to search-for-all
* src/gnome-search/dialog-search.c -- add preliminary support to
limit searches to only "active" objects. Fixes bug #103506
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7833 57a11ea4-9604-0410-9ed3-97b8803252fd
const char* (at least in guile-1.3.4), so force the string to be
a char* to make the compiler happy.
* src/engine/date.c: add spaces to the scanDate delimiters,
although it may not help if strptime() is doesn't like the
spaces. Attempt to fix#103147, but it's probably a strptime
bug.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7828 57a11ea4-9604-0410-9ed3-97b8803252fd
of numerics so it copes with numbers in the "wrong" order.
Fixed bug #103341
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7824 57a11ea4-9604-0410-9ed3-97b8803252fd
1.4 and 1.6 so this change caused compilation failures for some users.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7801 57a11ea4-9604-0410-9ed3-97b8803252fd
about potential "error" output which can be ignored.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7794 57a11ea4-9604-0410-9ed3-97b8803252fd
the LOT code to clear memory when you destroy a lot. Fixes a crash
when you destroy a lot.
* src/engine/Transaction.[ch]: add an xaccTransClearReadOnly() function
to let you clear the flag so you can then remove an transaction. Only
for internal uses only! This is used by the Invoice UnPost code.
* src/engine/gnc-lot.c: remove the lot from the account's list of lots
when the last split is gone.
* src/business/business-core/gncInvoice.[ch]: implement Unpost function
* src/business/business-ledger/gncEntryLedger.[ch]: change the
set_readonly() function to let you toggle back and forth between
readonly and readwrite ledgers.
* src/business/business-gnome/dialog-invoice.c: implement unpost; set back
to readwrite if the unpost succeeds
* src/business/business-gnome/dialog-order.c: use new set_readonly() API
FIXES BUG #101452
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7750 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/FreqSpec.c: Fix the i18n comments for the translators.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7735 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/register/register-gnome/formulacell-gnome.c: Changed
FormulaCell from MOD_SX to MOD_REGISTER.
* src/engine/FreqSpec.c (xaccFreqSpecGetFreqStr):
s/g_string_sprintf/snprintf/, as the former can't handle the
re-ordered format parameters which the po-files use; fixes
Bug#101650.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7731 57a11ea4-9604-0410-9ed3-97b8803252fd
transactions to any combination of the Reconciled / Cleared / Voided /
Unreconciled states. #87990
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7689 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/gw-engine-spec.scm: use gslist-of where needed
* src/engine/gw-kvp-spec.scm: use gslist-of where needed
NOTE: As of now you ABSOLUTELY REQUIRE G-WRAP >= 1.3.3
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7678 57a11ea4-9604-0410-9ed3-97b8803252fd
commodity's scu. This allows a user to notice/correct a case where
the two are out of whack and correct it (#100295), or to intentionally
set them that way.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7677 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/SchedXaction.h: Doxygen-related changes.
* src/register/ledger-core/split-register-layout.c
(gnc_split_register_layout_add_cells): Change F(DEBT|CRED)_CELL
types to FORMULA_CELL from QUICKFILL_CELL.
* src/register/register-gnome/gncmod-register-gnome.c
(libgncmod_register_gnome_LTX_gnc_module_init): Add
formulacell-gnome override to gnc_register setup.
* src/register/register-core/formulacell.c:
* src/register/register-gnome/formulacell-gnome.c: Filled in a
long-thought of idea for a formula cell: can contain text unlike a
pricecell, but doesn't really want to do auto-complete like a
quickfill cell [what we had been using]. This allows us to
provide the gnome formula cell which can remap the keypad '.'
character based on locale; addresses Bug#97065, which is the
cause of Bugs#97063 and #97062.
* src/gnome/glade/sched-xact.glade: Remove "[Last Day]" option;
add "/last day" to 29/30/31 options in gnc-frequnecy month-based
selections.
* src/gnome/dialog-scheduledxaction.c (new_button_clicked): Change
default new SX frequency to monthly; fixes Bug#100615.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7662 57a11ea4-9604-0410-9ed3-97b8803252fd
gnc_commodity_equal(), because the average user doesn't need
to know why commodities are not equal.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7649 57a11ea4-9604-0410-9ed3-97b8803252fd
More Doxygenification. Created an Engine module, and a
Deprecated list. Unfortunately, unless we turn on EXTRACT_ALL
(not very practical currently) not all functions will appear
unless they are all documented.
* src/engine/Transaction.h: More Doxygenification
* src/engine/Account.h: Doxygenify
* src/doc/doxygen.cfg.in: Minor config change.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7646 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/engine/Transaction.h: Extensively added function
documentation (in order to avoid further amount/value confusion
down the road), watch doxygen output. Added a lot of 'const' all
over the place.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7640 57a11ea4-9604-0410-9ed3-97b8803252fd
Huge patch, this is the new generic import
architecture/transaction matcher. Many old
files were renamed, split or deleted.
* src/engine/Transaction.c,h:
- Add a DxaccSplitSetAmount function,
- Fix a bug in xaccSplitsComputeValue (Split values were
sometimes being summed, which is illogical) that caused
xaccTransGetImbalance to sometimes return incorrect values.
Somebody please review this. Playing in the engine during
freeze isn't ideal.
* src/import-export/import-backend.c,h: There is now a
real backend, completely independent of the GUI.
* src/import-export/gnc-gen-transaction.c: This is Christian's
old matcher, I tried to maintain compatibility, but couldn't
really test. Please note that there is some code
simplification that could be done there now that there is a
clean backend, and that some values passed between the functions
might no longuer have any effect.
* src/import-export/ofx/gnc-ofx-import.c: Update for new
matcher. Use the currency reported by libofx and
xaccSpiltSetBaseValue when adding a banking/credit card
transaction.
* src/import-export/import-account-matcher.c,h: This is a
very generic and flexible account matcher/picker.
* src/import-export/import-commodity-matcher.c,h: This is
a generic commodity matcher/picker.
* src/import-export/import-main-matcher.c,h: This is the
main transaction matcher GUI. It's mostly feature complete
and should be fairly stable, but probably leaks memory.
* src/import-export/import-match-map.c,h: Derek Atkin's
generic string/account matching infrastructure.
* src/import-export/import-match-picker.c,h: This is the
interface to pick a matching transaction. It has been
completely ripped from the backend.
* src/import-export/import-settings.c,h: All user
settings (or compiled-in settings) are now abstracted in
an opaque structure with getter functions.
* src/import-export/import-utilities.c: These are utility
functions to help import module writers.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7632 57a11ea4-9604-0410-9ed3-97b8803252fd
reporting that the file is from a previous version. Let the caller
decide after querying the user. #97270.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7614 57a11ea4-9604-0410-9ed3-97b8803252fd
* src/app-utils/gnc-ui-util.[hc]: Added
gnc_locale_default_currency_nodefault function since
locale_default_currency might return a non-locale related
currency. Fix xaccSPrintAmount. Fixes#95404.
* src/engine/iso-4217-currencies.scm ("rouble"): Fix mnemonic for
Russian Rouble which is "RUR" instead of RUB.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7574 57a11ea4-9604-0410-9ed3-97b8803252fd