[GNC-dev] Tax Tables

Robert Fewell 14ubobit at gmail.com
Mon Aug 26 07:38:51 EDT 2019


Hi,

I got distracted with these warning in my trace file as I like to build/run
with an empty one so I know any errors are down to me, these are from an
XML file with one open invoice when saving...

* 11:58:50  WARN <gnc.io> [taxtable_reset_refcount()] Fixing refcount on
taxtable 2dca815fad04436cbb5497517803cc79 (2 -> 1)
* 11:58:56 ERROR <gnc.backend.xml> xmlNode* time64_to_dom_tree(const char*,
time64): assertion 'time != INT64_MAX' failed
* 11:58:56 ERROR <gnc.backend.xml> xmlNode* time64_to_dom_tree(const char*,
time64): assertion 'time != INT64_MAX' failed
* 11:58:56 ERROR <gnc.backend.xml> xmlNode* time64_to_dom_tree(const char*,
time64): assertion 'time != INT64_MAX' failed
* 11:58:56 ERROR <gnc.backend.xml> xmlNode* time64_to_dom_tree(const char*,
time64): assertion 'time != INT64_MAX' failed
* 11:58:56 ERROR <gnc.backend.xml> xmlNode* time64_to_dom_tree(const char*,
time64): assertion 'time != INT64_MAX' failed

taking the time64 errors first, I was going to propose changing
maybe_add_time64 in gnc-invoice-xml-v2.cpp as follows...

    if (time)
to
   if (time && time != INT64_MAX)
        xmlAddChild (ptr, time64_to_dom_tree (tag, time));

any one see a problem with that ?

Now the first warning, this is due to the blank ledger entry in the open
invoice having the tax table cell filled in with the default one for that
customer and when one quits Gnucash the file save happens before the gui is
destroyed so the refcount will always be wrong by the number of open
invoices.
I did think about decreasing the refcount for the table in the blank entry
but that causes another issue with the value going below 0 unless it could
be increased before the ledger is destroyed.

Can any one else see a way of fixing this, maybe just change it to an info
message ?

On a similar note, if you save the file as a sqlite3 one, the refcount will
increase on every save / open by the number of open invoices which is down
to new entries with the default tax table being added to the 'entries
table' which also do not have an invoice value.

No clue on this one.

Regards,
Bob


More information about the gnucash-devel mailing list