What is SQL-Ledger?
SQL-Ledger is an open source ERP and accounting system. It gives you all the functionality you need for quotations, order management, invoices, payrolls and much more. The program is written in Perl, runs on an Apache webserver, uses a PostgreSQL database and is highly configurable.
About this repo
SQL-Ledger is developed by DWS Systems Inc.. The
master
branch contains the original version from DWS. It has version tags, so
you can download a specific version back to 2.6.0 from October 1, 2005.
The full
branch, which is checked out by default, provides some additions:
- extended keyboard shortcuts (docs)
- spreadsheet downloads
- recently used objects
- dark mode
- database snapshots
- JSON API (introduction)
- real Unicode support
- Docker files for containerized test environment
- WLprinter
- minimalistic documentation
- Swiss charts of accounts in German, French and Italian
- support for ISO 20022 camt.054 files
- several security patches
Installation
To install the program on Debian, you can use the Ansible Role for SQL-Ledger. If you are on a different distribution, either follow the instructions from DWS, or open an issue in the other repo (the chances that you get an update depend on your Github name, the weather and the lunar phase).
WLprinter
WLprinter, included in the full
branch, is a Java program
that is executed on the client PC and allows to print directly from SQL-Ledger
to your local printers. It is available for printing if you add a printer with
command wlprinter
at System--Workstations
. The client program is started
from Batch--WLprinter
. You will have to add a Java security exception for
your SQL-Ledger server.
Unicode Support
In difference to the original SQL-Ledger, the version in the full
branch
internally works with Unicode
characters. This requires that your
database, your templates and translations are all encoded in UTF-8.
Docker
With
cd docker
docker-compose -p sql-ledger up -d
you can start a simple test environment (without LaTeX support). SQL-Ledger
runs at localhost/sql-ledger. At
localhost:8080 and
localhost:8085 you find the database management tools
Adminer and pgAdmin. You'll
have to connect them to the PostgreSQL database that runs on service db
with
username and password sql-ledger
.
Documentation
The documentation is very minimalistic and doesn't contain much more than the function names of the different modules. If you have Mojolicious and Mojolicious::Plugin::PODViewer installed, you can start a perldoc server from your SQL-Ledger base directory with
perl -I. -Mojo -E'plugin "PODViewer"; a->start' daemon
and browse to localhost:3000/perldoc/sql-ledger.
Contributing
As mentioned above, what you find here is more or less a copy of the code from
DWS. 'copy' means that the code flows from DWS to here and rarely in the other
direction. 'more or less' means that the differences between the full
and the
master
branch should always be as small that it is possible to include
updates without problems. 2 merge conflics are not a problem, but 100 conflics
are.
It follows that if you want the DWS code to change, you have to speak with them. If on the other hand you want this repo to change, don't care about the moon calendar and create an issue.
It was mentioned too that the full
branch contains some additions, like
Unicode support and documentation. So it's probably more correct to call it a
superset of the DWS code.