When the register is in double line mode, a tooltip for the transaction
association column can be shown if one is present by hovering the mouse
over the cell. If the register 'cursor' is highlighting any transaction
row this works but if the 'cursor' is on a split and mouse moves to an
association cell with an entry, Gnucash will crash. To fix this use the
SheetBlockStyle from block instead of the GnucashCursor.
When you are asked whether you want to create a new account on the
register, possibly due to a typo and you answer no, the same dialogue
will appear another three times before resetting the account cell to
the original value.
These changes eliminate that by returning you back to the cell with the
invalid entry so that you can amend / cancel or use the dialogue again
to create a new account based on an amended entry.
With the register in journal mode and you edit the account field so the
'Account x does not exist, do you want to create it' dialogue is shown
you get the following error...
gboolean boolean_from_key(const Account*, const std::vector<std::
__cxx11::basic_string<char> >&): assertion 'GNC_IS_ACCOUNT(acc)' failed
This was tracked down to a refresh being triggered with the account
dialogue so add a check for a valid account as part of the placeholder
test.
If you have a sub account register open and you create another account
that is a descendant of the top account the transaction will not be
seen as the query used for the sub account register does not include
the new account. Add a check to 'refresh_handler' to check for the same
number of sub accounts, if different recreate query.
The Menu 'View->Refresh' only worked for the report page which reloaded
the report so added functions for other pages as follows. The Register
and Budget pages are reloaded with the remaining pages being redrawn
with a call to gtk_widget_queue_draw.
* prefer srfi-13 over regex
* instead of <nobr> use <span style="white-space:nowrap">
* reuse functions defined in eguile-gnc and eguile-utilities
* compact functions
* move make-regexp toplevel to ensure one compilation
Guile formerly used the wrong argument order for string-delete and
string-filter. Fix to correct order.
See bug report http://savannah.gnu.org/bugs/?31681
* improve documentation
* reuse (create-test-data) for various regular transactions
* run (create-test-invoice-data) for business invoices
* fix max arguments which would crash for reports without options
* if report has start-date and end-date, insert valid dates to ensure
report runs on non-null book data.
* enable testing of previously disabled reports
* also dump book and invoices generated in populated book
* modify output to show full backtrace on error: In case of test
failure, previous would show a shortened exception name. Change to
display full backtrace, similar to crashing in live code. Uses
gnc:apply-with-error-handling existing API call.
Also clean up code.
previously price-conversion with overall-period would fail when
considering the pricing date for the overall-period column. Use the
last date for the overall-period.
restore the analyze-splits function. previously it would run on an
empty splitlist (obtained via empty accounts for example) and crash
with div/0. this commit will break loop back to analyze-splits
function, and only call it if the splitlist is not null.
this function creates some business data. moved from test-invoice.scm
without the invoice-specific tests. verified all invoices/bills are
created correctly.
it returns a vector-list of the 8 invoices generated.
Changed MRO smallest-fraction to 100 based on information provided
by the reporter. ISO4217 has moved the MRO to the "Historical Currencies"
list that doesn't include CcyMnrUnits.
this can be used instead of delete-duplicates when the list must also
be sorted.
the main reason for this function will be for the upcoming aging.scm
report which will use it heavily to slice APAR splits into owner list.
This function helps to establish UI link from register split to an
owner's split. It should not be used anywhere else. Its use in reports
will be removed.
It is also unnecessarily complex -- it is called from an AP/AR account
register split, it should have all necessary information via split
metadata. e.g. this function *can* return a split owner if originating
from an Asset/Liability account which settles an invoice, but this
functionality is not used because there is no asset/liability register
hook to call it.