What's new in LedgerSMB 1.10
- Ability to delete user login accounts
- US/Washington tax module
- User-modified workflows
- Full support for running in a schema other than "public"
- Batch aging statements printing and mailing with language selection
- Webservices for GIFIs, SICs, Types of Business, Pricegroups, Warehouses and Languages
- Experimental webservice for invoices
- Default printer selection in user preferences
- Language names in drop-downs in the language of the user
When upgrading from 1.8 or older, please read the 1.9 release notes.
New features
Ability to delete user login accounts
Starting the 1.10 release, it's possible to detach a login account from an employee. To do so, open the User screen through "HR > Employees > Search" and selecting the employee with the user to be removed.
The effect of this action is that the database login account associated with this employee is removed, preventing any form of use either by the user or by admins.
Note for upgrades: There is no impact on upgrades.
US/Washington tax module
This release comes with an example of how to implement and configure a custom tax module in the directory "utils/wa-tax-service/". To perform its function, this module calls an external webservice to calculate its taxes. Based on the response, it sets both the taxes as well as a value in the "Source" field of the transaction table, for tracking purposes.
Note that this example is fully functional and used in production, so if you are in US/WA, you may want to use this module.
Note for upgrades: There is no impact on upgrades.
User-modified workflows
Default workflow configurations are stored in "workflows/". Users are expected to change workflow definitions. To prevent changed workflow definitions from being overwritten on upgrade, customized workflows will be loaded from "custom_workflows/". Workflow files which have not been customized, will still be loaded from "workflows/".
Note for upgrades: There is no impact on upgrades.
Full support for running in a schema other than "public"
For a long time the example configuration file has suggested that LedgerSMB can run in a schema other than the default "public" schema by offering a "namespace" setting which was documented to declare the name of the schema in which the LedgerSMB tables are located. Support for this feature was far from complete. This release comes with the missing functionality. The continuous integration tests are now run in a schema other than "public", proving this functionality on each test run again.
Note for upgrades: There is no impact on upgrades.
Batch aging statement printing and mailing with language selection
Printing multiple aging statements has been fixed to support the language selector per statement, which it was lacking since late 1.3. Mailing multiple aging statements was broken similarly with respect to language selection. Additionally, it was broken in the sense that it would mail out only the first of the selected statements, returning the user to the statement selection screen.
Printing multiple statements now returns a ZIP archive with all the selected statements in the selected language for each statement. Mailing multiple statements leads to a series of e-mails being created with the statements as attachment, which can be edited and sent (individually). Further improvement is foreseen to allow for providing templated text to send the mails in batch.
Note for upgrades: There is no impact on upgrades.
Webservices for GIFIs, SICs, Types of Business, Price groups, Warehouses and Languages
Webservices have been created to manage configuration of a number of entities:
- GIFI (/erp/api/v0/gl/gifis)
- SIC [standard industry code] (/erp/api/v0/contacts/sics)
- Type of Business (/erp/api/v0/contacts/business-types)
- Price group (/erp/api/v0/products/pricegroups)
- Warehouse (/erp/api/v0/products/warehouses)
- Language (/erp/api/v0/languages)
These were created in support of moving the front-end to Vue3 components, with the intent to use them as a learning experience for further API development. Due to this approach, the services do not support filtering, sorting or paging yet. For more information on how to use these services, see LedgerSMB Webservices.
Note for upgrades: There is no impact on upgrades.
Experimental webservice for invoices
A webservice experiment has been created for posting (creating) invoices and retrieving (single) invoices: /erp/api/v0/invoices. The api is marked experimental, because it's likely to change in a later release (1.11 or later) when a more complete and REST compliant design will be implemented. There is currently no timeline for this. Changes to the invoice API will be announced through the release notes.
Note for upgrades: There is no impact on upgrades.
Default printer selection in user preferences
Starting with 1.10, it will be possible for users to select "Screen" as their default printer. This way, users can reliably have the Screen target selected with the possibility to deviate where desired.
Additionally, the default printer selection in preferences page did not show. This has been fixed to support the "Screen" selection, meaning that for many users being able to select a default printer will be a new functionality.
Note for upgrades: There is no impact on upgrades.
Language names in drop-downs in the language of the user
The language selection drop-down would be populated with English names for the language name options, even when using a properly translated user interface. As of this release, translations for language names are derived from the Unicode Common Locale Data Repository to make for a more consistent experience.
Note for upgrades: There is no impact on upgrades.
Notable changes
"xedemo" template set merged with "demo" set
There were minimal differences between the "demo" and "xedemo" template sets: all templates other than the *.tex templates were identical. The *.tex templates differed only by their use of "fontspec" versus "fontenc+inputenc" packages and some font selection instructions. These differences have now been catered for using the "iftex" package.
Note for upgrades: There are no consequences for upgrades: template sets used with 1.9 can be carried over without modification.
"setup.pl" and "login.pl" translated based on browser preferences
The setup.pl and login.pl pages detect the language preferences configured in the user's browser and - when available - use the requested language for translation, localization (date and number formats) and text orientation. Please note that users configure their own language, date and number formatting preferences in the user preference page which overrules the browser choice.
Note for upgrades: There are no special considerations for upgrades.
Templates for balance sheet and income statement cleaned
In various releases, PNL and balance sheet templates were distributed either broken for the hierarchical or the account-type report form. This release fixes both and cleans links from the HTML reports (that is, the reports that are downloaded).
Note for upgrades: To use the fixed templates, upload them into every company database you want to use them with.
Increased configurability through YAML with dependency injection
In addition to INI file based configuration, LedgerSMB now also supports much more extensive YAML based configuration. This change has been made to support more complex customization scenarios. One example of what this change means is being able how output documents are produced: until now, output PDF documents are hard-coded to be generated from LaTeX, but after this change, it has become possible to produce PDF from HTML by registering a custom output plugin which knows how to do that transformation.
Note for upgrades: People wanting to benefit from this increased flexibility should move their INI file configuration to YAML using the utils/migration/migrate-ini-to-di script, storing the result in ledgersmb.yaml and renaming the ini file to ledgersmb.ini-backup.
Upgrade notes
AR Aging statement template changed
The AR Aging statement template changed. Please upload the new template into your company database. The old template will render completely empty aging statements.
This change is related to the changes in batch printing aging statements and the language selection drop-down.
AR/AP transaction print templates
In 1.10, the line item descriptions on AR/AP transaction print templates have been renamed from "description" to "linedescription" to eliminate overlapping use of the "description" field. This means you need to either re-import the templates (which can be done through "setup.pl") or change all occurrences of:
description.${lc}
and
description.${loop_count}
respectively to:
linedescription.${lc}
or
linedescription.${loop_count}
This applies to both AR and AP transaction templates (accessible through the System > Templates menu), for all formats (csv, tex and html).
Template variables renamed
The in-database templates for (printed) documents, have changed. After upgrading, it is either necessary to re-import the templates, or, to adjust existing templates if they have been customized. The following variables have been renamed or removed:
- "company_name" is now available under "SETTINGS.company_name"
- "company_address" is now available under "SETTINGS.company_address"
- "request.${HLINE.value}" is now available under "HLINE.value"
- "request.${LINE.value}" is now available under "LINE.value"
- Everything starting with "request." is no longer available
The values which are available under another name need to be replaced by their new names.