This file is devided into sections describing the steps required to
 upgrade. You only have to read the sections which apply to your
 version, i.e if you are upgrading from v1.8.6 to v2.6.27 you
 should read the sections from v1.8.6 up to v2.6.27
 If there is no section for a range of versions no additional steps
 are required.
 The software can be upgraded using setup.pl. If setup.pl cannot
 download the file over the Internet (proxy, missing utilities, etc)
 download the tarball with your browser and save the file.
 You may then proceed with a manual installation or let setup.pl
 do the work for you.
 The steps to do it yourself are:
 1. ungzip/untar SQL-Ledger over top your old installation
    $ cd /usr/local
    $ tar zxvf sql-ledger-x.x.x.tar.gz
 2. fix permissions
    # cd sql-ledger
    # chown -hR nobody:nogroup *
    # chmod 711 templates css images spool
    Note: replace nobody:nogroup with your web server user and group
 Using setup.pl passing filename:
 1. download sql-ledger-x.x.x.tar.gz and save in the sql-ledger folder
 2. change directory to
    $ cd /usr/local/sql-ledger
 3. become the root user
    $ su root
 4. run setup.pl from the commandline
    # ./setup.pl sql-ledger-x.x.x.tar.gz
 Upgrading Datasets:
 Datasets are upgraded when a user logs in. There is no need to load
 admin.pl, there is also no need to install intermediate versions, all
 the upgrade steps are included in the current version.
 The sections below describe additional steps required such as
 copying templates to bring a system up to date.
 Before you log in please read the relevant sections below.
 Version 1.6 to 1.8
 1. copy the following templates to your template directory
    $ cd sql-ledger/templates
    $ cp Default-email_purchase_order.html your_template_dir/email_purchase_order.html
    $ cp Default-purchase_order.html your_template_dir/purchase_order.html
    $ cp Default-email_sales_order.html your_template_dir/email_sales_order.html
    $ cp Default-sales_order.html your_template_dir/sales_order.html
 2. Two new accounts were hopefully added to your chart of accounts
    One account for Foreign Exchange Gains and one for
    Foreign Exchange Losses
    edit and change to suit your COA. You can safely change
    the account number too.
 3. Edit your preferences
    In field 'Stylesheet' enter -> sql-ledger.css
    Stylesheet is in the css directory
    Add your foreign currencies in the Currencies field
    The first currency in the list is your default
    If you used a nativecurr then it should be listed in the
    new currencies field.
 4. <%nativecurr%> has changed to <%currency%>
    edit all the templates and change nativecurr to currency
 5. We also added four more variables which can be used the templates.
    <%contact%>, <%shiptocontact%>, <%shiptophone%>, <%shiptofax%>
 6. Nameing convention for templates has changed from an
    underscore to a minus sign. If you designed your own
    master templates rename the templates from
    industry_invoice.html to industry-invoice.html,
    industry_packing_list.html to industry-packing_list.html, etc.
    The minus sign is used to separate the name and list them in
    the setup screen.
    This change only applies to the master templates in the
    templates root directory NOT the individual templates which
    are used by users.
 Version 1.8.0 to 1.8.3
 1. copy sql-ledger.conf.default to sql-ledger.conf
    $ cp sql-ledger.conf.default sql-ledger.conf
    if sql-ledger.conf was modified merge the changes from the
    .default file rather than copying over top.
 2. copy the following templates to your personal template directory
    $ cd sql-ledger/templates
    $ cp Default-invoice.tex your_template_dir/invoice.tex
    $ cp Default-packing_list.tex your_template_dir/packing_list.tex
    $ cp Default-purchase_order.tex your_template_dir/purchase_order.tex
    $ cp Default-sales_order.tex your_template_dir/sales_order.tex
 3. edit sql-ledger.conf
    instructions are in the file
 Version 1.8.4 to 1.8.7
 There are two new variables (<%customernumber%> and <%vendornumber%>)
 which can be used in the templates. These can be used instead of the
 internally generated customer_id and vendor_id.
 Typically these numbers are used to retrieve a customer, vendor
 by some ID. In most counter operations the phone number is used.
 Version 1.8.7 to 2.0.0
 1. copy the following templates to your personal template directory
    $ cd sql-ledger/templates
    $ cp Default-check.tex your_template_dir/check.tex
    $ cp Default-receipt.tex your_template_dir/receipt.tex
    $ cp Default-statement.html your_template_dir/statement.html
    $ cp Default-statement.tex your_template_dir/statement.tex
 Version 2.0.9 to 2.2.0
 1. copy the following template to your personal template directory
    $ cd sql-ledger/templates
    $ cp Default-pos_invoice.txt your_template_dir/pos_invoice.txt
 Version 2.2.7 to 2.4.0
 1. install the plpgsql language compiler for PostgreSQL
    # createlang plpgsql <dataset>
 2. install plpgsql in template1
    # createlang plpgsql template1
 Edit Pg-upgrade-2.3.4-2.3.5.sql and change the way addresses are
 rewritten if you don't want US style addresses.
 North-american addresses are usually in the form of
 Five Star Stables
 123 Horsehoe Blvd.
 Sweetgrass, MT 19867
 addr1 --> address1
 addr2 --> city
 addr3 --> country
 addr4 --> state
 addr4 was put into the state field to bring the field forward
 to the new layout. To check if there is something in the field run
 a report and sort by the "State" field.
 Either edit the records or run the SQL queries below to take them apart.
 If you have anything in the "state" field change the records to match
 the others before you run the following queries.
 dbname=# update customer set state = substr(city,strpos(city,' ')+1);
 dbname=# update customer set zipcode = substr(state,strpos(state,' ')+1);
 dbname=# update customer set state = substr(state,1,strpos(state,' ')-1);
 dbname=# update customer set city = substr(city,1,strpos(city,',')-1);
 do the same with the vendor and shipto table, replace 'customer'
 with 'vendor' and 'shipto'.
 3. create a new set of templates
   * load admin.pl and edit one of the user's
   * in the "New Templates" field enter "new" and save the user
   * step back in your browser so you have the same screen again
     as before
   * change the template directory back to what it was before
     the change and save the user
   * drop into a shell window
   * cd to sql-ledger/templates/new
   * copy the additional templates to your private template directory
 4. Printers
    printer setup has changed to multiple printers which allow
    users to choose a printer. Printers can be defined in sql-ledger.conf
 Version 2.4.2 to 2.4.3
 1. copy the following templates to your private template directory
    $ cd sql-ledger/templates
    $ cp Default-ar_transaction.html your_template_dir/ar_transaction.html
    $ cp Default-ar_transaction.tex your_template_dir/ar_transaction.tex
    $ cp Default-ap_transaction.html your_template_dir/ap_transaction.html
    $ cp Default-ap_transaction.tex your_template_dir/ap_transaction.tex
 Version 2.4.16 to 2.6.0
 1. copy the following templates to your private template directory
    $ cd sql-ledger/templates
    $ cp Default-timecard.html your_template_dir/timecard.html
    $ cp Default-timecard.tex your_template_dir/timecard.tex
 Version 2.6.27 to 2.8.0
 1. copy the following templates to your private template directory
    $ cd sql-ledger/templates
    $ cp Default-credit_invoice.html your_template_dir/credit_invoice.html
    $ cp Default-credit_invoice.tex your_template_dir/credit_invoice.tex
    $ cp Default-credit_note.html your_template_dir/credit_note.html
    $ cp Default-credit_note.tex your_template_dir/credit_note.tex
    $ cp Default-debit_invoice.html your_template_dir/debit_invoice.html
    $ cp Default-debit_invoice.tex your_template_dir/debit_invoice.tex
    $ cp Default-debit_note.html your_template_dir/debit_note.html
    $ cp Default-debit_note.tex your_template_dir/debit_note.tex
 2. Go to System -> Defaults and enter the company name
 Version 2.8.0 to 2.8.2
 1. If you receive the following error while upgrading
    ERROR:  trigger "del_recurring" for table "oe" does not exist
    load admin.pl and "Unlock" the system and log in again.
 NOTE: The error is intentional and may or may not show up on your system.
 Version 2.8.2 to 2.8.4
 1. copy the following templates to your private template directory
    $ cd sql-ledger/templates
    $ cp Default-remittance_voucher.html your_template_dir/remittance_voucher.html
    $ cp Default-remittance_voucher.tex your_template_dir/remittance_voucher.tex
 Version 2.8.6 to 2.8.7
 1. go to System -> Currencies
    and enter/edit the currencies
 2. go to System -> Defaults
    and enter the default precision
 Version 2.8.23 to 2.8.30
 1. copy the following templates to your private template directory
    $ cd sql-ledger/templates
    $ cp Default-reminder1.html your_template_dir/reminder1.html
    $ cp Default-reminder2.html your_template_dir/reminder2.html
    $ cp Default-reminder3.html your_template_dir/reminder3.html
    $ cp Default-reminder1.tex your_template_dir/reminder1.tex
    $ cp Default-reminder2.tex your_template_dir/reminder2.tex
    $ cp Default-reminder3.tex your_template_dir/reminder3.tex
 Version 2.8.30 to 3.0
 1. edit the members file and add the name of the dataset
    to every login so the logins are 'login@dataset'
 2. copy one of the users and change the login to 'admin@dataset'
    and remove the password
 3. create a directory with the same name as the dataset
    in the spool and templates directory
 4. move the private templates to the dataset directory
 5. move the spoolfiles to the dataset directory
 6. if there are customizations create a 'custom' directory
    in bin/mozilla and move all the custom_ files without the
    custom_ prefix to the directory.
 7. if there are any user specific customizations create a
    directory for each user in the 'custom' directory and move
    all the files without the login_ prefix to the directory.
 8. copy the following template to your dataset directory
    $ cd sql-ledger/templates
    $ cp Default-payslip.tex dataset/payslip.tex
    $ cp Default-barcode.tex dataset/barcode.tex
 9. set up printers in System -> Workstations
 Note: replace 'dataset' with the name of your dataset.
 Version 3.0.8 to 3.2.2
 1. add the mimetypes to your dataset with
    psql -U dbuser dataset < Mimetype.sql
    Mimetype.sql is in the sql directory
 Version 3.2.2 to current
 1. copy income_statement.html and balance_sheet.html
    from the doc/templates/Default directory to your
    privat templates directory
    private templates are in templates/dataset
    replace dataset with the name of your dataset