SQL-Ledger - open source ERP and accounting system
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.
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:
WLprinter
real Unicode support
JSON API
recently used objects
minimalistic documentation
Swiss charts of accounts in German, French and Italian
security patch for template editor
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, 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.
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.
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.
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.
bin/mozilla/aa.pl - AR / AP
bin/mozilla/admin.pl - Setup module
bin/mozilla/am.pl - Administration
bin/mozilla/ap.pl - Accounts Payable
bin/mozilla/api.pl - JSON API
bin/mozilla/ar.pl - Accounts Receivable
bin/mozilla/arap.pl - Common routines for gl, ar, ap, is, ir, oe
bin/mozilla/arapprn.pl - Printing routines for ar, ap
bin/mozilla/bp.pl - Batch printing
bin/mozilla/ca.pl - Module for Chart of Accounts, Income Statement and Balance Sheet
bin/mozilla/cm.pl - Attach Reference Documents to transactions
bin/mozilla/cp.pl - Payment module
bin/mozilla/ct.pl - Customer/vendor module
bin/mozilla/gl.pl - General Ledger
bin/mozilla/hr.pl - Payroll module
bin/mozilla/ic.pl - Inventory Control module
bin/mozilla/im.pl - Import/export
bin/mozilla/io.pl - Common routines used in is, ir, oe, ic
bin/mozilla/ir.pl - Inventory received module
bin/mozilla/is.pl - Inventory invoicing module
bin/mozilla/jc.pl - Job Costing module
bin/mozilla/js.pl - Routines to create Javascript functions
bin/mozilla/login.pl - Login frontend
bin/mozilla/menu.pl - Two frame layout with refractured menu
bin/mozilla/oe.pl - Order entry module
bin/mozilla/pe.pl - Project/job administration
bin/mozilla/pos.pl - POS
bin/mozilla/ps.pl - Point of sale script
bin/mozilla/pw.pl - Password dialog
bin/mozilla/rc.pl - Account reconciliation module
bin/mozilla/rd.pl - Reference Documents
bin/mozilla/rp.pl - Module for preparing Income Statement and Balance Sheet
bin/mozilla/ru.pl - Frontend for recently used objects
bin/mozilla/sm.pl - Maintainance module
bin/mozilla/sr.pl - Save reports
bin/mozilla/vr.pl - Voucher/batch register
bin/mozilla/wlprinter.pl - Download and start WLprinter JAVA client
SL::AA - AR/AP backend routines
SL::AM - Administration module
SL::API - JSON API
SL::BP - Batch printing module backend routines
SL::CA - Chart of accounts
SL::CP - Check and receipt printing payment module backend routines
SL::CT - Backend code for customers and vendors
SL::Form - Request container and utilities
SL::GL - General ledger backend code
SL::HR - Backend code for human resources and payroll
SL::IC - Inventory Control backend
SL::IM - Import/Export module
SL::IR - Inventory received module
SL::IS - Inventory invoicing module
SL::Inifile - Routines to retrieve / manipulate win ini style files
SL::JC - Job Costing
SL::JS - Routines to create Javascript functions
SL::Mailer - Mailer package
SL::Menu - Routines for menu items
SL::Num2text - Default code for the Check package
SL::OE - Order entry module
SL::OP - Overpayment function
SL::PE - Project module
SL::PM - Price Matrix for IS, IR, OE
SL::RC - Account reconciliation routines
SL::RD - CMS backend routines
SL::RP - Backend code for reports
SL::RU - Backend for recently used objects
SL::SM - Module for reposting/deleting invoices
SL::User - User related functions
SL::VR - Voucher/batch register backend routines