Commit Graph

19793 Commits

Author SHA1 Message Date
John Ralls
174752e28c Merge Bill Nottingham's 'bad-dates' into maint 2018-05-26 18:10:02 -07:00
John Ralls
aa08689371 Merge Paul Wassi's "Fix Permanent Storage" PR into maint. 2018-05-26 16:35:58 -07:00
John Ralls
5c0f56b055 Merge Ryan Schmidt's 'case-sensitive' into maint 2018-05-26 10:39:48 -07:00
John Ralls
6b5ee8f5e8 Bug 796409 - Incorrect Current Value for Stocks
This is in the register summary bar. Missed calculating the value in
8877f86.
2018-05-26 10:32:14 -07:00
Ryan Schmidt
075021a88d
Fix build on case-sensitive filesystems 2018-05-26 11:45:45 -05:00
John Ralls
243bf8afce Bug 796369 - Notes lost or perhaps just not displaying when using...
SQLite backend.

Release Note: This bug caused data loss if you saved your SQLite3
database to a different file or database.

The problem is that in SQLite3 (though not in MySQL or PgSQL) the
subquery ((SELECT DISTINCT guid FROM transactions)) (note the double
parentheses) returns only the first guid in the subquery's results.

Some transactions are loaded by special queries and those queries are
also used to retrieve the transaction's slots so they weren't affected.
2018-05-25 12:58:39 -07:00
John Ralls
5708707f6c Fix misplaced try block that caused unhandled exception if year out of range. 2018-05-25 09:19:12 -07:00
Paul Wassi
396c955fd5 Fix permanent storage of vendor details.
Since the data types did not match for the billterms and taxtable,
those references/guids were not saved to the database.
2018-05-25 01:56:14 +02:00
Geert Janssens
5389aa22ab Update invoice reports to use totals calculate by gncInvoice
This should give a consistent representation of invoice data across the application.
2018-05-24 18:55:38 +02:00
Geert Janssens
fcabf6bb96 A more detailed revision of gncEntry and gncInvoice related rounding
First change is to ensure gncEntry rounding is consistent. Internally
calculated values in the entry are never rounded. Consumers of
gncEntry's calculated values can request them either rounded or not.

Next use a pragmatical approach for calculating values on invoices based on
the entry values: do the rounding such that we never
create an unbalanced transaction while posting
That means
- round each entry's net value before summing them in net total
- accumulate all tax totals on invoice level per tax account before rounding
  and round before before summing them in a global tax total

Hopefully this will catch a few more rounding issues in this area.

A complete solution can only offered if we allow users to manually correct
tax entries. This requires changes to user interface and data format
so that's not going to happen in gnucash 3.x.
2018-05-24 18:53:15 +02:00
Bill Nottingham
8b1b25aee5 Modify date formatters to strip out certian specifiers.
strptime/strftime supports various modifiers to their parameters.

 'E' and 'O': alternate locale-specific formats
 (used in default format for Persian, Oriya, Azerbaijani)
 '-': padding
 (used in default format for Czech)

GnuCash passes dates as integer y/m/d without using locale-specific
formats, so we need to strip out 'E' and 'O' from the format when
scanning dates or determining separators in gnc-date.

None of '-', 'E', or 'O' are supported by boost (and '-' causes
errors), so strip them out from formatters in gnc-datetime as well.

See https://bugzilla.gnome.org/show_bug.cgi?id=795247.
2018-05-22 23:37:22 -04:00
Geert Janssens
2e8df1984a Improve rounding for invoice entry values
This will probably need more refinement because the multiplications
are still missing rounding methods, but the changes in this commit
will already allow guile code to correctly create entries.
2018-05-19 20:25:13 +02:00
Bill Nottingham
519ce9fb81 Fix some copy-pasted code. 2018-05-16 22:16:20 -04:00
John Ralls
5f5ad968f9 Bug 796079 - Repeatable Crash in Tax Report Options. 2018-05-15 16:57:08 -07:00
Christopher Lam
3ac0f4a3fd Bug 796081 Tax Schedule Report - An error occurred while running the report
Missed out from timepair->time64 conversion.
2018-05-14 23:35:48 +08:00
Geert Janssens
53a17fe77c New Dutch translation imported from the Translation Project 2018-05-12 17:40:03 +02:00
Geert Janssens
324c9adfd2 Bug 795519 - Credit card payment after reconciliation
The transfer dialog was set up as a child of the reconciliation dialog.
However as the latter is closed it's child dialogs are closed as well.
At least that's the behaviour on Windows. This didn't happen on Fedora 27.
Regardless it's fixed by making the account register the parent of the transfer
dialog.
2018-05-12 16:50:02 +02:00
Geert Janssens
61fe647828 Use lowercase for account type descriptions 2018-05-12 14:08:08 +02:00
Geert Janssens
7f91cb82d7 Merge branch 'scheme-progress' of https://github.com/christopherlam/gnucash into maint 2018-05-12 14:07:59 +02:00
Robert Fewell
fc963f877c Change the right margin setting for reconcile totals
Change the margin setting from the gtk box to the label so it looks
correct when styled.
2018-05-11 21:35:35 +02:00
Robert Fewell
836705f980 Bug 795101 - Fix the reconcile window sort order
When the reconcile column was moved, the default sort order was not
altered for the change so fixed it. Also added enum so model columns
can be referenced by name which hopefully will make it easier to read.
2018-05-11 21:35:27 +02:00
Christopher Lam
388a4906b0 gnc:options->sxml allow alphanumeric in test filename 2018-05-11 16:41:35 +08:00
Christopher Lam
5e1c8e9132 business-reports/*.scm: close tags to make valid XHTML
This will be important for testing.
2018-05-11 16:00:06 +08:00
Christopher Lam
9eedea71ea test-GSTR: implementation testing for GST Report 2018-05-11 16:00:06 +08:00
Christopher Lam
66fcaa4f91 test-extras.scm: centralize (sxml->table-row-col)
This is used in conjunction with (gnc:options->sxml) to extract
html table cells.

From SXML tree, retrieve, from a <table>, the th/tr/td cells as a list
of string.
2018-05-11 16:00:06 +08:00
Christopher Lam
bb551af948 collectors.scm: rewrite binary-search-lt to be clearer 2018-05-10 23:33:35 +08:00
Christopher Lam
4e85102682 report-system/cmakelists: fix scm_test_report_system_SOURCES
These tests were disabled by mistake in cbd8764780
2018-05-10 23:33:35 +08:00
Christopher Lam
4c55141d96 html-utilities.scm: simplify 2018-05-10 23:33:35 +08:00
Christopher Lam
ded88b01dd list-extras.scm: trim useless utility functions
These functions are either better defined in R5RS (list-min-max),
unused (function-compose), or being defined in the .scm using
them (list-leaves).
2018-05-10 22:21:55 +08:00
Christopher Lam
1df7fb4048 html-text.scm: schemify 2018-05-10 22:21:55 +08:00
Christopher Lam
d4cb87fe3d business-report/test: create test directory
These tests will all be SRFI-64 based.
2018-05-10 22:21:55 +08:00
Christopher Lam
23410ca429 html-table.scm: centralize (gnc:html-table-set-last-row-style!)
This html-table modifier seems common enough to centralize into
html-table.scm.
2018-05-10 22:21:55 +08:00
Christopher Lam
97ab1b19fe test-date-utilities.scm: to SRFI64
Clearer syntax helped find flawed test - while set-tm:mday directly
accepts 1-31, set-tm:mon accepts 0-11 to represent 1-12, therefore
must minus 1. set-tm:year accepts 92 to represent 1992, therefore must
minus 1900.
2018-05-10 22:21:55 +08:00
Christopher Lam
13f31e0691 test-extras.scm: (logging-and) is obsolete
Use the much nicer SRFI-64 forms instead.
2018-05-10 22:21:55 +08:00
Christopher Lam
5e0fc04f7b test-extras.scm: remove dead code
These functions are never used through code.
2018-05-10 22:21:55 +08:00
Christopher Lam
8ddee96463 test-extras.scm: centralize (gnc:options->sxml)
I think this is useful enough to be upgraded.
2018-05-10 22:21:05 +08:00
Christopher Lam
c6032ac6ed srfi64-extras.scm: centralize (gnc:test-runner)
This is good enough to be used widely.
2018-05-10 13:19:03 +08:00
Christopher Lam
dda6730c44 utilities.scm: centralize and modernize addto!
(define-macro) is discouraged in most scheme forms. Change
to (define-syntax), and centralize common macro to utilities.scm
2018-05-10 13:19:03 +08:00
Christopher Lam
4a27285edd html-utilities.scm: new home (gnc:html-render-options-changed)
We want to sanitize render-options-changed, therefore it must return
an html-object. Unfortunately this is not accessible to
app-utils/options.scm. If we move this function to
report-system/html-utilities.scm, it can access html-objects.

Also rename it to gnc:html-render-options-changed
2018-05-10 13:19:03 +08:00
Christopher Lam
44a568bc45 GSTR: sanitize string
Instead of returning raw html string, return an html-object.
2018-05-10 13:19:03 +08:00
Christopher Lam
fd02871678 TR: sanitize string
This will change the HTML slightly, so, requires an update to the test
suite.
2018-05-10 13:19:03 +08:00
Christopher Lam
d68ccc3306 TR: rename some variable names to be more descriptive
The previous names were remnants of old transaction.scm and were not
exactly consistent. Use more descriptive names.

The only user-visible change is elimination of <br/> in the
common-currency account header, because this will be sanitized.  The
table col-headers cannot unfortunately accept a (gnc:make-html-text)
object therefore we cannot add <br/> at all. I vote to display
e.g. "Debit (USD)" instead.
2018-05-10 13:19:03 +08:00
Christopher Lam
ac510d13be TR: (ENH) add Closing-status filter, enable it by default
This commit will add a filter to include/exclude closing
transactions. In conventional reports, they are usually disruptive to
the regular periodic reporting and the default ensures they are not
included.

This commit also changes income-gst-report.scm to use the closing
filter just created, and disable its UI.
2018-05-10 13:19:03 +08:00
Christopher Lam
4b9ec663f7 TR: (ENH) do not add headers if hiding transaction data 2018-05-10 08:43:00 +08:00
Christopher Lam
f82e5a5b4b TR: (ENH) enable subtotal/grouping for Split Memo 2018-05-10 08:43:00 +08:00
Christopher Lam
f89f00f59d TR: (ENH) enable subtotal/grouping for Transaction Description 2018-05-10 08:43:00 +08:00
Christopher Lam
4a7bc0b53d TR: (ENH) enable subtotal/grouping for Transaction Notes 2018-05-10 08:43:00 +08:00
Christopher Lam
2102c55bb7 TR: (centralize) centralize custom-sorter split comparators
This commit will modify the custom sorter to reuse 'split-sortvalue
comparators. The original purpose of these functions was to *compare*
splits *during* table generation to determine whether a subtotal group
was changed. These functions can be easily reused by the custom sorter
to *sort* splits *before* table generation.

Also modify the sortkey renderer logic to catch all non-date,
non-account sortkeys into the generic string renderer.
2018-05-10 08:43:00 +08:00
Christopher Lam
b95fa5ba8c TR: (simplify) dynamically check CUSTOM-SORTING?
Instead of a list needing manual adjustments, this function will check
if sortkey requires custom sorter, depending on sortkey capabilities.
2018-05-10 08:43:00 +08:00
Christopher Lam
6210b80fd0 TR: (simplify) dynamically check SUBTOTAL-ENABLED?
This function checks whether the sortkey can be grouped. Instead of
manually creating list, test it dynamically.

Sortkeys whose 'renderer-fn is defined can be grouped.
2018-05-10 08:43:00 +08:00