diff options
Diffstat (limited to 'sql-ledger/doc')
-rw-r--r-- | sql-ledger/doc/COPYING | 355 | ||||
-rw-r--r-- | sql-ledger/doc/README | 287 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-1.6-1.8 | 61 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-1.8-1.8.3 | 23 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-1.8.3-1.8.4 | 10 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-1.8.4-1.8.5 | 18 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-1.8.5-1.8.7 | 6 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-1.8.7-2.0.0 | 20 | ||||
-rw-r--r-- | sql-ledger/doc/UPGRADE-2.0-2.0.8 | 8 | ||||
-rw-r--r-- | sql-ledger/doc/copyright | 23 | ||||
-rw-r--r-- | sql-ledger/doc/faq.html | 747 |
11 files changed, 1558 insertions, 0 deletions
diff --git a/sql-ledger/doc/COPYING b/sql-ledger/doc/COPYING new file mode 100644 index 0000000..083bb41 --- /dev/null +++ b/sql-ledger/doc/COPYING @@ -0,0 +1,355 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<TITLE>GNU General Public License</TITLE> +</HEAD> + +<BODY BGCOLOR=ffffff> + + +<pre> + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + + +</BODY> +</HTML> + diff --git a/sql-ledger/doc/README b/sql-ledger/doc/README new file mode 100644 index 0000000..7585f53 --- /dev/null +++ b/sql-ledger/doc/README @@ -0,0 +1,287 @@ + SQL-Ledger Accounting + Version 2.0 + + +DESCRIPTION: +------------ +SQL-Ledger is a double-entry accounting program written +in perl. It has been tested with PostgreSQL, Oracle, +Apache, Netscape, Mozilla, Galeon, Explorer, Links, Lynx, +Konqueror, Voyager, W3M and Opera clients on Linux, FreeBSD, +Solaris, Windows and Mac computers. + +Data is stored in a SQL server, either locally or remote, +the display is through a text or GUI web browser. The system +is linked by a chart of accounts. All transactions for AR, +AP and GL are stored in a transaction table. Hyper-links +from the chart of accounts let you view transactions posted +through AR, AP and GL. + +Configuration files let you specify to which SQL server +to connect to, personal preferences such as company name, +language, number and date format, etc. + +The admin script can be used to create, edit or delete users +and to create and delete datasets and to setup the Chart +of Accounts and templates needed for the system. +It can be used for PostgreSQL and Oracle. If you want to +use another SQL server the tables and chart of accounts +must be created by hand. + +You can have a group of users using the same dataset and +templates for generating Invoices, Income Statements and +Balance Sheets or a different set altogether. + +Templates are supplied in html and tex format to generate +most of the forms. Forms can be printed to screen, sent +to a printer or to a mailer agent. To use the tex forms +latex must be installed. Most systems have a latex binary +installed by default. Latex is also available for Windows +and the Mac so we stay compatible across all major platforms. + + +COPYRIGHT: +---------- +You may distribute under the terms of the GNU License. + + +LATEST VERSION: +--------------- +available from http://www.sql-ledger.org + + +PLATFORMS: +---------- +Non specific, see requirements. + + +REQUIREMENTS: +------------- +1 - Perl, 5+ +2 - http server (Apache, NCSA, httpi, ...) +3 - SQL Server with transaction support (PostgreSQL 7.0+, Oracle) +4 - DBD (DBD-Pg, DBD-Oracle) +5 - DBI +6 - LaTeX (optional) + + +FOREIGN LANGUAGE SUPPORT: +------------------------- +All the required files are in locale/country_code +The main files are 'all' and 'missing'. You can enter +translated strings in either file. When you are done +run locales.pl from the command line to rebuild the +required files. + +Some of the translation files are not 100% complete. +If strings are missing, English is used instead. + + +INSTALLATION: +------------- +unpack the tar.gz file in /usr/local + + tar xzvf sql-ledger-x.x.x.tar.gz + +you should now have everything in /usr/local/sql-ledger + +copy sql-ledger.conf.default to sql-ledger.conf + +edit sql-ledger.conf + +create a file sql-ledger-httpd.conf in the same location +where your httpd.conf is and copy the next section into the file + + Alias /sql-ledger/ /usr/local/sql-ledger/ + <Directory /usr/local/sql-ledger> + AddHandler cgi-script .pl + Options ExecCGI Includes FollowSymlinks + </Directory> + + <Directory /usr/local/sql-ledger/users> + Order Deny,Allow + Deny from All + </Directory> + +edit httpd.conf and add + + # SQL-Ledger + Include <ServerRoot>/sql-ledger-httpd.conf + +Note: Replace <ServerRoot> with the server's root directory! + +restart your web server. + + +Note: /usr/local/sql-ledger is only a suggested +path, you can install in any directory. + + +INSTALLATION WITH setup.pl: +--------------------------- +Make a directory + + mkdir /usr/local/sql-ledger + +Copy setup.pl to /usr/local/sql-ledger + +run setup.pl as root and follow the prompts. + +Go to the next step, "PREPARE YOUR SQL SERVER". + + +SET PERMISSION: +--------------- +change directory to /usr/local/sql-ledger + +# chown nobody:nobody users templates + +replace nobody:nobody with the web server +user of your system. Some systems use +apache:apache, www, www-data, ... + + +PREPARE YOUR SQL SERVER: +------------------------ + + PostgreSQL: + ----------- + add one database user with create database privileges + to manage the datasets and tables for SQL-Ledger + + # su postgres + $ createuser -d sql-ledger + + if you use passwords to access postgres set the user up with a password + $ createuser -d -P sql-ledger + + Answer no to the following question. + Shall the new user be allowed to create more new users? (y/n) n + + You can add more database users to keep datasets + separated. Each dataset belongs to one company. + + + ORACLE: + ------- + add one user and one tablespace + all datasets share the same tablespace + + +SETUP A DATABASE AND THE TABLES: +-------------------------------- +Load your web browser and connect to +http://localhost/sql-ledger/admin.pl + +Tables are created with the "Database +Administration" function. + +Select the "Database Administration" link, +enter a host, port and user you created in the +previous step. + +The "Create Dataset" link queries the server +for existing datasets and displays them in a +column. Then you enter a name for the new +dataset and select one of the Chart of Accounts +and click on Continue. +Your new dataset and the tables will be created +and the selected Chart of Accounts loaded. The +owner of the tables is the user you entered in +the previous screen. + +NOTE: Be patient, some of the charts are really +big and take some time to create. + +The "Delete Dataset" link queries the server +for datasets which are in use by SQL-Ledger +and are not used by any members. This may +take a while to figure out. "Be patient". +If there are any datasets not in use, you get +a screen with the datasets listed where you +can select the one you want to delete. + +NOTE: you cannot manage any other datasets +from this interface, only the datasets used +by SQL-Ledger. + + +SETUP A USER: +------------- +Load your web browser and connect to +http://localhost/sql-ledger/admin.pl + +Click on "Add User". In the Database +section select the driver and enter +the user you used to create the dataset. + + +LOAD THE ACCOUNTING PROGRAM: +---------------------------- +Load your web browser and connect to +http://localhost/sql-ledger/login.pl + + +UPGRADING TO A NEWER VERSION: +----------------------------- +1. unpack the new version over top +2. check the doc directory for specific notes +3. load admin.pl + click on "Database Administration" + enter the dba in the "Connect to" field + click on "Update Dataset" + select the datasets and click "Continue" + + +UPGRADING WITH setup.pl: +------------------------ +run setup.pl from the command line and follow +the prompts. + + +INSTALLATION CHECKLIST: +----------------------- +1. untar SL somewhere +2. change permissions for the users and templates directory +3. edit httpd.conf +4. edit sql-ledger.conf +5. a) add the database user sql-ledger in PostgreSQL + b) add a tablespace and the database user sql-ledger in Oracle +6. load admin.pl +7. create datasets for the companies +8. add users + + In the Database section enter + + a) PostgreSQL + + Host: for local connections leave empty + Dataset: the dataset created in step 7 + Port: for local connections leave empty + User: sql-ledger + Password: password for sql-ledger + + b) Oracle + + SID: system ID + Port: the port Oracle is listening on + Dataset: the dataset created in step 7 + Password: password for connection + + +IF SOMETHING DOESN'T WORK: +-------------------------- +There is a FAQ online which addresses various questions. +see http://www.sql-ledger.org/misc/faq.html + +There are also several mailing lists at +http://www.sql-ledger.org/misc/mailinglist.html +where you can go for help. + +If you require support you can order online at +http://www.sql-ledger.com/misc/support.html + + +===================================================================== +December 4, 2002 + diff --git a/sql-ledger/doc/UPGRADE-1.6-1.8 b/sql-ledger/doc/UPGRADE-1.6-1.8 new file mode 100644 index 0000000..b5631b2 --- /dev/null +++ b/sql-ledger/doc/UPGRADE-1.6-1.8 @@ -0,0 +1,61 @@ +Upgrading from version 1.6 to 1.8 + +1. make a backup copy of your databases and SQL-Ledger, just in case! + $ cd /usr/local/www/sql-ledger + $ pg_dump database > db.out + $ tar cvf ~/sql-ledger.tar . + +2. install SQL-Ledger over top of your old installation + $ cd /usr/local/www + $ tar zxvf sql-ledger-1.8.0.tar.gz + +3. change the tables to the new layout + $ cd sql-ledger/sql + $ psql database < upgrade-1.6-1.8.sql + +4. copy the new master templates to your template directory + $ cd ../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 + +5. 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. + +6. 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 + i.e CDN:USD:EUR:YEN + If you used a nativecurr than it should be listed in the + new currencies field. + +7. <%nativecurr%> has changed to <%currency%> + edit all your templates and change nativecurr to currency + +8. I also added four more variables which can be used in your templates. + <%contact%>, <%shiptocontact%>, <%shiptophone%>, <%shiptofax%> + +9. 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. + +It looks more than it really is. Steps 1 to 4 are important, +the rest is for fine tuning and info. + diff --git a/sql-ledger/doc/UPGRADE-1.8-1.8.3 b/sql-ledger/doc/UPGRADE-1.8-1.8.3 new file mode 100644 index 0000000..babed37 --- /dev/null +++ b/sql-ledger/doc/UPGRADE-1.8-1.8.3 @@ -0,0 +1,23 @@ +Upgrading from version 1.8.(0-2) to 1.8.3 + +1. install SQL-Ledger over top of your old installation + $ cd /usr/local + $ tar zxvf sql-ledger-1.8.3.tar.gz + +2. copy sql-ledger.conf.default to sql-ledger.conf + $ cp sql-ledger.conf.default sql-ledger.conf + + if you modified sql-ledger.conf merge the changes from the + .default file rather than copying over top. + +3. copy the new master templates to your template directory + $ cd ../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 + +4. edit sql-ledger.conf + instructions are in the file + diff --git a/sql-ledger/doc/UPGRADE-1.8.3-1.8.4 b/sql-ledger/doc/UPGRADE-1.8.3-1.8.4 new file mode 100644 index 0000000..c3ecdf5 --- /dev/null +++ b/sql-ledger/doc/UPGRADE-1.8.3-1.8.4 @@ -0,0 +1,10 @@ +Upgrading from version 1.8.3 to 1.8.4 + +1. install SQL-Ledger over top of your old installation + $ cd /usr/local + $ tar zxvf sql-ledger-1.8.4.tar.gz + +2. update the tables with the admin script + + You will not be able to log in until you upgraded the tables. + diff --git a/sql-ledger/doc/UPGRADE-1.8.4-1.8.5 b/sql-ledger/doc/UPGRADE-1.8.4-1.8.5 new file mode 100644 index 0000000..e8c32e1 --- /dev/null +++ b/sql-ledger/doc/UPGRADE-1.8.4-1.8.5 @@ -0,0 +1,18 @@ +Upgrading from version 1.8.4 to 1.8.5 + +1. install SQL-Ledger over top of your old installation + $ cd /usr/local + $ tar zxvf sql-ledger-1.8.5.tar.gz + +2. update the tables with the admin script + + You will not be able to log in until you upgraded the tables. + + +There are two new variables (<%customernumber%> and <%vendornumber%>) +which can be used in the forms. These may 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. + diff --git a/sql-ledger/doc/UPGRADE-1.8.5-1.8.7 b/sql-ledger/doc/UPGRADE-1.8.5-1.8.7 new file mode 100644 index 0000000..992238c --- /dev/null +++ b/sql-ledger/doc/UPGRADE-1.8.5-1.8.7 @@ -0,0 +1,6 @@ +Upgrading from version 1.8.5 to 1.8.7 + +1. install SQL-Ledger over top of your old installation + $ cd /usr/local + $ tar zxvf sql-ledger-1.8.7.tar.gz + diff --git a/sql-ledger/doc/UPGRADE-1.8.7-2.0.0 b/sql-ledger/doc/UPGRADE-1.8.7-2.0.0 new file mode 100644 index 0000000..e16ba75 --- /dev/null +++ b/sql-ledger/doc/UPGRADE-1.8.7-2.0.0 @@ -0,0 +1,20 @@ +Upgrading to Version 2.0.0 + +1. install SQL-Ledger over top of your old installation + $ cd /usr/local + $ tar zxvf sql-ledger-2.0.0.tar.gz + +2. load admin.pl and update the tables + + You will not be able to log in until the tables are up to date. + +3. copy the new templates to your personal template directory + + $ cd templates + $ cp Default-check.tex dir/check.tex + $ cp Default-receipt.tex dir/receipt.tex + $ cp Default-statement.html dir/statement.html + $ cp Default-statement.tex dir/statement.tex + + replace 'dir' with your directory name + diff --git a/sql-ledger/doc/UPGRADE-2.0-2.0.8 b/sql-ledger/doc/UPGRADE-2.0-2.0.8 new file mode 100644 index 0000000..6ddff62 --- /dev/null +++ b/sql-ledger/doc/UPGRADE-2.0-2.0.8 @@ -0,0 +1,8 @@ +Upgrading from version 2.0.[0-7] to 2.0.8 + +1. install SQL-Ledger over top of your old installation + $ cd /usr/local + $ tar zxvf sql-ledger-2.0.8.tar.gz + +2. update your datasets with the admin script + diff --git a/sql-ledger/doc/copyright b/sql-ledger/doc/copyright new file mode 100644 index 0000000..d493a3d --- /dev/null +++ b/sql-ledger/doc/copyright @@ -0,0 +1,23 @@ +###################################################################### +# SQL-Ledger Accounting +# Copyright (c) 2003, Dieter Simader +# +# Author: Dieter Simader +# Email: dsimader@sql-ledger.org +# Web: http://www.sql-ledger.org +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +####################################################################### + diff --git a/sql-ledger/doc/faq.html b/sql-ledger/doc/faq.html new file mode 100644 index 0000000..0f6f237 --- /dev/null +++ b/sql-ledger/doc/faq.html @@ -0,0 +1,747 @@ +<ul> +<p><li><h4>Sub-menus and Apache 2.0</h4> +Some versions of Apache 2.0 (2.0.44+) don't expand sub-menus and generate +a 500 error at various points. This stems from workaround developed for +earlier versions of Apache 2.0. It looks like this workaround must now be +disabled. If you get an error or the sub-menus don't expand edit +SL/Form.pm and comment lines 80-82. +<pre> + # for Apache 2 we escape strings twice +# if (($ENV{SERVER_SOFTWARE} =~ /Apache\/2/) && !$beenthere) { +# $str = $self->escape($str, 1); +# } +</pre> + + +<p><li><h4>About installation</h4> +The easiest is to use the setup.pl script as root. +You don't need to know very much about your system, just login as root, +run 'perl setup.pl' and follow the prompts. +<p>setup.pl does not check for missing software packages and it is your +responsibility to make sure you have the required pieces +installed either from source or from a package supplied with your distro. + +<p>Requirements are clearly indicated in the README file and on the +download page. + + +<p><li><h4>IDENT Authentication failed for user "postgres"</h4> + +This error has everything to do with the way the distros set up +access rights for postgres. They are way too restrictive and leave you +wondering what to do next. + +<p>Do yourself a favour and change authentication in pg_hba.conf to + +<pre> +local all trust</pre> + +<p>until you have figured what all this stuff in pg_hba.conf does. + +<p><b>NOBODY</b>, I repeat, <b>NOBODY</b>, from the Internet will be able to +connect to postgres. You can't even connect from the inside LAN, the only +one who is allowed to connect are clients originating from localhost. + +<p>Read a bit about the different authentication settings and change +them as you see fit. +It is all described in detail in pg_hba.conf + +<p>If you can't find the file, there is a wonderful utility called find. +Use it. +<pre> +# find /usr/local -type f -name 'pg_hba.conf' +</pre> + + +<p><li><h4>DBD-Pg for Mandrake 9.0</h4> +Mandrake did not package a compiled DBD-Pg package again, so install DBD-Pg +from the source package. +Install perl-DBD-Pg-1.01-4mdk.i586.rpm from the 'contrib' area. +(Mandrake / 9.0 / contrib / RPMS) + +<p><li><h4>LaTeX error</h4> +If for some reason LaTeX produces an error message check for strange +characters in your account description and parts description +and use \usepackage[latin1]{inputenc} in the preamble. + + +<p><li><h4>LaTeX templates</h4> +If you don't want to edit tex code by hand, +you could use Lyx, Abiword, or any WYSIWYG editor capable of exporting +latex code. +To do that you must change the tokens for parameters <% and %> to something +like << and >>. % is the comment character in tex. There is also a +pagebreak block which must be commented out. +When you are done with the changes +replace << and >> with <% and %> and uncomment the pagebreak block. + +<p>LaTeX is difficult but it also offers a much superior interface to produce +professionally looking forms in postscript and PDF format. +Unfortunately with power comes some pain too. + + +<p><li><h4>W3M</h4> +pass terminal=mozilla when you start w3m +<pre>$ w3m -F http://localhost/sql-ledger/login.pl?terminal=mozilla</pre> + +To use without frames +<pre>$ w3m http://localhost/sql-ledger/login.pl?terminal=lynx</pre> + +<p><li><h4>PDF option disappeared</h4> +Edit sql-ledger.conf and set $latex = 1; +<br>sql-ledger.conf is perl code, check if it compiles, if it does not +the internal defaults are used which set $latex to 0, hence no PDF option. + +<p><li><h4>SQL-Ledger on Mac Os X 10.1.5</h4> +Jaume Teixi put together +<a href=http://www.rocacorbit.com/techdocs/sql_ledger_os_x.html> +installation instructions</a> to run SL on a Mac. +<br>The instructions are for 1.8.5 however they still apply to any of the +newer versions. + +<p><li><h4>Installation on Windows (WIN32)</h4> +<ul> +<li>install Apache, perl, +<a href=http://techdocs.postgresql.org/guides/InstallingOnWindows>Postgres</a> +or Oracle, DBI and the appropriate DBD +module +<br>if you can't compile DBD-Pg here is a precompiled +<a href=http://www.edmund-mergl.de/export/>DBD-Pg module</a> +<li>download the latest version of <a href=/cgi-bin/nav.pl?page=source/index.html&title=Download>SQL-Ledger</a> +<li>extract the files to c:\apache\sql-ledger +<li>download +<a href=../source/sql-ledger-windows.tar.gz>sql-ledger-windows.tar.gz</a> +and extract the files to c:\apache\sql-ledger + <br>the shebang line is changed to c:\perl\bin\perl and the symlinks + are regular files +<br>answer with 'Yes' to overwrite existing files. +<li>edit c:\apache\conf\httpd.conf and add +<pre> +Alias /sql-ledger/ "C:/apache/sql-ledger/" +<Directory "c:/apache/sql-ledger"> + AllowOverride All + AddHandler cgi-script .pl + Options +ExecCGI + Order Allow,Deny + Allow from All +</Directory> + +<Directory "c:/apache/sql-ledger/users"> + Order Deny,Allow + Deny from All +</Directory> +</pre> + +<li>start Apache +<li>start Postgres|Oracle +<li>connect to http://localhost/sql-ledger/admin.pl and setup users +and datasets +<li>connect to http://localhost/sql-ledger/login.pl and login + +</ul> + +<p><li><h4>Installation on Windows /w cygwin</h4> +<ul> +<li>install <a href=http://sources.redhat.com/cygwin/>cygwin</a> +Apache, perl, postgres, gcc and lynx +<li>install <a href=http://search.cpan.org/search?module=DBI>DBI</a> +<li>tar zxvf DBI-1.30.tar.gz +<li>cd DBI-1.30 +<li>perl Makefile.PL +<li>make install +<li>install <a href=http://search.cpan.org/search?dist=DBD-Pg>DBD-Pg</a> +<li>tar -zxvf DBD-Pg-1.13.tar.gz +<li>export POSTGRES_INCLUDE=/usr/include/postgresql +<li>export POSTGRES_LIB=/usr/lib/postgresql +<li>cd DBD-Pg-1.13 +<li>perl Makefile.PL +<li>make install +<li>edit /etc/apache/httpd.conf and add +<pre> +AddHandler cgi-script .pl +Alias /sql-ledger/ /var/www/sql-ledger/ +<Directory /var/www/sql-ledger> + Options +ExecCGI +</Directory> + +<Directory /var/www/sql-ledger/users> + Order Deny,Allow + Deny from All +</Directory> +</pre> +<li>install SQL-Ledger +<li>cd /var/www +<li>mkdir sql-ledger +<li>download <a href=/cgi-bin/download.pl?setup.pl>setup.pl</a> and save the file +in /var/www/sql-ledger +<li>cd /var/www/sql-ledger +<li>perl setup.pl +</ul> + +<p><li><h4>What do I enter for the language</h4> +If you use English, nothing, if you want to use a foreign language for +the login screen and admin stuff enter the language code. All the +language specific files are in the locale directory. The long form for +the language is in the LANGUAGE file. + +<p><li><h4>Mandrake 9.0 permission denied error</h4> +Mandrake says to add this to your commonhttpd.conf +<pre> +<Directory /usr/local/sql-ledger> + AllowOverride All + Options -MultiViews -Indexes -FollowSymLinks + Order allow,deny + Allow from all +</Directory> + +The way apache starts is it: +Blocks all access to the physical file system / +Opens access to the physical file system /var/www/html +Opens access to the physical file system /var/www/perl +Opens access to the physical file system /var/www/cgi-bin +Opens access to the physical file system /var/www/protected-cgi-bin +Opens access to the physical file system /home/*/public_html +Opens access to the physical file system /home/*/public_html/cgi-bin +Opens access to the physical file system /var/www/icons +Opens access to the physical file system /usr/share/doc + +Since you're trying to access files outside of those allowed paths, you +have to specifically allow it. It's done this way because of some past +exploits with the pathnames. Rather than trust that there will never be +another bug within apache that will let you get somewhere you don't +want, you set it up securely out of the box so that apache won't let +itself go somewhere that you don't want it to. +</pre> + + +<p><li><h4>Incorrect Dataset version</h4> +The dataset you are trying to use is not compatible with the version. +When you upgrade datasets use the same database user in the "User" +field as the one listed in the Database section for the user. + + +<p><li><h4>Mandrake 8.2</h4> +Mandrake did not include the package "perl-DBD-Pg-1.01-1mdk.i586.rpm" +You can install the package from Mandrake 8.1 + + +<p><li><h4>printing to a printer</h4> +Setup a printer in the "Printer" field in the users preferences. +i.e lpr -Plaser +and set $latex = 1 in sql-ledger.conf +LaTeX must be installed for this to work. + +<p>To send the document to the printer check the "Postscript" or "PDF" format, +enter the number of copies and click on the "Print" button. + +<p>The printer field is available only when you edit the user's +preferences with admin.pl. + +<p>Note: html format is for screen preview. Use your browser's +print function. + + +<p><li><h4>beginning balances</h4> +Add a GL Journal entry and enter the beginning balance for your accounts. +Use your balance sheet. If you also want to add open invoices, add the invoices +and make the appropriate adjustments. Your balance sheet includes these +amounts! + + +<p><li><h4>cost for parts and service</h4> +the cost will be updated when you purchase goods and services. You can +enter the cost manually. This is so you can have a cost on file without +making a purchase. + + +<p><li><h4>establish a beginning inventory</h4> +add the parts with a purchase invoice. Use the <b>real cost</b> for the items +not zero. If you use zero cost then the cost of goods will be zero when you +sell the item. + + +<p><li><h4>Assemblies</h4> +Assemblies are manufactured goods assembled from parts, services and +assemblies. Because you do not buy assemblies you 'stock assemblies' by +adding assembled units to your inventory. The quantity for individual parts +is reduced and the quantity for the assembly increased. To disassemble an +assembly you simply return the parts to inventory by entering a negative +quantity for the number of assemblies to stock. + + +<p><li><h4>customizing SQL-Ledger</h4> +The <a href=/cgi-bin/nav.pl?page=feature/api.html&title=Application%20Interface>application interface</a> +consists of a global and private interface. + + +<p><li><h4>DBD-Pg not installed</h4> + +Most modern distributions now package DBD-Pg. If it is +not packaged follow this recipe to get it working. + +<ul> + <li>check if you have the header files for PostgreSQL + <br>$ find / -name 'libpq-fe.h' + <br>if nothing shows up install the development package for PostgreSQL + <li>download and untar DBD-Pg + <li>set the environment variables POSTGRES_LIB and POSTGRES_INCLUDE + <li>cd to DBD-Pg directory + <br>as ordinary user + <br>$ perl Makefile.PL + <br>$ make + <br>$ make test + <br>if all went well su to root + <br># make install + <li>remove DBD-Pg +</ul> + + +<p><li><h4>SuSE 8.1 installation</h4> +<ol> +<li>Install the following using YaST2: + +<p>- perl-DBD-Pg +<br>- postgresql +<br>- postgresql-contrib +<br>- postgresql-devl +<br>- postgresql-docs +<br>- postgresql-libs +<br>- postgresql-perl +<br>- postgresql-server +<br>- postgresql-test + +<p><li>Setup directories and paths for PostgreSQL: + +<p>> sux - (change to root) + +<p>- If not done by the installation, setup disk directory for your db: +<br># mkdir /var/lib/pgsql/data +<br># chown postgres /var/lib/pgsql/data + +<p><li>Initialize the database, and start it, as below: +<p>Note that there are man pages for initdb and pg_ctl. + +<p># touch /var/log/pgsql +<br># chown postgres:postgres /var/log/pgsql +<br># sux postgres + +<p>- Initialize postgres: +<br>> /usr/bin/initdb -D /var/lib/pgsql/data +<br>(creating ... Success...) + +<p>- Start the postgres daemon: +<br>> /usr/bin/pg_ctl -D /var/lib/pgsql/data -l /var/log/pgsql start (start db) +<br>(postmaster successfully started) + +<p><li>Quick-test the server (still as user postgres): + +<p>- > psql -d template1 +<br>(Welcome ... \q to exit psql) +<br>\q + +<p>- Try setting up another db user: + +<p>> createuser <db-user> (<db-user> should match an existing Linux user) +<br>Shall the new user be allowed to create databases? (y/n) y +<br>Shall the new user be allowed to create more new users? (y/n) n + +<p>Unless a problem with DBD::Pg (perl interface), postgres is ready to go. + +<p><li>If a previous sql-ledger database needs to be installed, +<br>do the following as postgres user. Steps for dumping the old db, + and building the new follow: + +<p>> sux postgres +<br>> psql template1 +<br>=# CREATE DATABASE my_database; (create your database) +<br>=# \q +<br>> cd /var/lib/pgsql/backups (assuming your backups are here) +<br>The next command should have been performed earlier from the + previous installed version of postgres and your database: +<br>> pg_dump -d my_database.sql.bak (from previous ver postgres) +<br>> cp my_database.sql.bak my_database.sql +<br>- Use vi to change all occurrances of 'current_date' to current_date + in file my_database.sql . +<br>The vi command for this is :g/'current_date'/s//current_date/g +<br>> psql my_database < my_database.sql > my_database.log +<br>- Check my_database.log for errors. + +<p><li>Download setup.pl and run it as root while on line to the internet: + +<p># mkdir /usr/local/sql-ledger +<br># cd /usr/local/sql-ledger +<br># ./setup.pl +<br>- Enter i +<br>- Enter httpd owner and group if different than displayed default. +<br>(Download occurs and status is displayed...) + +<p><li>Setup the new sql-ledger with database. + +<p>- Surf to http://my_computer/sql-ledger/admin.pl +<br>- Click enter (no password needed). +<br>->Database Administration +<br>- Leave fields Host and Port enpty for local installations. +<br> - Enter your database name in the "Connect to" field. +<br> - Enter the database user you setup (postgres, sql-ledger, etc.) +<br> - Enter a password, only if a password is assigned to the database. +<br> - To update an existing sql-ledger database: ->Update Database +<br> Should see: The following Datasets need to be updated. +<br> ->Continue +<br> Do more admin. You will need to setup at least one login. +<br> To exit: ->Database Admin + +<p><li>See if it works: + +<p> - Surf to http://my_computer/sql-ledger/login.pl +<br> - Enter the login name you just created. Main menu screen should appear. +</ol> + + + +<p><li><h4>Redhat Installation</h4> + +<ul> +<li>Install apache1.3.12-25.i386.rpm +<li>Install perl5.6.0-9.i386.rpm +<li>Install postgresql-7.0.2-17.i386.rpm +<li>Install postgresql-server-7.0.2-17.i386.rpm +<li>Install postgresql-devel-7.0.2-17.i386.rpm (POSTGRES_INCLUDE) +<li>tar xvzf DBI-1.14.tar.gz +<li>cd DBI-1.14 +<li>perl Makefile.PL +<li>make +<li>make install +<li>cd .. +<li>tar xvzf DBD-Pg-0.95 +<li>cd DBD-Pg-0.95 +<li>export POSTGRES_LIB=/usr/lib/pgsql +<li>export POSTGRES_INCLUDE=/usr/include/pgsql +<li>perl Makefile.PL +<li>make +<li>make install +<li>install SQL-Ledger +</ul> + +<p>Some of the applications have newer versions however the installation +instructions remain the same. Just substitute the old version with a newer +version. + + +<p><li><h4>Debian Installation</h4> + +<ul> +<li>unpack into /usr/local/www/sql-ledger +<li>install postgresql (Dselect) +<li>install apache (Dselect) +<li>install libdbi-perl (Dselect) +<li>install libdbd-pg-perl (Dselect) +<li>install libpgperl (Dselect) +<li>modify /etc/postgresql/postgresql.conf + <br>TCPIP_SOCKET = 1 +<li>create a user for managing SQL-Ledger databases +<br>from root +<br>su postgres +<br>$ createuser -d sql-ledger +<br>if you use passwords to access postgres set the user up with a password +<br>$ createuser -d -P sql-ledger +<li>change /etc/apache/httpd.conf and add +<pre> +AddHandler cgi-script .pl +Alias /sql-ledger/ /usr/local/www/sql-ledger/ +<Directory /usr/local/www/sql-ledger> + Options +ExecCGI +</Directory> + +<Directory /usr/local/www/sql-ledger/users> + Order Deny,Allow + Deny from All +</Directory> +</pre> +<li>restart apache +<li>change fileownership of users and templates to www-data + <br>chown www-data: users templates +<li>From browser enter http://localhost/sql-ledger/admin.pl +<li>Login as the postgres user (account manager) you have created (above) +<br>Create a DB +<br>Create users + +<li>then enter http://localhost/sql-ledger/login.pl +<br>Login as one of the users you have just created + +</ul> + +<p> +The long version was provided by Gordon Haverland. +<p> +<ul> +<li>You need to unpack the SQL-Ledger package (compressed tar archive) + someplace. Unpacking it in<pre> + /usr/local/www/sql-ledger.</pre> + Remember where you have unpacked it. +<li>SQL-Ledger requires that the PostgreSQL database be installed. +This is a very full-featured database, and has many associated +packages. SQL-Ledger requires version 7.0 or better. The name +of the basic package on Debian is postgresql. To find if you +already have postgresql installed, and if so what version, the +following command should work:<pre> + dpkg -l | grep -i 'ii postgresql '</pre> + A typical response would be:<pre> + ii postgresql 7.1.3-5 Object....[stuff deleted]</pre> + Indicating, that version 7.1.3 is installed (the -5 is a + Debian patch level). You can use dselect or apt-get to install + postgresql if you need to. You can visit the Debian maintainer's + page for much more information on related packages at<pre> + http://people.debian.org/~elphick/postgresql/</pre> + Older versions of Debian's PostgreSQL installation use a file + called postmaster.init, while newer versions use a file called + postmaster.conf, either residing in /etc/postgresql. +<li>SQL-Ledger requires a HTTP server (or daemon) which is capable of + handling CGI scripts. Apache is the one which is recommended, + version 1.3 or better. Debian calls the base package apache. + Debian has two alternative versions of Apache, one with mod-perl + (apache-perl) support compiled in, and the other with SSL + (secure sockets layer - apache-ssl) support. SQL-Ledger doesn't + require mod-perl or SSL support, but works with either if + you need it installed for other functions you have. Older versions + of Debian Apache installations, spread the configuration of the + server across 3 files (srm.conf, access.conf and httpd.conf). + Newer versions have consolidated all of this to httpd.conf. +<li>SQL-Ledger uses the Data Base Interface perl module for communication + with PostgreSQL. The CPAN (Comprehensive Perl Archive Network) + name for this module is DBI. Debian calls this module + libdbi-perl. You should probably deselect (or apt-get) the + Debian version of this module to minimize upgrading headaches in + the future. +<li>DBI requires the use of an implementation specific Data Base + Driver. In our case, we need the PostgreSQL specific one. + CPAN calls this module DBD::PG, Debian calls it libdbd-pg-perl. + You should use dselect (or apt-get) to install it. +<li>One more layer of Perl - PostgreSQL support is needed. Debian + calls this last package libpgperl. Use dselect or apt-get to + install it. (You should be able to install all 5 packages at + one time.) +<li>We need to allow your PostgreSQL database to accept queries + in a network manner. To do this, we need to change the value + of the TCPIP_SOCKET to 1. In newer + PostgreSQL installs, this variable will be someplace in + /etc/postgresql/postgreslq.conf (older installs will be + postmaster.init, same directory. Note: you shouldn't have + both files there.) Start up your favorite text editor, find + the line with that variable on it, change the "no" to a "yes", + and make sure the line isn't commented out (a "#" in front + of it on the same line). +<li>PostgreSQL has a set of users and passwords independent of + normal user logins. We need to set up a PostgreSQL user + to "own" the SQL-Ledger data (choose a name that makes sense + to you, it shouldn't be "root" or "postgres"). The (PostgreSQL) + program for doing this is called "createuser". To make this + SQL-Ledger owner user, we first need to "become" the PostgreSQL + superuser (on Debian, this is "postgres"), and then we will + run the createuser program. So, once we are logged in as root: +<pre> + # su postgres + $ createuser -d sql-ledger + ... + $ exit + # +</pre> + As shown above, we then typed "exit" after createuser was done, + to stop being the "postgres" user. The "-d" switch (you called + also use "--createdb") specifies that this user can create + databases. +<li>We need to adjust the configuration of the HTTP server Apache + next. Older Apache installations (srm.conf, access.conf and + httpd.conf) need changes in srm.conf and httpd.conf. Newer + installations just need to edit /etc/apache/httpd.conf. First, + we need to instruct the server that files that end in ".pl" + are to be treated as "cgi-script"s (srm.conf if separate).<pre> + AddHandler cgi-script .pl</pre> + Second, we need to map our SQL-Ledger installation to be easy + for users to find it (in srm.conf if separate).<pre> + Alias /sql-ledger/ /usr/local/www/sql-ledger/</pre> + The "/" at the end of sql-ledger in both strings is important! + Next, we need to allow the server to execute files from those + directories, include things and follow links. This information + is in httpd.conf (old or new installations).<pre> + <Directory /usr/local/www/sql-ledger> + Options ExecCGI Includes FollowSymLinks + </Directory></pre> + If we decided to put SQL-Ledger somewhere other than + /usr/local/www/sql-ledger, we would use different paths above. +<li>All the files in the "users" and "templates" subdirectories + of /usr/local/www/sql-ledger need to be owned by "www-data".<pre> + # cd /usr/local/www/sql-ledger + # chown www-data:www-data users templates users/members</pre> + You may get an "error" about users/members not existing. It + is safe to ignore this error. +<li>Restart the apache server.<pre> + /etc/init.d/apache restart</pre> +<li>From a browser, visit the URL<pre> + http://localhost/sql-ledger/admin.pl</pre> +<li>Login as the PostgreSQL user responsible for the SQL-Ledger + database you set up. Create a database and create + at least one user. (It's not a good idea to access your + SQL-Ledger data as the "owner" of the data on a regular basis.) +<li>Visit<pre> + http://localhost/sql-ledger/login.pl</pre> + and login as the user you created</pre> + +</ul> + + +<p><li><h4>login.pl has compilation error</h4> + +This could be because of a missing configuration file in the users directory + +<p>check the permission for the users directory. The directory must be +set writeable for the webserver. If your webserver runs under nobody.nogroup +set it to +<pre> +drwxrwx--x 2 johndoe nogroup 1024 May 26 16:49 users + +or + +drwx--x--x 2 nobody nogroup 1024 May 26 16:49 users +</pre> + + +<p><li><h4>script not executing, shows in browser instead</h4> + +Add + +<pre> + AddHandler cgi-script .pl +</pre> + +in your httpd.conf file. + + +<p><li><h4>unknown terminal!</h4> +the frontend script couldn't figure out which browser you are using +<p>include the terminal variable on the URL +<pre> + http://localhost/sql-ledger/login.pl?terminal=lynx</pre> +<p>Valid terminal variables are lynx and mozilla + + +<p><li><h4>permission denied at filesystem level</h4> + +Check if your web server has write permission to write to the following +files and directories: +<pre> + users/ + templates/ + users/members + + # chown nobody:nogroup users templates users/members +</pre> + + +<p><li><h4>permission denied to access tables</h4> +The user you entered in the "Database section" must be a valid +database user who has the rights to access the tables. + +<p>If the tables are owned by 'john' and you enter 'mary' as the dba +you might run into this problem if mary doesn't have the rights to +access tables owned by john. + + +<p><li><h4>html and graphics files don't show up on screen</h4> + +Enable Includes and FollowSymlinks Options in your httpd.conf file +<pre> <Directory /usr/local/sql-ledger> + Options ExecCGI Includes FollowSymlinks + </Directory> +</pre> + + +<p><li><h4>Can I use mySQL</h4> + +No. mySQL lacks certain features required by SQL-Ledger. + + +<p><li><h4>switch display to a foreign language</h4> + +Load your preferences and select the language. +<br>Language selection is in accordance to +<a href=http://www.unece.org/cefact/locode/service/main.htm> +ISO 3166-1</a> standards. + + +<p><li><h4>Text shows in English when I use a foreign language</h4> + +This is because the corresponding hash entry is missing. +Add the missing text in the locale/cc/all or locale/cc/missing +file and run 'perl locales.pl' to rebuild the individual files. + +<br>cc refers to the country code. + + +<p><li><h4>switch to a foreign language for the login and admin screen</h4> + +Edit sql-ledger.conf and enter the code for the variable +$language. If your language specific files are in 'locales/cc', enter 'cc' + + +</ul> + +<p> +<hr> +<a name=security> +<h1>SQL-Ledger security</h1> +</a> + +<ul> +<li>The security features built into SQL-Ledger provide encrypted passwords +and access control which makes it fairly safe out of the box to run even in +front of a firewall. +Some precautions which are out of our control must be taken though. +It matters where you install SL and how you configure your web and SQL server. + +<pre> + Typical setups: + + /usr/local/vh/www <- DocumentRoot for virtual host + /usr/local/vh/sql-ledger <- Alias for sql-ledger + /usr/local/vh/users <- users directory out of reach + +<hr width=60% align=left> + /usr/local/vh/www <- DocumentRoot for virtual host + /usr/local/vh/www/sql-ledger <- Alias for sql-ledger + /usr/local/vh/www/sql-ledger/users <- users configuration files and tmp space + + <Directory /usr/local/vh/www/sql-ledger/users> <- disable webserver access + Order Deny,Allow for users directory + Deny from All + </Directory> + +</pre> + +The location for the users directory can be specified in sql-ledger.conf + +<p><li>Set permission for the users and templates directory to 711 +(most restrictive) + +<p><li>If you do not want anyone to change the templates with the built-in +editor set the files in templates/directory/ to read only or disable +the menu item to edit the templates. + +<p><li>For PostgreSQL you can set who has access to the server in the file +pg_hba.conf +<br>Authentication crypt does not work because not all SQL servers +accept encrypted passwords. + +<p><li>in addition you can secure the tables from unauthorized access by +setting up a different database user and GRANT rights. For instance, +users without DELETE rights will still be able to use the program, change +customers or vendors but will not be able to delete transactions. +To lock all the tables GRANT SELECT rights only. + +<p><li>Other security options include a secure shell, your webserver's +authentication system, SSL, encrypted tunnels, ... + +</ul> + +</BODY> +</HTML> + |