1.9 release notes

Submitted by ehu on

What's new and notable in LedgerSMB 1.9

  • Customer/Vendor drop-down on invoices searchable
  • E-mailed documents stored in the database
  • Searching open invoices for payment by customer/vendor name
  • A new command line application for administrative tasks and automation
  • "GIFI" selections are now hidden when no GIFI is configured
  • Replace "Ignore Year-ends" with opening or closing balances on balance sheet report
  • Mailing of aging reports
  • 'Update' no longer clobbers saved invoices and transactions
  • Optimized HTML and JavaScript responses for faster page loading

New features

Mailing of aging reports

Versions of LedgerSMB up to and including 1.4 had a function to mail aging reports to customers. With the release of 1.5, this functionality was accidentally removed: forgotten to be implemented in the refactoring of the last reporting functionalities being moved to "the new reporting framework". This was in 2016. Finally, this function has been added back into LedgerSMB as of the 1.9 release.

Customer/Vendor drop-down on invoices (and transactions) searchable

The customer/vendor selection drop-down on AR/AP transactions and invoices has been replaced with an input element which filters available names based on input entered. Before, there was a regular drop-down listing a fixed list of choices. However, when the number of customers gets too big, that's an impractical way of selecting a customer or vendor. Therefore, another input selection mechanism was available where a regular textbox was used to search the desired customer/vendor on 'Update'. This new feature provides good middle ground. If your database is configured to use the regular textbox, entering a high enough number in the "Max per drop-down" setting in the "System > Defaults" screen enables this new functionality (for drop-downs no larger than the specified number of items).

E-mailed documents stored in the database

Invoices and aging reports, when mailed, are now stored in the database. This provides the opportunity to download the documents for inspection from the e-mail entry screen as well as that it serves as an archive of what has been sent to whom. In the past, there was no way to check emails having been sent, other than by including oneself as a Bcc recipient.

Searching open invoices for bulk payment by customer/vendor name

This release adds the option to select invoices offered for payment in the bulk-payment screen by vendor/customer name in addition to the (existing) option to select invoices by vendor/customer number.

A new command line application for administrative tasks and automation

A new command line application "ledgersmb-admin" offers the ability to run a number of administrative commands from the command line (instead of from "setup.pl"). The following commands have been implemented so far:

  • Database management commands
    • backup
      creates backups of a database
    • copy
      creates copies of a database
    • create
      creates a new database, optionally with configuration and a user
    • destroy
      removes a database
    • rename
      renames a database, while retaining access rights for existing users
    • restore
      restores a database from a backup file created with the "backup" command
    • upgrade
      upgrades a database's schema and stored procedures for a new application version
  • Company management commands
    • template
      imports, exports and lists templates in a company

More commands are expected to be available on 1.10 or later.

Replace "Ignore Year-ends" with opening or closing balances on balance sheet report

Before this release, there was an option to either include or ignore "year ends" when running the balance sheet report. This type of input was deemed too technical: the actual question the application was trying to ask was whether the user is trying to run an opening or a closing balance at the given date. Exactly how the application achieves that, is an implementation detail that involves date calculus and in-/exclusion of "year ends". These technicalities have now been hidden from the user.

The Income Statement and Trial balance report have been aligned to reconcile with the "Closing balance" report (the default) of the balance sheet: both reports run from the opening balance of the start date to the closing balance of the end date.

Notable changes

'Update' no longer clobbers saved invoices and transactions

For a long time the function has existed in LedgerSMB whereby a user can save a transaction in order to store it and either work on it later, or post it later. The function has been broken for quite a while due to the fact that clicking "Update" on a saved transaction (or invoice) would restore the transaction to its saved state - undoing all work done on the saved transaction to prepare it for posting. Technically, it was a complex task to prevent the entered data from being reverted to the original state, but the 1.9 release finally fixes this issue which was filed in 2015.

Optimized HTML and JavaScript responses for faster page loading

Extensive research has been performed on what determined the response times for HTML pages. Many small code changes were implemented to speed up page response times, shaving off some 30% of the response time of a huge GL search report.

Additionally, a lot of research went into finding ways to reduce the size of the JavaScript files being used by the application as well as reducing the number of requests to load these files into the browser. As a result, LedgerSMB now uses Webpack to process JavaScript source files from our own project, Dojo Toolkit and JS dependencies from NPM. Further research to increase JS performance is on-going, even after the 1.9 release, all in terms of number of dependencies, code size and execution speed.

"GIFI" selections are now hidden when no GIFI is configured

Most installations don't need GIFI codes for their accounts: it's a canadian coding system required by law to support government reporting. Often, it's being used for alternative reporting classifications for companies outside of Canada. When neither is the case, GIFI would be offered as a search delimiter in many places. Now, GIFI input boxes are being suppressed when no GIFI is configured for the company. As soon as a single GIFI code is configured, the codes will show in the UI again.

Other user-visible changes

  • The list of country names in the preferences screen is now translated to the selected language
  • The invoice entry screen now links to the customer/vendor screen with the customer/vendor preselected
  • Faster calculation of the balance sheet report
  • Faster population of the list of currencies (applies to all screens with a currency drop-down)
  • All non-required drop-downs now contain an empty value that can be selected to undo the selection of a non-empty value
  • Orders and invoices show history: e.g. saving, posting, printing and mailing
  • Improved error reporting and handling on failure with Print buttons
  • E-mailed invoices generated based on the data in the database instead of the data visible (and editable!) on-screen ensuring consistency between invoice and stored data

Known problems