summaryrefslogtreecommitdiff
path: root/doc/html_manual/LedgerSMB-manual.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html_manual/LedgerSMB-manual.html')
-rw-r--r--doc/html_manual/LedgerSMB-manual.html253
1 files changed, 127 insertions, 126 deletions
diff --git a/doc/html_manual/LedgerSMB-manual.html b/doc/html_manual/LedgerSMB-manual.html
index 219f05ea..f58e373a 100644
--- a/doc/html_manual/LedgerSMB-manual.html
+++ b/doc/html_manual/LedgerSMB-manual.html
@@ -4,13 +4,14 @@
<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
<html xmlns="http://www.w3.org/1999/xhtml"
>
-<head><title>Ledger-SMB Manual v. 1.2</title>
+<head><title>LedgerSMB Manual v. 1.2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" />
<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" />
<!-- xhtml -->
<meta name="src" content="LedgerSMB-manual.tex" />
-<meta name="date" content="2007-04-09 13:59:00" />
+<meta name="date" content="2007-09-21 13:59:00" />
+<!-- SC: Manual edit, couldn't determine the previous option set -->
<link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" />
</head><body
>
@@ -20,12 +21,12 @@
-<h2 class="titleHead">Ledger-SMB Manual v. 1.2</h2>
+<h2 class="titleHead">LedgerSMB Manual v. 1.2</h2>
<div class="author" ><span
class="pplr8t-x-x-120">The LedgerSMB Core Team</span></div>
<br />
<div class="date" ><span
-class="pplr8t-x-x-120">April 9, 2007</span></div>
+class="pplr8t-x-x-120">September 21, 2007</span></div>
</div>Copyright <span
class="cmsy-10">&#169;</span>2006 The LedgerSMB Core Team. Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
@@ -37,19 +38,19 @@ href="#x1-223000E">E<!--tex4ht:ref: fdl --></a>).
id="x1-1000"></a>Contents</h3>
<div class="tableofcontents">
<span class="partToc">I&#x00A0;&#x00A0;<a
-href="#x1-3000I" id="QQ2-1-3">Ledger-SMB and Business Processes</a></span>
+href="#x1-3000I" id="QQ2-1-3">LedgerSMB and Business Processes</a></span>
<br /> <span class="sectionToc">1 <a
-href="#x1-40001" id="QQ2-1-4">Introduction to Ledger-SMB</a></span>
+href="#x1-40001" id="QQ2-1-4">Introduction to LedgerSMB</a></span>
<br /> &#x00A0;<span class="subsectionToc">1.1 <a
-href="#x1-50001.1" id="QQ2-1-5">Why Ledger-SMB</a></span>
+href="#x1-50001.1" id="QQ2-1-5">Why LedgerSMB</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">1.1.1 <a
-href="#x1-60001.1.1" id="QQ2-1-6">Advantages of Ledger-SMB</a></span>
+href="#x1-60001.1.1" id="QQ2-1-6">Advantages of LedgerSMB</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">1.1.2 <a
href="#x1-70001.1.2" id="QQ2-1-7">Key Features</a></span>
<br /> &#x00A0;<span class="subsectionToc">1.2 <a
-href="#x1-80001.2" id="QQ2-1-8">Limitations of Ledger-SMB</a></span>
+href="#x1-80001.2" id="QQ2-1-8">Limitations of LedgerSMB</a></span>
<br /> &#x00A0;<span class="subsectionToc">1.3 <a
-href="#x1-90001.3" id="QQ2-1-9">System Requirements of Ledger-SMB</a></span>
+href="#x1-90001.3" id="QQ2-1-9">System Requirements of LedgerSMB</a></span>
<br /> <span class="sectionToc">2 <a
href="#x1-100002" id="QQ2-1-10">User Account and Database Administration Basics</a></span>
<br /> &#x00A0;<span class="subsectionToc">2.1 <a
@@ -129,7 +130,7 @@ href="#x1-460004.7.3" id="QQ2-1-46">Overview of Template Editing</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.7.4 <a
href="#x1-470004.7.4" id="QQ2-1-47">Year-end</a></span>
<br /> &#x00A0;<span class="subsectionToc">4.8 <a
-href="#x1-480004.8" id="QQ2-1-48">Options in the ledger-smb.conf</a></span>
+href="#x1-480004.8" id="QQ2-1-48">Options in the ledgersmb.conf</a></span>
<br /> <span class="sectionToc">5 <a
href="#x1-490005" id="QQ2-1-49">Goods and Services</a></span>
<br /> &#x00A0;<span class="subsectionToc">5.1 <a
@@ -309,7 +310,7 @@ href="#x1-13400012.1.1" id="QQ2-1-140">Paper-based accounting systems and the GL
<br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">12.1.2 <a
href="#x1-13500012.1.2" id="QQ2-1-141">Double Entry Examples on Paper</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">12.1.3 <a
-href="#x1-13600012.1.3" id="QQ2-1-142">The GL in Ledger-SMB</a></span>
+href="#x1-13600012.1.3" id="QQ2-1-142">The GL in LedgerSMB</a></span>
<br /> &#x00A0;<span class="subsectionToc">12.2 <a
href="#x1-13700012.2" id="QQ2-1-143">Cash Transfer</a></span>
<br /> &#x00A0;<span class="subsectionToc">12.3 <a
@@ -531,22 +532,22 @@ Workflow with Receiving</a></span><br /><span class="lofToc">6&#x00A0;<a
href="#x1-1180016">Complex AP Workflow</a></span><br /><span class="lofToc">7&#x00A0;<a
href="#x1-1390017">Payroll as a GL Transaction (Purely
fictitious numbers)</a></span><br /><span class="lofToc">8&#x00A0;<a
-href="#x1-1760018">The Ledger-SMB software stack in a Typical Implementation</a></span><br />
+href="#x1-1760018">The LedgerSMB software stack in a Typical Implementation</a></span><br />
</div>
<h1 class="partHead"><span class="titlemark">Part&#x00A0;I<br /></span><a
- id="x1-3000I"></a>Ledger-SMB and Business Processes</h1>
+ id="x1-3000I"></a>LedgerSMB and Business Processes</h1>
<h3 class="sectionHead"><span class="titlemark">1 </span> <a
- id="x1-40001"></a>Introduction to Ledger-SMB</h3>
+ id="x1-40001"></a>Introduction to LedgerSMB</h3>
<!--l. 56--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">1.1 </span> <a
- id="x1-50001.1"></a>Why Ledger-SMB</h4>
+ id="x1-50001.1"></a>Why LedgerSMB</h4>
<!--l. 59--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">1.1.1 </span> <a
- id="x1-60001.1.1"></a>Advantages of Ledger-SMB</h5>
+ id="x1-60001.1.1"></a>Advantages of LedgerSMB</h5>
<ul class="itemize1">
<li class="itemize">Flexibility and Central Management
</li>
@@ -638,7 +639,7 @@ href="#x1-1760018">The Ledger-SMB software stack in a Typical Implementation</a>
</li>
<li class="itemize">Point of Sale
<ul class="itemize2">
- <li class="itemize">Run multiple cash registers against main Ledger-SMB installation
+ <li class="itemize">Run multiple cash registers against main LedgerSMB installation
</li>
<li class="itemize">Suitable for retail stores and more
</li>
@@ -686,7 +687,7 @@ href="#x1-1760018">The Ledger-SMB software stack in a Typical Implementation</a>
<!--l. 173--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">1.2 </span> <a
- id="x1-80001.2"></a>Limitations of Ledger-SMB</h4>
+ id="x1-80001.2"></a>Limitations of LedgerSMB</h4>
<ul class="itemize1">
<li class="itemize">No payroll module (Payroll must be done manually)
</li>
@@ -699,7 +700,7 @@ href="#x1-1760018">The Ledger-SMB software stack in a Typical Implementation</a>
<!--l. 182--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">1.3 </span> <a
- id="x1-90001.3"></a>System Requirements of Ledger-SMB</h4>
+ id="x1-90001.3"></a>System Requirements of LedgerSMB</h4>
<ul class="itemize1">
<li class="itemize">PostgreSQL
</li>
@@ -755,19 +756,19 @@ class="E">E</span>X</span></span>&#x00A0;(optional) is required to create PDF or
</p>
<h3 class="sectionHead"><span class="titlemark">2 </span> <a
id="x1-100002"></a>User Account and Database Administration Basics</h3>
-<!--l. 216--><p class="noindent">These functions are accessed via the admin.pl script in the installed directory of Ledger-SMB.
+<!--l. 216--><p class="noindent">These functions are accessed via the admin.pl script in the installed directory of LedgerSMB.
</p><!--l. 220--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">2.1 </span> <a
id="x1-110002.1"></a>Companies and Datasets</h4>
-<!--l. 222--><p class="noindent">Ledger-SMB stores its information in locale-specific data sets. When a dataset is created, it sets various
+<!--l. 222--><p class="noindent">LedgerSMB stores its information in locale-specific data sets. When a dataset is created, it sets various
defaults such as currency, a basic chart of accounts setup, and so forth. Note that the default setup is for
Canada, where the author of the software resides.
</p><!--l. 227--><p class="indent"> Datasets are stored as PostgreSQL databases. The application is designed with the idea that each dataset
will represent exactly one company. If a customer is working with multiple companies, he/she must create a
dataset to for each.
</p><!--l. 232--><p class="indent"> When creating a dataset, the application asks for both a username and a superusername. If the
-superuser&#8217;s information is not filled in, Ledger-SMB will attempt to populate an existing dataset, but if this
+superuser&#8217;s information is not filled in, LedgerSMB will attempt to populate an existing dataset, but if this
information is filled in, the program will log into the PostgreSQL cluster with the superusername and
password, create the database, and attempt to add Plpgsql to it.
</p><!--l. 238--><p class="noindent">
@@ -782,7 +783,7 @@ when it is saved, the user is created.
</p>
<h4 class="subsectionHead"><span class="titlemark">2.3 </span> <a
id="x1-130002.3"></a>Permissions</h4>
-<!--l. 247--><p class="noindent">The permissions system is not rigorously enforced within Ledger-SMB, in the sense that the
+<!--l. 247--><p class="noindent">The permissions system is not rigorously enforced within LedgerSMB, in the sense that the
permissions API is generally not used in the application itself. Instead permissions are used to
enable/disable menu options. Setting an enforcement of such permissions would require some custom
programming at the present time. Most organizations, however, find that the current system is
@@ -991,7 +992,7 @@ double-entry.
</p>
<h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a
id="x1-240003.2"></a>General Guidelines on Numbering Accounts</h4>
-<!--l. 434--><p class="noindent">In general, most drop-down boxes in Ledger-SMB order the accounts by account number. Therefore by
+<!--l. 434--><p class="noindent">In general, most drop-down boxes in LedgerSMB order the accounts by account number. Therefore by
setting appropriate account numbers, one can affect the default values.
</p><!--l. 438--><p class="indent"> A second consideration is to try to keep things under each heading appropriate to that heading.
Thus setting an account number for a bank loan account in the assets category is not generally
@@ -1023,7 +1024,7 @@ will provide a ledger for that account.
</p>
<h3 class="sectionHead"><span class="titlemark">4 </span> <a
id="x1-270004"></a>Administration</h3>
-<!--l. 468--><p class="noindent">This section covers other (non-Chart of Accounts) aspects to the setup of the Ledger-SMB accounting
+<!--l. 468--><p class="noindent">This section covers other (non-Chart of Accounts) aspects to the setup of the LedgerSMB accounting
package. These are generally accessed in the System submenu.
</p><!--l. 473--><p class="noindent">
</p>
@@ -1187,7 +1188,7 @@ class="td11"> </td> </tr></table>
<!--l. 593--><p class="indent"> This would be followed by re-entering the rent data with the correct numbers. This was meant to ensure
that one did not erase data from the accounting books (and as such that erasing data would be a sign of foul
play).
-</p><!--l. 598--><p class="indent"> Ledger-SMB has a capability to require such reversals if the business deems this to be necessary. When
+</p><!--l. 598--><p class="indent"> LedgerSMB has a capability to require such reversals if the business deems this to be necessary. When
this option is enabled, existing transactions cannot be modified and one will need to post reversing
transactions to void existing transactions before posting corrected ones.
</p><!--l. 604--><p class="indent"> Most accountants prefer this means to other audit trails because it is well proven and understood by
@@ -1212,7 +1213,7 @@ included.
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
id="x1-380004.3"></a>Departments</h4>
<!--l. 627--><p class="noindent">Departments are logical divisions of a business. They allow for budgets to be prepared for the individual
-department as well as the business as a whole. This allows larger businesses to use Ledger-SMB to meet their
+department as well as the business as a whole. This allows larger businesses to use LedgerSMB to meet their
needs.
</p><!--l. 633--><p class="noindent">
</p>
@@ -1223,18 +1224,18 @@ needs.
<!--l. 635--><p class="noindent">In general business units are divided into cost and profit centers. Cost centers are generally regarded as
business units where the business expects to lose money and profit centers are where they expect to gain
money. For example, the legal department in most companies is a cost center.
-</p><!--l. 641--><p class="indent"> One of the serious misunderstandings people run up against is that Ledger-SMB tends to more narrowly
-define cost and profit centers than most businesses do. In Ledger-SMB a cost center is any department of the
+</p><!--l. 641--><p class="indent"> One of the serious misunderstandings people run up against is that LedgerSMB tends to more narrowly
+define cost and profit centers than most businesses do. In LedgerSMB a cost center is any department of the
business that does not issue AR transactions. Although many businesses may have cost centers (like
-technical support) where customer fees may subsidize the cost of providing the service, in Ledger-SMB, these
+technical support) where customer fees may subsidize the cost of providing the service, in LedgerSMB, these
are profit centers.
-</p><!--l. 649--><p class="indent"> Ledger-SMB will not allow cost centers to be associated with AR transactions. So if you want this
+</p><!--l. 649--><p class="indent"> LedgerSMB will not allow cost centers to be associated with AR transactions. So if you want this
functionality, you must create the department as a profit center.
</p><!--l. 654--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
id="x1-400004.4"></a>Warehouses</h4>
-<!--l. 656--><p class="noindent">Ledger-SMB has the ability to track inventory by warehouse. Inventory items can be moved between
+<!--l. 656--><p class="noindent">LedgerSMB has the ability to track inventory by warehouse. Inventory items can be moved between
warehouses, and shipped from any warehouse where the item is in stock. We will explore this concept more
later.
</p><!--l. 661--><p class="noindent">
@@ -1277,7 +1278,7 @@ purposes.
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.7.3 </span> <a
id="x1-460004.7.3"></a>Overview of Template Editing</h5>
-<!--l. 699--><p class="noindent">The templates for invoices, orders, and the like can be edited from within Ledger-SMB. The submenus within
+<!--l. 699--><p class="noindent">The templates for invoices, orders, and the like can be edited from within LedgerSMB. The submenus within
the System submenu such as HTML Templates, Text Templates and <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span> templates provide access to this
functionality.
@@ -1285,7 +1286,7 @@ functionality.
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.7.4 </span> <a
id="x1-470004.7.4"></a>Year-end</h5>
-<!--l. 707--><p class="noindent">Although the Year-end functionality in Ledger-SMB is very useful, it does not entirely make the process
+<!--l. 707--><p class="noindent">Although the Year-end functionality in LedgerSMB is very useful, it does not entirely make the process
simple and painless. One must still manually enter adjustments prior to closing the books. The extent to
which these adjustments are necessary for any given business is a matter best discussed with an
accountant.
@@ -1298,15 +1299,15 @@ moved. Equity drawing/dividend accounts are also moved, but the investment accou
reasoning behind this process is that one wants a permanent record of the amount invested in a business, but
any dividends ought not to count against their recipients when new investors are brought on
board.
-</p><!--l. 725--><p class="indent"> Ledger-SMB automatically moves all income and expense into the specified year-end/retained earnings
+</p><!--l. 725--><p class="indent"> LedgerSMB automatically moves all income and expense into the specified year-end/retained earnings
account. It does not move the drawing account, and this must be done manually, nor does it automate the
process of making adjustments.
</p><!--l. 730--><p class="indent"> Contrary to its name, this function can close the books at any time, though this would likely be of limited
use.
</p>
<h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
- id="x1-480004.8"></a>Options in the ledger-smb.conf</h4>
-<!--l. 736--><p class="noindent">The ledger-smb.conf configures the software by assigning site-wide variables. Most of these should be left
+ id="x1-480004.8"></a>Options in the ledgersmb.conf</h4>
+<!--l. 736--><p class="noindent">The ledgersmb.conf configures the software by assigning site-wide variables. Most of these should be left
alone unless one knows what one is doing. However, on some systems some options might need to be
changed, so all options are presented here for reference:
</p><!--l. 741--><p class="indent">
@@ -1327,7 +1328,7 @@ class="description">allows one to set the language for the login screen and admi
</dd><dt class="description">
<span
class="pplb8t-">latex</span> </dt><dd
-class="description">tells Ledger-SMB whether <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+class="description">tells LedgerSMB whether <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span> is installed. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span> is required for generating Postscript and
PDF invoices and the like.
@@ -1431,7 +1432,7 @@ with sales tax.
</p>
<h4 class="subsectionHead"><span class="titlemark">5.8 </span> <a
id="x1-580005.8"></a>Assemblies and Manufacturing</h4>
-<!--l. 834--><p class="noindent">Manufacturers order parts but they sell the products of their efforts. Ledger-SMB supports manufacturing
+<!--l. 834--><p class="noindent">Manufacturers order parts but they sell the products of their efforts. LedgerSMB supports manufacturing
using the concept of assemblies. An assembly is any product which is manufactured on site. It consists of a
selection of parts, services, and/or labor and overhead. Assemblies are treated as parts in most other
regards.
@@ -1443,7 +1444,7 @@ them once they are manufactured.
id="x1-590005.8.1"></a>Stocking Assemblies</h5>
<!--l. 846--><p class="noindent">One stocks assemblies in the Stock Assembly entry on the Goods and Services submenu. When an assembly
is stocked the inventory is adjusted properly.
-</p><!--l. 850--><p class="indent"> The Check Inventory option will cause Ledger-SMB to refuse to stock an assembly if the inventory
+</p><!--l. 850--><p class="indent"> The Check Inventory option will cause LedgerSMB to refuse to stock an assembly if the inventory
required to produce the assembly would drop the part below the reorder point.
</p><!--l. 855--><p class="noindent">
</p>
@@ -1596,7 +1597,7 @@ into the inventory when they are invoiced.
different.
</p><!--l. 1001--><p class="indent"> The AP Invoice section has a capacity to separate internal notes from notes printed on the invoice. Note,
however, that since these are received invoices, it is rare that one needs this ability.
-</p><!--l. 1005--><p class="indent"> Note that Ledger-SMB can search for partial part numbers or descriptions.
+</p><!--l. 1005--><p class="indent"> Note that LedgerSMB can search for partial part numbers or descriptions.
</p><!--l. 1007--><p class="indent"> Also if you have a group you can use this to select the part.
</p><!--l. 1009--><p class="indent"> To remove a line item from an invoice or order, delete the partnumber and click update.
</p><!--l. 1013--><p class="noindent">
@@ -1798,7 +1799,7 @@ that these can be entered as AR transactions associated with the customer.
<h4 class="subsectionHead"><span class="titlemark">8.1 </span> <a
id="x1-960008.1"></a>Project Basics</h4>
<!--l. 1221--><p class="noindent">A project is a logical collection of AR and AP transactions, orders, and the like that allow one to better
-manage specific service or product offerings. Ledger-SMB does not offer comprehensive project management
+manage specific service or product offerings. LedgerSMB does not offer comprehensive project management
capabilities, and projects are only used here as they relate to accounting.
</p><!--l. 1226--><p class="indent"> One can also add translated descriptions to the project names as well.
</p><!--l. 1229--><p class="noindent">
@@ -1853,7 +1854,7 @@ numbers, one can see the transactions associated with the project.
</p>
<h3 class="sectionHead"><span class="titlemark">9 </span> <a
id="x1-1040009"></a>Quotations and Order Management</h3>
-<!--l. 1283--><p class="noindent">This unit will introduce the business processes that Ledger-SMB allows. These processes are designed to
+<!--l. 1283--><p class="noindent">This unit will introduce the business processes that LedgerSMB allows. These processes are designed to
allow various types of businesses to manage their orders and allow for rudimentary customer
relationship management processes to be built around this software. In this section, we will
introduce the work flow options that many businesses may use in their day-to-day use of the
@@ -2211,7 +2212,7 @@ try to avoid having IP addresses where the last octet is the same.
</p>
<h4 class="subsectionHead"><span class="titlemark">12.1 </span> <a
id="x1-13300012.1"></a>GL Basics</h4>
-<!--l. 1614--><p class="noindent">The General Ledger is the heart of Ledger-SMB. Indeed, Ledger-SMB is designed to be as close as possible to
+<!--l. 1614--><p class="noindent">The General Ledger is the heart of LedgerSMB. Indeed, LedgerSMB is designed to be as close as possible to
a software equivalent of a paper-based accounting program (but with no difference between the General
Ledger and General Journal).
</p><!--l. 1620--><p class="noindent">
@@ -2378,23 +2379,23 @@ class="td11"> </td> </tr></table>
<!--l. 1742--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">12.1.3 </span> <a
- id="x1-13600012.1.3"></a>The GL in Ledger-SMB</h5>
+ id="x1-13600012.1.3"></a>The GL in LedgerSMB</h5>
<!--l. 1744--><p class="noindent">The paper-based accounting procedure works well when one is stuck with paper recording requirements but
it has one serious deficiency&#8212; all of this transcribing creates an opportunity for errors.
</p><!--l. 1748--><p class="indent"> Relational databases relieve the need for such transcription as it is possible to store everything
physically in a way similar to the way a General Journal is used in the paper-based systems and then
present the same information in ways which are more closely related to the General Ledger
book.
-</p><!--l. 1754--><p class="indent"> This is the exact way that the General Ledger is used in Ledger-SMB. The actual data is entered and
+</p><!--l. 1754--><p class="indent"> This is the exact way that the General Ledger is used in LedgerSMB. The actual data is entered and
stored as if it was a general journal, and then the data can be presented in any number of different
ways.
-</p><!--l. 1758--><p class="indent"> All modules of Ledger-SMB that involve COA accounts store their data in the General Ledger (it is a little
+</p><!--l. 1758--><p class="indent"> All modules of LedgerSMB that involve COA accounts store their data in the General Ledger (it is a little
more complex than this but this is very close to the actual mechanism).
</p><!--l. 1763--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">12.2 </span> <a
id="x1-13700012.2"></a>Cash Transfer</h4>
-<!--l. 1765--><p class="noindent">The simplest form of GL entry in Ledger-SMB is the Cash-&#x003E;Transfer screen. This screen shows two
+<!--l. 1765--><p class="noindent">The simplest form of GL entry in LedgerSMB is the Cash-&#x003E;Transfer screen. This screen shows two
transaction lines, and fields for reference, department, description, and notes.
</p><!--l. 1769--><p class="indent"> The field descriptions are as follows:
</p><!--l. 1771--><p class="indent">
@@ -2547,7 +2548,7 @@ href="LedgerSMB-manual3.html#fn2x0"><sup class="textsuperscript">2</sup></a></sp
</p>
<h4 class="subsectionHead"><span class="titlemark">12.6 </span> <a
id="x1-14100012.6"></a>Reports</h4>
-<!--l. 1876--><p class="noindent">The most flexible report in Ledger-SMB is the GL report because it has access to the entire set of financial
+<!--l. 1876--><p class="noindent">The most flexible report in LedgerSMB is the GL report because it has access to the entire set of financial
transactions of a business. Every invoice posted, payment made or received, etc. can be located
here.
</p><!--l. 1881--><p class="indent"> The search criteria include:
@@ -2596,7 +2597,7 @@ specific check number.
id="x1-14300013"></a>Recurring Transactions</h3>
<!--l. 1914--><p class="noindent">Any transaction or invoice may be repeated a number of times in regular intervals. To schedule any GL, AR,
or AP transaction or invoice, click the schedule button.
-</p><!--l. 1918--><p class="indent"> In general the reference number should be left blank as this will force Ledger-SMB to create a new invoice
+</p><!--l. 1918--><p class="indent"> In general the reference number should be left blank as this will force LedgerSMB to create a new invoice
or transaction number for each iteration. The rest of the options are self-explanatory. Note that a blank
number if iterations will result in no recurrences of the transaction.
</p><!--l. 1924--><p class="indent"> To process the recurring transactions, click on the Recurring Transactions option on the main menu select
@@ -2666,7 +2667,7 @@ as whether or not they have been reconciled.
id="x1-15000014.3.3"></a>What if the Trial Balance doesn&#8217;t Balance?</h5>
<!--l. 2002--><p class="noindent">If the trial balance does not balance, get technical support immediately. This usually means that transactions
were not entered properly. Some may have been out of balance, or some may have gone into non-existent
-accounts (believe it or not, Ledger-SMB does not check this latter issue).
+accounts (believe it or not, LedgerSMB does not check this latter issue).
</p><!--l. 2009--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.3.4 </span> <a
@@ -2753,7 +2754,7 @@ addressed.
</p>
<h4 class="subsectionHead"><span class="titlemark">14.5 </span> <a
id="x1-15500014.5"></a>Balance Sheet</h4>
-<!--l. 2076--><p class="noindent">The balance sheet is the second major accounting statement supported by Ledger-SMB. The balance sheet
+<!--l. 2076--><p class="noindent">The balance sheet is the second major accounting statement supported by LedgerSMB. The balance sheet
provides a snapshot of the current financial health of the business by comparing assets, liabilities, and
equity.
</p><!--l. 2081--><p class="indent"> In essence the balance sheet is a statement of the current state of owner equity. Traditionally, it does not
@@ -2807,7 +2808,7 @@ transactions did not post properly.
</p>
<h4 class="subsectionHead"><span class="titlemark">14.7 </span> <a
id="x1-15700014.7"></a>No Statement of Owner Equity?</h4>
-<!--l. 2120--><p class="noindent">The Statement of Owner Equity is the one accounting statement that Ledger-SMB does not support.
+<!--l. 2120--><p class="noindent">The Statement of Owner Equity is the one accounting statement that LedgerSMB does not support.
However, it can be simulated by running a balance sheet at the end of the time frame in question and
comparing it to the beginning. One can check this against an income statement for the period in question
to verify its accuracy. The statement of owner equity is not as commonly used now as it once
@@ -2816,7 +2817,7 @@ was.
</p>
<h3 class="sectionHead"><span class="titlemark">15 </span> <a
id="x1-15800015"></a>The Template System</h3>
-<!--l. 2130--><p class="noindent">Ledger-SMB allows most documents to be generated according to a template system. This allows financial
+<!--l. 2130--><p class="noindent">LedgerSMB allows most documents to be generated according to a template system. This allows financial
statements, invoices, orders, and the like to be customized to meet the needs of most businesses. Company
logos can be inserted, the format can be radically altered, one can print letters to be included
with checks to vendors instead of the checks themselves, and the like. In the end, there is very
@@ -2831,15 +2832,15 @@ invoice than a customer in Canada.
<!--l. 2145--><p class="noindent">The only template that uses a text-only format is the POS receipt. This example provides the simplest way to
understand the template system.
</p><!--l. 2149--><p class="indent"> The first two lines are:
-<br class="newline" />&#x003C;%company align=center width=40%&#x003E;
-<br class="newline" />&#x003C;%address align=center width=40%&#x003E;
+<br class="newline" />&#x003C;?lsmb company align=center width=40 ?&#x003E;
+<br class="newline" />&#x003C;?lsmb address align=center width=40 ?&#x003E;
<br class="newline" />
-</p><!--l. 2154--><p class="indent"> The first line tells Ledger-SMB to print the company name as passed to it via a variable, centered, with a
+</p><!--l. 2154--><p class="indent"> The first line tells LedgerSMB to print the company name as passed to it via a variable, centered, with a
page width of 40 characters. The second line does the same thing with the address.
</p><!--l. 2158--><p class="indent"> These variables are usually passed to the invoice using form fields (hidden or otherwise) in the
submitting web page. The printing script, however, can disable some of these fields or add others via
database lookups and the like.
-</p><!--l. 2163--><p class="indent"> In all types of templates, variable substitution occurs between &#x003C;% and %&#x003E;. One can optionally specify an
+</p><!--l. 2163--><p class="indent"> In all types of templates, variable substitution occurs between &#x003C;?lsmb and ?&#x003E;. One can optionally specify an
alignment or a width but these are really only useful in text templates.
@@ -2991,14 +2992,14 @@ by it.
</p>
<h4 class="subsectionHead"><span class="titlemark">15.5 </span> <a
id="x1-16500015.5"></a>How are They Stored in the Filesystem?</h4>
-<!--l. 2282--><p class="noindent">The template directory ("templates" in the root Ledger-SMB install directory) contains all the root templates
-used by Ledger-SMB. These follow a naming convention of COAType-templatename.ext where COAType is
+<!--l. 2282--><p class="noindent">The template directory ("templates" in the root LedgerSMB install directory) contains all the root templates
+used by LedgerSMB. These follow a naming convention of COAType-templatename.ext where COAType is
the type of dataset that was created when the user was created, templatename is the name of the template,
and ext is either txt, html, or tex (for text, html, and <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;respectively).
</p><!--l. 2289--><p class="indent"> Inside this directory are one or more subdirectories where the relevant templates have been copied as
default language templates for the user. Many users can use the same user directory (which bears the name
-of the Ledger-SMB username). Within this directory are more subdirectories for translated templates, one for
+of the LedgerSMB username). Within this directory are more subdirectories for translated templates, one for
each language created.
@@ -3006,7 +3007,7 @@ each language created.
</p>
<h4 class="subsectionHead"><span class="titlemark">15.6 </span> <a
id="x1-16600015.6"></a>Upgrade Issues</h4>
-<!--l. 2298--><p class="noindent">When Ledger-SMB is upgraded, the templates are not replaced. This is designed to prevent the upgrade
+<!--l. 2298--><p class="noindent">When LedgerSMB is upgraded, the templates are not replaced. This is designed to prevent the upgrade
script from overwriting changes made during the course of customizing the templates.
</p><!--l. 2302--><p class="indent"> Occasionally, however, the data model changes in a way which can cause the templates to stop printing
certain information. When information that was showing up before an upgrade stops showing up, one can
@@ -3025,20 +3026,20 @@ template to make the change.
</p>
<h4 class="subsectionHead"><span class="titlemark">16.2 </span> <a
id="x1-16900016.2"></a>Preliminaries</h4>
-<!--l. 2316--><p class="noindent">Logging into Ledger-SMB (1.2+) updates a row in the users_conf table containing your account configuration
+<!--l. 2316--><p class="noindent">Logging into LedgerSMB (1.2+) updates a row in the users_conf table containing your account configuration
defaults and other information. The implication for API users of LSMB is that you must login as part of
running API scripts. For security purposes, it is recommended that scripts prompt for a password rather than
storing it.
</p><!--l. 2322--><p class="indent"> All scripts included in the documentation can also be found in the doc/samples directory.
</p><!--l. 2325--><p class="indent"> Consider a simple example:
-</p><!--l. 2327--><p class="indent"> cd /usr/local/ledger-smb ./ct.pl "login=name&amp;path=bin&amp;password=xxxxx&amp;action=search&amp;db=customer"
-</p><!--l. 2330--><p class="indent"> The cd command moves your terminal session&#8217;s current working directory into the main Ledger-SMB
-directory. Then the Ledger-SMB perl script ct.pl is called with one long line as an argument. The argument is
+</p><!--l. 2327--><p class="indent"> cd /usr/local/ledgersmb ./ct.pl "login=name&amp;path=bin&amp;password=xxxxx&amp;action=search&amp;db=customer"
+</p><!--l. 2330--><p class="indent"> The cd command moves your terminal session&#8217;s current working directory into the main LedgerSMB
+directory. Then the LedgerSMB perl script ct.pl is called with one long line as an argument. The argument is
really several variable=value pairs separated by ampersands (&amp;). The value for the login variable is the
-username that Ledger-SMB is to use, and the value for the password variable is the plaintext
+username that LedgerSMB is to use, and the value for the password variable is the plaintext
password.
</p><!--l. 2336--><p class="indent"> To build our examples we will use a username of "clarkkent" who has a password of "lOis,lAn3".
-</p><!--l. 2339--><p class="indent"> cd /usr/local/ledger-smb ./ct.pl "login=clarkkent&amp;path=bin&amp;password=lOis,lAn3&amp;action=search&amp;db=customer"
+</p><!--l. 2339--><p class="indent"> cd /usr/local/ledgersmb ./ct.pl "login=clarkkent&amp;path=bin&amp;password=lOis,lAn3&amp;action=search&amp;db=customer"
</p><!--l. 2342--><p class="indent"> If we execute these commands we will get the html for the search form for the customer database. This
result isn&#8217;t useful in itself, but it shows we are on the right track.
</p><!--l. 2347--><p class="noindent">
@@ -3050,16 +3051,16 @@ result isn&#8217;t useful in itself, but it shows we are on the right track.
<!--l. 2349--><p class="noindent">With a working example, we can start to build reproducible routines that we can grow to do some useful
work.
</p><!--l. 2352--><p class="indent"> This is a bash script which:
-</p><!--l. 2354--><p class="indent"> 1. sets NOW to the current working directory 2. prompts for and reads your Ledger-SMB login 3. prompts
-for and reads (non-echoing) your Ledger-SMB password 4. changes directory to /usr/local/ledger-smb 5.
-constructs login and logout commands and a transaction command 6. logins into ledger-smb (in a real
+</p><!--l. 2354--><p class="indent"> 1. sets NOW to the current working directory 2. prompts for and reads your LedgerSMB login 3. prompts
+for and reads (non-echoing) your LedgerSMB password 4. changes directory to /usr/local/ledgersmb 5.
+constructs login and logout commands and a transaction command 6. logs into ledgersmb (in a real
program, output would be checked for success or failure) 7. executes the transaction 8. logs out
-of ledger-smb (although this is not necessary) 9. returns to the original working directory 10.
+of ledgersmb (although this is not necessary) 9. returns to the original working directory 10.
exits
</p><!--l. 2366--><p class="indent"> Running lsmb01-cli-example.sh produces:
</p><!--l. 2368--><p class="indent"> $ lsmb01-cli-example.sh
-</p><!--l. 2370--><p class="indent"> Ledger-SMB login: clarkkent
-</p><!--l. 2372--><p class="indent"> Ledger-SMB password:
+</p><!--l. 2370--><p class="indent"> LedgerSMB login: clarkkent
+</p><!--l. 2372--><p class="indent"> LedgerSMB password:
</p>
@@ -3118,11 +3119,11 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />
&#x00A0;<br />NOW=&#8216;pwd&#8216;
&#x00A0;<br />
-&#x00A0;<br />echo&#x00A0;-n&#x00A0;~Ledger-SMB&#x00A0;login:&#x00A0;~
+&#x00A0;<br />echo&#x00A0;-n&#x00A0;~LedgerSMB&#x00A0;login:&#x00A0;~
&#x00A0;<br />read&#x00A0;LSLOGIN
&#x00A0;<br />echo
&#x00A0;<br />
-&#x00A0;<br />echo&#x00A0;-n&#x00A0;~Ledger-SMB&#x00A0;password:&#x00A0;~
+&#x00A0;<br />echo&#x00A0;-n&#x00A0;~LedgerSMB&#x00A0;password:&#x00A0;~
&#x00A0;<br />stty&#x00A0;-echo
&#x00A0;<br />read&#x00A0;LSPWD
&#x00A0;<br />stty&#x00A0;echo
@@ -3133,7 +3134,7 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />LGIN=~login=${LSLOGIN}&amp;password=${LSPWD}&amp;path=bin&amp;action=login~
&#x00A0;<br />LGOT=~login=${LSLOGIN}&amp;password=${LSPWD}&amp;path=bin&amp;action=logout~
&#x00A0;<br />
-&#x00A0;<br />cd&#x00A0;/usr/local/ledger-smb
+&#x00A0;<br />cd&#x00A0;/usr/local/ledgersmb
&#x00A0;<br />
&#x00A0;<br />./login.pl&#x00A0;$LGIN&#x00A0;2&#x003E;&amp;1&#x00A0;&#x00A0;&#x003E;&#x00A0;/dev/null
&#x00A0;<br />./ct.pl&#x00A0;$ARG
@@ -3156,9 +3157,9 @@ builds commands and then executes them. This type of script can be used for more
the simple bash script above, though it is still fairly limited. If your needs require, rather than have the script
build and then execute the commands it could be written to generate a shell script which is executed by
hand.
-</p><!--l. 2459--><p class="indent"> This script begins by prompting for your Ledger-SMB login and password. Using the supplied
+</p><!--l. 2459--><p class="indent"> This script begins by prompting for your LedgerSMB login and password. Using the supplied
values a login command is constructed and passed into the runLScmd subroutine. runLScmd
-changes directory to /usr/local/ledger-smb/ for the length of the subroutine. It formats the
+changes directory to /usr/local/ledgersmb/ for the length of the subroutine. It formats the
command and executes it and returns both the output and error information to the caller in a
scalar.
</p><!--l. 2465--><p class="indent"> The script checks to see if there was an error in the login, exiting if there was.
@@ -3179,7 +3180,7 @@ class="verbatim"><div class="verbatim">
#!/usr/bin/perl&#x00A0;-w
&#x00A0;<br />#
&#x00A0;<br />#&#x00A0;&#x00A0;File:&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;lsmb02-cli-example.pl
-&#x00A0;<br />#&#x00A0;&#x00A0;Environment:&#x00A0;&#x00A0;Ledger-SMB&#x00A0;1.2.0+
+&#x00A0;<br />#&#x00A0;&#x00A0;Environment:&#x00A0;&#x00A0;LedgerSMB&#x00A0;1.2.0+
&#x00A0;<br />#&#x00A0;&#x00A0;Author:&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Louis&#x00A0;B.&#x00A0;Moore
&#x00A0;<br />#
&#x00A0;<br />#&#x00A0;&#x00A0;Copyright&#x00A0;(C)&#x00A0;&#x00A0;&#x00A0;2006&#x00A0;&#x00A0;Louis&#x00A0;B.&#x00A0;Moore
@@ -3207,12 +3208,12 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />use&#x00A0;HTML::Entities;
&#x00A0;<br />
&#x00A0;<br />
-&#x00A0;<br />print&#x00A0;~\n\nLedger-SMB&#x00A0;login:&#x00A0;~;
+&#x00A0;<br />print&#x00A0;~\n\nLedgerSMB&#x00A0;login:&#x00A0;~;
&#x00A0;<br />my&#x00A0;$login&#x00A0;=&#x00A0;&#x003C;STDIN&#x003E;;
&#x00A0;<br />chomp($login);
&#x00A0;<br />
&#x00A0;<br />
-&#x00A0;<br />print&#x00A0;~\nLedger-SMB&#x00A0;password:&#x00A0;~;
+&#x00A0;<br />print&#x00A0;~\nLedgerSMB&#x00A0;password:&#x00A0;~;
&#x00A0;<br />system(~stty&#x00A0;-echo~);
&#x00A0;<br />my&#x00A0;$pwd&#x00A0;=&#x00A0;&#x003C;STDIN&#x003E;;
&#x00A0;<br />system(~stty&#x00A0;echo~);
@@ -3297,7 +3298,7 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$i&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;0;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$results;
&#x00A0;<br />
-&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;local&#x00A0;$CWD&#x00A0;=&#x00A0;~/usr/local/ledger-smb/~;
+&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;local&#x00A0;$CWD&#x00A0;=&#x00A0;~/usr/local/ledgersmb/~;
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;$cmd&#x00A0;=&#x00A0;$cmd&#x00A0;.&#x00A0;~&#x00A0;\~~&#x00A0;.&#x00A0;$args&#x00A0;.&#x00A0;~\~~;
&#x00A0;<br />
@@ -3347,7 +3348,7 @@ class="verbatim"><div class="verbatim">
id="x1-174000II"></a>Technical Overview</h1>
<h3 class="sectionHead"><span class="titlemark">17 </span> <a
id="x1-17500017"></a>Basic Architecture</h3>
-<!--l. 2642--><p class="noindent">Ledger-SMB is a web-based Perl program that interfaces with PostgreSQL using the relevant Perl modules.
+<!--l. 2642--><p class="noindent">LedgerSMB is a web-based Perl program that interfaces with PostgreSQL using the relevant Perl modules.
The code is well partitioned, and the main operation modules are written in an object oriented
way.
</p><!--l. 2647--><p class="noindent">
@@ -3367,23 +3368,23 @@ way.
src="LedgerSMB-manual6x.png" alt="PICT" />
<br /></p><table class="caption"
><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;8: </td><td
-class="content">The Ledger-SMB software stack in a Typical Implementation</td></tr></table><!--tex4ht:label?: x1-1760018 -->
+class="content">The LedgerSMB software stack in a Typical Implementation</td></tr></table><!--tex4ht:label?: x1-1760018 -->
</td></tr></table></div><hr class="endfigure" />
-<!--l. 2658--><p class="indent"> Ledger-SMB runs in a Perl interpreter. I do not currently know if it is possible to run it with Perl2C or
+<!--l. 2658--><p class="indent"> LedgerSMB runs in a Perl interpreter. I do not currently know if it is possible to run it with Perl2C or
other language converters to run in other environments. However, except for high-capacity environments,
Perl is a good language choice for this sort of program.
-</p><!--l. 2663--><p class="indent"> Ledger-SMB used to support DB2 and Oracle as well as PostgreSQL. However, currently some of the
+</p><!--l. 2663--><p class="indent"> LedgerSMB used to support DB2 and Oracle as well as PostgreSQL. However, currently some of the
functionality is implemented using PostgreSQL user-defined functions. These would need to be ported to
other database managers in order to make the software work on these. It should not be too hard, but the fact
that it has not been done yet may mean that there is no real demand for running the software under other
RDBMS&#8217;s.
-</p><!--l. 2670--><p class="indent"> One can substitute other web servers for Apache. Normally Ledger-SMB is run as a CGI program
+</p><!--l. 2670--><p class="indent"> One can substitute other web servers for Apache. Normally LedgerSMB is run as a CGI program
but it may be possible to run it in the web server process (note that this may not be entirely
thread-safe).
</p><!--l. 2674--><p class="indent"> The operating system can be any that supports a web server and Perl (since PostgreSQL need not run on
-the same system). However, there are a few issues running Ledger-SMB on Windows (most notably in trying
+the same system). However, there are a few issues running LedgerSMB on Windows (most notably in trying
to get Postscript documents to print properly).
</p><!--l. 2679--><p class="indent"> On the client side, any web-browser will work. Currently, the layout is different for Lynx (which doesn&#8217;t
support frames), and the layout is not really useful under eLinks (the replacement for Lynx which does
@@ -3392,22 +3393,22 @@ without these features.
</p>
<h4 class="subsectionHead"><span class="titlemark">17.2 </span> <a
id="x1-17700017.2"></a>Capacity Planning</h4>
-<!--l. 2688--><p class="noindent">Some companies may ask how scalable Ledger-SMB is. In general, it is assumed that few companies are
+<!--l. 2688--><p class="noindent">Some companies may ask how scalable LedgerSMB is. In general, it is assumed that few companies are
going to have a need for a high-concurrency accounting system. However, with all the features available in
-Ledger-SMB, the staff that may have access to some of the application may be senior enough to make the
+LedgerSMB, the staff that may have access to some of the application may be senior enough to make the
question worthwhile.
-</p><!--l. 2694--><p class="indent"> This question also becomes more important when companies might look at integrating Ledger-SMB with
+</p><!--l. 2694--><p class="indent"> This question also becomes more important when companies might look at integrating LedgerSMB with
a CRM solution, online store, or other environment. This section looks at a number of the known issues and
their solutions.
</p><!--l. 2700--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">17.2.1 </span> <a
id="x1-17800017.2.1"></a>Scalability Strategies</h5>
-<!--l. 2702--><p class="noindent">Ledger-SMB is a fairly standard web-based application. However, sometimes the database schema changes
+<!--l. 2702--><p class="noindent">LedgerSMB is a fairly standard web-based application. However, sometimes the database schema changes
during upgrades. In these cases, it becomes impossible to use different versions of the software against the
-same database version safely. Ledger-SMB checks the version of the database and if the version is higher than
+same database version safely. LedgerSMB checks the version of the database and if the version is higher than
the version of the software that is running, will refuse to run.
-</p><!--l. 2709--><p class="indent"> Therefore although one strategy might be to run several front-end web servers with Ledger-SMB, in
+</p><!--l. 2709--><p class="indent"> Therefore although one strategy might be to run several front-end web servers with LedgerSMB, in
reality this can be a bit of a problem. One solution is to take half of the front-end servers off-line while
doing the initial upgrade, and then take the other offline to upgrade when these are brought back
online.
@@ -3418,7 +3419,7 @@ Slony-I).
</p><!--l. 2721--><p class="indent"> If this solution is insufficient for database scalability, one might be able to move staff who do not need
real-time access to new entries onto a PG-Pool/Slony-I cluster where new transactions are entered on the
master and other data is looked up on the replica. In certain circumstances, one can also offload a number of
-other queries from the master database in order to minimize the load. Ledger-SMB has very few issues in the
+other queries from the master database in order to minimize the load. LedgerSMB has very few issues in the
scalability of the application.
@@ -3432,7 +3433,7 @@ row is updated, PostgreSQL leaves the old row in the database, and inserts a new
table. Over time, unless those old rows are removed, performance can degrade as PostgreSQL has to search
through all the old versions of the row in order to determine which one ought to be the current
one.
-</p><!--l. 2741--><p class="indent"> Due to the way the SQL statements are executed in Ledger-SMB, most inserts will also create a dead
+</p><!--l. 2741--><p class="indent"> Due to the way the SQL statements are executed in LedgerSMB, most inserts will also create a dead
row.
</p><!--l. 2744--><p class="indent"> A second problem occurs in that each transaction is given a transaction id. These id&#8217;s are numbered using
32-bit integers. If the transaction id wraps around (prior to 8.1), data from transactions that appear
@@ -3475,17 +3476,17 @@ source code and edit the database queries to omit unused tables.
</p>
<h3 class="sectionHead"><span class="titlemark">18 </span> <a
id="x1-18100018"></a>Customization Possibilities</h3>
-<!--l. 2798--><p class="noindent">Ledger-SMB is designed to be customized relatively easily and rapidly. In general, the source
+<!--l. 2798--><p class="noindent">LedgerSMB is designed to be customized relatively easily and rapidly. In general, the source
code is well written and compartmentalized. This section covers the basic possibilities involving
customization.
</p><!--l. 2803--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">18.1 </span> <a
id="x1-18200018.1"></a>Brief Guide to the Source Code</h4>
-<!--l. 2805--><p class="noindent">Ledger-SMB is an application with over 34000 lines of code. While it is not possible to cover the entire
+<!--l. 2805--><p class="noindent">LedgerSMB is an application with over 34000 lines of code. While it is not possible to cover the entire
application here, a brief overview of the source code is in order.
</p><!--l. 2809--><p class="indent"> In the root of the install directory, one will find a setup.pl program, a number of other .pl programs, and a
-number of directories. The setup.pl program is used to update or install Ledger-SMB. The other .pl programs
+number of directories. The setup.pl program is used to update or install LedgerSMB. The other .pl programs
provide a basic set of services for the framework (including authentication) and then pass the work on to the
data entry screen file in the bin directory.
</p><!--l. 2816--><p class="indent"> The bin directory contains another directory for each terminal type. The main two offered are lynx and
@@ -3494,9 +3495,9 @@ terminal. Mozilla is the terminal type used for most other web browsers. The per
directories provides the user interface of the software.
</p><!--l. 2823--><p class="indent"> The css directory in the root install directory contains CSS documents to provide various stylesheets one
can select for changing various aspects of the look and feel of the application.
-</p><!--l. 2827--><p class="indent"> The locale directory contains translation files that Ledger-SMB uses to translate between different
+</p><!--l. 2827--><p class="indent"> The locale directory contains translation files that LedgerSMB uses to translate between different
languages. One could add translations to these files if necessary.
-</p><!--l. 2831--><p class="indent"> The LSMB directory is where the Perl modules reside that provide the core business logic in Ledger-SMB.
+</p><!--l. 2831--><p class="indent"> The LSMB directory is where the Perl modules reside that provide the core business logic in LedgerSMB.
These modules provide functionality such as form handling, email capabilities, and access to the database
through its at least partially object oriented API.
</p><!--l. 2836--><p class="indent"> Finally, the sql directory provides the database schemas and upgrade scripts.
@@ -3513,7 +3514,7 @@ etc.
<!--l. 2848--><p class="noindent">We set up hot keys for payment lines, automatically focused the keyboard on the last partnumber field,
removed separate print and post buttons to ensure that invoices were always printed and posted together,
and removed the ability to print to the screen, and even the ability to scan items in when an invoice was
-received (using a portable data terminal) and import this data into Ledger-SMB. Finally we added the ability
+received (using a portable data terminal) and import this data into LedgerSMB. Finally we added the ability
to reconcile the till online in a paperless manner.
</p><!--l. 2856--><p class="indent"> For another customer, we added the ability to print AR invoices in plain text format and added templates
(based on the POS sales template) to do this.
@@ -3550,9 +3551,9 @@ Javascript in them to automatically print them on load.
</p>
<h4 class="subsectionHead"><span class="titlemark">18.5 </span> <a
id="x1-18900018.5"></a>Reports</h4>
-<!--l. 2896--><p class="noindent">The fact that all the data is available within the database manager is a huge advantage of Ledger-SMB over
+<!--l. 2896--><p class="noindent">The fact that all the data is available within the database manager is a huge advantage of LedgerSMB over
Quickbooks and the like. The rapid development of reports allows for one to easily develop reports of any
-sort within Ledger-SMB.
+sort within LedgerSMB.
</p><!--l. 2902--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">18.5.1 </span> <a
@@ -3571,7 +3572,7 @@ challenges, but in the end, one can integrate a large number of tools.
</p>
<h4 class="subsectionHead"><span class="titlemark">19.1 </span> <a
id="x1-19200019.1"></a>Reporting Tools</h4>
-<!--l. 2918--><p class="noindent">Any reporting tool which can access the PostgreSQL database can be used with Ledger-SMB for custom
+<!--l. 2918--><p class="noindent">Any reporting tool which can access the PostgreSQL database can be used with LedgerSMB for custom
reporting. These can include programs like Microsoft Access and Excel (using the ODBC drivers), PgAccess
(A PostgreSQL front-end written in TCL/Tk with a similar feel to Access), Rekall, Crystal Reports,
OpenOffice and more.
@@ -3582,20 +3583,20 @@ OpenOffice and more.
<!--l. 2927--><p class="noindent">We have created spreadsheets of the summaries of activity by day and used the ODBC driver to import these
into Excel. Excel can also read HTML tables, so one can use PostgreSQL to create an HTML table of the result
and save it with a .xls extension so that Windows opens it with Excel. These could then be served via the
-same web server that serves Ledger-SMB.
+same web server that serves LedgerSMB.
</p><!--l. 2935--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">19.2 </span> <a
id="x1-19400019.2"></a>Line of Business Tools on PostgreSQL</h4>
<!--l. 2937--><p class="noindent">Various line of business tools have been written using PostgreSQL in large part due to the fact that it is far
more mature than MySQL in areas relating to data integrity enforcement, transactional processing, and the
-like. These tools can be integrated with Ledger-SMB in various ways. One could integrate this program with
+like. These tools can be integrated with LedgerSMB in various ways. One could integrate this program with
the HERMES CRM framework, for example.
</p><!--l. 2945--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.2.1 </span> <a
id="x1-19500019.2.1"></a>Known Issues</h5>
-<!--l. 2947--><p class="noindent">Ledger-SMB uses a single &#8217;id&#8217; sequence across many tables. At the same time it is expected that these tables
+<!--l. 2947--><p class="noindent">LedgerSMB uses a single &#8217;id&#8217; sequence across many tables. At the same time it is expected that these tables
do not have identical id values in their records as they are used as a sort of pseudo-foreign key by the
acc_trans table which stores the financial transaction information.
</p><!--l. 2953--><p class="indent"> If the integration solution does not keep this in mind, it is possible to create a situation where the account
@@ -3610,11 +3611,11 @@ would lead to a large number of problems.
<!--l. 2961--><p class="noindent">In general, it is advisable to run all such programs that benefit from integration in the same database but
under different schemas. This allows PostgreSQL to become the main method of synchronizing the data in
real time. However, sometimes this can require dumping the database, recreating the tables etc. in a different
-schema and importing the data back into Ledger-SMB.
+schema and importing the data back into LedgerSMB.
</p><!--l. 2968--><p class="indent"> One possibility for this sort of integration is to use database triggers to replicate the data between the
applications in real-time. This can avoid the main issue of duplicate id&#8217;s. One issue that can occur however
relates to updates. If one updates a customer record in HERMES, for example, how do we know which
-record to update in Ledger-SMB? There are solutions to this problem but they do require some
+record to update in LedgerSMB? There are solutions to this problem but they do require some
forethought.
</p><!--l. 2975--><p class="indent"> A second possibility is to use views to allow one application to present the data from the other as its own.
This can be cleaner regarding update issues, but it can also pose issues regarding duplicate id
@@ -3623,14 +3624,14 @@ fields.
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.2.3 </span> <a
id="x1-19700019.2.3"></a>Examples</h5>
-<!--l. 2983--><p class="noindent">Others have integrated L&#8217;ane POS and Ledger-SMB in order to make it work better with touch screen
-devices. Still others have successfully integrated Ledger-SMB and Interchange. In both cases, I believe that
+<!--l. 2983--><p class="noindent">Others have integrated L&#8217;ane POS and LedgerSMB in order to make it work better with touch screen
+devices. Still others have successfully integrated LedgerSMB and Interchange. In both cases, I believe that
triggers were used to perform the actual integration.
</p><!--l. 2989--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">19.3 </span> <a
id="x1-19800019.3"></a>Line of Business Tools on other RDBMS&#8217;s</h4>
-<!--l. 2991--><p class="noindent">Often there are requests to integrate Ledger-SMB with applications like SugarCRM, OSCommerce, and other
+<!--l. 2991--><p class="noindent">Often there are requests to integrate LedgerSMB with applications like SugarCRM, OSCommerce, and other
applications running on MySQL or other database managers. This is a far more complex field and it requires
a great deal more effort than integrating applications within the same database.
</p><!--l. 2998--><p class="noindent">
@@ -3644,7 +3645,7 @@ Replication may be somewhat error-prone unless the database manager supports tri
MySQL in 5.0) or other mechanisms to ensure that all changed records can be detected and replicated. In
general, it is usually advisable to add two fields to the record&#8211; one that shows the insert time and one that
shows the last update.
-</p><!--l. 3011--><p class="indent"> Additionally, I would suggest adding additional information to the Ledger-SMB tables so that you can
+</p><!--l. 3011--><p class="indent"> Additionally, I would suggest adding additional information to the LedgerSMB tables so that you can
track the source record from the other application in the case of an update.
</p><!--l. 3015--><p class="indent"> In general, one must write replication scripts that dump the information from one and add it to the other.
This must go both ways.
@@ -3675,7 +3676,7 @@ previous discussions of this topic, it is listed separately.
such basic features as instantiating the form object, ensuring that the user is logged in, and the
like. They then pass the execution off to the user interface script (usually in the bin/mozilla
directory).
-</p><!--l. 3050--><p class="indent"> Ledger-SMB in many ways may look sort of object oriented in its design, but in reality, it is far more
+</p><!--l. 3050--><p class="indent"> LedgerSMB in many ways may look sort of object oriented in its design, but in reality, it is far more
data-driven than object oriented. The Form object is used largely as a global symbol table and also as a
collection of fundamental routines for things like database access. It also breaks down the query string into
sets of variables which are stored in its attribute hash table.
@@ -3686,7 +3687,7 @@ object.
</p>
<h4 class="subsectionHead"><span class="titlemark">20.2 </span> <a
id="x1-20300020.2"></a>Customizing Templates</h4>
-<!--l. 3065--><p class="noindent">Templates are used to generate printed checks, invoices, receipts, and more in Ledger-SMB. Often the format
+<!--l. 3065--><p class="noindent">Templates are used to generate printed checks, invoices, receipts, and more in LedgerSMB. Often the format
of these items does not fit a specific set of requirements and needs to be changed. This document will not
include <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span> or HTML instruction, but will include a general introduction to editing templates. Also, this
@@ -3766,7 +3767,7 @@ reasons.
cross-reference data moves the object to another page). In this case you will need to use three passes of
<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;in order to have accurate references.
-</p><!--l. 3142--><p class="indent"> Ledger-SMB as of the time of this writing (2.6.8) only makes one pass at the <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+</p><!--l. 3142--><p class="indent"> LedgerSMB as of the time of this writing (2.6.8) only makes one pass at the <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;file. To
force it to make more than one pass, open Form.pm with your favorite text editor. Look for the
line:
@@ -3797,7 +3798,7 @@ class="cmsy-10">} </span>.err");
</p>
<h4 class="subsectionHead"><span class="titlemark">20.3 </span> <a
id="x1-21000020.3"></a>Customizing Forms</h4>
-<!--l. 3173--><p class="noindent">Data entry forms and other user interface pieces are in the bin directory. In Ledger-SMB 1.0.0 and later,
+<!--l. 3173--><p class="noindent">Data entry forms and other user interface pieces are in the bin directory. In LedgerSMB 1.0.0 and later,
symlinks are not generally used.
</p><!--l. 3176--><p class="indent"> Each module is identified with a two letter combination: ar, ap, cp, etc. These combinations are generally
explained in the comment headers on each file.
@@ -3848,11 +3849,11 @@ href="http://www.sql-ledger.org/cgi-bin/nav.pl?page=contrib/moore.html&title=Lou
id="x1-214000III"></a>Appendix</h1>
<h3 class="sectionHead"><span class="titlemark">A </span> <a
id="x1-215000A"></a>Where to Go for More Information</h3>
-<!--l. 3240--><p class="noindent">There are a couple of relevant sources of information on Ledger-SMB in particular.
+<!--l. 3240--><p class="noindent">There are a couple of relevant sources of information on LedgerSMB in particular.
</p><!--l. 3243--><p class="indent"> The most important resources are the LedgerSMB web site (<span class="obeylines-h"><a
href="http://www.ledgersmb.org" class="url" >http://www.ledgersmb.org</a></span>) and the email
lists found at our Sourceforge site.
-</p><!--l. 3247--><p class="indent"> In addition, it is generally recommended that the main bookkeeper of a company using Ledger-SMB
+</p><!--l. 3247--><p class="indent"> In addition, it is generally recommended that the main bookkeeper of a company using LedgerSMB
work through at least one accounting textbook. Which textbook is not as important as the fact that a textbook
is used.
</p><!--l. 3253--><p class="noindent">
@@ -3888,7 +3889,7 @@ expense.
<ul class="itemize1">
- <li class="itemize">Ledger-SMB is generally best installed in its own directory outside of the wwwroot directory.
+ <li class="itemize">LedgerSMB is generally best installed in its own directory outside of the wwwroot directory.
While it is possible to install it inside the wwwroot directory, the instructions and the faq don&#8217;t
cover the common problems here.
</li>
@@ -3904,7 +3905,7 @@ store.
</p><!--l. 3302--><p class="indent">
</p><ol class="enumerate1" >
<li class="enumerate"><a
- id="x1-221002x1"></a>Install Ledger-SMB.
+ id="x1-221002x1"></a>Install LedgerSMB.
</li>
<li class="enumerate"><a
id="x1-221004x2"></a>Set preferences, and customize chart of accounts.
@@ -3980,14 +3981,14 @@ class="cmmi-10">&#x003E;</span>payment. Fill out approrpiate fields and click
<ul class="itemize2">
<li class="itemize">Saving a customer returns to the customer screen. After the appropriate invoice,
- transaction, etc. is entered and posted, Ledger-SMB will return to the add customer
+ transaction, etc. is entered and posted, LedgerSMB will return to the add customer
screen.</li></ul>
</li></ul>
</li>
<li class="enumerate"><a
id="x1-221020x9"></a>One can use the requirements report to help determine what parts need to be ordered though one
cannot generate PO&#8217;s directly from this report.</li></ol>
-<!--l. 3377--><p class="noindent">Note, the needs of Ledger-SMB are mostly useful for light manufacturing operations (assembling
+<!--l. 3377--><p class="noindent">Note, the needs of LedgerSMB are mostly useful for light manufacturing operations (assembling
computers, for example). More manufacturing capabilities are expected to be released in the next
version.
</p><!--l. 3381--><p class="indent"> A custom assembly is a bit difficult to make. One must add the assembly prior to invoice (this is not true