This is a *subtle* bug.
1. dates-list is the list of report-dates at periodic intervals
2. if an interval report (i.e. inc/exp) is chosen, we want to omit the
last one, because the report analyses changes in value between
adjacent dates.
3. dates-list was appropriately redefined to be 1 element shorter than
the original dates-list.
4. date-string-list (for display labels) was meant to pick up the
shorter dates-list, formatted via qof-print-date.
Unfortunately the let statement had defined both dates-list and
date-string-list at the same time, therefore date-string-list did not
pick up the redefined dates-list. Using let* instead means it uses the
shorter dates-list, and omits the last element as intended for display.
the flags warn-no-price and warn-price-dirty are report-specific
warnings to flag price difficulties. these warnings must now be
recorded in table-add-stock-rows because they are not accessible
globally.
Combine the best of both approaches and allow jumping to invoice if
either
- the current txn is an invoice transaction
- the current split has an invoice associated with it
Those are the only two conditions that allow us to uniquely
identify an invoice from a register.
A future extension could be to allow a jump if any split
of the current txn has an invoice associated with it.
This would need user interaction if more than one split
is linked to an invoice. A payment transaction for example
can pay more than one invoice and hence can have more than one
invoice related split.
Column widths of 0 are not saved by the table and so revert back to
calculated widths when reloaded. This change sets the column width to
1 when the right border is dragged to the left border to hide columns.
By doing this, a visual indication of a hidden column is seen as the
column border is now wider by 1px.
The single-character column heading "C" is used for "Color" in one
place,
and for "Cleared" in another place. Obviously this must be fixed by
adding
context, otherwise grossly wrong translations will show up (as is
currently
the case for German and the "Cleared" column in the import matcher)
PR #744
Amendment - the current implementation will allow to click
on each split in a bussines account (payments and invoices)
but won't allow to jump from an invoice split in an income
or expense account. This amendment changes this such that
one can jump from any split whose transaction is an invoice
transaction. This allows jumping from income and expense accounts
if their splits are related to an invoice. It loses the ability
to jump from payment splits in a business account.
This is however more correct as payment transactions are not
necessarily associated with exactly one invoice (it can be
none, one or many).
If jumping from payment transactions should be supported as well
that will require more effort, namely if many invoices are
associated with the payment, the user should be asked which one
to open.
previously fmtnumeric would convert gnc_numeric to double. simplifying
the code had omitted this conversion, and exact fractions were
rendered. ensure decimal is rendered.
Compiling our guile scripts will run loaded libraries. One of the libraries to
load is the engine library which expects to find the enabled backends (xml and or dbi).
If those aren't built yet, this will result in error messages printed in the build output.
This was not built-in by default (required a build-time define to be set)
and intended only for debugging.
Most of its intended goal can also be achieved by redirecting
standard output from the command line (verified to work in cmd.exe):
gnucash --help | more
gnucash --help > file-to-store-output.txt 2>&1
test arguments, deprecated as well as new mode arguments
test creating a session with a new xml file using __init__()
and begin(). Test raising exception when opening nonexistent
file without respective mode setting.
default_arguments_decorator until now only allows positional
argument defaults. This adds keyword defaults. The keywords
can be mapped to the positional arguments by optional argument
kargs_pos so interactions between keyword and positional arg
defaults can raise a TypeError. Some more information in
the docstring is included. In addition the docstring of
the wrapped function will be modified to contain information
about the defaults.
allow keyword arguments for function_class methods
and functions. process_dict_convert_to_instance() is added to
mimic the behavior of the process_list_convert_to_instance()
Derived methods in gnucash_core.py like raise_backend_errors_after_call
get modified to accept being called with keyword args.
Also adds some docstrings.