Dec. 10, 2001
- Version 1.6.13
- added variables for contact information to invoices
Dec. 9, 2001
- Version 1.6.12
- added Polish translation
- fixed division by zero error
- fixed error reporting if DBD is missing
Nov. 23, 2001
- Version 1.6.11
- added translation and default chart of accounts for Simplified Chinese
- updated Traditional Chinese translation
- added default chart of accounts in Traditional Chinese
- updated Italian translation and chart of accounts
the chart of accounts includes an account for the 20% withholding tax
- updated Spanish translation for Venezuela
- fixed bug in vendor invoice; AP and paid
selection menu item didn't match up with stored values.
Nov. 14, 2001
- Version 1.6.10
- fixed error when service item was part of an assembly
- updated Danish and Norwegian translations
- added Danish chart of accounts
Oct. 23, 2001
- SQL-Ledger in the news.
Featured in Zonker's Product Picks
in the November 2001 issue of the Linux Magazine
Read about it on page 58.
Oct. 19, 2001
- Version 1.6.9
- revised AR & AP screens to allow entering taxes regardless if tax
is included in amount or not
- taxes are calculated based on tax included switch
- added defaults for initial name to render screen based on the settings
for the name
Oct. 17, 2001
- Version 1.6.8
- added chart of accounts for Czechoslowakia
- added Danish Default chart of accounts
- added Czech templates
- updated translations for Czech, Danish, Norwegian
- added invtotal and taxbase variable to invoices
- added 'if not' conditional for templates
Oct. 9, 2001
- Version 1.6.7
- added chart of accounts for Italy
- Italian templates and updated translation
Sep. 24, 2001
- Version 1.6.6
- added code for debit and credit balance check to get
rid of out of balance error where there is none.
Apparently computers don't always know that 14.05
plus 1.96 is 16.01 and not 16.0000000000997.
Sep. 20, 2001
- Version 1.6.5
- added Portugese translation
- added missing texts to translate dates for trial balance
- when subtotals were used on a trial balance the totals also included
the subtotals; fixed
Sep. 17, 2001
- Version 1.6.4
- added function after posting an invoice to ask if user wants
to create another invoice
this prevents the invoice number from being incremented
- fixed incorrect tax included variable in inventory received module
- added last cost for service items
Sep. 7, 2001
- Version 1.6.3
- fixed dates for GL reports
- security fix
Sep. 2, 2001
- Version 1.6.2
- added Czech translation
- updated Arabic and Norwegian translation
- added headings and subtotals on reports
- revised connect string for local database connection
Aug. 21, 2001
- Version 1.6.1
- revised AR and AP transaction screen. "Update Form" now calculate taxes,
due dates and total amount based on the customer / vendor selected.
- added stylesheet and charset variable
- added Dutch Chart of Accounts and templates
Aug. 12, 2001
- Version 1.6.0
- new General Ledger report which can be customized for a source
(invoice number or other sources), a date range, a description
(doubles as customer and vendor name. You can include all accounts
or accounts by category (income, expense, ...), fields can be selected
to show only the ones you require. This report can be used
to produce ledgers such as sales and purchase journals or tax collected
for period, by customer, etc.
- build assemblies from parts, services and assemblies. When the assembly
is sold expenses are posted to all the accounts listed for the
individual parts. Income and tax is recorded in the account specified
for the assembly. Individual items can be edited right from within the
assembly, total price is calculated but can also be changed.
- stocking assemblies is done by adding the assembly to inventory.
This reduces the inventory level for the parts and assigns it to the assembly.
The re-order point can be used to indicate how many assemblies should be
- numbers are formatted to a string you specify in your preferences.
You can also input numbers in your familiar way (1.000,00 or 1000,00, ...)
- long and short dates on all reports
- new administration interface to create databases and preload with a
Chart of Accounts of your choice.
- Standard Chart of Accounts or industry specific Chart of Accounts can
be added to the selection list without touching the code
- language specific templates can be selected when you add a user
- you can also add your own templates; no more copying over top of the
- balance field in the chart of accounts was dropped; instead when you
run a trial balance or list the Chart of Accounts the balances are
- Business Number field; can be used on any of the template driven reports
- username variable was added for the invoice
- all the double entries for AR and AP transactions are gone.
- Access control for every menu item; it is now possible to setup a screen
for say counter personnel and give them access to the inventory and invoicing
- Aging reports for receivables and payables either for all or for a
selected customer / vendor and up to a certain date.
The report can also be used to produce statements if you like.
- Invoices are on one form only. The customer / vendor selection was
moved to the invoice itself.
- "Update Form" now replaces buttons such as "Add Item" or
"Add MakeModel row" or "Add Row". One consistent interface, if in doubt
what you should do press the "Update Form" button.
For instance on an invoice the button will retrieve customer information
and retrieve the part entered. It also recalculates the form when you change
quantities or prices.
- Inventory report can be produced for all items or for parts, assemblies,
services or items on hand.
- "Search" link has changed to "Reports" since the search function really
produces reports. So, to search for a particular transaction
you click on "Reports" and enter the search criteria. The same applies to all
the modules (AR, AP, GL, Inventory)
July 26, 2020
- Version 1.4.13
- added locale files for Venezuela
July 13, 2020
- Version 1.4.12
- included Norwegian translation
July 11, 2020
- Version 1.4.11
- included Dutch translation
July 10, 2020
- Version 1.4.10
- negative quantities and amounts didn't show up on invoices. Fixed.
July 9, 2020
- Version 1.4.9
- added headers for trial balance.
- posted French chart of accounts
July 8, 2020
- Version 1.4.8
- fixed missing weight and domestic currency display in parts screen.
- included perl web server
June 24, 2020
- Version 1.4.7
- added sorting by account number for GL transactions
- fixed missing translations
June 17, 2020
- Version 1.4.6
- changed payment and receipt transactions to record payment date
- added missing translation string in customer/vendor module
- added datepaid column for accounts receivable report
June 5, 2020
- Version 1.4.5
- changed language selection to pull-down menu
- removed chart of account file dependencies
June 3, 2020
- Added Swedish translation
May 30, 2020
- Version 1.4.4
- minor bug fixes
May 21, 2020
- Version 1.4.3
- updated translations
May 14, 2020
- Version 1.4.2
- better error reporting
- added field selection for GL transaction report
- added Debit and Credit and sums to GL report
- added account number to collect GL transactions for account
- revised GL report to include all sub accounts
May 12, 2020
- Version 1.4.1
- fixed chart_id attribute for tax accounts
- included revised Danish and Estonian translations.
May 11, 2020
- Version 1.4.0
This is a major milestone in the development with many new features.
- Revised tax system, dynamic, data driven
choose wether to include tax in price or calculate on top
- Customers/Vendors can be flagged to include only certain taxes
- Parts and services can be setup to include different taxes
- Trial balance for period of time, from or up to dates
- Choose which fields to include in AR, AP reports including sums
can be used to generate customer/vendor statements
- no more cookies, lynx friendly
- streamlined invoicing system
eliminated initial step to choose the accounts for posting
and moved the selection menus to the invoice
taxes show up on invoices only if there are amounts
- revised translation mechanism to make it easier to change texts
no more errors when texts are missing
- added Arabic translation
Arabic support is not yet finished and limited to the language
display mirroring will be in a later release
- added Italian translation
- encrypted passwords
- new configuration file (sql-ledger.conf) to specify location of members
file, users directory and templates directory
this makes it easier to create packages (rpm, deb, ...)
- terminal variable can be passed on the URL to setup the display
only mozilla and lynx work at the moment, a console port is on it's way
- Automatic invoice and due dates on invoices
Feb. 27, 2001
- Version 1.2.10
- Included Estonian translation and templates
Feb. 17, 2001
- Version 1.2.9
- fixed date display for German dates.
- changed substring searches, PostgreSQL's ~* operator
to a LIKE statement
Feb. 8, 2001
- Version 1.2.8
- added Brazilian Portuguese translation
Jan 7, 2021
- added shiptoemail field to customer table
Jan 3, 2021
- added Danish and Traditional Chinese translation
Nov 20, 2020
- added code to convert double quotes; you can now enter single or double
quotes in any character field.
Oct. 6, 2000
- Added French translation
- fixed subroutine for deleting parts
- added version number to bug report
Sep. 18, 2000
- Added Spanish translation
- Added subroutine to update inventory account numbers in parts table
Sep. 14, 2000
- Added tel, fax, signature variables for use in templates
Sep. 10, 2000
- Version 1.2
- Inventory control is done, this completes the accounting cycle
- Added Vendor Invoice to record parts and services received/purchased
- Added payment and receipt screen to process payments, this eliminates
the need to recall the original invoice to record a payment
- Added foreign language support, thanks to Thomas Bayen who provided the
code and some German translations and to Maria Gabriela Fong for the
Aug. 16, 2000
- Fixed subroutine to save user preferences.
July 27, 2020
- Removed dependencies for a unique identifier; every user with the
same login name now uses the same preference file.
- Fixed cookie so that one can work on two or more instances or with
other application requiring a cookie.
- Enabled database options field to send options to the backend required
to set variables after a connection is made.
The options field can be used to set a DateStyle variable.
July 15, 2020
- Setup mailing lists for users and developers
July 11, 2020
- Added packing list
- Fixed bug in account sorting callback string
- Added sort algorithm to display the sorted column first
July 4, 2020
- Version 1.0
The jump to version 1.0 from 0.5 is because SQL-Ledger is
now a double entry system.
Version numbering will be even numbered for the stable releases,
and odd numbered for development releases.
- New Features:
- A General Ledger
- Templates for printed and email forms which include an invoice, balance
sheet and income statement
- A list of accounts where you can view every transaction entered
- Transactions may be deleted anytime
- An administrator module to add/edit/delete users
- Because of the double entry feature and tight integration, the new
version will only work with SQL servers with transaction support.
Apr. 20, 2000
- fixed couple scripts which referenced scripts with pl extension
Mar. 8, 2000
- merged accounting menus into one
- couple minor bug fixes, SQL syntax (not all servers are equal!)
- created schema file for SQL servers with AUTO_INCREMENT fields
Feb. 28, 2000
- Released version 0.5
- The display interface has changed to using frames
There is a complete new way to sign on through a login script now.
You can now log in with the same user-name several times.
- The members file holds all the variables for each user and sets
up the environment.
This makes it true multiuser, multi-company capable
(by multi-company I mean you can work with the same installation on
a different set of data)
Oct. 29, 1999
- Released version 0.4
- You can now configure some very country specific stuff like
your native currency or the name of your tax, or how you enter dates
- The tax fields are free to be labeled whatever you have in your country
The two tax levels can also be set to calculate additive or tax on
top of tax
- GST/PST report was renamed to a generic tax report.
- AR/AP reports now summarize by currency without showing a
conversion to CDN currency. Sums are converted to your native currency instead.
- other variables in the configuration include date formats,
shipping point, native currency, driver strings for the DBI module
- Parts cross-references (alternates) now show the make and you can
jump to the part by clicking on a hyper-link to view, edit or link to
- Relations by part numbers are gone and parts relate to each
other by IDs instead.
- Each part in the table may have multiple supplies which are linked
back to a part in the parts table
You can have multiples of the same part in the parts table and still
differentiate who supplies what
- The menu for supply is gone. All the functions to add/edit/delete
a supply item has been merged into the parts side with a [ Check Supply ]
Oct. 18, 1999
Need some minor changes to test for existence of data.
Apparently not all drivers are equal and the only way
to check if there is data in the tables is to fetch
all the rows.
- adapted for use with ODBC driver
- changed table currency to exchangerate
MS Access barfed on a "select * from currency"
- tested on MS Windows with ODBC driver and apache
Oct. 14, 1999
- Version 0.3
- altered database structure to work with hopefully any
SQL servers as long as either sequences or auto increment
fields are supported.
- tested with the Pg and mysql drivers
August 6, 2020
- Version 0.2
- complete rewrite to make use of DBD and DBI.
- The Pg module version 0.1 will no longer be maintained
April 27, 2021
- merged updates into sql-ledger.0.1.2.tgz
March 25, 2021
- added search option to search for parts and supply by description
- fixed variable reference for oid to update supplier in supply update script.
Feb. 9, 1999
- display all vendors for printing addresses instead of vendors with outstanding balances only.
Initial release - Jan. 29, 1999
The first release is complete to a point where it is usable in a
production environment. The scripts perform as expected equally well
when used with the Lynx or Netscape browser. Currently there is no
provision for double-entry bookkeeping the easy way. However with
some creative thinking one can use the 'order field' in the A/P
table to keep track of various expense and an identifier attached
or integrated with your
invoice number such as JOMO1001:SALES1 to track your income categories.
'JAN1999:TELEPHONE:OFFICE' are easily split with perl, awk or sed
to produce a report.
Later releases will include a master chart of accounts
to keep descriptions uniform and to setup a system to produce
financial statements the way you want them.
- Bank Accounts
- Add/Edit transactions
- List uncleared transactions
- List all transactions
- Bank reconciliation
Scripts to record bank transactions are the same for all bank accounts.
This way you can add/change bank accounts or rename them to suit your needs.
- Accounts Receivables
- Add/Edit transaction
- List open/unpaid invoices
- List all transactions
- List transactions by date
- Search for transaction
The Order field may be used to categorize for reports.
This makes it easy to report by customers, regions or whatever you choose it to be.
I also use a special customer '1 -- Exchange Rate Premium' and keep a record
of the exchange rate differences. The '1' makes the customer the
first entry in the lookup box.
- Accounts Payable
- Add/Edit transaction
- List open/unpaid invoices
- List all transactions
- List transactions by date
- Search for transaction
- Print vendor's mailing address
Order field may be used to categorize for reports. This makes it
easy to record a transaction against an A/R invoice or some other
A 'Search for transaction' limited to 'TELEPHONE' entered in the
order field will then list all A/P invoices where 'TELEPHONE'
A special vendor '1 -- Exchange Rate Premium' may be used to keep
track of foreign exchange rate differences.
Menu item 'Print vendor's mailing address' produces a list of vendors
to select from. It will print one address on a sheet of paper which may
be used to stuff in a window envelope along with a check or other material
you wish to send to the vendor.
- Add/Edit/Delete company
- Search by name, contact and notes
may be combined to narrow search criteria
The 'Notes' field in the company, supplier, vendor and customer tables
is a free form searchable field. This makes it very
convenient to categorize your companies.
Companies, suppliers, vendors and customers have all something in common
and one might ask why there are different tables when one or two would do.
The reason behind this is that each one has it's
own place in the system. The vendor's address, contact information is usually
different for the
accounting department, the supplier is not a vendor but the company who
could supply an item. The contacts in the company table grow to a size
you'd normally don't need for your customers so they were split.
The extra work involved entering some companies twice is a
small price to pay for increased performance and keeping a system tidy.
- Exchange Rates
- List all currencies
- Add/Edit/Delete currency
To keep track of the most recent exchange rates. Buy and sell fields
Used to calculate the price of an item listed in the parts table.
Inverse rates are also listed when listing all currencies.
Invoices can be e-mailed to the customer, there is
support built in to produce invoices with different company headers.
Members file holds header information about the person preparing the invoice
You can also produce the invoice in a foreign currency.
same as invoice
To keep track of manufacturers.
- Add/Edit/Delete Parts
- Search for parts
Parts listings include alternates and a hyper-link to check supply.
The supply table holds all parts you know you can buy from
a particular supplier. If you have more than one supplier for
a part it is added for as many suppliers you have.