Versie 3.5 van GnuCash is uitgekomen. GnuCash is een crossplatform en opensource boekhoudprogramma voor particulieren en kleine bedrijven. Het maakt gebruik van het dubbel boekhoudsysteem en is in staat om eenvoudig bijvoorbeeld bankrekeningen, beleggingen, inkomsten en uitgaven, budgetten, hypotheken en leningen bij te houden en kan natuurlijk raportages en grafieken maken. In deze uitgave zijn de volgende veranderingen en verbeteringen doorgevoerd:
Between 3.4 and 3.5, the following bugfixes were accomplished:
The following fixes and improvements were not associated with bug reports:
- Bug 639049 - Asset Barchart Report includes also the first day of next month transactions If the original date is an end-of-month date, we take it as an indicator they always want monthdelta dates to be end-of-months. This works for monthly/quarterly/halfyearly/annual.
- Bug 748431 - Wrong average balance for transactions during DST Replace average-splits with custom loop, cycling through the balancelist and splitlist, creating interval summaries along the way.
- Bug 787401 - Test for the report system - HTML Tests.
- Bug 795729 - Advanced Portfolio Report - Percentage rates not displaying leading zeros.
- Bug 796498 - Incorrect starting balance in TXF Report calculations.
- Bug 796530 - TxnCsvImport - fix loading of saved preset with update of seperator selection. Previously this would cause all but the first column to lose its assigned types.
- Bug 796687 - Tax Entity name and type for an account won't work under "Tax Reporting Options" in Gnucash 3.2
- Bug 796826 - Report HTML - not possible to suppress the document header.
- Bug 796827 - Report HTML - it is not possible to suppress the document title.
- Bug 796829 - Report HTML - HTML table rows are prepended not as list elements
- Bug 796831 - Report-HTML - append table column correctly.
- Bug 796877 - test-stress-options fails.
- Bug 796946 - Mortgage and Loan Repayment Setup tool crashes when exiting "Loan Repayment Options" page. Because libstdc++ on Windows doesn't support any C++ locales besides "C" and throws an exception if you try.
- Bug 796952 - Report formatting (justify) is broken.
- Bug 796956 - Aqbanking 6 will drop DTAUS Adds support for the upcoming AQBanking 6 and removes support for AQBanking earlier than 5.3.4.
- Bug 796965 - Change the default to show unused accounts.
- Bug 796989 - some date/time does not honor user locale.
- Bug 797002 - Program crashes when exporting tax data in txf format.
- Bug 797011 - GnuCash 3.4 Crashes When Printing Checks with Custom Format.
- Bug 797013 - Import Customers & Vendors: error in CMakeLists.txt - causes incomplete project in Xcode.
- Bug 797029 - Import Customer & Vendors: blank name and company in import data row crashes GnuCash
- Bug 797030 - Import Customer & Vendors: several issues with the matching of data rows.
- Bug 797031 - Import customer & Vendors: import can create customer and vendors without address data
- Bug 797041 - enum confusion in qoflog.
- Bug 797046 - Tools / Price Database / Currencies UI not working since 3.4.
- Bug 797067 - Date displayed incorrectly in register.
- Bug 797074 - Reports with averages are displaying fractions Convert amounts to decimal prior to adding to html-table. Also adds tests to make sure averages are displayed in 2 decimal places.
- Bug 797098 - Quitting Gnucash shortly after clicking Save may abort file save.
- Bug 797105 - Incorrect local-symbol for SZL currency
- Bug 797136 - Balance sheet report "Show Exchange rate" broken when foreign currency is sold completely For cases where total(amount)/total(value) = 0/0, the price is reported as 0.
We have revised translations for Arabic, Croatian (New!), Farsi, French, German, Spanish, Ukrainian Revised or added account templates for Belgium (French) (New!), Frsnce, Croatia (New!), Germany. Switzerland (French)
- API: Add dedicated api to query build-time, version related compile constants and use it in several location in the code for consistent behaviour.
- Budget: Save and restore the Account filter settings.
- Build: Fix deprecation warnings for g_type_class_add_private.
- CSV Tokenizer: Add additional test to guard against quote parsing regressions.
- GUI: Replace ambiguous mnemonic for File>Export>Export Active Register...
- GUI: Rearrange menu accelerators for Actions>Online Actions menu items
- GUI: Add mnemonic for File>Import>Import Bills...
- GUI: Move Balance-Forecast report to Reports>Assets & Liabilities
- GUI: Move Void Transactions item in Report Options from the Accounts tab to the Filter tab.
- I18N: Fix erratic localization of dates on Windows.
Date format selection on Windows relies on Windows National Language functions and those are unaffected by the POSIX setlocale(). We have in the past relied upon gtk initialization to handle this but it has not been reliable since the move to Gtk3. Note that this applies only when the locale is set via a Unix-style environment variable (typically LANG) or in the environment file; it's unnecessary and ignored when using the localization settings in Region & Language.
- I18N: Unify phrases to remove untranslated msgids.
- I18N: Restore the global locale after Guile munges it.
There's no way to change the environment locale on Windows so calling setlocale(LC_ALL, ""), as guile does in its init routine, reads the user's Language and Region settings instead of the environment variables. We save the discovered environment locale and call setlocale with it again after Guile has initialized.
- Importing: Remove old (non-SEPA) online transaction code, because now in 2019 the banks will only offer SEPA transactions and no others. This in turn means we don't need the old ktoblzcheck checking functions at all so also remove the dependency.
- Importing: Usability improvements for Bayes editor window
Remove the "Are you sure" question as it is simply annoying but does not help. Fix some string wordings to be more understandable.
- Online Banking: No longer force existence of local BIC code.
- Online Banking: Entering of TAN must use normal visibility
The visibility of the entered content was set to FALSE (=invisible) always, which was wrong for certain types of input as indicated by the GUI_INPUT_FLAGS. This should now be honored and visibility set to TRUE (=visible) for the correct flags.
- Online Banking: Fix reconcile timestamps when importing balances.
Used to be start-of-day, but needs to be day-neutral.
- Performance: Provide a single static instance of C++ locale.
We can't use std::locale::global because all streams imbue it by default and if it's not 'C' (aka std::locale::classic) then we must imbue all the streams that we don't want localized, and that's most of them.
- Performance: Add GncDateTime::timestamp().
To provide a C++ implementation of gnc_date_timestamp and to avoid using the expensive and localized GncDateTime::format().
- Performance: Implement a faster date-time serialization function.
Has the side effect of recording all date-times in XML files in UTC instead of local time with a timezone. This will help users who like to keep their files under version control because the time strings won't shift every time Daylight time begins or ends.
- Performance: >Fix XML load CPU hotspot: Scrub.c xaccTransScrubPostedDate
The refactoring provides roughly 10% reduction in user CPU use for XML file load by moving an expensive function to within an if-clause where the result is used.
- Performance: Speed-up of txn match dialog: Suspend GUI refresh during deletion of selected lines.
- Performance: Sorting speed-up: Cache the bool value of Transaction's is_closing property.
- Register: Accept URLs or file paths for files associated with transactions. File paths can be relative or absolute. A preference is provided.
- Reports: Speed up the budget and cash flow report calculation by iterating over accounts only once.
- Reports: Heavy scrubbing for code readability and performance.
- Reports: New Report by Ryan Turner: Balance Forecast Report
This report forecasts the combined balances of the selected accounts based on the scheduled transactions and plots them on a line graph. You can set a "reserve" amount, which will draw a red line on the graph, so you can easily see if your forecast dips below a given value. There is also a "future minimum" line which shows what the lowest future balance will be at a given point. I find this useful in conjunction with the "target" line for planning.
- Reports: Fix crash when loading saved-report with unknown choices.
If a saved-report with e.g. relative date, multichoice option is unknown, the report would crash, and the Report-Options would segfault. This commit fixes both: report-date defaults to 'today', multichoice-options defaults to default-value. Following this commit, if a report loads a saved-report or .gcm from a future version, a gnc:warn will be emitted and the report will not crash; it will use relative-date today. Multichoice will remain the default value. Report Options will not segfault. The user will be notified via a gnc:gui-warn dialog
- Reports: Date intervals at end-of-month:
Instead of recursing the date, we calculate the next month using an index-based multiplier, and apply modulo/remainder as appropriate to determine the next month/year. Then we attempt to create new mktime, and if the resulting mktime's month is not as expected, reduce the mday by 1 until resulting month is correct. This fixes monthly intervals for end-of-month days. Test via monthly/quarterly deltas, and also includes leapyear calculation.
- Reports: Date-grouping must allow indenting.
Indenting checkbox was erroneously disabled when: sortkey = date, date-subtotal = not 'none.
- Reports: Table display
It is intuitive that if the user wishes to show the subtotal-table, and hide the transactions, then both the main (hidden) transactions and subtotals must be hidden as well.
- Reports: Update US Income Tax information for 2018.
- Scheme Deprecations:
- Scheme: Replace account and split utility functions with SRFI-1 functions.
- Scheme: Testing (create-transaction) adds price trading commodities/currency.
this will modify a test which was calibrated to record purchase price only. fix transaction creation to add prices for both purchase and sales, and also fix test which was assuming no sale price was bring recorded.
- Scheme: Testing (env-create-multisplit-transaction) This is the general case for any transaction creation.
Rewrite other transaction creation routines to use it. All tests still work unchanged, which confirms this function works well. This will allow tests to create multisplit transactions, of an arbitrary number of splits. If the list-of-split's values are not balanced (i.e. total 0), the engine will create an Imbalance-CUR split.
The motivation is to allow creation of complex multisplit multicommodity transactions eg USD50 + GBP20 (USD25) = EUR66 (USD75) as well as their prices GBP/USD = 25/20 and EUR/USD = 75/66.
This will be useful in creating tests for stock-based reports, whereby stock sales need splits in STOCK/ASSET/INCOME accounts.
- USD -50
- USD -25 = GBP -20
- USD +75 = EUR +66
- Scheme: Redesign gnc:account-get-balances-at-dates,
replacing the ignore-closing? parameter with a split->amount function parameter having a default value of xaccSplitgetAmount. (split->amount split) should return the amount of the split or #f; in the latter case the split is skipped. This allows for a more general account balance list accumulator with novel balance strategies. For example a split->amount function could test void status and return xaccSplitVoidForerAmount on void splits; test description/memo for some content and vary the returned amount accoridingly; or test the split and return 1 or 0 creating a counter. To recreate the ignore-closing use case pass (lambda (s) (and not (xaccTransGetIsClosingTxn (xaccSplitGetParent s))) (xaccSplitGetAcmount s)))
- Scheme: Replace some option names. Automatically convert usage of the old names and issue a warning.