summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-04-09 21:40:35 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2007-04-09 21:40:35 +0000
commite10829e143ce3594cc00a86d71b327ae70278ef4 (patch)
treef39a7c66f4328df25c814442feaf3576d3f6d7de
parent9ac438fcaa597205207c99d37463620ecbbf49c8 (diff)
Updated changelog for 1.2.1
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/branches/1.2@1049 4979c152-3d1c-0410-bac9-87ea11338e46
-rw-r--r--Changelog5
-rwxr-xr-xLedgerSMB/Form.pm1
-rw-r--r--doc/html_manual/LedgerSMB-manual.html1105
-rw-r--r--doc/html_manual/LedgerSMB-manual2.html4
-rw-r--r--doc/html_manual/LedgerSMB-manual3.html4
-rw-r--r--doc/html_manual/LedgerSMB-manual4.html4
-rw-r--r--doc/manual/LedgerSMB-manual.aux2
-rw-r--r--doc/manual/LedgerSMB-manual.log445
-rw-r--r--doc/manual/LedgerSMB-manual.tex6
-rw-r--r--templates/demo/letterhead.tex2
10 files changed, 821 insertions, 757 deletions
diff --git a/Changelog b/Changelog
index b3ba83b0..739e9644 100644
--- a/Changelog
+++ b/Changelog
@@ -1,6 +1,11 @@
Changelog for LedgerSMB 1.2.1
* Modifed AM.pm to correctly use globals from ledgersmb.conf (Joshua Drake)
* Simplified backup functions in AM.pm (Joshua Drake)
+* Corrected serious sales tax posting bug (Chris Travers)
+* Corrected two sales tax display bugs (Chris Travers)
+* Corrected configure_apache.sh not rewriting WORKING_DIR (Chris Travers)
+* Corrected documentation about tax entry (Chris Travers)
+* Corrected logos not printing on PDF/PS invoices (Chris Travers)
Changelog for LedgerSMB 1.2.0
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm
index 191f0b9d..6430274b 100755
--- a/LedgerSMB/Form.pm
+++ b/LedgerSMB/Form.pm
@@ -638,6 +638,7 @@ sub parse_template {
my $tmpfile = $self->{IN};
$tmpfile =~ s/\./_$self->{fileid}./ if $self->{fileid};
$self->{tmpfile} = "${LedgerSMB::Sysconfig::tempdir}/${fileid}_${tmpfile}";
+
my $temphash;
if ($self->{format} =~ /(postscript|pdf)/ || $self->{media} eq 'email') {
diff --git a/doc/html_manual/LedgerSMB-manual.html b/doc/html_manual/LedgerSMB-manual.html
index f1053f41..219f05ea 100644
--- a/doc/html_manual/LedgerSMB-manual.html
+++ b/doc/html_manual/LedgerSMB-manual.html
@@ -10,7 +10,7 @@
<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-03-26 00:09:00" />
+<meta name="date" content="2007-04-09 13:59:00" />
<link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" />
</head><body
>
@@ -25,7 +25,7 @@
class="pplr8t-x-x-120">The LedgerSMB Core Team</span></div>
<br />
<div class="date" ><span
-class="pplr8t-x-x-120">March 26, 2007</span></div>
+class="pplr8t-x-x-120">April 9, 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
@@ -1044,41 +1044,40 @@ example, when PST applies to the total and GST as well).
<!--l. 487--><p class="noindent">Sales Tax is collected on behalf of a state or national government by the individual store. Thus a sales tax
account is a liability&#8211; it represents money owed by the business to the government.
</p><!--l. 491--><p class="indent"> To add a sales tax account, create an account in the Chart of Accounts as a liability account, check all of
-the "tax" checkboxes, and answer the following question as "yes:"
-</p><!--l. 495--><p class="indent"> "Include this account on the customer/vendor forms to flag customer/vendor as taxable?"
-</p><!--l. 498--><p class="indent"> Once this account is created, one can set the tax amount.
-</p><!--l. 501--><p class="noindent">
+the "tax" checkboxes.
+</p><!--l. 494--><p class="indent"> Once this account is created, one can set the tax amount.
+</p><!--l. 497--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.1.2 </span> <a
id="x1-300004.1.2"></a>Setting a Sales Tax Amount</h5>
-<!--l. 503--><p class="noindent">Go to System-&#x003E;Defaults and the tax account will be listed near the bottom of the page. The rate can be set
+<!--l. 499--><p class="noindent">Go to System-&#x003E;Defaults and the tax account will be listed near the bottom of the page. The rate can be set
there.
-</p><!--l. 507--><p class="noindent">
+</p><!--l. 503--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.1.3 </span> <a
id="x1-310004.1.3"></a>Default Account Setup</h5>
-<!--l. 509--><p class="noindent">These accounts are the default accounts for part creation and foreign exchange tracking.
-</p><!--l. 513--><p class="noindent">
+<!--l. 505--><p class="noindent">These accounts are the default accounts for part creation and foreign exchange tracking.
+</p><!--l. 509--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.1.4 </span> <a
id="x1-320004.1.4"></a>Currency Setup</h5>
-<!--l. 515--><p class="noindent">The US accounts list this as USD:CAD:EUR. One can add other currencies in here, such as IDR (Indonesian
+<!--l. 511--><p class="noindent">The US accounts list this as USD:CAD:EUR. One can add other currencies in here, such as IDR (Indonesian
Rupiah), etc. Currencies are separated by colons.
-</p><!--l. 520--><p class="noindent">
+</p><!--l. 516--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.1.5 </span> <a
id="x1-330004.1.5"></a>Sequence Settings</h5>
-<!--l. 522--><p class="noindent">These sequences are used to generate user identifiers for quotations, invoices, and the like. If an identifier is
+<!--l. 518--><p class="noindent">These sequences are used to generate user identifiers for quotations, invoices, and the like. If an identifier is
not added, the next number will be used.
-</p><!--l. 526--><p class="indent"> A common application is to set invoices, etc. to start at 1000 in order to hide the number of issued invoices
+</p><!--l. 522--><p class="indent"> A common application is to set invoices, etc. to start at 1000 in order to hide the number of issued invoices
from a customer.
-</p><!--l. 529--><p class="indent"> Leading zeros are preserved. Other special values which can be embedded using <span
+</p><!--l. 525--><p class="indent"> Leading zeros are preserved. Other special values which can be embedded using <span
class="cmmi-10">&#x003C;</span>?lsmb ?<span
class="cmmi-10">&#x003E; </span>tags
include:
-</p><!--l. 532--><p class="indent">
+</p><!--l. 528--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">DATE</span> </dt><dd
@@ -1112,26 +1111,26 @@ class="description">expands to the partsgroup. Valid only for parts.
<span
class="pplb8t-">PHONE</span> </dt><dd
class="description">expands to the telephoen number for customers and vendors.</dd></dl>
-<!--l. 546--><p class="noindent">
+<!--l. 542--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
id="x1-340004.2"></a>Audit Control</h4>
-<!--l. 548--><p class="noindent">Auditability is a core concern of the architects of any accounting system. Such ensures that any modification
+<!--l. 544--><p class="noindent">Auditability is a core concern of the architects of any accounting system. Such ensures that any modification
to the accounting information leaves a trail which can be followed to determine the nature of the change.
Audits can help ensure that the data in the accounting system is meaningful and accurate, and that no foul
play (such as embezzlement) is occurring.
-</p><!--l. 556--><p class="noindent">
+</p><!--l. 552--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.2.1 </span> <a
id="x1-350004.2.1"></a>Explaining transaction reversal</h5>
-<!--l. 558--><p class="noindent">In paper accounting systems, it was necessary to have a means to authoritatively track corrections of
+<!--l. 554--><p class="noindent">In paper accounting systems, it was necessary to have a means to authoritatively track corrections of
mistakes. The means by which this was done was known as "transaction reversal."
-</p><!--l. 562--><p class="indent"> When a mistake would be made, one would then reverse the transaction and then enter it in correctly. For
+</p><!--l. 558--><p class="indent"> When a mistake would be made, one would then reverse the transaction and then enter it in correctly. For
example, let us say that an office was renting space for $300 per month. Let us say that they inadvertently
entered it in as a $200 expense.
-</p><!--l. 567--><p class="indent"> The original transaction would be:
+</p><!--l. 563--><p class="indent"> The original transaction would be:
</p>
<div class="tabular"><table class="tabular"
cellspacing="0" cellpadding="0" rules="groups"
@@ -1158,7 +1157,7 @@ class="td11"> $200</td>
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-1"
class="td11"> </td> </tr></table>
</div>
-<!--l. 582--><p class="indent"> The reversal would be:
+<!--l. 578--><p class="indent"> The reversal would be:
</p>
<div class="tabular"><table class="tabular"
cellspacing="0" cellpadding="0" rules="groups"
@@ -1185,112 +1184,112 @@ class="td11"> </td>
style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
class="td11"> </td> </tr></table>
</div>
-<!--l. 597--><p class="indent"> This would be followed by re-entering the rent data with the correct numbers. This was meant to ensure
+<!--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. 602--><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"> Ledger-SMB 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. 608--><p class="indent"> Most accountants prefer this means to other audit trails because it is well proven and understood by
+</p><!--l. 604--><p class="indent"> Most accountants prefer this means to other audit trails because it is well proven and understood by
them.
-</p><!--l. 612--><p class="noindent">
+</p><!--l. 608--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.2.2 </span> <a
id="x1-360004.2.2"></a>Close books option</h5>
-<!--l. 614--><p class="noindent">You cannot alter a transaction that was entered before the closing date.
-</p><!--l. 617--><p class="noindent">
+<!--l. 610--><p class="noindent">You cannot alter a transaction that was entered before the closing date.
+</p><!--l. 613--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.2.3 </span> <a
id="x1-370004.2.3"></a>Audit Trails</h5>
-<!--l. 619--><p class="noindent">This option stores additional information in the database to help auditors trace individual transactions. The
+<!--l. 615--><p class="noindent">This option stores additional information in the database to help auditors trace individual transactions. The
information stored, however, is limited and it is intended to be supplemental to other auditing
facilities.
-</p><!--l. 624--><p class="indent"> The information added includes which table stored the record, which employee entered the
+</p><!--l. 620--><p class="indent"> The information added includes which table stored the record, which employee entered the
information, which form was used, and what the action was. No direct financial information is
included.
-</p><!--l. 629--><p class="noindent">
+</p><!--l. 625--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
id="x1-380004.3"></a>Departments</h4>
-<!--l. 631--><p class="noindent">Departments are logical divisions of a business. They allow for budgets to be prepared for the individual
+<!--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
needs.
-</p><!--l. 637--><p class="noindent">
+</p><!--l. 633--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.3.1 </span> <a
id="x1-390004.3.1"></a>Cost v Profit Centers.</h5>
-<!--l. 639--><p class="noindent">In general business units are divided into cost and profit centers. Cost centers are generally regarded as
+<!--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. 645--><p class="indent"> One of the serious misunderstandings people run up against is that Ledger-SMB tends to more narrowly
+</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
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
are profit centers.
-</p><!--l. 653--><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"> Ledger-SMB 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. 658--><p class="noindent">
+</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. 660--><p class="noindent">Ledger-SMB has the ability to track inventory by warehouse. Inventory items can be moved between
+<!--l. 656--><p class="noindent">Ledger-SMB 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. 665--><p class="noindent">
+</p><!--l. 661--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
id="x1-410004.5"></a>Languages</h4>
-<!--l. 667--><p class="noindent">Languages allow for goods and services to be translated so that one can maintain offices in different
+<!--l. 663--><p class="noindent">Languages allow for goods and services to be translated so that one can maintain offices in different
countries and allow for different goods and service descriptions to be translated to different languages for
localization purposes.
-</p><!--l. 673--><p class="noindent">
+</p><!--l. 669--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
id="x1-420004.6"></a>Types of Businesses</h4>
-<!--l. 675--><p class="noindent">One can create types of businesses and then give them discounts across the board. For example, one might
+<!--l. 671--><p class="noindent">One can create types of businesses and then give them discounts across the board. For example, one might
give a firm that uses one&#8217;s services as a subcontractor a 10% discount or more.
-</p><!--l. 680--><p class="noindent">
+</p><!--l. 676--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
id="x1-430004.7"></a>Misc.</h4>
-<!--l. 683--><p class="noindent">
+<!--l. 679--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.7.1 </span> <a
id="x1-440004.7.1"></a>GIFI</h5>
-<!--l. 685--><p class="noindent">GIFI is a requirement for Canadian customers. This feature allows one to link accounts with
+<!--l. 681--><p class="noindent">GIFI is a requirement for Canadian customers. This feature allows one to link accounts with
Canadian tax codes to simplify the reporting process. Some European countries now use a similar
system.
-</p><!--l. 689--><p class="indent"> People that don&#8217;t otherwise have a use for GIFI can use it to create reports which agregate accounts
+</p><!--l. 685--><p class="indent"> People that don&#8217;t otherwise have a use for GIFI can use it to create reports which agregate accounts
together.
-</p><!--l. 692--><p class="noindent">
+</p><!--l. 688--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.7.2 </span> <a
id="x1-450004.7.2"></a>SIC</h5>
-<!--l. 694--><p class="noindent">Standard Industrial Classification is a way of tracking the type of business that a vendor or customer is in.
+<!--l. 690--><p class="noindent">Standard Industrial Classification is a way of tracking the type of business that a vendor or customer is in.
For example, an accountant would have an SIC of 8721 while a graphic design firm would have an SIC of
7336. The classification is hierarchical so one could use this field for custom reporting and marketing
purposes.
-</p><!--l. 701--><p class="noindent">
+</p><!--l. 697--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.7.3 </span> <a
id="x1-460004.7.3"></a>Overview of Template Editing</h5>
-<!--l. 703--><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 Ledger-SMB. 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.
-</p><!--l. 709--><p class="noindent">
+</p><!--l. 705--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">4.7.4 </span> <a
id="x1-470004.7.4"></a>Year-end</h5>
-<!--l. 711--><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 Ledger-SMB 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.
-</p><!--l. 717--><p class="indent"> The standard way books are normally closed at the end of the year is by moving all
+</p><!--l. 713--><p class="indent"> The standard way books are normally closed at the end of the year is by moving all
adjusted<span class="footnote-mark"><a
href="LedgerSMB-manual2.html#fn1x0"><sup class="textsuperscript">1</sup></a></span><a
id="x1-47001f1"></a>
@@ -1299,18 +1298,18 @@ 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. 729--><p class="indent"> Ledger-SMB automatically moves all income and expense into the specified year-end/retained earnings
+</p><!--l. 725--><p class="indent"> Ledger-SMB 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. 734--><p class="indent"> Contrary to its name, this function can close the books at any time, though this would likely be of limited
+</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. 740--><p class="noindent">The ledger-smb.conf configures the software by assigning site-wide variables. Most of these should be left
+<!--l. 736--><p class="noindent">The ledger-smb.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. 745--><p class="indent">
+</p><!--l. 741--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">templates</span> </dt><dd
@@ -1348,17 +1347,17 @@ class="cmr-10">]</span>
<br class="newline" />Color = lpr -PEpson
<br class="newline" />However, this can use any program that can accept print documents (in Postscript) from
standard input, so there are many more possibilities.</dd></dl>
-<!--l. 765--><p class="noindent">
+<!--l. 761--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">5 </span> <a
id="x1-490005"></a>Goods and Services</h3>
-<!--l. 767--><p class="noindent">The Goods and Services module will focus on the definition of goods and services and the related accounting
+<!--l. 763--><p class="noindent">The Goods and Services module will focus on the definition of goods and services and the related accounting
concepts.
-</p><!--l. 771--><p class="noindent">
+</p><!--l. 767--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
id="x1-500005.1"></a>Basic Terms</h4>
-<!--l. 773--><p class="noindent">
+<!--l. 769--><p class="noindent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">COGS</span> </dt><dd
@@ -1382,82 +1381,82 @@ class="pplb8t-">Sell</span> </dt><dd
class="description">Price is the price at which the item is sold.</dd></dl>
-<!--l. 784--><p class="noindent">
+<!--l. 780--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.2 </span> <a
id="x1-510005.2"></a>The Price Matrix</h4>
-<!--l. 786--><p class="noindent">It is possible to set different prices for different groups of customers, or for different customers individually.
+<!--l. 782--><p class="noindent">It is possible to set different prices for different groups of customers, or for different customers individually.
Similarly, one can track different prices from different vendors along with the required lead time for an
order.
-</p><!--l. 792--><p class="noindent">
+</p><!--l. 788--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.3 </span> <a
id="x1-520005.3"></a>Pricegroups</h4>
-<!--l. 794--><p class="noindent">Pricegroups are used to help determine the discount a given customer may have.
-</p><!--l. 798--><p class="noindent">
+<!--l. 790--><p class="noindent">Pricegroups are used to help determine the discount a given customer may have.
+</p><!--l. 794--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.4 </span> <a
id="x1-530005.4"></a>Groups</h4>
-<!--l. 800--><p class="noindent">Groups represent a way of categorizing POS items for a touchscreen environment. It is not fully functional
+<!--l. 796--><p class="noindent">Groups represent a way of categorizing POS items for a touchscreen environment. It is not fully functional
yet, but is sufficient that with some stylesheet changes, it could be made to work.
-</p><!--l. 805--><p class="noindent">
+</p><!--l. 801--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.5 </span> <a
id="x1-540005.5"></a>Labor/Overhead</h4>
-<!--l. 807--><p class="noindent">Labor/overhead is usually used for tracking manufacturing expenses. It is not directly billed to a customer. It
+<!--l. 803--><p class="noindent">Labor/overhead is usually used for tracking manufacturing expenses. It is not directly billed to a customer. It
is associated with an expense/Cost of Goods Sold (COGS) account.
-</p><!--l. 812--><p class="noindent">
+</p><!--l. 808--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.6 </span> <a
id="x1-550005.6"></a>Services</h4>
-<!--l. 814--><p class="noindent">Services include any labor that is billed directly to the customer. It is associated with an expense/COGS
+<!--l. 810--><p class="noindent">Services include any labor that is billed directly to the customer. It is associated with an expense/COGS
account and an income account. Services can be associated with sales tax.
-</p><!--l. 819--><p class="noindent">
+</p><!--l. 815--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.6.1 </span> <a
id="x1-560005.6.1"></a>Shipping and Handling as a Service</h5>
-<!--l. 821--><p class="noindent">One approach to dealing with shipping and handling is to add it as a service. Create a service called
+<!--l. 817--><p class="noindent">One approach to dealing with shipping and handling is to add it as a service. Create a service called
&#8220;Shipping and Handling&#8221;, with a sell price $1 per unit, and a 0% markup. Bill it as $1 per unit. This allows
one to add the exact amount of shipping and handling as necessary.
-</p><!--l. 828--><p class="noindent">
+</p><!--l. 824--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.7 </span> <a
id="x1-570005.7"></a>Parts</h4>
-<!--l. 830--><p class="noindent">A part is any single item you might purchase and either might resell or use in manufacturing an assembly. It
+<!--l. 826--><p class="noindent">A part is any single item you might purchase and either might resell or use in manufacturing an assembly. It
is linked to an expense/COGS account, an income account, and an inventory account. Parts can be associated
with sales tax.
-</p><!--l. 836--><p class="noindent">
+</p><!--l. 832--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.8 </span> <a
id="x1-580005.8"></a>Assemblies and Manufacturing</h4>
-<!--l. 838--><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. Ledger-SMB 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.
-</p><!--l. 844--><p class="indent"> However, one cannot order assemblies from vendors. One must instead order the components and stock
+</p><!--l. 840--><p class="indent"> However, one cannot order assemblies from vendors. One must instead order the components and stock
them once they are manufactured.
-</p><!--l. 848--><p class="noindent">
+</p><!--l. 844--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.8.1 </span> <a
id="x1-590005.8.1"></a>Stocking Assemblies</h5>
-<!--l. 850--><p class="noindent">One stocks assemblies in the Stock Assembly entry on the Goods and Services submenu. When an assembly
+<!--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. 854--><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 Ledger-SMB to refuse to stock an assembly if the inventory
required to produce the assembly would drop the part below the reorder point.
-</p><!--l. 859--><p class="noindent">
+</p><!--l. 855--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.9 </span> <a
id="x1-600005.9"></a>Reporting</h4>
-<!--l. 862--><p class="noindent">
+<!--l. 858--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.9.1 </span> <a
id="x1-610005.9.1"></a>All Items and Parts Reports</h5>
-<!--l. 864--><p class="noindent">The All Items report provides a unified view of assemblies, parts, services, and labor for the company, while
+<!--l. 860--><p class="noindent">The All Items report provides a unified view of assemblies, parts, services, and labor for the company, while
the Parts report confines it to parts.
-</p><!--l. 867--><p class="indent"> Types of reports are:
-</p><!--l. 869--><p class="indent">
+</p><!--l. 863--><p class="indent"> Types of reports are:
+</p><!--l. 865--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Active</span> </dt><dd
@@ -1478,77 +1477,77 @@ class="description">Lists all items which are marked as obsolete.
<span
class="pplb8t-">Orphaned</span> </dt><dd
class="description">Lists all items which have never had a transaction associated with them.</dd></dl>
-<!--l. 877--><p class="noindent">One can also list these goods by invoice, order, or quotation.
-</p><!--l. 879--><p class="indent"> For best results, it is a good idea to enter some AR and AP data before running these reports.
+<!--l. 873--><p class="noindent">One can also list these goods by invoice, order, or quotation.
+</p><!--l. 875--><p class="indent"> For best results, it is a good idea to enter some AR and AP data before running these reports.
-</p><!--l. 883--><p class="noindent">
+</p><!--l. 879--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.9.2 </span> <a
id="x1-620005.9.2"></a>Requirements</h5>
-<!--l. 885--><p class="noindent">This report is designed to assist managers determine the quantities of goods to order and/or stock. It
+<!--l. 881--><p class="noindent">This report is designed to assist managers determine the quantities of goods to order and/or stock. It
compares the quantity on hand with the activity in a given time frame and provides a list of goods which
need to be ordered and the relevant quantity.
-</p><!--l. 891--><p class="noindent">
+</p><!--l. 887--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.9.3 </span> <a
id="x1-630005.9.3"></a>Services and Labor</h5>
-<!--l. 893--><p class="noindent">This is similar to the Parts and All Items menu but only supports Active, Obsolete, and Orphaned
+<!--l. 889--><p class="noindent">This is similar to the Parts and All Items menu but only supports Active, Obsolete, and Orphaned
reports.
-</p><!--l. 897--><p class="noindent">
+</p><!--l. 893--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.9.4 </span> <a
id="x1-640005.9.4"></a>Assemblies</h5>
-<!--l. 899--><p class="noindent">This is similar to the Parts and All Items reports but it also provides an ability to list individual items in the
+<!--l. 895--><p class="noindent">This is similar to the Parts and All Items reports but it also provides an ability to list individual items in the
assemblies as well.
-</p><!--l. 902--><p class="indent"> AP Invoices, Purchase Orders, and RFQ&#8217;s are not available on this report.
-</p><!--l. 906--><p class="noindent">
+</p><!--l. 898--><p class="indent"> AP Invoices, Purchase Orders, and RFQ&#8217;s are not available on this report.
+</p><!--l. 902--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">5.9.5 </span> <a
id="x1-650005.9.5"></a>Groups and Pricegroups</h5>
-<!--l. 908--><p class="noindent">These reports provide a simple interface for locating groups and pricegroups. The report types are similar to
+<!--l. 904--><p class="noindent">These reports provide a simple interface for locating groups and pricegroups. The report types are similar to
what they are for services.
-</p><!--l. 912--><p class="noindent">
+</p><!--l. 908--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.10 </span> <a
id="x1-660005.10"></a>Translations</h4>
-<!--l. 914--><p class="noindent">One can add translations so that they show up in the customer&#8217;s native language in the issued
+<!--l. 910--><p class="noindent">One can add translations so that they show up in the customer&#8217;s native language in the issued
invoice.
-</p><!--l. 917--><p class="indent"> To issue translations, one must have languages defined. One can then add translations to descriptions and
+</p><!--l. 913--><p class="indent"> To issue translations, one must have languages defined. One can then add translations to descriptions and
part groups.
-</p><!--l. 921--><p class="noindent">
+</p><!--l. 917--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">5.11 </span> <a
id="x1-670005.11"></a>How Cost of Goods Sold is tracked</h4>
-<!--l. 923--><p class="noindent">Cost of Goods Sold is tracked on a First-In, First-out (FIFO) basis. When a part is purchased, its cost is
+<!--l. 919--><p class="noindent">Cost of Goods Sold is tracked on a First-In, First-out (FIFO) basis. When a part is purchased, its cost is
recorded in the database. The cost of the item is then added to the inventory asset account. When the good is
sold, the cost of the item is moved to the cost of goods sold account.
-</p><!--l. 929--><p class="indent"> This means that one must actually provide invoices for all goods entered at their actual cost. If one enters
+</p><!--l. 925--><p class="indent"> This means that one must actually provide invoices for all goods entered at their actual cost. If one enters
in $0 for the cost, the cost of goods sold will also be $0 when the item is sold. We will cover this entire process
in more depth after we cover the AP and AR units below.
-</p><!--l. 936--><p class="noindent">
+</p><!--l. 932--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">6 </span> <a
id="x1-680006"></a>AP</h3>
-<!--l. 939--><p class="noindent">
+<!--l. 935--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.1 </span> <a
id="x1-690006.1"></a>Basic AP Concepts</h4>
-<!--l. 941--><p class="noindent">The Accounts Payable module tracks all financial commitments that the company makes to other businesses.
+<!--l. 937--><p class="noindent">The Accounts Payable module tracks all financial commitments that the company makes to other businesses.
This includes rent, utilities, etc. as well as orders of goods and services.
-</p><!--l. 946--><p class="noindent">
+</p><!--l. 942--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.2 </span> <a
id="x1-700006.2"></a>Vendors</h4>
-<!--l. 948--><p class="noindent">A vendor is any business that the company agrees to pay money to.
-</p><!--l. 950--><p class="indent"> One can enter vendor information under AP-&#x003E;Vendors-&#x003E;Add Vendor. The vendor list can be searched
+<!--l. 944--><p class="noindent">A vendor is any business that the company agrees to pay money to.
+</p><!--l. 946--><p class="indent"> One can enter vendor information under AP-&#x003E;Vendors-&#x003E;Add Vendor. The vendor list can be searched
under AP-&#x003E;Vendors-&#x003E;Reports-&#x003E;Search.
-</p><!--l. 954--><p class="indent"> Enter start and end-dates for each vendor. This will make searches and drop-down boxes faster when
+</p><!--l. 950--><p class="indent"> Enter start and end-dates for each vendor. This will make searches and drop-down boxes faster when
some vendors are no longer actively supporting your company.
-</p><!--l. 958--><p class="indent"> A few fields that need explanation are:
-</p><!--l. 960--><p class="indent">
+</p><!--l. 954--><p class="indent"> A few fields that need explanation are:
+</p><!--l. 956--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">BIC</span> </dt><dd
@@ -1567,120 +1566,120 @@ class="description">is the number of days one has to pay the invoice.
<span
class="pplb8t-">Vendor</span> </dt><dd
class="description">Number is automatically generated.</dd></dl>
-<!--l. 970--><p class="noindent">
+<!--l. 966--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.3 </span> <a
id="x1-710006.3"></a>AP Transactions</h4>
-<!--l. 972--><p class="noindent">AP Transactions are generally used for items other than goods and services. Utilities, rent, travel expenses,
+<!--l. 968--><p class="noindent">AP Transactions are generally used for items other than goods and services. Utilities, rent, travel expenses,
etc. could be entered in as an AP transaction.
-</p><!--l. 976--><p class="indent"> If the item is paid partially or in full when the transaction is entered, one can add payments to the
+</p><!--l. 972--><p class="indent"> If the item is paid partially or in full when the transaction is entered, one can add payments to the
payment section.
-</p><!--l. 979--><p class="indent"> All other payments can and should be entered under cash payment (below).
-</p><!--l. 981--><p class="indent"> The PO Number and Order Number fields are generally used to track associations with purchase orders
+</p><!--l. 975--><p class="indent"> All other payments can and should be entered under cash payment (below).
+</p><!--l. 977--><p class="indent"> The PO Number and Order Number fields are generally used to track associations with purchase orders
sent to vendors, etc. These fields can be helpful for adding misc. expenses to orders for reporting
purposes.
-</p><!--l. 985--><p class="indent"> The department drop-down box appears when one has created one or more departments. A
+</p><!--l. 981--><p class="indent"> The department drop-down box appears when one has created one or more departments. A
transaction is not required to be associated with a department, but one can use this feature for budget
tracking.
-</p><!--l. 989--><p class="indent"> With AP Transactions, there is no option for internal notes. All notes will appear on any printed version of
+</p><!--l. 985--><p class="indent"> With AP Transactions, there is no option for internal notes. All notes will appear on any printed version of
the transaction.
-</p><!--l. 992--><p class="indent"> Note: Printing a transaction does not post it. No data is committed until the invoice is posted.
-</p><!--l. 996--><p class="noindent">
+</p><!--l. 988--><p class="indent"> Note: Printing a transaction does not post it. No data is committed until the invoice is posted.
+</p><!--l. 992--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.4 </span> <a
id="x1-720006.4"></a>AP Invoices</h4>
-<!--l. 998--><p class="noindent">AP Invoices are used to enter in the receipt of goods and services. Goods and services are deemed entered
+<!--l. 994--><p class="noindent">AP Invoices are used to enter in the receipt of goods and services. Goods and services are deemed entered
into the inventory when they are invoiced.
-</p><!--l. 1002--><p class="indent"> This screen is reasonably similar to the AP Transaction Screen, though the part entry section is a bit
+</p><!--l. 998--><p class="indent"> This screen is reasonably similar to the AP Transaction Screen, though the part entry section is a bit
different.
-</p><!--l. 1005--><p class="indent"> The AP Invoice section has a capacity to separate internal notes from notes printed on the invoice. Note,
+</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. 1009--><p class="indent"> Note that Ledger-SMB can search for partial part numbers or descriptions.
-</p><!--l. 1011--><p class="indent"> Also if you have a group you can use this to select the part.
-</p><!--l. 1013--><p class="indent"> To remove a line item from an invoice or order, delete the partnumber and click update.
-</p><!--l. 1017--><p class="noindent">
+</p><!--l. 1005--><p class="indent"> Note that Ledger-SMB 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">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.4.1 </span> <a
id="x1-730006.4.1"></a>Correcting an AP Invoice</h5>
-<!--l. 1019--><p class="noindent">If an invoice is entered improperly, the methods used to correct it will vary depending on whether
+<!--l. 1015--><p class="noindent">If an invoice is entered improperly, the methods used to correct it will vary depending on whether
transaction reversal is enforced or not. If transaction reversal is not enforced, one can simply correct the
invoice or transaction and repost. Note, however, that this violates generally accepted accounting
principles.
-</p><!--l. 1025--><p class="indent"> If transaction reversal is in effect, one needs to create a duplicate invoice with exactly opposite values
+</p><!--l. 1021--><p class="indent"> If transaction reversal is in effect, one needs to create a duplicate invoice with exactly opposite values
entered. If one part was listed as received, then one should enter a negative one for the quantity. Then one
can enter the invoice number as the same as the old one. Add an R to the end to show that it is a reversing
transaction. Once this is posted, one can enter the invoice correctly.
-</p><!--l. 1033--><p class="noindent">
+</p><!--l. 1029--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.5 </span> <a
id="x1-740006.5"></a>Cash payment And Check Printing</h4>
-<!--l. 1035--><p class="noindent">It is a bad idea to repost invoices/transactions just to enter a payment. The Cash-&#x003E;Payment window allows
+<!--l. 1031--><p class="noindent">It is a bad idea to repost invoices/transactions just to enter a payment. The Cash-&#x003E;Payment window allows
one to enter payments against AP invoices or transactions.
-</p><!--l. 1039--><p class="indent"> The printing capability can be used to print checks. The default template is NEBS 9085, though you can
+</p><!--l. 1035--><p class="indent"> The printing capability can be used to print checks. The default template is NEBS 9085, though you can
use 9082 as well (as Quickbooks does).
-</p><!--l. 1042--><p class="indent"> The source field is used to store an identifying number of the source document, such as the check
+</p><!--l. 1038--><p class="indent"> The source field is used to store an identifying number of the source document, such as the check
number. One must select the item to have it paid, and then enter the amount. One can then print a
check.
-</p><!--l. 1047--><p class="noindent">
+</p><!--l. 1043--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.5.1 </span> <a
id="x1-750006.5.1"></a>Rapid Payment Entry Screen</h5>
-<!--l. 1049--><p class="noindent">One can also use the rapid payment entry screen to print multiple checks. However, this does not allow you
+<!--l. 1045--><p class="noindent">One can also use the rapid payment entry screen to print multiple checks. However, this does not allow you
to print the multiple checks to the screen as a separate document is created for each check. In this event, one
must print directly to a printer as postscript.
-</p><!--l. 1055--><p class="noindent">
+</p><!--l. 1051--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.6 </span> <a
id="x1-760006.6"></a>Transaction/Invoice Reporting</h4>
-<!--l. 1058--><p class="noindent">
+<!--l. 1054--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.6.1 </span> <a
id="x1-770006.6.1"></a>Transactions Report</h5>
-<!--l. 1060--><p class="noindent">This report is designed to help you locate AP transactions based on various criteria. One can
+<!--l. 1056--><p class="noindent">This report is designed to help you locate AP transactions based on various criteria. One can
search by vendor, invoice number, department, and the like. One can even search by the shipping
method.
-</p><!--l. 1064--><p class="indent"> The summary button will show what was placed where, while the details button will show all debits and
+</p><!--l. 1060--><p class="indent"> The summary button will show what was placed where, while the details button will show all debits and
credits associated with the transaction.
-</p><!--l. 1067--><p class="indent"> To view the invoice, click on the invoice number. In the detail view, to view the account transactions as a
+</p><!--l. 1063--><p class="indent"> To view the invoice, click on the invoice number. In the detail view, to view the account transactions as a
whole, click on the account number.
-</p><!--l. 1071--><p class="indent"> Open invoices are ones not fully paid off, while closed invoices are those that have been
+</p><!--l. 1067--><p class="indent"> Open invoices are ones not fully paid off, while closed invoices are those that have been
paid.
-</p><!--l. 1075--><p class="noindent">
+</p><!--l. 1071--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.6.2 </span> <a
id="x1-780006.6.2"></a>Outstanding Report</h5>
-<!--l. 1077--><p class="noindent">The outstanding report is designed to help you locate AP transactions that are not paid yet. The
+<!--l. 1073--><p class="noindent">The outstanding report is designed to help you locate AP transactions that are not paid yet. The
ID field is mostly useful for locating the specific database record if a duplicate invoice number
exists.
-</p><!--l. 1082--><p class="noindent">
+</p><!--l. 1078--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.6.3 </span> <a
id="x1-790006.6.3"></a>AP Aging Report</h5>
-<!--l. 1084--><p class="noindent">This report can tell you how many invoices are past due and by how much.
-</p><!--l. 1087--><p class="indent"> A summary report just shows vendors while a detail report shows individual invoices.
-</p><!--l. 1091--><p class="noindent">
+<!--l. 1080--><p class="noindent">This report can tell you how many invoices are past due and by how much.
+</p><!--l. 1083--><p class="indent"> A summary report just shows vendors while a detail report shows individual invoices.
+</p><!--l. 1087--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.6.4 </span> <a
id="x1-800006.6.4"></a>Tax Paid and Non-taxable Report</h5>
-<!--l. 1093--><p class="noindent">These reports have known issues. It is better to use the GL reports and filter accordingly.
-</p><!--l. 1096--><p class="noindent">
+<!--l. 1089--><p class="noindent">These reports have known issues. It is better to use the GL reports and filter accordingly.
+</p><!--l. 1092--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">6.7 </span> <a
id="x1-810006.7"></a>Vendor Reporting</h4>
-<!--l. 1099--><p class="noindent">
+<!--l. 1095--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.7.1 </span> <a
id="x1-820006.7.1"></a>Vendor Search</h5>
-<!--l. 1101--><p class="noindent">The Vendor Search screen can be used to locate vendors or AP transactions associated with those
+<!--l. 1097--><p class="noindent">The Vendor Search screen can be used to locate vendors or AP transactions associated with those
vendors.
-</p><!--l. 1104--><p class="indent"> The basic types of reports are:
-</p><!--l. 1106--><p class="indent">
+</p><!--l. 1100--><p class="indent"> The basic types of reports are:
+</p><!--l. 1102--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">All</span> </dt><dd
@@ -1698,151 +1697,151 @@ class="description">Lists those vendors who are currently inactive. time frame.
class="pplb8t-">Orphaned</span> </dt><dd
class="description">Lists those vendors who do not have transactions associated with them. These vendors
can be deleted.</dd></dl>
-<!--l. 1114--><p class="noindent">One can include purchase orders, Requests for Quotations, AP invoices, and AP transactions on this report as
+<!--l. 1110--><p class="noindent">One can include purchase orders, Requests for Quotations, AP invoices, and AP transactions on this report as
well if they occur between the from and to dates.
-</p><!--l. 1119--><p class="noindent">
+</p><!--l. 1115--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">6.7.2 </span> <a
id="x1-830006.7.2"></a>Vendor History</h5>
-<!--l. 1121--><p class="noindent">This report can be used to obtain information about the past goods and services ordered or received from
+<!--l. 1117--><p class="noindent">This report can be used to obtain information about the past goods and services ordered or received from
vendors. One can find quantities, partnumber, and sell prices on this report. This facility can be used to
search RFQ&#8217;s, Purchase Orders, and AP Invoices.
-</p><!--l. 1127--><p class="noindent">
+</p><!--l. 1123--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">7 </span> <a
id="x1-840007"></a>AR</h3>
-<!--l. 1130--><p class="noindent">
+<!--l. 1126--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">7.1 </span> <a
id="x1-850007.1"></a>Customers</h4>
-<!--l. 1132--><p class="noindent">Customers are entered in using the AR-&#x003E;Customers-&#x003E;Add Customer menu.
-</p><!--l. 1135--><p class="indent"> The salesperson is autopopulated with the current user who is logged in. Otherwise, it looks fairly similar
+<!--l. 1128--><p class="noindent">Customers are entered in using the AR-&#x003E;Customers-&#x003E;Add Customer menu.
+</p><!--l. 1131--><p class="indent"> The salesperson is autopopulated with the current user who is logged in. Otherwise, it looks fairly similar
to the Vendor input screen. Customers, like vendors can be assigned languages, but it is more important to
do so because invoices will be printed and sent to them.
-</p><!--l. 1140--><p class="indent"> The credit limit field can be used to assign an amount that one is willing to do for a customer on
+</p><!--l. 1136--><p class="indent"> The credit limit field can be used to assign an amount that one is willing to do for a customer on
credit.
-</p><!--l. 1144--><p class="noindent">
+</p><!--l. 1140--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">7.1.1 </span> <a
id="x1-860007.1.1"></a>Customer Price Matrix</h5>
-<!--l. 1146--><p class="noindent">The price list button can be used to enter specific discounts to the customer, and groups of customers can be
+<!--l. 1142--><p class="noindent">The price list button can be used to enter specific discounts to the customer, and groups of customers can be
assigned a pricegroup for the purpose of offering specific discounts on specific parts to the customer. Such
discounts can be temporary or permanent.
-</p><!--l. 1152--><p class="noindent">
+</p><!--l. 1148--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">7.2 </span> <a
id="x1-870007.2"></a>AR Transactions</h4>
-<!--l. 1154--><p class="noindent">AR Transactions are where one can add moneys owed the business by customers. One can associate these
+<!--l. 1150--><p class="noindent">AR Transactions are where one can add moneys owed the business by customers. One can associate these
transactions with income accounts, and add payments if the item is paid when the invoice is
issued.
-</p><!--l. 1158--><p class="indent"> The PO number field is used to track the PO that the customer sent. This makes it easier to find items
+</p><!--l. 1154--><p class="indent"> The PO number field is used to track the PO that the customer sent. This makes it easier to find items
when a customer is asking for clarification on a bill, for example.
-</p><!--l. 1163--><p class="noindent">
+</p><!--l. 1159--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">7.3 </span> <a
id="x1-880007.3"></a>AR Invoices</h4>
-<!--l. 1165--><p class="noindent">AR Invoices are designed to provide for the delivery of goods and services to customers. One would
+<!--l. 1161--><p class="noindent">AR Invoices are designed to provide for the delivery of goods and services to customers. One would
normally issue these invoices at the time when the everything has been done that is necessary to get paid by
the customer.
-</p><!--l. 1170--><p class="indent"> As with AP invoices, one can search for matches to partial part numbers and descriptions, and enter
+</p><!--l. 1166--><p class="indent"> As with AP invoices, one can search for matches to partial part numbers and descriptions, and enter
initial payments at this screen.
-</p><!--l. 1174--><p class="noindent">
+</p><!--l. 1170--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">7.4 </span> <a
id="x1-890007.4"></a>Cash Receipt</h4>
-<!--l. 1176--><p class="noindent">The Cash-&#x003E;Receipt screen allows you to accept prepayments from customers or pay single or multiple
+<!--l. 1172--><p class="noindent">The Cash-&#x003E;Receipt screen allows you to accept prepayments from customers or pay single or multiple
invoices after they have been posted. One can print a receipt, however the current templates seem to be
based on check printing templates and so are unsuitable for this purpose. This presents a great opportunity
for improvement.
-</p><!--l. 1183--><p class="noindent">
+</p><!--l. 1179--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">7.4.1 </span> <a
id="x1-900007.4.1"></a>Cash Receipts for multiple customers</h5>
-<!--l. 1185--><p class="noindent">The cash-&#x003E;receipts screen allows you to accept payments on all open customer invoices of all
+<!--l. 1181--><p class="noindent">The cash-&#x003E;receipts screen allows you to accept payments on all open customer invoices of all
customers at once. One could print (directly to a printer only) all receipts to be sent out if this was
desired.
-</p><!--l. 1191--><p class="noindent">
+</p><!--l. 1187--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">7.5 </span> <a
id="x1-910007.5"></a>AR Transaction Reporting</h4>
-<!--l. 1193--><p class="noindent">The AR Outstanding report is almost identical to the AP Outstanding report and is not covered in any detail
+<!--l. 1189--><p class="noindent">The AR Outstanding report is almost identical to the AP Outstanding report and is not covered in any detail
in this document.
-</p><!--l. 1197--><p class="noindent">
+</p><!--l. 1193--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">7.5.1 </span> <a
id="x1-920007.5.1"></a>AR Transactions Report</h5>
-<!--l. 1199--><p class="noindent">This is almost identical to the AP Transactions Report.
-</p><!--l. 1201--><p class="indent"> If a customer&#8217;s PO has been associated with this transaction, one can search under this field as
+<!--l. 1195--><p class="noindent">This is almost identical to the AP Transactions Report.
+</p><!--l. 1197--><p class="indent"> If a customer&#8217;s PO has been associated with this transaction, one can search under this field as
well.
-</p><!--l. 1205--><p class="noindent">
+</p><!--l. 1201--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">7.5.2 </span> <a
id="x1-930007.5.2"></a>AR Aging Report</h5>
-<!--l. 1207--><p class="noindent">This report is almost identical to the AP Aging report, with the exception that one can print up statements for
+<!--l. 1203--><p class="noindent">This report is almost identical to the AP Aging report, with the exception that one can print up statements for
customer accounts that are overdue. One more application is to calculate interest based on balance owed so
that these can be entered as AR transactions associated with the customer.
-</p><!--l. 1214--><p class="noindent">
+</p><!--l. 1210--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">7.6 </span> <a
id="x1-940007.6"></a>Customer Reporting</h4>
-<!--l. 1216--><p class="noindent">These reports are almost identical to the AP Vendor reports and are not discussed in these notes.
-</p><!--l. 1220--><p class="noindent">
+<!--l. 1212--><p class="noindent">These reports are almost identical to the AP Vendor reports and are not discussed in these notes.
+</p><!--l. 1216--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">8 </span> <a
id="x1-950008"></a>Projects</h3>
-<!--l. 1223--><p class="noindent">
+<!--l. 1219--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">8.1 </span> <a
id="x1-960008.1"></a>Project Basics</h4>
-<!--l. 1225--><p class="noindent">A project is a logical collection of AR and AP transactions, orders, and the like that allow one to better
+<!--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
capabilities, and projects are only used here as they relate to accounting.
-</p><!--l. 1230--><p class="indent"> One can also add translated descriptions to the project names as well.
-</p><!--l. 1233--><p class="noindent">
+</p><!--l. 1226--><p class="indent"> One can also add translated descriptions to the project names as well.
+</p><!--l. 1229--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">8.2 </span> <a
id="x1-970008.2"></a>Timecards</h4>
-<!--l. 1235--><p class="noindent">Timecards allow one to track time entered on specific services. These can then be used to generate invoices
+<!--l. 1231--><p class="noindent">Timecards allow one to track time entered on specific services. These can then be used to generate invoices
for the time entered.
-</p><!--l. 1238--><p class="indent"> The non-chargeable is the number of hours that are not billed on the invoice.
-</p><!--l. 1241--><p class="indent"> One can then generate invoices based on this information.
-</p><!--l. 1243--><p class="indent"> The project field is not optional.
-</p><!--l. 1246--><p class="noindent">
+</p><!--l. 1234--><p class="indent"> The non-chargeable is the number of hours that are not billed on the invoice.
+</p><!--l. 1237--><p class="indent"> One can then generate invoices based on this information.
+</p><!--l. 1239--><p class="indent"> The project field is not optional.
+</p><!--l. 1242--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">8.3 </span> <a
id="x1-980008.3"></a>Projects and Invoices</h4>
-<!--l. 1248--><p class="noindent">One can select the project id for line items of both AR and AP invoices. These will then be tracked against the
+<!--l. 1244--><p class="noindent">One can select the project id for line items of both AR and AP invoices. These will then be tracked against the
project itself.
-</p><!--l. 1252--><p class="noindent">
+</p><!--l. 1248--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">8.4 </span> <a
id="x1-990008.4"></a>Reporting</h4>
-<!--l. 1255--><p class="noindent">
+<!--l. 1251--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">8.4.1 </span> <a
id="x1-1000008.4.1"></a>Timecard Reporting</h5>
-<!--l. 1257--><p class="noindent">The Timecard Report allows one to search for timecards associated with one or more projects. One can then
+<!--l. 1253--><p class="noindent">The Timecard Report allows one to search for timecards associated with one or more projects. One can then
use the total time in issuing invoices (this is not automated yet).
-</p><!--l. 1262--><p class="noindent">
+</p><!--l. 1258--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">8.4.2 </span> <a
id="x1-1010008.4.2"></a>Project Transaction Reporting</h5>
-<!--l. 1264--><p class="noindent">The Standard or GIFI options can be used to create different reports (for example, for Canadian Tax reporting
+<!--l. 1260--><p class="noindent">The Standard or GIFI options can be used to create different reports (for example, for Canadian Tax reporting
purposes).
-</p><!--l. 1267--><p class="indent"> This report brings up a summary that looks sort of like a chart of accounts. Of one clicks on the account
+</p><!--l. 1263--><p class="indent"> This report brings up a summary that looks sort of like a chart of accounts. Of one clicks on the account
numbers, one can see the transactions associated with the project.
-</p><!--l. 1272--><p class="noindent">
+</p><!--l. 1268--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">8.4.3 </span> <a
id="x1-1020008.4.3"></a>List of Projects</h5>
-<!--l. 1274--><p class="noindent">This provides a simple way of searching for projects to edit or modify.
-</p><!--l. 1277--><p class="noindent">
+<!--l. 1270--><p class="noindent">This provides a simple way of searching for projects to edit or modify.
+</p><!--l. 1273--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">8.5 </span> <a
id="x1-1030008.5"></a>Possibilities for Using Projects</h4>
@@ -1850,53 +1849,53 @@ numbers, one can see the transactions associated with the project.
<li class="itemize">One can use them similar to departments for tracking work done for a variety of customers.
</li>
<li class="itemize">One can use them for customer-specific projects, such as this training.</li></ul>
-<!--l. 1285--><p class="noindent">
+<!--l. 1281--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">9 </span> <a
id="x1-1040009"></a>Quotations and Order Management</h3>
-<!--l. 1287--><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 Ledger-SMB 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
software.
-</p><!--l. 1295--><p class="noindent">
+</p><!--l. 1291--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.1 </span> <a
id="x1-1050009.1"></a>Sales Orders</h4>
-<!--l. 1297--><p class="noindent">Sales orders represent orders from customers that have not been delivered or shipped yet. These orders can
+<!--l. 1293--><p class="noindent">Sales orders represent orders from customers that have not been delivered or shipped yet. These orders can
be for work in the future, for back ordered products, or work in progress. A sales order can be generated
form an AR invoice or from a quotation automatically.
-</p><!--l. 1303--><p class="noindent">
+</p><!--l. 1299--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.2 </span> <a
id="x1-1060009.2"></a>Quotations</h4>
-<!--l. 1305--><p class="noindent">Quotations are offers made to a customer but to which the customer has not committed to the work.
+<!--l. 1301--><p class="noindent">Quotations are offers made to a customer but to which the customer has not committed to the work.
Quotations can be created from Sales orders or AR Invoice automatically.
-</p><!--l. 1310--><p class="noindent">
+</p><!--l. 1306--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.3 </span> <a
id="x1-1070009.3"></a>Shipping</h4>
-<!--l. 1312--><p class="noindent">The Shipping module (Shipping-&#x003E;Shipping) allows one to ship portions or entireties of existing sales orders,
+<!--l. 1308--><p class="noindent">The Shipping module (Shipping-&#x003E;Shipping) allows one to ship portions or entireties of existing sales orders,
printing pick lists and packing slips.
-</p><!--l. 1316--><p class="indent"> One can then generate invoices for those parts that were shipped.
-</p><!--l. 1318--><p class="indent"> In general, one will be more likely to use these features if they have multiple warehouses that they ship
+</p><!--l. 1312--><p class="indent"> One can then generate invoices for those parts that were shipped.
+</p><!--l. 1314--><p class="indent"> In general, one will be more likely to use these features if they have multiple warehouses that they ship
from. More likely most customers will just generate invoices from orders.
-</p><!--l. 1323--><p class="noindent">
+</p><!--l. 1319--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.4 </span> <a
id="x1-1080009.4"></a>AR Work Flow</h4>
-<!--l. 1326--><p class="noindent">
+<!--l. 1322--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">9.4.1 </span> <a
id="x1-1090009.4.1"></a>Service Example</h5>
-<!--l. 1328--><p class="noindent">A customer contacts your firm and asks for a quote on some services. Your company would create a
+<!--l. 1324--><p class="noindent">A customer contacts your firm and asks for a quote on some services. Your company would create a
quotation for the job and email it to the customer or print it and mail it. Once the customer agrees to pay, one
creates a sales order from the quotation.
-</p><!--l. 1333--><p class="indent"> When the work is completed, the sales order is converted into a sales invoice and this is presented to the
+</p><!--l. 1329--><p class="indent"> When the work is completed, the sales order is converted into a sales invoice and this is presented to the
customer as a bill.
-</p><!--l. 1336--><p class="indent"> Note that in some cases, this procedure may be shortened. If the customer places an order without
+</p><!--l. 1332--><p class="indent"> Note that in some cases, this procedure may be shortened. If the customer places an order without
asking for a quotation and is offered a verbal quote, then one might merely prepare the sales
order.
</p>
@@ -1920,12 +1919,12 @@ src="LedgerSMB-manual0x.png" alt="PICT" />
</td></tr></table></div><hr class="endfigure" />
<h5 class="subsubsectionHead"><span class="titlemark">9.4.2 </span> <a
id="x1-1100009.4.2"></a>Single Warehouse Example</h5>
-<!--l. 1354--><p class="noindent">A customer contacts your firm and asks for a quotation for shipping a part. You would create the quotation
+<!--l. 1350--><p class="noindent">A customer contacts your firm and asks for a quotation for shipping a part. You would create the quotation
and when you get confirmation, convert it to an order. Once the parts are in place you could go to shipping
and ship the part.
-</p><!--l. 1359--><p class="indent"> The billing department can then generate the invoice from the sales order based on what merchandise has
+</p><!--l. 1355--><p class="indent"> The billing department can then generate the invoice from the sales order based on what merchandise has
been shipped and mail it to the customer.
-</p><!--l. 1363--><p class="indent"> Note that this requires that you have the part in your inventory.
+</p><!--l. 1359--><p class="indent"> Note that this requires that you have the part in your inventory.
</p>
<hr class="figure" /><div class="figure"
><table class="figure"><tr class="figure"><td class="figure"
@@ -1947,11 +1946,11 @@ src="LedgerSMB-manual1x.png" alt="PICT" />
</td></tr></table></div><hr class="endfigure" />
<h5 class="subsubsectionHead"><span class="titlemark">9.4.3 </span> <a
id="x1-1110009.4.3"></a>Multiple Warehouse Example</h5>
-<!--l. 1379--><p class="noindent">A customer contacts your firm and asks for a quotation for a number of different parts. You would create a
+<!--l. 1375--><p class="noindent">A customer contacts your firm and asks for a quotation for a number of different parts. You would create a
quotation and when you get confirmation, convert it to a sales order. When you go to ship the item, you
would select the warehouse in the drop-down menu, and select the parts to ship. One would repeat with
other warehouses until the entire order is shipped.
-</p><!--l. 1386--><p class="indent"> Then the billing department would go to the sales order and generate the invoice. It would then be
+</p><!--l. 1382--><p class="indent"> Then the billing department would go to the sales order and generate the invoice. It would then be
mailed to the customer.
</p>
<hr class="figure" /><div class="figure"
@@ -1974,31 +1973,31 @@ src="LedgerSMB-manual2x.png" alt="PICT" />
</td></tr></table></div><hr class="endfigure" />
<h4 class="subsectionHead"><span class="titlemark">9.5 </span> <a
id="x1-1120009.5"></a>Requests for Quotation (RFQ)</h4>
-<!--l. 1403--><p class="noindent">A request for quotation would be a formal document one might submit to a vendor to ask for a quote
+<!--l. 1399--><p class="noindent">A request for quotation would be a formal document one might submit to a vendor to ask for a quote
on a product or service they might offer. These can be generated from Purchase Orders or AP
Invoices.
-</p><!--l. 1408--><p class="noindent">
+</p><!--l. 1404--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.6 </span> <a
id="x1-1130009.6"></a>Purchase Orders</h4>
-<!--l. 1410--><p class="noindent">A purchase order is a confirmation that is issued to the vendor to order the product or service. Many
+<!--l. 1406--><p class="noindent">A purchase order is a confirmation that is issued to the vendor to order the product or service. Many
businesses will require a purchase order with certain terms in order to begin work on a product. These can be
generated from RFQ&#8217;s or AP Invoices.
-</p><!--l. 1416--><p class="noindent">
+</p><!--l. 1412--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.7 </span> <a
id="x1-1140009.7"></a>Receiving</h4>
-<!--l. 1418--><p class="noindent">The Shipping-&#x003E;Receiving screen allows you to track the parts received from an existing purchase order. Like
+<!--l. 1414--><p class="noindent">The Shipping-&#x003E;Receiving screen allows you to track the parts received from an existing purchase order. Like
shipping, it does not post an invoice but tracks the received parts in the order.
-</p><!--l. 1423--><p class="noindent">
+</p><!--l. 1419--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.8 </span> <a
id="x1-1150009.8"></a>AP Work Flow</h4>
-<!--l. 1426--><p class="noindent">
+<!--l. 1422--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">9.8.1 </span> <a
id="x1-1160009.8.1"></a>Bookkeeper entering the received items, order completed in full</h5>
-<!--l. 1428--><p class="noindent">Your company inquires about the price of a given good or service from another firm. You submit an RFQ to
+<!--l. 1424--><p class="noindent">Your company inquires about the price of a given good or service from another firm. You submit an RFQ to
the vendor, and finding that the price is reasonable, you convert it to an order, adjust the price to what they
have quoted, and save it. When the goods are delivered you convert the order into an AP invoice and post
it.
@@ -2023,7 +2022,7 @@ src="LedgerSMB-manual3x.png" alt="PICT" />
</td></tr></table></div><hr class="endfigure" />
<h5 class="subsubsectionHead"><span class="titlemark">9.8.2 </span> <a
id="x1-1170009.8.2"></a>Bookkeeper entering received items, order completed in part</h5>
-<!--l. 1448--><p class="noindent">Your company inquires about the price of a given good or service from another firm, You submit an RFQ to
+<!--l. 1444--><p class="noindent">Your company inquires about the price of a given good or service from another firm, You submit an RFQ to
the vendor, and finding that the price is acceptable, you convert it into an order, adjusting the price to what
they have quoted, and save it. When some of the goods are received, you open up the purchase order, enter
the number of parts received, convert that order into an invoice, and post it. Repeat until all parts are
@@ -2049,12 +2048,12 @@ src="LedgerSMB-manual4x.png" alt="PICT" />
</td></tr></table></div><hr class="endfigure" />
<h5 class="subsubsectionHead"><span class="titlemark">9.8.3 </span> <a
id="x1-1180009.8.3"></a>Receiving staff entering items</h5>
-<!--l. 1470--><p class="noindent">Your company inquires about the price of a given good or service from another firm, You submit an RFQ to
+<!--l. 1466--><p class="noindent">Your company inquires about the price of a given good or service from another firm, You submit an RFQ to
the vendor, and finding that the price is acceptable, you convert it into an order, adjusting the price to
what they have quoted, and save it. When some or all of the goods are received, the receiving
staff goes to Shipping-Receiving, locates the purchase order, and fills in the number of items
received.
-</p><!--l. 1477--><p class="indent"> The bookkeeper can then determine when all items have been received and post the invoice at that
+</p><!--l. 1473--><p class="indent"> The bookkeeper can then determine when all items have been received and post the invoice at that
time.
</p>
<hr class="figure" /><div class="figure"
@@ -2077,53 +2076,53 @@ src="LedgerSMB-manual5x.png" alt="PICT" />
</td></tr></table></div><hr class="endfigure" />
<h4 class="subsectionHead"><span class="titlemark">9.9 </span> <a
id="x1-1190009.9"></a>Generation and Consolidation</h4>
-<!--l. 1495--><p class="noindent">
+<!--l. 1491--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">9.9.1 </span> <a
id="x1-1200009.9.1"></a>Generation</h5>
-<!--l. 1497--><p class="noindent">The Generation screen allows you to generate Purchase Orders based on sales orders. One selects the sales
+<!--l. 1493--><p class="noindent">The Generation screen allows you to generate Purchase Orders based on sales orders. One selects the sales
orders one wants to use, and clicks "Generate Purchase Orders." Then one selects clicks on the parts to order,
adjusts the quantity if necessary, and clicks "Select Vendor." This process is repeated for every vendor
required. Then the Generate Orders button is clicked.
-</p><!--l. 1505--><p class="noindent">
+</p><!--l. 1501--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">9.9.2 </span> <a
id="x1-1210009.9.2"></a>Consolidation</h5>
-<!--l. 1507--><p class="noindent">One can consolidate sales and/or purchase orders using this screen. For the consolidation to work you must
+<!--l. 1503--><p class="noindent">One can consolidate sales and/or purchase orders using this screen. For the consolidation to work you must
have more than one order associated with the relevant customer or vendor.
-</p><!--l. 1512--><p class="noindent">
+</p><!--l. 1508--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.10 </span> <a
id="x1-1220009.10"></a>Reporting</h4>
-<!--l. 1514--><p class="noindent">The reporting functionality in the order management is largely limited to the ability to locate purchase
+<!--l. 1510--><p class="noindent">The reporting functionality in the order management is largely limited to the ability to locate purchase
orders, sales orders, RFQ&#8217;s, and quotations.
-</p><!--l. 1519--><p class="noindent">
+</p><!--l. 1515--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">9.11 </span> <a
id="x1-1230009.11"></a>Shipping Module: Transferring Inventory between Warehouses</h4>
-<!--l. 1521--><p class="noindent">One can transfer inventory between warehouses if necessary by using the Shipping-&#x003E;Transfer Inventory
+<!--l. 1517--><p class="noindent">One can transfer inventory between warehouses if necessary by using the Shipping-&#x003E;Transfer Inventory
screen.
-</p><!--l. 1525--><p class="noindent">
+</p><!--l. 1521--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">10 </span> <a
id="x1-12400010"></a>HR</h3>
-<!--l. 1527--><p class="noindent">The HR module is currently limited to tracking employees for and their start and end dates. It
+<!--l. 1523--><p class="noindent">The HR module is currently limited to tracking employees for and their start and end dates. It
has very little other functionality. One could build payroll systems that could integrate with it
however.
-</p><!--l. 1532--><p class="noindent">
+</p><!--l. 1528--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">11 </span> <a
id="x1-12500011"></a>POS</h3>
-<!--l. 1534--><p class="noindent">LedgerSMB 1.2 includes a number of components merged from Metatron Technology Consulting&#8217;s SL-POS.
+<!--l. 1530--><p class="noindent">LedgerSMB 1.2 includes a number of components merged from Metatron Technology Consulting&#8217;s SL-POS.
Although it is still not a perfect solution, it is greatly improved in both workflow and hardware support. It is
suitable for retail establishments at the moment.
-</p><!--l. 1538--><p class="noindent">
+</p><!--l. 1534--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">11.1 </span> <a
id="x1-12600011.1"></a>Sales Screen</h4>
-<!--l. 1540--><p class="noindent">The sales screen looks very much like a normal invoice entry screen with a few differences.
+<!--l. 1536--><p class="noindent">The sales screen looks very much like a normal invoice entry screen with a few differences.
</p>
<ul class="itemize1">
<li class="itemize">The discount text field is not available, nor is the unit field..
@@ -2136,7 +2135,7 @@ suitable for retail establishments at the moment.
<li class="itemize">Part Groups appear at the bottom of the screen.
</li>
<li class="itemize">Alt-N moves the cursor to the next free payment line.</li></ul>
-<!--l. 1553--><p class="noindent">
+<!--l. 1549--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">11.2 </span> <a
id="x1-12700011.2"></a>Possibilities for Data Entry</h4>
@@ -2145,19 +2144,19 @@ suitable for retail establishments at the moment.
</li>
<li class="itemize">One could use touch screens, though this would ideally require some custom stylesheets to
make it efficient.</li></ul>
-<!--l. 1562--><p class="noindent">
+<!--l. 1558--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">11.3 </span> <a
id="x1-12800011.3"></a>Hardware Support</h4>
-<!--l. 1564--><p class="noindent">As LedgerSMB is a web-based application, the web browser usually does not allow the page to write to
+<!--l. 1560--><p class="noindent">As LedgerSMB is a web-based application, the web browser usually does not allow the page to write to
arbitrary files. Therefore hardware support for pole displays, etc. is not readily possible from the application
itself. LedgerSMB gets around this limitation by using an additional set of network sockets from the server to
the client to control its hardware. This naturally requires that other software is also running on the
client.
-</p><!--l. 1571--><p class="indent"> Notes for specific types of hardware are as follows:
-</p><!--l. 1573--><p class="indent">
+</p><!--l. 1567--><p class="indent"> Notes for specific types of hardware are as follows:
+</p><!--l. 1569--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Touch</span> </dt><dd
@@ -2184,60 +2183,60 @@ class="description">Drawers: These should be attached to the printer. The contro
class="pplb8t-">Barcode</span> </dt><dd
class="description">Scanners: Most customers use decoded barcode scanners through a keyboard wedge
interface. This allows them to scan items as if they were typing them on the keyboard.</dd></dl>
-<!--l. 1591--><p class="noindent">
+<!--l. 1587--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">11.4 </span> <a
id="x1-12900011.4"></a>Reports</h4>
-<!--l. 1594--><p class="noindent">
+<!--l. 1590--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">11.4.1 </span> <a
id="x1-13000011.4.1"></a>Open Invoices</h5>
-<!--l. 1596--><p class="noindent">The POS-&#x003E;Open screen allows one to find any POS receipts that are not entirely paid off.
-</p><!--l. 1600--><p class="noindent">
+<!--l. 1592--><p class="noindent">The POS-&#x003E;Open screen allows one to find any POS receipts that are not entirely paid off.
+</p><!--l. 1596--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">11.4.2 </span> <a
id="x1-13100011.4.2"></a>Receipts</h5>
-<!--l. 1602--><p class="noindent">The POS-&#x003E;Receipts screen allows one to bring up a basic record of the POS terminals. It is not sufficient for
+<!--l. 1598--><p class="noindent">The POS-&#x003E;Receipts screen allows one to bring up a basic record of the POS terminals. It is not sufficient for
closing the till, however, though it may help for reconciliation.
-</p><!--l. 1606--><p class="indent"> The till column is the last component or octet of the terminal&#8217;s IP address. Therefore it is a good idea to
+</p><!--l. 1602--><p class="indent"> The till column is the last component or octet of the terminal&#8217;s IP address. Therefore it is a good idea to
try to avoid having IP addresses where the last octet is the same.
-</p><!--l. 1610--><p class="indent"> All entries are grouped by date and source in this report.
-</p><!--l. 1613--><p class="noindent">
+</p><!--l. 1606--><p class="indent"> All entries are grouped by date and source in this report.
+</p><!--l. 1609--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">12 </span> <a
id="x1-13200012"></a>General Ledger</h3>
-<!--l. 1616--><p class="noindent">
+<!--l. 1612--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">12.1 </span> <a
id="x1-13300012.1"></a>GL Basics</h4>
-<!--l. 1618--><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 Ledger-SMB. Indeed, Ledger-SMB 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. 1624--><p class="noindent">
+</p><!--l. 1620--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">12.1.1 </span> <a
id="x1-13400012.1.1"></a>Paper-based accounting systems and the GL</h5>
-<!--l. 1626--><p class="noindent">In order to understand the principle of the General Ledger, one must have a basic understanding of the
+<!--l. 1622--><p class="noindent">In order to understand the principle of the General Ledger, one must have a basic understanding of the
general process of bookkeeping using double-entry paper-based accounting systems.
-</p><!--l. 1630--><p class="indent"> Normally when a transaction would be recorded, it would first be recorded in the "General Journal"
+</p><!--l. 1626--><p class="indent"> Normally when a transaction would be recorded, it would first be recorded in the "General Journal"
which would contain detailed information about the transaction, notes, etc. Then the entries from the
General Journal would be transcribed to the General Ledger, where one could keep closer tabs on what was
going on in each account.
-</p><!--l. 1636--><p class="indent"> In the general journal, all transactions are listed chronologically with whatever commentary is deemed
+</p><!--l. 1632--><p class="indent"> In the general journal, all transactions are listed chronologically with whatever commentary is deemed
necessary, while in the general ledger each account has its own page and transactions are recorded in a
simple and terse manner. The General Journal is the first place the transaction is recorded and the General
Ledger is the last.
-</p><!--l. 1642--><p class="indent"> At the end of the accounting period, the GL transactions would be summarized into a trial balance
+</p><!--l. 1638--><p class="indent"> At the end of the accounting period, the GL transactions would be summarized into a trial balance
and this would be used for creating financial statements and closing the books at the end of the
year.
-</p><!--l. 1647--><p class="noindent">
+</p><!--l. 1643--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">12.1.2 </span> <a
id="x1-13500012.1.2"></a>Double Entry Examples on Paper</h5>
-<!--l. 1649--><p class="noindent">Let us say that John starts his business with an initial investment of $10,000.
-</p><!--l. 1652--><p class="indent"> This is recorded in the General Journal as follows (in this example, suppose it is page 1):
+<!--l. 1645--><p class="noindent">Let us say that John starts his business with an initial investment of $10,000.
+</p><!--l. 1648--><p class="indent"> This is recorded in the General Journal as follows (in this example, suppose it is page 1):
</p>
<div class="tabular"><table class="tabular"
cellspacing="0" cellpadding="0" rules="groups"
@@ -2295,7 +2294,7 @@ class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><h
style="vertical-align:baseline;" id="TBL-4-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-7-1"
class="td11"> </td> </tr></table>
</div>
-<!--l. 1692--><p class="indent"> This would then be transcribed into two pages of the General Ledger. The first page might be the
+<!--l. 1688--><p class="indent"> This would then be transcribed into two pages of the General Ledger. The first page might be the
Checking Account page:
</p>
<div class="tabular"><table class="tabular"
@@ -2335,7 +2334,7 @@ class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><h
style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-1"
class="td11"> </td> </tr></table>
</div>
-<!--l. 1719--><p class="indent"> On the John Doe Capital page, we would add a similar entry:
+<!--l. 1715--><p class="indent"> On the John Doe Capital page, we would add a similar entry:
</p>
@@ -2376,29 +2375,29 @@ class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><h
style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
class="td11"> </td> </tr></table>
</div>
-<!--l. 1746--><p class="noindent">
+<!--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>
-<!--l. 1748--><p class="noindent">The paper-based accounting procedure works well when one is stuck with paper recording requirements but
+<!--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. 1752--><p class="indent"> Relational databases relieve the need for such transcription as it is possible to store everything
+</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. 1758--><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 Ledger-SMB. 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. 1762--><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 Ledger-SMB 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. 1767--><p class="noindent">
+</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. 1769--><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 Ledger-SMB is the Cash-&#x003E;Transfer screen. This screen shows two
transaction lines, and fields for reference, department, description, and notes.
-</p><!--l. 1773--><p class="indent"> The field descriptions are as follows:
-</p><!--l. 1775--><p class="indent">
+</p><!--l. 1769--><p class="indent"> The field descriptions are as follows:
+</p><!--l. 1771--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Reference</span> </dt><dd
@@ -2440,29 +2439,29 @@ class="description">lists additional information as necessary.
<span
class="pplb8t-">Project</span> </dt><dd
class="description">allows you to assign this line to a project.</dd></dl>
-<!--l. 1788--><p class="noindent">The credit and debit options seem to be the opposite of what one would think of concerning one&#8217;s bank account.
+<!--l. 1784--><p class="noindent">The credit and debit options seem to be the opposite of what one would think of concerning one&#8217;s bank account.
The reason is that your bank statement is done from the bank&#8217;s point of view. Your bank account balance is
an asset to you and therefor you show it as having a debit balance, but to the bank it is money they owe you
and so they show it as having a credit balance.
-</p><!--l. 1795--><p class="indent"> Note that in this screen, when an item is updated, it will reduce the number of lines to those already filled
+</p><!--l. 1791--><p class="indent"> Note that in this screen, when an item is updated, it will reduce the number of lines to those already filled
in plus an extra line for the new line in the data entry.
-</p><!--l. 1800--><p class="noindent">
+</p><!--l. 1796--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">12.3 </span> <a
id="x1-13800012.3"></a>GL Transactions</h4>
-<!--l. 1802--><p class="noindent">The GL Transaction screen (General Ledger-&#x003E;Add Transaction) is identical to the Cash Transfer screen with
+<!--l. 1798--><p class="noindent">The GL Transaction screen (General Ledger-&#x003E;Add Transaction) is identical to the Cash Transfer screen with
the exception that it starts with nine lines instead of two. Otherwise, they are identical.
-</p><!--l. 1806--><p class="indent"> Again, one must be careful with debits and credits. Often it is easy to get confused. It is generally worth
+</p><!--l. 1802--><p class="indent"> Again, one must be careful with debits and credits. Often it is easy to get confused. It is generally worth
while to go back to the principle that one tracks them with regard to their impact on the equity accounts. So
expenses are credits because they debit the equity accounts, and income is a debit because it credits the
retained earning equity account.
-</p><!--l. 1813--><p class="noindent">
+</p><!--l. 1809--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">12.4 </span> <a
id="x1-13900012.4"></a>Payroll as a GL transaction</h4>
-<!--l. 1815--><p class="noindent">Currently payroll must be done as a GL transaction. The attempts to create a payroll system that would ship
+<!--l. 1811--><p class="noindent">Currently payroll must be done as a GL transaction. The attempts to create a payroll system that would ship
with LSMB have largely stalled.
-</p><!--l. 1818--><p class="indent"> Most customers running their businesses will have an idea of how to do this.
+</p><!--l. 1814--><p class="indent"> Most customers running their businesses will have an idea of how to do this.
</p>
<hr class="figure" /><div class="figure"
><table class="figure"><tr class="figure"><td class="figure"
@@ -2537,22 +2536,22 @@ class="td11"> </td> </tr></table>
</td></tr></table></div><hr class="endfigure" />
<h4 class="subsectionHead"><span class="titlemark">12.5 </span> <a
id="x1-14000012.5"></a>Reconciliation</h4>
-<!--l. 1865--><p class="noindent">To reconcile an account (say, when one would get a checking account statement), one would
+<!--l. 1861--><p class="noindent">To reconcile an account (say, when one would get a checking account statement), one would
go to cash/reconciliation, and check off the items that have cleared. One can then attempt to
determine where any errors lie by comparing the total on the statement with the total that LSMB
generates.
-</p><!--l. 1871--><p class="indent"> This can be done for other accounts too, such as petty
+</p><!--l. 1867--><p class="indent"> This can be done for other accounts too, such as petty
cash.<span class="footnote-mark"><a
href="LedgerSMB-manual3.html#fn2x0"><sup class="textsuperscript">2</sup></a></span><a
id="x1-140001f2"></a>
</p>
<h4 class="subsectionHead"><span class="titlemark">12.6 </span> <a
id="x1-14100012.6"></a>Reports</h4>
-<!--l. 1880--><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 Ledger-SMB 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. 1885--><p class="indent"> The search criteria include:
-</p><!--l. 1887--><p class="indent">
+</p><!--l. 1881--><p class="indent"> The search criteria include:
+</p><!--l. 1883--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Reference</span> </dt><dd
@@ -2579,118 +2578,118 @@ class="description">Type can be used to filter results by type of account (Asset
<span
class="pplb8t-">Description</span> </dt><dd
class="description">can be used to filter by GL description or by customer/vendor name.</dd></dl>
-<!--l. 1902--><p class="noindent">The actual format of the report looks more like what one would expect in a paper accounting system&#8217;s general
+<!--l. 1898--><p class="noindent">The actual format of the report looks more like what one would expect in a paper accounting system&#8217;s general
journal than a general ledger per se. A presentation of the data that is more like the paper general ledger is
found in the Chart of Accounts report.
-</p><!--l. 1908--><p class="noindent">
+</p><!--l. 1904--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">12.6.1 </span> <a
id="x1-14200012.6.1"></a>GL as access to almost everything else</h5>
-<!--l. 1910--><p class="noindent">The GL reports can be used to do all manner of things. One can determine, for example, which AP invoice or
+<!--l. 1906--><p class="noindent">The GL reports can be used to do all manner of things. One can determine, for example, which AP invoice or
transaction was paid with a certain check number or which invoice by a specific customer was paid by a
specific check number.
-</p><!--l. 1916--><p class="noindent">
+</p><!--l. 1912--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">13 </span> <a
id="x1-14300013"></a>Recurring Transactions</h3>
-<!--l. 1918--><p class="noindent">Any transaction or invoice may be repeated a number of times in regular intervals. To schedule any GL, AR,
+<!--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. 1922--><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 Ledger-SMB 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. 1928--><p class="indent"> To process the recurring transactions, click on the Recurring Transactions option on the main menu select
+</p><!--l. 1924--><p class="indent"> To process the recurring transactions, click on the Recurring Transactions option on the main menu select
the ones you want to process and click "Process Transactions."
-</p><!--l. 1933--><p class="noindent">
+</p><!--l. 1929--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">14 </span> <a
id="x1-14400014"></a>Financial Statements and Reports</h3>
-<!--l. 1935--><p class="noindent">Financial statements and reports are a very important part of any accounting system. Accountants and
+<!--l. 1931--><p class="noindent">Financial statements and reports are a very important part of any accounting system. Accountants and
business people rely on these reports to determine the financial soundness of the business and its prospects
for the next accounting period.
-</p><!--l. 1941--><p class="noindent">
+</p><!--l. 1937--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.1 </span> <a
id="x1-14500014.1"></a>Cash v. Accrual Basis</h4>
-<!--l. 1943--><p class="noindent">Financial statements, such as the Income Statement and Balance Sheet can be prepared either on a cash or
+<!--l. 1939--><p class="noindent">Financial statements, such as the Income Statement and Balance Sheet can be prepared either on a cash or
accrual basis. In cash-basis accounting, the income is deemed earned when the customer pays it, and the
expenses are deemed incurred when the business pays them.
-</p><!--l. 1948--><p class="indent"> There are a number of problems with cash-basis accounting from a business point of view. The most
+</p><!--l. 1944--><p class="indent"> There are a number of problems with cash-basis accounting from a business point of view. The most
serious is that one can misrepresent the wellbeing of a business by paying a large expense after a deadline.
Thus cash-basis accounting does not allow one to accurately pair the income with the related expense as
these are recorded at different times. If one cannot accurately pair the income with the related expense, then
financial statements cannot be guaranteed to tell one much of anything about the well-being of the
business.
-</p><!--l. 1957--><p class="indent"> In accrual basis accounting, income is considered earned when the invoice is posted, and
+</p><!--l. 1953--><p class="indent"> In accrual basis accounting, income is considered earned when the invoice is posted, and
expenses are considered incurred at the time when the goods or services are delivered to the
business. This way, one can pair the income made from the sale of a product with the expense
incurred in bringing that product to sale. This pairing allows for greater confidence in business
reporting.
-</p><!--l. 1965--><p class="noindent">
+</p><!--l. 1961--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.2 </span> <a
id="x1-14600014.2"></a>Viewing the Chart of Accounts and Transactions</h4>
-<!--l. 1967--><p class="noindent">The Reports&#8211;&#x003E;Chart of Accounts will provide the chart of accounts along with current totals in each
+<!--l. 1963--><p class="noindent">The Reports&#8211;&#x003E;Chart of Accounts will provide the chart of accounts along with current totals in each
account.
-</p><!--l. 1970--><p class="indent"> If you click on an account number, you will get a screen that allows you to filter out transactions in that
+</p><!--l. 1966--><p class="indent"> If you click on an account number, you will get a screen that allows you to filter out transactions in that
account by various criteria. One can also include AR/AP, and Subtotal in the report.
-</p><!--l. 1974--><p class="indent"> The report format is similar to that of a paper-based general ledger.
-</p><!--l. 1977--><p class="noindent">
+</p><!--l. 1970--><p class="indent"> The report format is similar to that of a paper-based general ledger.
+</p><!--l. 1973--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.3 </span> <a
id="x1-14700014.3"></a>Trial Balance</h4>
-<!--l. 1980--><p class="noindent">
+<!--l. 1976--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.3.1 </span> <a
id="x1-14800014.3.1"></a>The Paper-based function of a Trial Balance</h5>
-<!--l. 1982--><p class="noindent">In paper-based accounting systems, the accountant at the end of the year would total up the debits and
+<!--l. 1978--><p class="noindent">In paper-based accounting systems, the accountant at the end of the year would total up the debits and
credits in every account and transfer them onto another sheet called the trial balance. The accountant
would check to determine that the total debits and credits were equal and would then transfer
this information onto the financial statements. It was called a trial balance because it was the
main step at which the error-detection capabilities of double-entry accounting systems were
used.
-</p><!--l. 1992--><p class="noindent">
+</p><!--l. 1988--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.3.2 </span> <a
id="x1-14900014.3.2"></a>Running the Trial Balance Report</h5>
-<!--l. 1994--><p class="noindent">This report is located under Reports &#8211;&#x003E;Trial Balance. One can filter out items by date, accounting period, or
+<!--l. 1990--><p class="noindent">This report is located under Reports &#8211;&#x003E;Trial Balance. One can filter out items by date, accounting period, or
department. One can run the report by accounts or using GIFI classifications to group accounts
together.
-</p><!--l. 1999--><p class="indent"> From this report, you can click on the account number and see all transactions on the trial balance as well
+</p><!--l. 1995--><p class="indent"> From this report, you can click on the account number and see all transactions on the trial balance as well
as whether or not they have been reconciled.
-</p><!--l. 2004--><p class="noindent">
+</p><!--l. 2000--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.3.3 </span> <a
id="x1-15000014.3.3"></a>What if the Trial Balance doesn&#8217;t Balance?</h5>
-<!--l. 2006--><p class="noindent">If the trial balance does not balance, get technical support immediately. This usually means that transactions
+<!--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).
-</p><!--l. 2013--><p class="noindent">
+</p><!--l. 2009--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.3.4 </span> <a
id="x1-15100014.3.4"></a>Trial Balance as a Summary of Account Activity</h5>
-<!--l. 2015--><p class="noindent">The trial balance offers a glance at the total activity in every account. It can provide a useful look at financial
+<!--l. 2011--><p class="noindent">The trial balance offers a glance at the total activity in every account. It can provide a useful look at financial
activity at a glance for the entire business.
-</p><!--l. 2020--><p class="noindent">
+</p><!--l. 2016--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.3.5 </span> <a
id="x1-15200014.3.5"></a>Trial Balance as a Budget Planning Tool</h5>
-<!--l. 2022--><p class="noindent">By filtering out departments, one can determine what a department earned and spent during a given
+<!--l. 2018--><p class="noindent">By filtering out departments, one can determine what a department earned and spent during a given
financial interval. This can be used in preparing budgets for the next accounting period.
-</p><!--l. 2027--><p class="noindent">
+</p><!--l. 2023--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.4 </span> <a
id="x1-15300014.4"></a>Income Statement</h4>
-<!--l. 2029--><p class="noindent">The Income Statement is another tool that can be used to assist with budgetary planning as well as provide
+<!--l. 2025--><p class="noindent">The Income Statement is another tool that can be used to assist with budgetary planning as well as provide
information on the financial health of a business.
-</p><!--l. 2033--><p class="indent"> The report is run from Reports&#8211;&#x003E;Income Statement. The report preparation screen shows the following
+</p><!--l. 2029--><p class="indent"> The report is run from Reports&#8211;&#x003E;Income Statement. The report preparation screen shows the following
fields:
-</p><!--l. 2036--><p class="indent">
+</p><!--l. 2032--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Department</span> </dt><dd
@@ -2730,41 +2729,41 @@ class="description">in Report provides various options for reporting.
<span
class="pplb8t-">Accounts</span> </dt><dd
class="description">allows you to run GIFI reports instead of the standard ones.</dd></dl>
-<!--l. 2051--><p class="noindent">The report shows all income and expense accounts with activity during the period when the report is run, the
+<!--l. 2047--><p class="noindent">The report shows all income and expense accounts with activity during the period when the report is run, the
balances accrued during the period, as well as the total income and expense at the bottom of each section.
The total expense is subtracted from the total income to provide the net income during the period. If there is
a loss, it appears in parentheses.
-</p><!--l. 2059--><p class="noindent">
+</p><!--l. 2055--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">14.4.1 </span> <a
id="x1-15400014.4.1"></a>Uses of an Income Statement</h5>
-<!--l. 2061--><p class="noindent">The income statement provides a basic snapshot of the overall ability of the business to make money. It is one
+<!--l. 2057--><p class="noindent">The income statement provides a basic snapshot of the overall ability of the business to make money. It is one
of the basic accounting statements and is required, for example, on many SEC forms for publicly traded
firms.
-</p><!--l. 2066--><p class="indent"> Additionally, businessmen use the income statement to look at overall trends in the ability of the business
+</p><!--l. 2062--><p class="indent"> Additionally, businessmen use the income statement to look at overall trends in the ability of the business
to make money. One can compare a given month, quarter, or year with a year prior to look for trends so that
one can make adjustments in order to maximize profit.
-</p><!--l. 2071--><p class="indent"> Finally, these reports can be used to provide a look at each department&#8217;s performance and their
+</p><!--l. 2067--><p class="indent"> Finally, these reports can be used to provide a look at each department&#8217;s performance and their
ability to work within their budget. One can compare a department or project&#8217;s performance to
a year prior and look for patterns that can indicate problems or opportunities that need to be
addressed.
-</p><!--l. 2078--><p class="noindent">
+</p><!--l. 2074--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.5 </span> <a
id="x1-15500014.5"></a>Balance Sheet</h4>
-<!--l. 2080--><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 Ledger-SMB. The balance sheet
provides a snapshot of the current financial health of the business by comparing assets, liabilities, and
equity.
-</p><!--l. 2085--><p class="indent"> In essence the balance sheet is a statement of the current state of owner equity. Traditionally, it does not
+</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
track changes in owner equity in the same way the Statement of Owner Equity does.
-</p><!--l. 2089--><p class="indent"> The Balance Sheet report preparation screen is much simpler than the Income Statement screen.
+</p><!--l. 2085--><p class="indent"> The Balance Sheet report preparation screen is much simpler than the Income Statement screen.
Balance sheets don&#8217;t apply to projects, but they do apply to departments. Also, unlike an income
statement, a balance sheet is fixed for a specific date in time. Therefore one does not need to select a
period.
-</p><!--l. 2095--><p class="indent"> The fields in creating a balance sheet are:
-</p><!--l. 2097--><p class="indent">
+</p><!--l. 2091--><p class="indent"> The fields in creating a balance sheet are:
+</p><!--l. 2093--><p class="indent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Department</span> </dt><dd
@@ -2793,62 +2792,62 @@ class="description">in report allows you to select supplemental information on t
<span
class="pplb8t-">Accounts</span> </dt><dd
class="description">allows you to select between standard and GIFI reports.</dd></dl>
-<!--l. 2108--><p class="noindent">The balance sheet lists all asset, liability, and equity accounts with a balance. Each category has a total listed, and
+<!--l. 2104--><p class="noindent">The balance sheet lists all asset, liability, and equity accounts with a balance. Each category has a total listed, and
the total of the equity and liability accounts is also listed.
-</p><!--l. 2112--><p class="indent"> The total assets should be equal to the sum of the totals of the liability and equity accounts.
+</p><!--l. 2108--><p class="indent"> The total assets should be equal to the sum of the totals of the liability and equity accounts.
-</p><!--l. 2116--><p class="noindent">
+</p><!--l. 2112--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.6 </span> <a
id="x1-15600014.6"></a>What if the Balance Sheet doesn&#8217;t balance?</h4>
-<!--l. 2118--><p class="noindent">Get technical support immediately, This may indicate that out of balance transactions were entered or that
+<!--l. 2114--><p class="noindent">Get technical support immediately, This may indicate that out of balance transactions were entered or that
transactions did not post properly.
-</p><!--l. 2122--><p class="noindent">
+</p><!--l. 2118--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">14.7 </span> <a
id="x1-15700014.7"></a>No Statement of Owner Equity?</h4>
-<!--l. 2124--><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 Ledger-SMB 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
was.
-</p><!--l. 2132--><p class="noindent">
+</p><!--l. 2128--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">15 </span> <a
id="x1-15800015"></a>The Template System</h3>
-<!--l. 2134--><p class="noindent">Ledger-SMB allows most documents to be generated according to a template system. This allows financial
+<!--l. 2130--><p class="noindent">Ledger-SMB 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
little that cannot be accomplished regarding modification of these documents with the template
system.
-</p><!--l. 2143--><p class="indent"> One can define different templates for different languages, so that a customer in Spain gets a different
+</p><!--l. 2139--><p class="indent"> One can define different templates for different languages, so that a customer in Spain gets a different
invoice than a customer in Canada.
-</p><!--l. 2147--><p class="noindent">
+</p><!--l. 2143--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">15.1 </span> <a
id="x1-15900015.1"></a>Text Templates</h4>
-<!--l. 2149--><p class="noindent">The only template that uses a text-only format is the POS receipt. This example provides the simplest way to
+<!--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. 2153--><p class="indent"> The first two lines are:
+</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" />
-</p><!--l. 2158--><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 Ledger-SMB 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. 2162--><p class="indent"> These variables are usually passed to the invoice using form fields (hidden or otherwise) in the
+</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. 2167--><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;% and %&#x003E;. One can optionally specify an
alignment or a width but these are really only useful in text templates.
-</p><!--l. 2172--><p class="noindent">
+</p><!--l. 2168--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">15.2 </span> <a
id="x1-16000015.2"></a>HTML Templates</h4>
-<!--l. 2174--><p class="noindent">The following templates exist in HTML format:
+<!--l. 2170--><p class="noindent">The following templates exist in HTML format:
</p>
<ul class="itemize1">
<li class="itemize">Income Statement
@@ -2880,20 +2879,20 @@ alignment or a width but these are really only useful in text templates.
<li class="itemize">RFQ
</li>
<li class="itemize">Time Card</li></ul>
-<!--l. 2193--><p class="noindent">These templates can be edited by an HTML editor. However, it is generally recommended that one back up
+<!--l. 2189--><p class="noindent">These templates can be edited by an HTML editor. However, it is generally recommended that one back up
templates first. The reason is that some HTML editors will fully re-parse the HTML and save it back without
what they see as invalid tags. Most editors, however, will save the variable substitution tags because similar
tags are also used by Microsoft&#8217;s active server pages.
-</p><!--l. 2200--><p class="indent"> Finally, some editors are known to mangle formatting, so many problems can be avoided by ensuring that
+</p><!--l. 2196--><p class="indent"> Finally, some editors are known to mangle formatting, so many problems can be avoided by ensuring that
one has a backup of the templates, especially if they have already been customized.
-</p><!--l. 2205--><p class="noindent">
+</p><!--l. 2201--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">15.3 </span> <a
id="x1-16100015.3"></a><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;Templates</h4>
-<!--l. 2207--><p class="noindent">The following templates, by default, are available in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 2203--><p class="noindent">The following templates, by default, are available in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;:
</p>
<ul class="itemize1">
@@ -2926,21 +2925,21 @@ class="E">E</span>X</span></span>&#x00A0;:
<li class="itemize">RFQ
</li>
<li class="itemize">Time Card</li></ul>
-<!--l. 2226--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 2222--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;templates allow one to generate PDF and postscript documents and print directly to a postscript-enabled
printer or print software (like CUPS).
-</p><!--l. 2230--><p class="indent"> <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+</p><!--l. 2226--><p class="indent"> <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;templates can be edited using a standard text editor (like vim or emacs), or using a synchronous
<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;implementation such as LY X.
-</p><!--l. 2235--><p class="noindent">
+</p><!--l. 2231--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">15.3.1 </span> <a
id="x1-16200015.3.1"></a>What is <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;?</h5>
-<!--l. 2237--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 2233--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;(pronounced LAY-tech) is an extension on the <span class="TEX">T<span
class="E">E</span>X</span>&#x00A0;typesetting system. It largely consists of a set of
macros that allow one to focus on the structure of the document while letting the <span class="TEX">T<span
@@ -2949,23 +2948,23 @@ lifting in terms of determining the optimal formatting for the page. <span class
class="E">E</span>X</span></span>&#x00A0;is used in a large number of
academic journals (including those of the American Mathematics Association). It is available at <span class="obeylines-h"><a
href="http://www.tug.org" class="url" >http://www.tug.org</a></span> and is included in most Linux distributions.
-</p><!--l. 2245--><p class="indent"> Like HTML, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+</p><!--l. 2241--><p class="indent"> Like HTML, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;uses plain text documents to store the formatting information and then when the
document is rendered, attempts to fit it onto a page. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;supports the concept of stylesheets, allowing
one to separate content from format, and this feature is used in many higher-end applications, like journal
publication.
-</p><!--l. 2252--><p class="indent"> Unlike HTML, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+</p><!--l. 2248--><p class="indent"> Unlike HTML, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;is a complete though simple programming language that allows one to redefine
internals of the system for formatting purposes.
-</p><!--l. 2256--><p class="indent"> This document is written in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+</p><!--l. 2252--><p class="indent"> This document is written in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>.
-</p><!--l. 2259--><p class="noindent">
+</p><!--l. 2255--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">15.3.2 </span> <a
id="x1-16300015.3.2"></a>Using LY X to Edit <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;Templates</h5>
-<!--l. 2261--><p class="noindent">LY X is a synchronous <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 2257--><p class="noindent">LY X is a synchronous <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;editor that runs on Windows, UNIX/Linux, and Mac OS X. It
requires an installed <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>-2e implementation and can be obtained at <span class="obeylines-h"><a
@@ -2973,94 +2972,94 @@ href="http://www.lyx.org" class="url" >http://www.lyx.org</a></span>. Like
the most common <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;implementations, it is open source and is included with most Linux
distributions.
-</p><!--l. 2267--><p class="noindent">
+</p><!--l. 2263--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">15.4 </span> <a
id="x1-16400015.4"></a>Customizing Logos</h4>
-<!--l. 2269--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 2265--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;requires different formats of logos depending on whether the document is going to be
generated as a PDF or as postscript. Postscript requires an embedded postscript graphic, while PDF
requires any type of graphic other than embedded postscript. Usually one uses a PNG&#8217;s for
PDF&#8217;s, though GIF&#8217;s could be used as well. The logo for a <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;document resides in the users
directory.
-</p><!--l. 2276--><p class="indent"> HTML documents can have logos in many different formats. PNG&#8217;s are generally preferred for printing
+</p><!--l. 2272--><p class="indent"> HTML documents can have logos in many different formats. PNG&#8217;s are generally preferred for printing
reasons. The image can be stored anywhere and merely referenced in the HTML.
-</p><!--l. 2280--><p class="indent"> Note: Always test the an invoice with images to ensure that the rest of the page format is not thrown off
+</p><!--l. 2276--><p class="indent"> Note: Always test the an invoice with images to ensure that the rest of the page format is not thrown off
by it.
-</p><!--l. 2284--><p class="noindent">
+</p><!--l. 2280--><p class="noindent">
</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. 2286--><p class="noindent">The template directory ("templates" in the root Ledger-SMB install directory) contains all the root templates
+<!--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
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. 2293--><p class="indent"> Inside this directory are one or more subdirectories where the relevant templates have been copied as
+</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
each language created.
-</p><!--l. 2300--><p class="noindent">
+</p><!--l. 2296--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">15.6 </span> <a
id="x1-16600015.6"></a>Upgrade Issues</h4>
-<!--l. 2302--><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 Ledger-SMB 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. 2306--><p class="indent"> Occasionally, however, the data model changes in a way which can cause the templates to stop printing
+</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
either upgrade the templates by copying the source template over the existing one, or one can edit the
template to make the change.
-</p><!--l. 2312--><p class="noindent">
+</p><!--l. 2308--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">16 </span> <a
id="x1-16700016"></a>An Introduction to the CLI</h3>
-<!--l. 2314--><p class="noindent">
+<!--l. 2310--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">16.1 </span> <a
id="x1-16800016.1"></a>Conventions</h4>
-<!--l. 2316--><p class="noindent">The command-line API will be referred to as the API.
-</p><!--l. 2318--><p class="noindent">
+<!--l. 2312--><p class="noindent">The command-line API will be referred to as the API.
+</p><!--l. 2314--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">16.2 </span> <a
id="x1-16900016.2"></a>Preliminaries</h4>
-<!--l. 2320--><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 Ledger-SMB (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. 2326--><p class="indent"> All scripts included in the documentation can also be found in the doc/samples directory.
-</p><!--l. 2329--><p class="indent"> Consider a simple example:
-</p><!--l. 2331--><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. 2334--><p class="indent"> The cd command moves your terminal session&#8217;s current working directory into the main Ledger-SMB
+</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
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
password.
-</p><!--l. 2340--><p class="indent"> To build our examples we will use a username of "clarkkent" who has a password of "lOis,lAn3".
-</p><!--l. 2343--><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. 2346--><p class="indent"> If we execute these commands we will get the html for the search form for the customer database. This
+</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. 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. 2351--><p class="noindent">
+</p><!--l. 2347--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">16.3 </span> <a
id="x1-17000016.3"></a>First Script: lsmb01-cli-example.sh</h4>
-<!--l. 2353--><p class="noindent">With a working example, we can start to build reproducible routines that we can grow to do some useful
+<!--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. 2356--><p class="indent"> This is a bash script which:
-</p><!--l. 2358--><p class="indent"> 1. sets NOW to the current working directory 2. prompts for and reads your Ledger-SMB login 3. prompts
+</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
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.
exits
-</p><!--l. 2370--><p class="indent"> Running lsmb01-cli-example.sh produces:
-</p><!--l. 2372--><p class="indent"> $ lsmb01-cli-example.sh
-</p><!--l. 2374--><p class="indent"> Ledger-SMB login: clarkkent
-</p><!--l. 2376--><p class="indent"> Ledger-SMB password:
+</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>
@@ -3081,11 +3080,11 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />.
</div>
</td></tr></table>
-<!--l. 2391--><p class="nopar">
-</p><!--l. 2393--><p class="indent"> A script like this would work well for simple batch transactions, but bash is not a very friendly language
+<!--l. 2387--><p class="nopar">
+</p><!--l. 2389--><p class="indent"> A script like this would work well for simple batch transactions, but bash is not a very friendly language
for application programming.
-</p><!--l. 2397--><p class="indent"> A nicer solution would be to use a language such as perl to drive the command line API.
-</p><!--l. 2400--><p class="noindent">
+</p><!--l. 2393--><p class="indent"> A nicer solution would be to use a language such as perl to drive the command line API.
+</p><!--l. 2396--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">16.3.1 </span> <a
id="x1-17100016.3.1"></a>Script 1 (Bash)</h5>
@@ -3147,28 +3146,28 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />exit&#x00A0;0
</div>
</td></tr></table>
-<!--l. 2451--><p class="nopar">
-</p><!--l. 2454--><p class="noindent">
+<!--l. 2447--><p class="nopar">
+</p><!--l. 2450--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">16.4 </span> <a
id="x1-17200016.4"></a>Second Script: lsmb02-cli-example.pl</h4>
-<!--l. 2456--><p class="noindent">Our second script is written in perl and logs you in but it still uses the API in its simplest form, that is, it
+<!--l. 2452--><p class="noindent">Our second script is written in perl and logs you in but it still uses the API in its simplest form, that is, it
builds commands and then executes them. This type of script can be used for more complex solutions than
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. 2463--><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 Ledger-SMB 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
command and executes it and returns both the output and error information to the caller in a
scalar.
-</p><!--l. 2469--><p class="indent"> The script checks to see if there was an error in the login, exiting if there was.
-</p><!--l. 2471--><p class="indent"> Next, the script reads some records which are stored in the program following the __END__ token. It
+</p><!--l. 2465--><p class="indent"> The script checks to see if there was an error in the login, exiting if there was.
+</p><!--l. 2467--><p class="indent"> Next, the script reads some records which are stored in the program following the __END__ token. It
takes each record in turn, formats it then feeds each transaction through runLScmd and looks at the results
for a string that signals success.
-</p><!--l. 2475--><p class="indent"> Once all the transactions are processed, runLScmd is called one last time to logout and the script
+</p><!--l. 2471--><p class="indent"> Once all the transactions are processed, runLScmd is called one last time to logout and the script
exits.
-</p><!--l. 2478--><p class="noindent">
+</p><!--l. 2474--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">16.4.1 </span> <a
id="x1-17300016.4.1"></a>Script 2 (Perl)</h5>
@@ -3340,7 +3339,7 @@ class="verbatim"><div class="verbatim">
&#x00A0;<br />
</div>
</td></tr></table>
-<!--l. 2635--><p class="nopar">
+<!--l. 2631--><p class="nopar">
</p>
@@ -3348,10 +3347,10 @@ 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. 2646--><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">Ledger-SMB 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. 2651--><p class="noindent">
+</p><!--l. 2647--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">17.1 </span> <a
id="x1-17600017.1"></a>The Software Stack</h4>
@@ -3372,70 +3371,70 @@ class="content">The Ledger-SMB software stack in a Typical Implementation</td></
</td></tr></table></div><hr class="endfigure" />
-<!--l. 2662--><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"> Ledger-SMB 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. 2667--><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"> Ledger-SMB 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. 2674--><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 Ledger-SMB 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. 2678--><p class="indent"> The operating system can be any that supports a web server and Perl (since PostgreSQL need not run on
+</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
to get Postscript documents to print properly).
-</p><!--l. 2683--><p class="indent"> On the client side, any web-browser will work. Currently, the layout is different for Lynx (which doesn&#8217;t
+</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
support frames). Some functionality requires Javascript to work properly, though the application is usable
without these features.
</p>
<h4 class="subsectionHead"><span class="titlemark">17.2 </span> <a
id="x1-17700017.2"></a>Capacity Planning</h4>
-<!--l. 2692--><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 Ledger-SMB 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
question worthwhile.
-</p><!--l. 2698--><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 Ledger-SMB with
a CRM solution, online store, or other environment. This section looks at a number of the known issues and
their solutions.
-</p><!--l. 2704--><p class="noindent">
+</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. 2706--><p class="noindent">Ledger-SMB is a fairly standard web-based application. However, sometimes the database schema changes
+<!--l. 2702--><p class="noindent">Ledger-SMB 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
the version of the software that is running, will refuse to run.
-</p><!--l. 2713--><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 Ledger-SMB, 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.
-</p><!--l. 2719--><p class="indent"> The database manager is less scalable in the sense that one cannot just add more database servers and
+</p><!--l. 2715--><p class="indent"> The database manager is less scalable in the sense that one cannot just add more database servers and
expect to carry on as normal. However, aside from the known issues listed below, there are few performance
issues with it. If complex reports are necessary, these can be moved to a replica database (perhaps using
Slony-I).
-</p><!--l. 2725--><p class="indent"> If this solution is insufficient for database scalability, one might be able to move staff who do not need
+</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
scalability of the application.
-</p><!--l. 2734--><p class="noindent">
+</p><!--l. 2730--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">17.2.2 </span> <a
id="x1-17900017.2.2"></a>Database Maintenance</h5>
-<!--l. 2736--><p class="noindent">PostgreSQL uses a technique called Multi-version Concurrency Control (MVCC) to provide a snapshot of the
+<!--l. 2732--><p class="noindent">PostgreSQL uses a technique called Multi-version Concurrency Control (MVCC) to provide a snapshot of the
database at the beginning of a statement or transaction (depending on the transaction isolation level). When a
row is updated, PostgreSQL leaves the old row in the database, and inserts a new version of that row into the
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. 2745--><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 Ledger-SMB, most inserts will also create a dead
row.
-</p><!--l. 2748--><p class="indent"> A second problem occurs in that each transaction is given a transaction id. These id&#8217;s are numbered using
+</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
(due to the wraparound) to be in the future suddenly becomes inaccessible. This problem was
corrected in PostgreSQL 8.1, where the database will refuse to accept new transactions if the
@@ -3443,263 +3442,263 @@ transaction ID gets too close to a wraparound. So while the problem is not as se
application merely becomes inaccessible rather than displaying apparent data loss. Wraparound
would occur after about a billion transactions between all databases running on that instance of
PostgreSQL.
-</p><!--l. 2759--><p class="indent"> Prior to 8.1, the main way to prevent both these problems was to run a periodic vacuumdb command
+</p><!--l. 2755--><p class="indent"> Prior to 8.1, the main way to prevent both these problems was to run a periodic vacuumdb command
from cron (UNIX/Linux) or the task scheduler (Windows). In 8.1 or later, autovacuum capabilities are part of
the back-end and can be configured with the database manager. See the PostgreSQL documentation for
treatment of these subjects.
-</p><!--l. 2765--><p class="indent"> In general, if performance appears to be slowly degrading, one should try to run vacuumdb -z from the
+</p><!--l. 2761--><p class="indent"> In general, if performance appears to be slowly degrading, one should try to run vacuumdb -z from the
shell in order to attempt to reclaim space and provide the planner with accurate information about the size
and composition of the tables. If this fails, then one can go to other methods of determining the bottleneck
and what to do about it.
-</p><!--l. 2773--><p class="noindent">
+</p><!--l. 2769--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">17.2.3 </span> <a
id="x1-18000017.2.3"></a>Known issues</h5>
-<!--l. 2775--><p class="noindent">The PostgreSQL planner assumes a minimum page size of ten pages for a physically empty table. The
+<!--l. 2771--><p class="noindent">The PostgreSQL planner assumes a minimum page size of ten pages for a physically empty table. The
reasoning behind this choice is that a table could grow rapidly and one could end up with bad database
performance if the planner assumes a very small table.
-</p><!--l. 2780--><p class="indent"> However, if you end up with joins between a very large table with millions of rows and a physically
+</p><!--l. 2776--><p class="indent"> However, if you end up with joins between a very large table with millions of rows and a physically
empty table, one can end up with a very bad query plan. In this case, the planner will choose a nested loop
join and run through this loop for every row in the large table. As a result, performance will suddenly drop
once the large table becomes too large to effectively do index scans of the join criteria on both tables.
This problem most often occurs when people have no warehouses, departments, or projects
defined and are running systems with a large number of transactions (such as a point of sale
environment).
-</p><!--l. 2790--><p class="indent"> Last time I saw this problem, the server would wait for thirty seconds to display a new point of sale
+</p><!--l. 2786--><p class="indent"> Last time I saw this problem, the server would wait for thirty seconds to display a new point of sale
screen while the server CPU activity would spike to 100%.
-</p><!--l. 2794--><p class="indent"> One solution is to define one warehouse, department, and project, and then run vacuumdb -z from the
+</p><!--l. 2790--><p class="indent"> One solution is to define one warehouse, department, and project, and then run vacuumdb -z from the
shell to force the planner to acknowledge these tables as single-row tables. The other option is to go into the
source code and edit the database queries to omit unused tables.
-</p><!--l. 2800--><p class="noindent">
+</p><!--l. 2796--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">18 </span> <a
id="x1-18100018"></a>Customization Possibilities</h3>
-<!--l. 2802--><p class="noindent">Ledger-SMB is designed to be customized relatively easily and rapidly. In general, the source
+<!--l. 2798--><p class="noindent">Ledger-SMB 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. 2807--><p class="noindent">
+</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. 2809--><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">Ledger-SMB 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. 2813--><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
+</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
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. 2820--><p class="indent"> The bin directory contains another directory for each terminal type. The main two offered are lynx and
+</p><!--l. 2816--><p class="indent"> The bin directory contains another directory for each terminal type. The main two offered are lynx and
mozilla. Lynx would be used for web browsers that do not support frames and is ideal for a text-mode VGA
terminal. Mozilla is the terminal type used for most other web browsers. The perl files within these
directories provides the user interface of the software.
-</p><!--l. 2827--><p class="indent"> The css directory in the root install directory contains CSS documents to provide various stylesheets one
+</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. 2831--><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 Ledger-SMB uses to translate between different
languages. One could add translations to these files if necessary.
-</p><!--l. 2835--><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 Ledger-SMB.
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. 2840--><p class="indent"> Finally, the sql directory provides the database schemas and upgrade scripts.
-</p><!--l. 2844--><p class="noindent">
+</p><!--l. 2836--><p class="indent"> Finally, the sql directory provides the database schemas and upgrade scripts.
+</p><!--l. 2840--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">18.2 </span> <a
id="x1-18300018.2"></a>Data Entry Screens</h4>
-<!--l. 2846--><p class="noindent">One can customize the data entry screens to optimize work flow, display additional information,
+<!--l. 2842--><p class="noindent">One can customize the data entry screens to optimize work flow, display additional information,
etc.
-</p><!--l. 2850--><p class="noindent">
+</p><!--l. 2846--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">18.2.1 </span> <a
id="x1-18400018.2.1"></a>Examples</h5>
-<!--l. 2852--><p class="noindent">We set up hot keys for payment lines, automatically focused the keyboard on the last partnumber field,
+<!--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
to reconcile the till online in a paperless manner.
-</p><!--l. 2860--><p class="indent"> For another customer, we added the ability to print AR invoices in plain text format and added templates
+</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.
-</p><!--l. 2865--><p class="noindent">
+</p><!--l. 2861--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">18.3 </span> <a
id="x1-18500018.3"></a>Extensions</h4>
-<!--l. 2867--><p class="noindent">One can add functionality to the Perl modules in the LSMB directory and often add missing functions
+<!--l. 2863--><p class="noindent">One can add functionality to the Perl modules in the LSMB directory and often add missing functions
easily.
-</p><!--l. 2871--><p class="noindent">
+</p><!--l. 2867--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">18.3.1 </span> <a
id="x1-18600018.3.1"></a>Examples</h5>
-<!--l. 2873--><p class="noindent">For one customer, we added a module to take data from a portable data terminal collected when inventory
+<!--l. 2869--><p class="noindent">For one customer, we added a module to take data from a portable data terminal collected when inventory
items were taken and use that to add shrinkage and loss adjustments. We also extended the parts model to
add a check id flag (for alcohol sales) and added this flag to the user interface.
-</p><!--l. 2879--><p class="indent"> For another customer, we added a complex invoice/packing slip tracking system that allowed one to
+</p><!--l. 2875--><p class="indent"> For another customer, we added a complex invoice/packing slip tracking system that allowed one to
track all the printed documents associated with an order or invoice.
-</p><!--l. 2884--><p class="noindent">
+</p><!--l. 2880--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">18.4 </span> <a
id="x1-18700018.4"></a>Templates</h4>
-<!--l. 2886--><p class="noindent">As noted before templates can be modified or extended, though sometimes this involves extending the user
+<!--l. 2882--><p class="noindent">As noted before templates can be modified or extended, though sometimes this involves extending the user
interface scripts. Most templates are easy enough to modify.
-</p><!--l. 2891--><p class="noindent">
+</p><!--l. 2887--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">18.4.1 </span> <a
id="x1-18800018.4.1"></a>Examples</h5>
-<!--l. 2893--><p class="noindent">For one customer we added text-only invoices for AR and AP transactions/Invoices and an ability to use
+<!--l. 2889--><p class="noindent">For one customer we added text-only invoices for AR and AP transactions/Invoices and an ability to use
Javascript in them to automatically print them on load.
-</p><!--l. 2898--><p class="noindent">
+</p><!--l. 2894--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">18.5 </span> <a
id="x1-18900018.5"></a>Reports</h4>
-<!--l. 2900--><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 Ledger-SMB over
Quickbooks and the like. The rapid development of reports allows for one to easily develop reports of any
sort within Ledger-SMB.
-</p><!--l. 2906--><p class="noindent">
+</p><!--l. 2902--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">18.5.1 </span> <a
id="x1-19000018.5.1"></a>Examples</h5>
-<!--l. 2908--><p class="noindent">For one customer, we developed a report of parts sold and received during arbitrary time frames. The report
+<!--l. 2904--><p class="noindent">For one customer, we developed a report of parts sold and received during arbitrary time frames. The report
allows one to go back and look up the invoices involved.
-</p><!--l. 2913--><p class="noindent">
+</p><!--l. 2909--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">19 </span> <a
id="x1-19100019"></a>Integration Possibilities</h3>
-<!--l. 2915--><p class="noindent">An open database system and programming API allows for many types of integration. There are some
+<!--l. 2911--><p class="noindent">An open database system and programming API allows for many types of integration. There are some
challenges, but in the end, one can integrate a large number of tools.
-</p><!--l. 2920--><p class="noindent">
+</p><!--l. 2916--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">19.1 </span> <a
id="x1-19200019.1"></a>Reporting Tools</h4>
-<!--l. 2922--><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 Ledger-SMB 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.
-</p><!--l. 2929--><p class="noindent">
+</p><!--l. 2925--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.1.1 </span> <a
id="x1-19300019.1.1"></a>Examples</h5>
-<!--l. 2931--><p class="noindent">We have created spreadsheets of the summaries of activity by day and used the ODBC driver to import these
+<!--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.
-</p><!--l. 2939--><p class="noindent">
+</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. 2941--><p class="noindent">Various line of business tools have been written using PostgreSQL in large part due to the fact that it is far
+<!--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
the HERMES CRM framework, for example.
-</p><!--l. 2949--><p class="noindent">
+</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. 2951--><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">Ledger-SMB 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. 2957--><p class="indent"> If the integration solution does not keep this in mind, it is possible to create a situation where the account
+</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
transactions are ambiguously associated with a number of different types of financial transactions. This
would lead to a large number of problems.
-</p><!--l. 2963--><p class="noindent">
+</p><!--l. 2959--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.2.2 </span> <a
id="x1-19600019.2.2"></a>Strategies</h5>
-<!--l. 2965--><p class="noindent">In general, it is advisable to run all such programs that benefit from integration in the same database but
+<!--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.
-</p><!--l. 2972--><p class="indent"> One possibility for this sort of integration is to use database triggers to replicate the data between the
+</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
forethought.
-</p><!--l. 2979--><p class="indent"> A second possibility is to use views to allow one application to present the data from the other as its own.
+</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
fields.
-</p><!--l. 2985--><p class="noindent">
+</p><!--l. 2981--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.2.3 </span> <a
id="x1-19700019.2.3"></a>Examples</h5>
-<!--l. 2987--><p class="noindent">Others have integrated L&#8217;ane POS and Ledger-SMB in order to make it work better with touch screen
+<!--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
triggers were used to perform the actual integration.
-</p><!--l. 2993--><p class="noindent">
+</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. 2995--><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 Ledger-SMB 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. 3002--><p class="noindent">
+</p><!--l. 2998--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.3.1 </span> <a
id="x1-19900019.3.1"></a>Strategies</h5>
-<!--l. 3004--><p class="noindent">Real-time integration is not always possible. MySQL does not support the SQL extension SQL/MED
+<!--l. 3000--><p class="noindent">Real-time integration is not always possible. MySQL does not support the SQL extension SQL/MED
(Management of External Data) that supports non-MySQL data sources so it is not possible to replicate the
data in real-time. Therefore one generally resorts to integrating the system using time-based updates.
Replication may be somewhat error-prone unless the database manager supports triggers (first added to
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. 3015--><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 Ledger-SMB tables so that you can
track the source record from the other application in the case of an update.
-</p><!--l. 3019--><p class="indent"> In general, one must write replication scripts that dump the information from one and add it to the other.
+</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.
-</p><!--l. 3023--><p class="noindent">
+</p><!--l. 3019--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">19.3.2 </span> <a
id="x1-20000019.3.2"></a>Integration Products and Open Source Projects</h5>
-<!--l. 3025--><p class="noindent">While many people write Perl scripts to accomplish the replication, an open source project exists called
+<!--l. 3021--><p class="noindent">While many people write Perl scripts to accomplish the replication, an open source project exists called
DBI-Link. This package requires PL/Perl to be installed in PostgreSQL, and it allows PostgreSQL to present
any data accessible via Perl&#8217;s DBI framework as PostgreSQL tables. DBI-Link can be used to allow
PostgreSQL to pull the data from MySQL or other database managers.
-</p><!--l. 3032--><p class="indent"> DBI-Link can simplify the replication process by reducing the operation to a set of SQL queries.
-</p><!--l. 3036--><p class="noindent">
+</p><!--l. 3028--><p class="indent"> DBI-Link can simplify the replication process by reducing the operation to a set of SQL queries.
+</p><!--l. 3032--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">20 </span> <a
id="x1-20100020"></a>Customization Guide</h3>
-<!--l. 3038--><p class="noindent">This section is meant to provide a programmer with an understanding of the technologies enough
+<!--l. 3034--><p class="noindent">This section is meant to provide a programmer with an understanding of the technologies enough
information to get up to speed quickly and minimize the time spent familiarizing themselves with the
software. Topics in this section are listed in order of complexity. As it appeals to a narrower audience than
previous discussions of this topic, it is listed separately.
-</p><!--l. 3046--><p class="noindent">
+</p><!--l. 3042--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">20.1 </span> <a
id="x1-20200020.1"></a>General Information</h4>
-<!--l. 3048--><p class="noindent">The main framework scripts (the ar.pl, ap.pl, etc. scripts found in the root of the installation directory) handle
+<!--l. 3044--><p class="noindent">The main framework scripts (the ar.pl, ap.pl, etc. scripts found in the root of the installation directory) handle
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. 3054--><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"> Ledger-SMB 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.
-</p><!--l. 3061--><p class="indent"> In essence one can and often will store all sorts of data structures in the primary Form object. These can
+</p><!--l. 3057--><p class="indent"> In essence one can and often will store all sorts of data structures in the primary Form object. These can
include almost anything. It is not uncommon to see lists of hashes stored as attributes to a Form
object.
-</p><!--l. 3067--><p class="noindent">
+</p><!--l. 3063--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">20.2 </span> <a
id="x1-20300020.2"></a>Customizing Templates</h4>
-<!--l. 3069--><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 Ledger-SMB. 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
is not intended to function as a complete reference.
-</p><!--l. 3076--><p class="indent"> Template instructions are contained in tags &#x003C;?lsmb and ?&#x003E;. The actual parsing is done by the
+</p><!--l. 3072--><p class="indent"> Template instructions are contained in tags &#x003C;?lsmb and ?&#x003E;. The actual parsing is done by the
parse_template function in LSMB/Form.pm.
-</p><!--l. 3080--><p class="noindent">
+</p><!--l. 3076--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.2.1 </span> <a
id="x1-20400020.2.1"></a>Page Breaks in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span></h5>
-<!--l. 3082--><p class="noindent">The first tag one will see with <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 3078--><p class="noindent">The first tag one will see with <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;templates is &#x003C;?lsmb pagebreak num1 num2 num3 ?&#x003E;
</p>
@@ -3710,9 +3709,9 @@ class="E">E</span>X</span></span>&#x00A0;templates is &#x003C;?lsmb pagebreak nu
<li class="itemize">num2 represents lines on first page
</li>
<li class="itemize">num3 represents lines on second page.</li></ul>
-<!--l. 3090--><p class="noindent">The pagebreak block is terminated by &#x003C;?lsmb end pagebreak ?&#x003E;. Any text within the pagebreak block is ignored
+<!--l. 3086--><p class="noindent">The pagebreak block is terminated by &#x003C;?lsmb end pagebreak ?&#x003E;. Any text within the pagebreak block is ignored
by the template.
-</p><!--l. 3094--><p class="noindent">
+</p><!--l. 3090--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.2.2 </span> <a
id="x1-20500020.2.2"></a>Conditionals</h5>
@@ -3728,14 +3727,14 @@ by the template.
<li class="itemize">Lines conditionals are otherwise ignored by the parser.
</li>
<li class="itemize">Conditionals cannot be nested, but IF&#8217;s can be nested inside loops.</li></ul>
-<!--l. 3109--><p class="noindent">
+<!--l. 3105--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.2.3 </span> <a
id="x1-20600020.2.3"></a>Loops</h5>
-<!--l. 3111--><p class="noindent">&#x003C;?lsmb foreach varname ?&#x003E;is used to iterate through a list of vars set by the user interface system (usually
+<!--l. 3107--><p class="noindent">&#x003C;?lsmb foreach varname ?&#x003E;is used to iterate through a list of vars set by the user interface system (usually
one of the files under bin/mozilla (or otherwise). The block is repeated for each varname in a list. Block ends
with &#x003C;?lsmb end varname ?&#x003E;
-</p><!--l. 3117--><p class="noindent">
+</p><!--l. 3113--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.2.4 </span> <a
id="x1-20700020.2.4"></a>File Inclusion</h5>
@@ -3753,35 +3752,35 @@ class="E">E</span>X</span></span>&#x00A0;templates, the input
<li class="itemize">Filenames cannot use slashes (/) or .. due to directory transversal considerations.
</li>
<li class="itemize">Files can force other files to be included, but the same file cannot be included more than once.</li></ul>
-<!--l. 3133--><p class="noindent">
+<!--l. 3129--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.2.5 </span> <a
id="x1-20800020.2.5"></a>Cross-referencing and multiple passes of <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span></h5>
-<!--l. 3135--><p class="noindent">In <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
+<!--l. 3131--><p class="noindent">In <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
class="E">E</span>X</span></span>&#x00A0;cross-references require two passes with latex to resolve. This is because the type is set page by
page and the program really doesn&#8217;t know on which page a given reference will fall. This becomes an
even larger issue where floats are concerned as they can move between pages for formatting
reasons.
-</p><!--l. 3141--><p class="indent"> In rare cases, cross-references may point at incorrect pages even with two passes (if the inclusion of the
+</p><!--l. 3137--><p class="indent"> In rare cases, cross-references may point at incorrect pages even with two passes (if the inclusion of the
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. 3146--><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"> 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
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:
-</p><!--l. 3150--><p class="indent"> system("latex &#8211;interaction=nonstopmode $self-&#x003E;<span
+</p><!--l. 3146--><p class="indent"> system("latex &#8211;interaction=nonstopmode $self-&#x003E;<span
class="cmsy-10">{ </span>tmpfile<span
class="cmsy-10">}</span>&#x00A0;&#x003E;&#x00A0;$ self-&#x003E;<span
class="cmsy-10">{ </span>tmpfile<span
class="cmsy-10">} </span>.err");
-</p><!--l. 3155--><p class="indent"> Duplicate this line for two passes, or add two copies if you need three passes.
-</p><!--l. 3159--><p class="noindent">
+</p><!--l. 3151--><p class="indent"> Duplicate this line for two passes, or add two copies if you need three passes.
+</p><!--l. 3155--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.2.6 </span> <a
id="x1-20900020.2.6"></a>Variable Substitution</h5>
-<!--l. 3161--><p class="noindent">The following format is used for variable substitution:
+<!--l. 3157--><p class="noindent">The following format is used for variable substitution:
</p>
<ul class="itemize1">
<li class="itemize">&#x003C;?lsmb varname options ?&#x003E;Options are one or more (whitespace separated) of:
@@ -3794,52 +3793,52 @@ class="cmsy-10">} </span>.err");
</li></ul>
-<!--l. 3175--><p class="noindent">
+<!--l. 3171--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">20.3 </span> <a
id="x1-21000020.3"></a>Customizing Forms</h4>
-<!--l. 3177--><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 Ledger-SMB 1.0.0 and later,
symlinks are not generally used.
-</p><!--l. 3180--><p class="indent"> Each module is identified with a two letter combination: ar, ap, cp, etc. These combinations are generally
+</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.
-</p><!--l. 3184--><p class="indent"> Execution in these files begins with the function designated by the form-&#x003E;<span
+</p><!--l. 3180--><p class="indent"> Execution in these files begins with the function designated by the form-&#x003E;<span
class="cmsy-10">{</span>action<span
class="cmsy-10">} </span>variable. This variable
is usually derived from configuration parameters in the menu.ini or the name of the button that was clicked
on to submit the previous page. Due to localization requirements, the following process is used to determine
the appropriate action taken:
-</p><!--l. 3191--><p class="indent"> The $locale-&#x003E;getsub routine is called. This routine checks the locale package to determine if the value
+</p><!--l. 3187--><p class="indent"> The $locale-&#x003E;getsub routine is called. This routine checks the locale package to determine if the value
needs to be translated back into an appropriate LSMB function. If not, the variable is lower-cased, and all
spaces are converted into underscores.
-</p><!--l. 3196--><p class="indent"> In general there is no substitute for reading the code to understand how this can be customized and how
+</p><!--l. 3192--><p class="indent"> In general there is no substitute for reading the code to understand how this can be customized and how
one might go about doing this.
-</p><!--l. 3200--><p class="noindent">
+</p><!--l. 3196--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">20.4 </span> <a
id="x1-21100020.4"></a>Customizing Modules</h4>
-<!--l. 3202--><p class="noindent">The Perl Modules (.pm files) in the LedgerSMB directory contain the main business logic of the application
+<!--l. 3198--><p class="noindent">The Perl Modules (.pm files) in the LedgerSMB directory contain the main business logic of the application
including all database access. Most of the modules are relatively easy to follow, but the code quality leaves
something to be desired. The API calls themselves are likely to be replaced in the future, so work on
documenting API calls is now focused solely on those calls that are considered to be stable. At the
moment, the best place to request information on the API&#8217;s is on the Developmers&#8217; Email List
(<a
href="mailto:ledger-smb-devel@lists.sourceforge.net" >ledger-smb-devel@lists.sourceforge.net</a>).
-</p><!--l. 3211--><p class="indent"> Many of these modules have a fair bit of dormant code in them which was written for forthcoming
+</p><!--l. 3207--><p class="indent"> Many of these modules have a fair bit of dormant code in them which was written for forthcoming
features, such as payroll and bills of materials.
-</p><!--l. 3215--><p class="indent"> One can add a new module through the normal means and connect it to other existing modules.
-</p><!--l. 3219--><p class="noindent">
+</p><!--l. 3211--><p class="indent"> One can add a new module through the normal means and connect it to other existing modules.
+</p><!--l. 3215--><p class="noindent">
</p>
<h5 class="subsubsectionHead"><span class="titlemark">20.4.1 </span> <a
id="x1-21200020.4.1"></a>Database Access</h5>
-<!--l. 3221--><p class="noindent">The $form object provides two methods for accessing the database. The $form-&#x003E;dbconnect(%myconfig) method
+<!--l. 3217--><p class="noindent">The $form object provides two methods for accessing the database. The $form-&#x003E;dbconnect(%myconfig) method
commits each individual statement as its own transaction. The $form-&#x003E;dbconnect_noauto(%myconfig)
method requires a manual commit. Both these functions are thin wrappers around the standard Perl DBI
operations.
-</p><!--l. 3228--><p class="noindent">
+</p><!--l. 3224--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">20.5 </span> <a
id="x1-21300020.5"></a>CLI Examples</h4>
-<!--l. 3229--><p class="noindent">Louis Moore contributed some SQL-Ledger CLI examples that still work for LedgerSMB. You can find his page at
+<!--l. 3225--><p class="noindent">Louis Moore contributed some SQL-Ledger CLI examples that still work for LedgerSMB. You can find his page at
<span class="obeylines-h"><a
href="http://www.sql-ledger.org/cgi-bin/nav.pl?page=contrib/moore.html&title=Louis%20B.%20Moore" class="url" >http://www.sql-ledger.org/cgi-bin/nav.pl?page=contrib/moore.html&amp;title=Louis%20B.%20Moore</a></span>.
@@ -3849,40 +3848,40 @@ 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. 3244--><p class="noindent">There are a couple of relevant sources of information on Ledger-SMB in particular.
-</p><!--l. 3247--><p class="indent"> The most important resources are the LedgerSMB web site (<span class="obeylines-h"><a
+<!--l. 3240--><p class="noindent">There are a couple of relevant sources of information on Ledger-SMB 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. 3251--><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 Ledger-SMB
work through at least one accounting textbook. Which textbook is not as important as the fact that a textbook
is used.
-</p><!--l. 3257--><p class="noindent">
+</p><!--l. 3253--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">B </span> <a
id="x1-216000B"></a>Quick Tips</h3>
-<!--l. 3260--><p class="noindent">
+<!--l. 3256--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">B.1 </span> <a
id="x1-217000B.1"></a>Understanding Shipping Addresses and Carriers</h4>
-<!--l. 3262--><p class="noindent">Each customer can have a default shipping address. This address is displayed prominantly in the add new
+<!--l. 3258--><p class="noindent">Each customer can have a default shipping address. This address is displayed prominantly in the add new
customer screen. To change the shipping address for a single order, one can use the ship to button at the
bottom of the quote, order, or invoice screen.
-</p><!--l. 3267--><p class="indent"> The carrier can be noted in the Ship Via field. However, this is a freeform field and is largely used as
+</p><!--l. 3263--><p class="indent"> The carrier can be noted in the Ship Via field. However, this is a freeform field and is largely used as
commentary (or instructions for the shipping crew).
-</p><!--l. 3272--><p class="noindent">
+</p><!--l. 3268--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">B.2 </span> <a
id="x1-218000B.2"></a>Handling bad debts</h4>
-<!--l. 3274--><p class="noindent">In the event that a customer&#8217;s check bounces or a collection requirement is made, one can flag the customer&#8217;s
+<!--l. 3270--><p class="noindent">In the event that a customer&#8217;s check bounces or a collection requirement is made, one can flag the customer&#8217;s
account by setting the credit limit to a negative number.
-</p><!--l. 3278--><p class="indent"> If a debt needs to be written off, one can either use the allowance method (by writing it against the contra
+</p><!--l. 3274--><p class="indent"> If a debt needs to be written off, one can either use the allowance method (by writing it against the contra
asset account of "Allowance for Bad Debts" or using the direct writeoff method where it is posted as an
expense.
-</p><!--l. 3284--><p class="noindent">
+</p><!--l. 3280--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">C </span> <a
id="x1-219000C"></a>Step by Steps for Vertical Markets</h3>
-<!--l. 3287--><p class="noindent">
+<!--l. 3283--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">C.1 </span> <a
id="x1-220000C.1"></a>Common Installation Errors</h4>
@@ -3896,20 +3895,20 @@ expense.
<li class="itemize">When the chart of accounts (COA) is altered such that it is no longer set up with appropriate
items, you can make it impossible to define goods and services properly. In general, until you
are familiar with the software, it is best to rename and add accounts rather than deleting them.</li></ul>
-<!--l. 3301--><p class="noindent">
+<!--l. 3297--><p class="noindent">
</p>
<h4 class="subsectionHead"><span class="titlemark">C.2 </span> <a
id="x1-221000C.2"></a>Retail With Light Manufacturing</h4>
-<!--l. 3303--><p class="noindent">For purposes of this example we will use a business that assembles computers and sells them on a retail
+<!--l. 3299--><p class="noindent">For purposes of this example we will use a business that assembles computers and sells them on a retail
store.
-</p><!--l. 3306--><p class="indent">
+</p><!--l. 3302--><p class="indent">
</p><ol class="enumerate1" >
<li class="enumerate"><a
id="x1-221002x1"></a>Install Ledger-SMB.
</li>
<li class="enumerate"><a
id="x1-221004x2"></a>Set preferences, and customize chart of accounts.
- <!--l. 3310--><p class="noindent">
+ <!--l. 3306--><p class="noindent">
</p><ol class="enumerate2" >
<li class="enumerate"><a
id="x1-221006x1"></a>Before customizing the COA it is suggested that you consult an accountant.</li></ol>
@@ -3988,19 +3987,19 @@ class="cmmi-10">&#x003E;</span>payment. Fill out approrpiate fields and click
<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. 3381--><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 Ledger-SMB 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. 3385--><p class="indent"> A custom assembly is a bit difficult to make. One must add the assembly prior to invoice (this is not true
+</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
of goods and services). If the assembly is based on a different assembly but may cost more (due to
non-standard parts) you can load the old assembly using Goods and Services-&#x003E;Reports-&#x003E;Assemblies and
then make necessary changes (including to the SKU/Partnumber) and save it as new.
-</p><!--l. 3393--><p class="indent"> Then one can add it to the invoice.
-</p><!--l. 3396--><p class="noindent">
+</p><!--l. 3389--><p class="indent"> Then one can add it to the invoice.
+</p><!--l. 3392--><p class="noindent">
</p>
<h3 class="sectionHead"><span class="titlemark">D </span> <a
id="x1-222000D"></a>Glossary</h3>
-<!--l. 3398--><p class="noindent">
+<!--l. 3394--><p class="noindent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">BIC</span> </dt><dd
@@ -4016,7 +4015,7 @@ class="description">is Cost of Goods Sold. When an item is sold, then the expens
class="pplb8t-">Credit</span> </dt><dd
class="description">: A logical transactional unit in double entry accounting. It is the opposite of a debit. Credits
affect different account types as follows:
- <!--l. 3409--><p class="noindent">
+ <!--l. 3405--><p class="noindent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Equity</span> </dt><dd
@@ -4045,7 +4044,7 @@ class="description">: Credits are used to apply adjustments at the end of accoun
class="pplb8t-">Debit</span> </dt><dd
class="description">: A logical transactional unit in double entry accounting systems. It is the opposite of a credit. Debits
affect different account types as follows:
- <!--l. 3425--><p class="noindent">
+ <!--l. 3421--><p class="noindent">
</p><dl class="description"><dt class="description">
<span
class="pplb8t-">Equity</span> </dt><dd
diff --git a/doc/html_manual/LedgerSMB-manual2.html b/doc/html_manual/LedgerSMB-manual2.html
index 878014e3..fe10871b 100644
--- a/doc/html_manual/LedgerSMB-manual2.html
+++ b/doc/html_manual/LedgerSMB-manual2.html
@@ -10,12 +10,12 @@
<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-03-26 00:09:00" />
+<meta name="date" content="2007-04-09 13:59:00" />
<link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" />
</head><body
>
<div class="footnote-text">
- <!--l. 721--><p class="indent"> <span class="footnote-mark"><a
+ <!--l. 717--><p class="indent"> <span class="footnote-mark"><a
id="fn1x0"> <sup class="textsuperscript">1</sup></a></span><span
class="pplr8t-x-x-80">Adjustments would be entered via the General Ledger. The exact process is beyond the scope of this document,</span>
<span
diff --git a/doc/html_manual/LedgerSMB-manual3.html b/doc/html_manual/LedgerSMB-manual3.html
index 6574ca04..a327abd1 100644
--- a/doc/html_manual/LedgerSMB-manual3.html
+++ b/doc/html_manual/LedgerSMB-manual3.html
@@ -10,12 +10,12 @@
<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-03-26 00:09:00" />
+<meta name="date" content="2007-04-09 13:59:00" />
<link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" />
</head><body
>
<div class="footnote-text">
- <!--l. 1875--><p class="indent"> <span class="footnote-mark"><a
+ <!--l. 1871--><p class="indent"> <span class="footnote-mark"><a
id="fn2x0"> <sup class="textsuperscript">2</sup></a></span><span
class="pplr8t-x-x-80">Petty cash denotes a drawer of cash that is used to pay small expenses. When an expense is paid, it is recorded on a slip of paper</span>
<span
diff --git a/doc/html_manual/LedgerSMB-manual4.html b/doc/html_manual/LedgerSMB-manual4.html
index eb08cc61..ec89758e 100644
--- a/doc/html_manual/LedgerSMB-manual4.html
+++ b/doc/html_manual/LedgerSMB-manual4.html
@@ -10,12 +10,12 @@
<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-03-26 00:09:00" />
+<meta name="date" content="2007-04-09 13:59:00" />
<link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" />
</head><body
>
<div class="footnote-text">
- <!--l. 1894--><p class="noindent"><span class="footnote-mark"><a
+ <!--l. 1890--><p class="noindent"><span class="footnote-mark"><a
id="fn3x0"> <sup class="textsuperscript">3</sup></a></span><span
class="pplr8t-x-x-80">Source documents are things like receipts, canceled checks, etc. that can be used to verify the existence and nature of a</span>
<span
diff --git a/doc/manual/LedgerSMB-manual.aux b/doc/manual/LedgerSMB-manual.aux
index a97b04ec..3611cf7d 100644
--- a/doc/manual/LedgerSMB-manual.aux
+++ b/doc/manual/LedgerSMB-manual.aux
@@ -16,5 +16,5 @@
\@writefile{toc}{\select@language{english}}
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
-\newlabel{fig-sl-stack}{{\rEfLiNK{x1-17600017.1}{\csname :autoref\endcsname{figure}17.1}}{\rEfLiNK{x1-17600017.1}{\csname :autoref\endcsname{figure}81}}{}{}{}}
+\newlabel{fig-sl-stack}{{\rEfLiNK{x1-17600017.1}{\csname :autoref\endcsname{figure}17.1}}{\rEfLiNK{x1-17600017.1}{\csname :autoref\endcsname{figure}82}}{}{}{}}
\newlabel{fdl}{{\rEfLiNK{x1-223000E}{\csname :autoref\endcsname{section}E}}{\rEfLiNK{x1-223000E}{\csname :autoref\endcsname{section}97}}{}{}{}}
diff --git a/doc/manual/LedgerSMB-manual.log b/doc/manual/LedgerSMB-manual.log
index 122c41f0..0657c2f6 100644
--- a/doc/manual/LedgerSMB-manual.log
+++ b/doc/manual/LedgerSMB-manual.log
@@ -1,12 +1,12 @@
-This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.1.7) 26 MAR 2007 00:18
+This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.1.7) 9 APR 2007 13:59
entering extended mode
**\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCo
de"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.
-{\g@addto@macro\@documentclasshook{\RequirePackage[#1,xhtml,docbook]{tex4ht}}\l
-et\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\d
-ef\csname tex4ht\endcsname{#1,xhtml,docbook}\def\HCode####1{\documentstyle[tex4
-ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode .a.b.c.\i
-nput LedgerSMB-manual.tex
+{\g@addto@macro\@documentclasshook{\RequirePackage[#1,xhtml]{tex4ht}}\let\HCode
+\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csnam
+e tex4ht\endcsname{#1,xhtml}\def\HCode####1{\documentstyle[tex4ht,}\@ifnextchar
+[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode .a.b.c.\input LedgerSMB-
+manual
(./LedgerSMB-manual.tex (/usr/share/texmf/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/share/texmf/tex/latex/base/size10.clo
@@ -171,14 +171,15 @@ version 2006-01-19-00:46
\openout3 = `LedgerSMB-manual.xref'.
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
+--------------------------------------
+--- Note --- to remove the DOCTYPE declaration use the command line option `no-
+DOCTYPE'
+--------------------------------------
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
)
--------------------------------------
--- Note --- for marking of the base font, use the command line option `fonts+'
@@ -197,14 +198,48 @@ version 2006-03-12-15:31
--- Note --- for ^ of catcode 13, use the command line option `^13'
--------------------------------------
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
+--------------------------------------
+--- Note --- for alternative charset, use the command line option `charset=...'
+
+--------------------------------------
+--------------------------------------
+--- Note --- to ignore CSS font decoration, use the `NoFonts' command line opti
+on
+--------------------------------------
+--------------------------------------
+--- Note --- for jpg bitmaps, use the `jpg' command line option
+--------------------------------------
+--------------------------------------
+--- Note --- for gif bitmaps, use the `gif' command line option
+--------------------------------------
+--------------------------------------
+--- Note --- for content and toc in 2 frames, use the command line option `fram
+es'
+--------------------------------------
+--------------------------------------
+--- Note --- for content, toc, and footnotes in 3 frames, use the command line
+option `frames-fn'
+--------------------------------------
+--------------------------------------
+--- Note --- for file extension name xht, use the command line option `xht'
+--------------------------------------
+TeX4ht package options: xhtml
+--------------------------------------
+--- Note --- for inline CSS code, use the command line option `css-in'
+--------------------------------------
+--------------------------------------
+--- Note --- for pop ups on mouse over, use the command line option `mouseover'
+
+--------------------------------------
+--------------------------------------
+--- Note --- for addressing images in a subdirectory, use the command line opti
+on `imgdir:.../'
+--------------------------------------
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
)
\:tokwrite=\toks19
\:tokpage=\toks20
@@ -221,125 +256,164 @@ version 2006-03-12-15:31
\openout4 = `LedgerSMB-manual.4tc'.
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
)
(/usr/share/texmf/tex/generic/tex4ht/latex.4ht
version 2006-03-27-18:14
+--------------------------------------
+--- Note --- for links into captions, instead of float heads, use the command l
+ine option `refcaption'
+--------------------------------------
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-\tmp:bx=\box26
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
+--------------------------------------
+--- Note --- for enumerated list elements li's with value attributes, use the c
+ommand line option `li-'
+--------------------------------------
+--------------------------------------
+--- Note --- for CSS2 code, use the command line option `css2'
+--------------------------------------
+--------------------------------------
+--- Note --- for pictorial tabular, use the command line option `pic-tabular'
+--------------------------------------
+--------------------------------------
+--- Note --- for bitmap fbox'es, use the command line option `pic-fbox'
+--------------------------------------
+--------------------------------------
+--- Note --- for bitmap framebox'es, use the command line option `pic-framebox'
+
+--------------------------------------
+--------------------------------------
+--- Note --- for inline footnotes use command line option `fn-in'
+--------------------------------------
+--------------------------------------
+--- Note --- for a JavaHelp output format, use the command line option `javahel
+p'
+--------------------------------------
+--------------------------------------
+--- Note --- for tracing of latex font commands, use the command line option `f
+onts'
+--------------------------------------
+--------------------------------------
+--- Note --- for width specifications of tabular p entries, use the `p-width' c
+ommand line option or a configuration similar to \Configure{HColWidth}{\HCode{
+style="width:\HColWidth"}}
+--------------------------------------
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
+--------------------------------------
+--- Note --- for pictorial eqnarray, use the command line option `pic-eqnarray'
+
+--------------------------------------
+--------------------------------------
+--- Note --- for pictorial array, use the command line option `pic-array'
+--------------------------------------
+--------------------------------------
+--- Note --- for pictorial $...$ environments, use the command line option `pic
+-m' (not recommended!!)
+--------------------------------------
+--------------------------------------
+--- Note --- for pictorial $...$ and $$...$$ environments with latex alt, use t
+he command line option `pic-m+' (not safe!!)
+--------------------------------------
+--------------------------------------
+--- Note --- for pictorial array, use the command line option `pic-array'
+--------------------------------------
))
(/usr/share/texmf/tex/generic/tex4ht/fontmath.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/article.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-TeX4ht package options: xhtml,docbook,refcaption
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
+--------------------------------------
+--- Note --- for automatic sectioning pagination, use the command line option `
+1', `2', `3', '4', '5', '6', or '7'
+--------------------------------------
+--------------------------------------
+--- Note --- for files named derived from section titles, use the command line
+option `sec-filename'
+--------------------------------------
+--------------------------------------
+--- Note --- for i-columns index, use the command line option `index=i' (e.g.,
+index=2)
+--------------------------------------
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/inputenc.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/latin1.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/url.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
+--------------------------------------
+--- Note --- for URL encoding within href use the command line option `url-enc'
+
+--------------------------------------
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/color.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/dvips.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/dvipsnam.4ht
version 2006-03-27-18:14
(/usr/share/texmf/tex/latex/graphics/dvipsnam.def)
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/hyperref.4ht
version 2006-03-27-18:14
@@ -347,59 +421,44 @@ version 2006-03-27-18:14
l.287 --- TeX4ht warning --- \href of hyperref.sty introduces the prefix `file:
' to prefix-free references. The command \hyperlinkfileprefix{...} may be used
for changing the prefix (probably \hyperlinkfileprefix{}). ---
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/pd1enc.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/babel.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
(/usr/share/texmf/tex/generic/tex4ht/english.4ht
version 2006-03-27-18:14
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
))
-(/usr/share/texmf/tex/generic/tex4ht/docbook.4ht
-version 2006-03-12-15:31
-)
-(/usr/share/texmf/tex/generic/tex4ht/unicode.4ht
-version 2006-03-27-13:41
+(/usr/share/texmf/tex/generic/tex4ht/html4.4ht
+version 2006-03-27-18:14
)
-(/usr/share/texmf/tex/generic/tex4ht/docbook-math.4ht
-version 2006-03-12-15:31
+(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht
+version 2006-03-27-18:14
)) (./LedgerSMB-manual.aux)
\openout1 = `LedgerSMB-manual.aux'.
@@ -418,7 +477,8 @@ LaTeX Font Info: ... okay on input line 32.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 32.
LaTeX Font Info: ... okay on input line 32.
LaTeX Font Info: Try loading font information for T1+ppl on input line 32.
- (/usr/share/texmf/tex/latex/psnfss/t1ppl.fd
+
+(/usr/share/texmf/tex/latex/psnfss/t1ppl.fd
File: t1ppl.fd 2001/06/04 font definitions for T1/ppl.
)
Package hyperref Info: Link coloring ON on input line 32.
@@ -486,108 +546,111 @@ LaTeX Font Info: Try loading font information for T1+pcr on input line 42.
(/usr/share/texmf/tex/latex/psnfss/t1pcr.fd
File: t1pcr.fd 2001/06/04 font definitions for T1/pcr.
-) (./LedgerSMB-manual.4ct [3])
-(./LedgerSMB-manual.4ct [4]) [5]
+) (./LedgerSMB-manual.4ct [3]
+[4] [5] [6]) [7] (./LedgerSMB-manual.4ct) [8]
LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <12> not available
(Font) Font shape `T1/ppl/b/n' tried instead on input line 56.
LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <10> not available
(Font) Font shape `T1/ppl/b/n' tried instead on input line 59.
- [6
+ [9
-] [7] [8] [9] [10] [11] [12] [13] [14]
-[15] [16] [17] [18] [19]
+] [10] [11] [12] [13] [14]
+[15] [16] [17] [18] [19] [20]
LaTeX Font Info: External font `cmex10' loaded for size
-(Font) <7> on input line 530.
+(Font) <7> on input line 526.
LaTeX Font Info: External font `cmex10' loaded for size
-(Font) <5> on input line 530.
-l. 530 Writing LedgerSMB-manual.idv[1] (LedgerSMB-manual0x.png)
-l. 530 Writing LedgerSMB-manual.idv[2] (LedgerSMB-manual1x.png)
- [20] [21] [22]
-l. 719 Writing LedgerSMB-manual.idv[3] (LedgerSMB-manual2x.png)
- [23]
-l. 757 Writing LedgerSMB-manual.idv[4] (LedgerSMB-manual3x.png)
-l. 757 Writing LedgerSMB-manual.idv[5] (LedgerSMB-manual4x.png)
- [24] [25] [26] [27] [28] [29]
-[30] [31] [32] [33] [34] [35] [36
+(Font) <5> on input line 526.
+ [21] [22] [23]
+--- file LedgerSMB-manual2.html ---
+ [24
-] (./simple_ar_dataflow.tex) [37
+] [25] [26] [27] [28] [29]
+[30] [31] [32] [33] [34] [35] [36] [37
-] [38
+] (./simple_ar_dataflow.tex
+l. 9 Writing LedgerSMB-manual.idv[1] (LedgerSMB-manual0x.png)
+) [38
]
[39
-] (./ar_workflow_ship.tex) [40
+] [40
-] [41
+] (./ar_workflow_ship.tex
+l. 9 Writing LedgerSMB-manual.idv[2] (LedgerSMB-manual1x.png)
+) [41
] [42
-] (./ar_workflow_complex.tex)
-[43
+] [43
-] [44
+] (./ar_workflow_complex.tex
+l. 9 Writing LedgerSMB-manual.idv[3] (LedgerSMB-manual2x.png)
+)
+[44
] [45
-] (./simple_ap_workflow.tex) [46
+] [46
-] [47
+] (./simple_ap_workflow.tex
+l. 9 Writing LedgerSMB-manual.idv[4] (LedgerSMB-manual3x.png)
+) [47
] [48
-]
-(./ap_workflow_ship.tex) [49
+] [49
-] [50
+]
+(./ap_workflow_ship.tex
+l. 9 Writing LedgerSMB-manual.idv[5] (LedgerSMB-manual4x.png)
+) [50
] [51
-] (./ap_workflow_complex.tex) [52
+] [52
+
+] (./ap_workflow_complex.tex
+l. 9 Writing LedgerSMB-manual.idv[6] (LedgerSMB-manual5x.png)
+) [53
]
-[53
+[54
-] [54] [55] [56] [57] [58] [59
+] [55] [56] [57] [58] [59] [60
-] [60
+] [61
]
-l. 1872 Writing LedgerSMB-manual.idv[6] (LedgerSMB-manual5x.png)
-l. 1892 Writing LedgerSMB-manual.idv[7] (LedgerSMB-manual6x.png)
- [61
+--- file LedgerSMB-manual3.html ---
+--- file LedgerSMB-manual4.html ---
+ [62
+
-] [62] [63] [64] [65] [66] [67]
-[68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79
+] [63] [64] [65] [66] [67] [68]
+[69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80
-] [80
+] [81
]
-(./sl-stack.tex) [81
-
-] [82
-
-] [83] [84] [85] [86] [87] [88] [89]
-l. 3150 Writing LedgerSMB-manual.idv[8] (LedgerSMB-manual7x.png)
-l. 3151 Writing LedgerSMB-manual.idv[9] (LedgerSMB-manual8x.png)
-l. 3152 Writing LedgerSMB-manual.idv[10] (LedgerSMB-manual9x.png)
-l. 3152 Writing LedgerSMB-manual.idv[11] (LedgerSMB-manual10x.png)
-l. 3185 Writing LedgerSMB-manual.idv[12] (LedgerSMB-manual11x.png)
-l. 3185 Writing LedgerSMB-manual.idv[13] (LedgerSMB-manual12x.png)
- [90] [91]
-[92
-
-] [93]
-l. 3330 Writing LedgerSMB-manual.idv[14] (LedgerSMB-manual13x.png)
- [94] [95] [96] (./fdl.tex [97] [98] [99] [100] [101] [102] [103])
-[104] (./LedgerSMB-manual.aux) )
+(./sl-stack.tex
+l. 9 Writing LedgerSMB-manual.idv[7] (LedgerSMB-manual6x.png)
+) [82
+
+] [83
+
+] [84] [85] [86] [87] [88] [89] [90] [91] [92]
+[93
+
+] [94] [95] [96] (./fdl.tex [97] [98] [99] [100] [101] [102] [103] [104])
+[105] (./LedgerSMB-manual.aux) )
Here is how much of TeX's memory you used:
- 6847 strings out of 94501
- 85314 string characters out of 1176790
- 196373 words of memory out of 1000000
- 9835 multiletter control sequences out of 10000+50000
- 15567 words of font info for 34 fonts, out of 500000 for 2000
+ 7214 strings out of 94501
+ 89230 string characters out of 1176790
+ 254291 words of memory out of 1000000
+ 10237 multiletter control sequences out of 10000+50000
+ 16498 words of font info for 35 fonts, out of 500000 for 2000
580 hyphenation exceptions out of 1000
- 33i,7n,40p,751b,752s stack positions out of 1500i,500n,5000p,200000b,5000s
+ 33i,8n,40p,731b,789s stack positions out of 1500i,500n,5000p,200000b,5000s
-Output written on LedgerSMB-manual.dvi (104 pages, 391068 bytes).
+Output written on LedgerSMB-manual.dvi (105 pages, 394056 bytes).
diff --git a/doc/manual/LedgerSMB-manual.tex b/doc/manual/LedgerSMB-manual.tex
index 388e8482..2d1c80f9 100644
--- a/doc/manual/LedgerSMB-manual.tex
+++ b/doc/manual/LedgerSMB-manual.tex
@@ -489,11 +489,7 @@ by the individual store. Thus a sales tax account is a liability--
it represents money owed by the business to the government.
To add a sales tax account, create an account in the Chart of Accounts
-as a liability account, check all of the \char`\"{}tax\char`\"{} checkboxes,
-and answer the following question as \char`\"{}yes:\char`\"{}
-
-\char`\"{}Include this account on the customer/vendor forms to flag
-customer/vendor as taxable?\char`\"{}
+as a liability account, check all of the \char`\"{}tax\char`\"{} checkboxes.
Once this account is created, one can set the tax amount.
diff --git a/templates/demo/letterhead.tex b/templates/demo/letterhead.tex
index 10ad0c44..dbaa198b 100644
--- a/templates/demo/letterhead.tex
+++ b/templates/demo/letterhead.tex
@@ -5,7 +5,7 @@
<?lsmb address ?>
}
\parbox[b]{.2\textwidth}{
- \includegraphics[scale=0.3]{../<?lsmb templates ?>/<?lsmb language_code ?>/logo}
+ \includegraphics[scale=0.3]{logo}
}\hfill
\begin{tabular}[b]{rr@{}}
Tel: & <?lsmb tel ?>\\