Wednesday, February 15, 2012

Thoughts on LedgerSMB 1.4

LedgerSMB 1.4 is now the primary development priority of my business and some others too.  There are a number of important developments already a part of the project, and more that are on their way.

LedgerSMB 1.4 will require PostgreSQL 8.4 or higher.    In 1.3, we made use of the connectby() routine in the tablefunc contrib module (now extension in 9.1) but with the release of 9.1 this is hard to manage, and WITH RECURSIVE (which was new in 8.4) does the job at least as well.  WITH RECURSIVE and connectby() have different traps and problems---- the former is susceptible to infinite recursion problems while the latter handles some cases painfully slowly, so there is a tradeoff.  However we feel that this is worth it.  Even on the fastest cases, WITH RECURSIVE is running twice as fast as connectby().

The first major improvement was to make the change above and thus remove all dependencies on contrib modules or extensions.  This will make installation, upgrade, etc. far more smooth than they were for 1.3.  It also provides a standard way for us to handle tree like structures.

Along the same lines, we are working on replacing the current project and department tracking interface with a more extensible one we call business reporting units.  Business reporting units can be departments or projects, but they can also be engineered-to-order jobs, funds (used by non-profits), or other links to the line items on the invoice.  By generalizing this out, it means we can provide a much more useful reporting system which can be used for markets where LedgerSMB is not yet suitable.

Business reporting units will support nested units.  this will allow reporting on a project or a subproject, on a department or a sub-department, etc. and WITH RECURSIVE will once again be a primary element of this infrastructure.

We have already added budget logic, and there is more that is coming.  There is a basic payroll framework (without locale-specific code) which is largely done.  And of course new reports.  There is some talk about adding forecasting as well.

1 comment:

  1. Hi Chris

    Any idea of a release date for 1.4? Loads of the features sound perfect for what we're trying to accomplish using Epicor.

    Question though: how does LedgerSMB handle a multi-company arrangement? Can you enforce a consistent chart of accounts across all companies? Can you do inter-company journals? And how about reporting financial statements including up to three consolidation companies?