diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/html_manual/LedgerSMB-manual.css | 148 | ||||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual.html | 4496 | ||||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual0x.png | bin | 0 -> 3261 bytes | |||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual1x.png | bin | 0 -> 4255 bytes | |||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual2.html | 24 | ||||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual2x.png | bin | 0 -> 5863 bytes | |||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual3.html | 24 | ||||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual3x.png | bin | 0 -> 3159 bytes | |||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual4.html | 23 | ||||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual4x.png | bin | 0 -> 4186 bytes | |||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual5x.png | bin | 0 -> 5890 bytes | |||
-rw-r--r-- | doc/html_manual/LedgerSMB-manual6x.png | bin | 0 -> 6689 bytes | |||
-rw-r--r-- | doc/manual/LedgerSMB-manual.aux | 245 | ||||
-rw-r--r-- | doc/manual/LedgerSMB-manual.log | 759 |
14 files changed, 5162 insertions, 557 deletions
diff --git a/doc/html_manual/LedgerSMB-manual.css b/doc/html_manual/LedgerSMB-manual.css new file mode 100644 index 00000000..779d41c2 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual.css @@ -0,0 +1,148 @@ + +/* start css.sty */ +.cmmi-10{font-style: italic;} +.pplr8t-{font-family: monospace;} +.pplr8t-{font-family: monospace;} +.pplr8t-{font-family: monospace;} +.pplr8t-{font-family: monospace;} +.pplr8t-{font-family: monospace;} +.pplr8t-{font-family: monospace;} +.pplr8t-x-x-172{font-size:172%;font-family: monospace;} +.pplr8t-x-x-172{font-family: monospace;} +.pplr8t-x-x-172{font-family: monospace;} +.pplr8t-x-x-172{font-family: monospace;} +.pplr8t-x-x-172{font-family: monospace;} +.pplr8t-x-x-172{font-family: monospace;} +.pplr8t-x-x-120{font-size:120%;font-family: monospace;} +.pplr8t-x-x-120{font-family: monospace;} +.pplr8t-x-x-120{font-family: monospace;} +.pplr8t-x-x-120{font-family: monospace;} +.pplr8t-x-x-120{font-family: monospace;} +.pplr8t-x-x-120{font-family: monospace;} +.pplb8t-x-x-144{font-size:144%;font-family: monospace; font-weight: bold;} +.pplb8t-x-x-144{font-family: monospace; font-weight: bold;} +.pplb8t-x-x-144{font-family: monospace; font-weight: bold;} +.pplb8t-x-x-120{font-size:120%;font-family: monospace; font-weight: bold;} +.pplb8t-x-x-120{font-family: monospace; font-weight: bold;} +.pplb8t-x-x-120{font-family: monospace; font-weight: bold;} +.pplb8t-{font-family: monospace; font-weight: bold;} +.pplb8t-{font-family: monospace; font-weight: bold;} +.pplb8t-{font-family: monospace; font-weight: bold;} +.pplr8t-x-x-90{font-size:90%;font-family: monospace;} +.pplr8t-x-x-90{font-family: monospace;} +.pplr8t-x-x-90{font-family: monospace;} +.pplr8t-x-x-90{font-family: monospace;} +.pplr8t-x-x-90{font-family: monospace;} +.pplr8t-x-x-90{font-family: monospace;} +.pplr8t-x-x-80{font-size:80%;font-family: monospace;} +.pplr8t-x-x-80{font-family: monospace;} +.pplr8t-x-x-80{font-family: monospace;} +.pplr8t-x-x-80{font-family: monospace;} +.pplr8t-x-x-80{font-family: monospace;} +.pplr8t-x-x-80{font-family: monospace;} +.pplr8t-x-x-170{font-size:170%;font-family: monospace;} +.pplr8t-x-x-170{font-family: monospace;} +.pplr8t-x-x-170{font-family: monospace;} +.pplr8t-x-x-170{font-family: monospace;} +.pplr8t-x-x-170{font-family: monospace;} +.pplr8t-x-x-170{font-family: monospace;} +p.noindent { text-indent: 0em } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; } +table.verbatim {width:100%;} +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +table.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float img, div.float .caption {text-align:center;} +div.figure img, div.figure .caption {text-align:center;} +.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +img.cdots{vertical-align:middle;} +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.caption td.id{font-weight: bold; white-space: nowrap; } +table.caption {text-align:center;} +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +div.author{white-space: nowrap;} +.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } +.abstract p {margin-left:5%; margin-right:5%;} +table.abstract {width:100%;} +/* end css.sty */ + diff --git a/doc/html_manual/LedgerSMB-manual.html b/doc/html_manual/LedgerSMB-manual.html new file mode 100644 index 00000000..f1053f41 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual.html @@ -0,0 +1,4496 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title>Ledger-SMB Manual v. 1.2</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<!-- xhtml --> +<meta name="src" content="LedgerSMB-manual.tex" /> +<meta name="date" content="2007-03-26 00:09:00" /> +<link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" /> +</head><body +> + <div class="maketitle"> + + + + + +<h2 class="titleHead">Ledger-SMB Manual v. 1.2</h2> +<div class="author" ><span +class="pplr8t-x-x-120">The LedgerSMB Core Team</span></div> +<br /> +<div class="date" ><span +class="pplr8t-x-x-120">March 26, 2007</span></div> + </div>Copyright <span +class="cmsy-10">©</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 +published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no +Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation +License" (Appendix <a +href="#x1-223000E">E<!--tex4ht:ref: fdl --></a>). + <h3 class="likesectionHead"><a + id="x1-1000"></a>Contents</h3> + <div class="tableofcontents"> + <span class="partToc">I  <a +href="#x1-3000I" id="QQ2-1-3">Ledger-SMB and Business Processes</a></span> +<br /> <span class="sectionToc">1 <a +href="#x1-40001" id="QQ2-1-4">Introduction to Ledger-SMB</a></span> +<br />  <span class="subsectionToc">1.1 <a +href="#x1-50001.1" id="QQ2-1-5">Why Ledger-SMB</a></span> +<br />   <span class="subsubsectionToc">1.1.1 <a +href="#x1-60001.1.1" id="QQ2-1-6">Advantages of Ledger-SMB</a></span> +<br />   <span class="subsubsectionToc">1.1.2 <a +href="#x1-70001.1.2" id="QQ2-1-7">Key Features</a></span> +<br />  <span class="subsectionToc">1.2 <a +href="#x1-80001.2" id="QQ2-1-8">Limitations of Ledger-SMB</a></span> +<br />  <span class="subsectionToc">1.3 <a +href="#x1-90001.3" id="QQ2-1-9">System Requirements of Ledger-SMB</a></span> +<br /> <span class="sectionToc">2 <a +href="#x1-100002" id="QQ2-1-10">User Account and Database Administration Basics</a></span> +<br />  <span class="subsectionToc">2.1 <a +href="#x1-110002.1" id="QQ2-1-11">Companies and Datasets</a></span> +<br />  <span class="subsectionToc">2.2 <a +href="#x1-120002.2" id="QQ2-1-12">How to Create a User</a></span> +<br />  <span class="subsectionToc">2.3 <a +href="#x1-130002.3" id="QQ2-1-13">Permissions</a></span> +<br />  <span class="subsectionToc">2.4 <a +href="#x1-140002.4" id="QQ2-1-14">User Account Types</a></span> +<br />  <span class="subsectionToc">2.5 <a +href="#x1-150002.5" id="QQ2-1-15">Other Features</a></span> +<br /> <span class="sectionToc">3 <a +href="#x1-160003" id="QQ2-1-16">Chart of Accounts</a></span> +<br />  <span class="subsectionToc">3.1 <a +href="#x1-170003.1" id="QQ2-1-17">Introduction to Double Entry Bookkeeping</a></span> +<br />   <span class="subsubsectionToc">3.1.1 <a +href="#x1-180003.1.1" id="QQ2-1-18">Business Entity</a></span> +<br />   <span class="subsubsectionToc">3.1.2 <a +href="#x1-190003.1.2" id="QQ2-1-19">Double Entry</a></span> +<br />   <span class="subsubsectionToc">3.1.3 <a +href="#x1-200003.1.3" id="QQ2-1-20">Accounts</a></span> +<br />   <span class="subsubsectionToc">3.1.4 <a +href="#x1-210003.1.4" id="QQ2-1-21">Debits and Credits</a></span> +<br />   <span class="subsubsectionToc">3.1.5 <a +href="#x1-220003.1.5" id="QQ2-1-22">Accrual</a></span> +<br />   <span class="subsubsectionToc">3.1.6 <a +href="#x1-230003.1.6" id="QQ2-1-23">References</a></span> +<br />  <span class="subsectionToc">3.2 <a +href="#x1-240003.2" id="QQ2-1-24">General Guidelines on Numbering Accounts</a></span> +<br />  <span class="subsectionToc">3.3 <a +href="#x1-250003.3" id="QQ2-1-25">Adding/Modifying Accounts</a></span> +<br />  <span class="subsectionToc">3.4 <a +href="#x1-260003.4" id="QQ2-1-26">Listing Account Balances and Transactions</a></span> +<br /> <span class="sectionToc">4 <a +href="#x1-270004" id="QQ2-1-27">Administration</a></span> +<br />  <span class="subsectionToc">4.1 <a +href="#x1-280004.1" id="QQ2-1-28">Taxes, Defaults, and Preferences</a></span> + + +<br />   <span class="subsubsectionToc">4.1.1 <a +href="#x1-290004.1.1" id="QQ2-1-29">Adding A Sales Tax Account</a></span> +<br />   <span class="subsubsectionToc">4.1.2 <a +href="#x1-300004.1.2" id="QQ2-1-30">Setting a Sales Tax Amount</a></span> +<br />   <span class="subsubsectionToc">4.1.3 <a +href="#x1-310004.1.3" id="QQ2-1-31">Default Account Setup</a></span> +<br />   <span class="subsubsectionToc">4.1.4 <a +href="#x1-320004.1.4" id="QQ2-1-32">Currency Setup</a></span> +<br />   <span class="subsubsectionToc">4.1.5 <a +href="#x1-330004.1.5" id="QQ2-1-33">Sequence Settings</a></span> +<br />  <span class="subsectionToc">4.2 <a +href="#x1-340004.2" id="QQ2-1-34">Audit Control</a></span> +<br />   <span class="subsubsectionToc">4.2.1 <a +href="#x1-350004.2.1" id="QQ2-1-35">Explaining transaction reversal</a></span> +<br />   <span class="subsubsectionToc">4.2.2 <a +href="#x1-360004.2.2" id="QQ2-1-36">Close books option</a></span> +<br />   <span class="subsubsectionToc">4.2.3 <a +href="#x1-370004.2.3" id="QQ2-1-37">Audit Trails</a></span> +<br />  <span class="subsectionToc">4.3 <a +href="#x1-380004.3" id="QQ2-1-38">Departments</a></span> +<br />   <span class="subsubsectionToc">4.3.1 <a +href="#x1-390004.3.1" id="QQ2-1-39">Cost v Profit Centers.</a></span> +<br />  <span class="subsectionToc">4.4 <a +href="#x1-400004.4" id="QQ2-1-40">Warehouses</a></span> +<br />  <span class="subsectionToc">4.5 <a +href="#x1-410004.5" id="QQ2-1-41">Languages</a></span> +<br />  <span class="subsectionToc">4.6 <a +href="#x1-420004.6" id="QQ2-1-42">Types of Businesses</a></span> +<br />  <span class="subsectionToc">4.7 <a +href="#x1-430004.7" id="QQ2-1-43">Misc.</a></span> +<br />   <span class="subsubsectionToc">4.7.1 <a +href="#x1-440004.7.1" id="QQ2-1-44">GIFI</a></span> +<br />   <span class="subsubsectionToc">4.7.2 <a +href="#x1-450004.7.2" id="QQ2-1-45">SIC</a></span> +<br />   <span class="subsubsectionToc">4.7.3 <a +href="#x1-460004.7.3" id="QQ2-1-46">Overview of Template Editing</a></span> +<br />   <span class="subsubsectionToc">4.7.4 <a +href="#x1-470004.7.4" id="QQ2-1-47">Year-end</a></span> +<br />  <span class="subsectionToc">4.8 <a +href="#x1-480004.8" id="QQ2-1-48">Options in the ledger-smb.conf</a></span> +<br /> <span class="sectionToc">5 <a +href="#x1-490005" id="QQ2-1-49">Goods and Services</a></span> +<br />  <span class="subsectionToc">5.1 <a +href="#x1-500005.1" id="QQ2-1-50">Basic Terms</a></span> +<br />  <span class="subsectionToc">5.2 <a +href="#x1-510005.2" id="QQ2-1-51">The Price Matrix</a></span> +<br />  <span class="subsectionToc">5.3 <a +href="#x1-520005.3" id="QQ2-1-52">Pricegroups</a></span> +<br />  <span class="subsectionToc">5.4 <a +href="#x1-530005.4" id="QQ2-1-53">Groups</a></span> +<br />  <span class="subsectionToc">5.5 <a +href="#x1-540005.5" id="QQ2-1-54">Labor/Overhead</a></span> +<br />  <span class="subsectionToc">5.6 <a +href="#x1-550005.6" id="QQ2-1-55">Services</a></span> +<br />   <span class="subsubsectionToc">5.6.1 <a +href="#x1-560005.6.1" id="QQ2-1-56">Shipping and Handling as a Service</a></span> +<br />  <span class="subsectionToc">5.7 <a +href="#x1-570005.7" id="QQ2-1-57">Parts</a></span> +<br />  <span class="subsectionToc">5.8 <a +href="#x1-580005.8" id="QQ2-1-58">Assemblies and Manufacturing</a></span> +<br />   <span class="subsubsectionToc">5.8.1 <a +href="#x1-590005.8.1" id="QQ2-1-59">Stocking Assemblies</a></span> +<br />  <span class="subsectionToc">5.9 <a +href="#x1-600005.9" id="QQ2-1-60">Reporting</a></span> +<br />   <span class="subsubsectionToc">5.9.1 <a +href="#x1-610005.9.1" id="QQ2-1-61">All Items and Parts Reports</a></span> +<br />   <span class="subsubsectionToc">5.9.2 <a +href="#x1-620005.9.2" id="QQ2-1-62">Requirements</a></span> +<br />   <span class="subsubsectionToc">5.9.3 <a +href="#x1-630005.9.3" id="QQ2-1-63">Services and Labor</a></span> +<br />   <span class="subsubsectionToc">5.9.4 <a +href="#x1-640005.9.4" id="QQ2-1-64">Assemblies</a></span> +<br />   <span class="subsubsectionToc">5.9.5 <a +href="#x1-650005.9.5" id="QQ2-1-65">Groups and Pricegroups</a></span> +<br />  <span class="subsectionToc">5.10 <a +href="#x1-660005.10" id="QQ2-1-66">Translations</a></span> +<br />  <span class="subsectionToc">5.11 <a +href="#x1-670005.11" id="QQ2-1-67">How Cost of Goods Sold is tracked</a></span> +<br /> <span class="sectionToc">6 <a +href="#x1-680006" id="QQ2-1-68">AP</a></span> +<br />  <span class="subsectionToc">6.1 <a +href="#x1-690006.1" id="QQ2-1-69">Basic AP Concepts</a></span> +<br />  <span class="subsectionToc">6.2 <a +href="#x1-700006.2" id="QQ2-1-70">Vendors</a></span> +<br />  <span class="subsectionToc">6.3 <a +href="#x1-710006.3" id="QQ2-1-71">AP Transactions</a></span> +<br />  <span class="subsectionToc">6.4 <a +href="#x1-720006.4" id="QQ2-1-72">AP Invoices</a></span> +<br />   <span class="subsubsectionToc">6.4.1 <a +href="#x1-730006.4.1" id="QQ2-1-73">Correcting an AP Invoice</a></span> +<br />  <span class="subsectionToc">6.5 <a +href="#x1-740006.5" id="QQ2-1-74">Cash payment And Check Printing</a></span> +<br />   <span class="subsubsectionToc">6.5.1 <a +href="#x1-750006.5.1" id="QQ2-1-75">Rapid Payment Entry Screen</a></span> +<br />  <span class="subsectionToc">6.6 <a +href="#x1-760006.6" id="QQ2-1-76">Transaction/Invoice Reporting</a></span> +<br />   <span class="subsubsectionToc">6.6.1 <a +href="#x1-770006.6.1" id="QQ2-1-77">Transactions Report</a></span> +<br />   <span class="subsubsectionToc">6.6.2 <a +href="#x1-780006.6.2" id="QQ2-1-78">Outstanding Report</a></span> +<br />   <span class="subsubsectionToc">6.6.3 <a +href="#x1-790006.6.3" id="QQ2-1-79">AP Aging Report</a></span> +<br />   <span class="subsubsectionToc">6.6.4 <a +href="#x1-800006.6.4" id="QQ2-1-80">Tax Paid and Non-taxable Report</a></span> + + +<br />  <span class="subsectionToc">6.7 <a +href="#x1-810006.7" id="QQ2-1-81">Vendor Reporting</a></span> +<br />   <span class="subsubsectionToc">6.7.1 <a +href="#x1-820006.7.1" id="QQ2-1-82">Vendor Search</a></span> +<br />   <span class="subsubsectionToc">6.7.2 <a +href="#x1-830006.7.2" id="QQ2-1-83">Vendor History</a></span> +<br /> <span class="sectionToc">7 <a +href="#x1-840007" id="QQ2-1-84">AR</a></span> +<br />  <span class="subsectionToc">7.1 <a +href="#x1-850007.1" id="QQ2-1-85">Customers</a></span> +<br />   <span class="subsubsectionToc">7.1.1 <a +href="#x1-860007.1.1" id="QQ2-1-86">Customer Price Matrix</a></span> +<br />  <span class="subsectionToc">7.2 <a +href="#x1-870007.2" id="QQ2-1-87">AR Transactions</a></span> +<br />  <span class="subsectionToc">7.3 <a +href="#x1-880007.3" id="QQ2-1-88">AR Invoices</a></span> +<br />  <span class="subsectionToc">7.4 <a +href="#x1-890007.4" id="QQ2-1-89">Cash Receipt</a></span> +<br />   <span class="subsubsectionToc">7.4.1 <a +href="#x1-900007.4.1" id="QQ2-1-90">Cash Receipts for multiple customers</a></span> +<br />  <span class="subsectionToc">7.5 <a +href="#x1-910007.5" id="QQ2-1-91">AR Transaction Reporting</a></span> +<br />   <span class="subsubsectionToc">7.5.1 <a +href="#x1-920007.5.1" id="QQ2-1-92">AR Transactions Report</a></span> +<br />   <span class="subsubsectionToc">7.5.2 <a +href="#x1-930007.5.2" id="QQ2-1-93">AR Aging Report</a></span> +<br />  <span class="subsectionToc">7.6 <a +href="#x1-940007.6" id="QQ2-1-94">Customer Reporting</a></span> +<br /> <span class="sectionToc">8 <a +href="#x1-950008" id="QQ2-1-95">Projects</a></span> +<br />  <span class="subsectionToc">8.1 <a +href="#x1-960008.1" id="QQ2-1-96">Project Basics</a></span> +<br />  <span class="subsectionToc">8.2 <a +href="#x1-970008.2" id="QQ2-1-97">Timecards</a></span> +<br />  <span class="subsectionToc">8.3 <a +href="#x1-980008.3" id="QQ2-1-98">Projects and Invoices</a></span> +<br />  <span class="subsectionToc">8.4 <a +href="#x1-990008.4" id="QQ2-1-99">Reporting</a></span> +<br />   <span class="subsubsectionToc">8.4.1 <a +href="#x1-1000008.4.1" id="QQ2-1-100">Timecard Reporting</a></span> +<br />   <span class="subsubsectionToc">8.4.2 <a +href="#x1-1010008.4.2" id="QQ2-1-101">Project Transaction Reporting</a></span> +<br />   <span class="subsubsectionToc">8.4.3 <a +href="#x1-1020008.4.3" id="QQ2-1-102">List of Projects</a></span> +<br />  <span class="subsectionToc">8.5 <a +href="#x1-1030008.5" id="QQ2-1-103">Possibilities for Using Projects</a></span> +<br /> <span class="sectionToc">9 <a +href="#x1-1040009" id="QQ2-1-104">Quotations and Order Management</a></span> +<br />  <span class="subsectionToc">9.1 <a +href="#x1-1050009.1" id="QQ2-1-105">Sales Orders</a></span> +<br />  <span class="subsectionToc">9.2 <a +href="#x1-1060009.2" id="QQ2-1-106">Quotations</a></span> +<br />  <span class="subsectionToc">9.3 <a +href="#x1-1070009.3" id="QQ2-1-107">Shipping</a></span> +<br />  <span class="subsectionToc">9.4 <a +href="#x1-1080009.4" id="QQ2-1-108">AR Work Flow</a></span> +<br />   <span class="subsubsectionToc">9.4.1 <a +href="#x1-1090009.4.1" id="QQ2-1-109">Service Example</a></span> +<br />   <span class="subsubsectionToc">9.4.2 <a +href="#x1-1100009.4.2" id="QQ2-1-111">Single Warehouse Example</a></span> +<br />   <span class="subsubsectionToc">9.4.3 <a +href="#x1-1110009.4.3" id="QQ2-1-113">Multiple Warehouse Example</a></span> +<br />  <span class="subsectionToc">9.5 <a +href="#x1-1120009.5" id="QQ2-1-115">Requests for Quotation (RFQ)</a></span> +<br />  <span class="subsectionToc">9.6 <a +href="#x1-1130009.6" id="QQ2-1-116">Purchase Orders</a></span> +<br />  <span class="subsectionToc">9.7 <a +href="#x1-1140009.7" id="QQ2-1-117">Receiving</a></span> +<br />  <span class="subsectionToc">9.8 <a +href="#x1-1150009.8" id="QQ2-1-118">AP Work Flow</a></span> +<br />   <span class="subsubsectionToc">9.8.1 <a +href="#x1-1160009.8.1" id="QQ2-1-119">Bookkeeper entering the received items, order completed in full</a></span> +<br />   <span class="subsubsectionToc">9.8.2 <a +href="#x1-1170009.8.2" id="QQ2-1-121">Bookkeeper entering received items, order completed in part</a></span> +<br />   <span class="subsubsectionToc">9.8.3 <a +href="#x1-1180009.8.3" id="QQ2-1-123">Receiving staff entering items</a></span> +<br />  <span class="subsectionToc">9.9 <a +href="#x1-1190009.9" id="QQ2-1-125">Generation and Consolidation</a></span> +<br />   <span class="subsubsectionToc">9.9.1 <a +href="#x1-1200009.9.1" id="QQ2-1-126">Generation</a></span> +<br />   <span class="subsubsectionToc">9.9.2 <a +href="#x1-1210009.9.2" id="QQ2-1-127">Consolidation</a></span> +<br />  <span class="subsectionToc">9.10 <a +href="#x1-1220009.10" id="QQ2-1-128">Reporting</a></span> +<br />  <span class="subsectionToc">9.11 <a +href="#x1-1230009.11" id="QQ2-1-129">Shipping Module: Transferring Inventory between Warehouses</a></span> +<br /> <span class="sectionToc">10 <a +href="#x1-12400010" id="QQ2-1-130">HR</a></span> +<br /> <span class="sectionToc">11 <a +href="#x1-12500011" id="QQ2-1-131">POS</a></span> +<br />  <span class="subsectionToc">11.1 <a +href="#x1-12600011.1" id="QQ2-1-132">Sales Screen</a></span> +<br />  <span class="subsectionToc">11.2 <a +href="#x1-12700011.2" id="QQ2-1-133">Possibilities for Data Entry</a></span> +<br />  <span class="subsectionToc">11.3 <a +href="#x1-12800011.3" id="QQ2-1-134">Hardware Support</a></span> +<br />  <span class="subsectionToc">11.4 <a +href="#x1-12900011.4" id="QQ2-1-135">Reports</a></span> +<br />   <span class="subsubsectionToc">11.4.1 <a +href="#x1-13000011.4.1" id="QQ2-1-136">Open Invoices</a></span> +<br />   <span class="subsubsectionToc">11.4.2 <a +href="#x1-13100011.4.2" id="QQ2-1-137">Receipts</a></span> +<br /> <span class="sectionToc">12 <a +href="#x1-13200012" id="QQ2-1-138">General Ledger</a></span> + + +<br />  <span class="subsectionToc">12.1 <a +href="#x1-13300012.1" id="QQ2-1-139">GL Basics</a></span> +<br />   <span class="subsubsectionToc">12.1.1 <a +href="#x1-13400012.1.1" id="QQ2-1-140">Paper-based accounting systems and the GL</a></span> +<br />   <span class="subsubsectionToc">12.1.2 <a +href="#x1-13500012.1.2" id="QQ2-1-141">Double Entry Examples on Paper</a></span> +<br />   <span class="subsubsectionToc">12.1.3 <a +href="#x1-13600012.1.3" id="QQ2-1-142">The GL in Ledger-SMB</a></span> +<br />  <span class="subsectionToc">12.2 <a +href="#x1-13700012.2" id="QQ2-1-143">Cash Transfer</a></span> +<br />  <span class="subsectionToc">12.3 <a +href="#x1-13800012.3" id="QQ2-1-144">GL Transactions</a></span> +<br />  <span class="subsectionToc">12.4 <a +href="#x1-13900012.4" id="QQ2-1-145">Payroll as a GL transaction</a></span> +<br />  <span class="subsectionToc">12.5 <a +href="#x1-14000012.5" id="QQ2-1-147">Reconciliation</a></span> +<br />  <span class="subsectionToc">12.6 <a +href="#x1-14100012.6" id="QQ2-1-148">Reports</a></span> +<br />   <span class="subsubsectionToc">12.6.1 <a +href="#x1-14200012.6.1" id="QQ2-1-149">GL as access to almost everything else</a></span> +<br /> <span class="sectionToc">13 <a +href="#x1-14300013" id="QQ2-1-150">Recurring Transactions</a></span> +<br /> <span class="sectionToc">14 <a +href="#x1-14400014" id="QQ2-1-151">Financial Statements and Reports</a></span> +<br />  <span class="subsectionToc">14.1 <a +href="#x1-14500014.1" id="QQ2-1-152">Cash v. Accrual Basis</a></span> +<br />  <span class="subsectionToc">14.2 <a +href="#x1-14600014.2" id="QQ2-1-153">Viewing the Chart of Accounts and Transactions</a></span> +<br />  <span class="subsectionToc">14.3 <a +href="#x1-14700014.3" id="QQ2-1-154">Trial Balance</a></span> +<br />   <span class="subsubsectionToc">14.3.1 <a +href="#x1-14800014.3.1" id="QQ2-1-155">The Paper-based function of a Trial Balance</a></span> +<br />   <span class="subsubsectionToc">14.3.2 <a +href="#x1-14900014.3.2" id="QQ2-1-156">Running the Trial Balance Report</a></span> +<br />   <span class="subsubsectionToc">14.3.3 <a +href="#x1-15000014.3.3" id="QQ2-1-157">What if the Trial Balance doesn’t Balance?</a></span> +<br />   <span class="subsubsectionToc">14.3.4 <a +href="#x1-15100014.3.4" id="QQ2-1-158">Trial Balance as a Summary of Account Activity</a></span> +<br />   <span class="subsubsectionToc">14.3.5 <a +href="#x1-15200014.3.5" id="QQ2-1-159">Trial Balance as a Budget Planning Tool</a></span> +<br />  <span class="subsectionToc">14.4 <a +href="#x1-15300014.4" id="QQ2-1-160">Income Statement</a></span> +<br />   <span class="subsubsectionToc">14.4.1 <a +href="#x1-15400014.4.1" id="QQ2-1-161">Uses of an Income Statement</a></span> +<br />  <span class="subsectionToc">14.5 <a +href="#x1-15500014.5" id="QQ2-1-162">Balance Sheet</a></span> +<br />  <span class="subsectionToc">14.6 <a +href="#x1-15600014.6" id="QQ2-1-163">What if the Balance Sheet doesn’t balance?</a></span> +<br />  <span class="subsectionToc">14.7 <a +href="#x1-15700014.7" id="QQ2-1-164">No Statement of Owner Equity?</a></span> +<br /> <span class="sectionToc">15 <a +href="#x1-15800015" id="QQ2-1-165">The Template System</a></span> +<br />  <span class="subsectionToc">15.1 <a +href="#x1-15900015.1" id="QQ2-1-166">Text Templates</a></span> +<br />  <span class="subsectionToc">15.2 <a +href="#x1-16000015.2" id="QQ2-1-167">HTML Templates</a></span> +<br />  <span class="subsectionToc">15.3 <a +href="#x1-16100015.3" id="QQ2-1-168"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> Templates</a></span> +<br />   <span class="subsubsectionToc">15.3.1 <a +href="#x1-16200015.3.1" id="QQ2-1-169">What is <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> ?</a></span> +<br />   <span class="subsubsectionToc">15.3.2 <a +href="#x1-16300015.3.2" id="QQ2-1-170">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> Templates</a></span> +<br />  <span class="subsectionToc">15.4 <a +href="#x1-16400015.4" id="QQ2-1-171">Customizing Logos</a></span> +<br />  <span class="subsectionToc">15.5 <a +href="#x1-16500015.5" id="QQ2-1-172">How are They Stored in the Filesystem?</a></span> +<br />  <span class="subsectionToc">15.6 <a +href="#x1-16600015.6" id="QQ2-1-173">Upgrade Issues</a></span> +<br /> <span class="sectionToc">16 <a +href="#x1-16700016" id="QQ2-1-174">An Introduction to the CLI</a></span> +<br />  <span class="subsectionToc">16.1 <a +href="#x1-16800016.1" id="QQ2-1-175">Conventions</a></span> +<br />  <span class="subsectionToc">16.2 <a +href="#x1-16900016.2" id="QQ2-1-176">Preliminaries</a></span> +<br />  <span class="subsectionToc">16.3 <a +href="#x1-17000016.3" id="QQ2-1-177">First Script: lsmb01-cli-example.sh</a></span> +<br />   <span class="subsubsectionToc">16.3.1 <a +href="#x1-17100016.3.1" id="QQ2-1-178">Script 1 (Bash)</a></span> +<br />  <span class="subsectionToc">16.4 <a +href="#x1-17200016.4" id="QQ2-1-179">Second Script: lsmb02-cli-example.pl</a></span> +<br />   <span class="subsubsectionToc">16.4.1 <a +href="#x1-17300016.4.1" id="QQ2-1-180">Script 2 (Perl)</a></span> +<br /> <span class="partToc">II  <a +href="#x1-174000II" id="QQ2-1-181">Technical Overview</a></span> +<br /> <span class="sectionToc">17 <a +href="#x1-17500017" id="QQ2-1-182">Basic Architecture</a></span> +<br />  <span class="subsectionToc">17.1 <a +href="#x1-17600017.1" id="QQ2-1-183">The Software Stack</a></span> +<br />  <span class="subsectionToc">17.2 <a +href="#x1-17700017.2" id="QQ2-1-185">Capacity Planning</a></span> +<br />   <span class="subsubsectionToc">17.2.1 <a +href="#x1-17800017.2.1" id="QQ2-1-186">Scalability Strategies</a></span> +<br />   <span class="subsubsectionToc">17.2.2 <a +href="#x1-17900017.2.2" id="QQ2-1-187">Database Maintenance</a></span> +<br />   <span class="subsubsectionToc">17.2.3 <a +href="#x1-18000017.2.3" id="QQ2-1-188">Known issues</a></span> +<br /> <span class="sectionToc">18 <a +href="#x1-18100018" id="QQ2-1-189">Customization Possibilities</a></span> +<br />  <span class="subsectionToc">18.1 <a +href="#x1-18200018.1" id="QQ2-1-190">Brief Guide to the Source Code</a></span> +<br />  <span class="subsectionToc">18.2 <a +href="#x1-18300018.2" id="QQ2-1-191">Data Entry Screens</a></span> +<br />   <span class="subsubsectionToc">18.2.1 <a +href="#x1-18400018.2.1" id="QQ2-1-192">Examples</a></span> + + +<br />  <span class="subsectionToc">18.3 <a +href="#x1-18500018.3" id="QQ2-1-193">Extensions</a></span> +<br />   <span class="subsubsectionToc">18.3.1 <a +href="#x1-18600018.3.1" id="QQ2-1-194">Examples</a></span> +<br />  <span class="subsectionToc">18.4 <a +href="#x1-18700018.4" id="QQ2-1-195">Templates</a></span> +<br />   <span class="subsubsectionToc">18.4.1 <a +href="#x1-18800018.4.1" id="QQ2-1-196">Examples</a></span> +<br />  <span class="subsectionToc">18.5 <a +href="#x1-18900018.5" id="QQ2-1-197">Reports</a></span> +<br />   <span class="subsubsectionToc">18.5.1 <a +href="#x1-19000018.5.1" id="QQ2-1-198">Examples</a></span> +<br /> <span class="sectionToc">19 <a +href="#x1-19100019" id="QQ2-1-199">Integration Possibilities</a></span> +<br />  <span class="subsectionToc">19.1 <a +href="#x1-19200019.1" id="QQ2-1-200">Reporting Tools</a></span> +<br />   <span class="subsubsectionToc">19.1.1 <a +href="#x1-19300019.1.1" id="QQ2-1-201">Examples</a></span> +<br />  <span class="subsectionToc">19.2 <a +href="#x1-19400019.2" id="QQ2-1-202">Line of Business Tools on PostgreSQL</a></span> +<br />   <span class="subsubsectionToc">19.2.1 <a +href="#x1-19500019.2.1" id="QQ2-1-203">Known Issues</a></span> +<br />   <span class="subsubsectionToc">19.2.2 <a +href="#x1-19600019.2.2" id="QQ2-1-204">Strategies</a></span> +<br />   <span class="subsubsectionToc">19.2.3 <a +href="#x1-19700019.2.3" id="QQ2-1-205">Examples</a></span> +<br />  <span class="subsectionToc">19.3 <a +href="#x1-19800019.3" id="QQ2-1-206">Line of Business Tools on other RDBMS’s</a></span> +<br />   <span class="subsubsectionToc">19.3.1 <a +href="#x1-19900019.3.1" id="QQ2-1-207">Strategies</a></span> +<br />   <span class="subsubsectionToc">19.3.2 <a +href="#x1-20000019.3.2" id="QQ2-1-208">Integration Products and Open Source Projects</a></span> +<br /> <span class="sectionToc">20 <a +href="#x1-20100020" id="QQ2-1-209">Customization Guide</a></span> +<br />  <span class="subsectionToc">20.1 <a +href="#x1-20200020.1" id="QQ2-1-210">General Information</a></span> +<br />  <span class="subsectionToc">20.2 <a +href="#x1-20300020.2" id="QQ2-1-211">Customizing Templates</a></span> +<br />   <span class="subsubsectionToc">20.2.1 <a +href="#x1-20400020.2.1" id="QQ2-1-212">Page Breaks in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span></a></span> +<br />   <span class="subsubsectionToc">20.2.2 <a +href="#x1-20500020.2.2" id="QQ2-1-213">Conditionals</a></span> +<br />   <span class="subsubsectionToc">20.2.3 <a +href="#x1-20600020.2.3" id="QQ2-1-214">Loops</a></span> +<br />   <span class="subsubsectionToc">20.2.4 <a +href="#x1-20700020.2.4" id="QQ2-1-215">File Inclusion</a></span> +<br />   <span class="subsubsectionToc">20.2.5 <a +href="#x1-20800020.2.5" id="QQ2-1-216">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></a></span> +<br />   <span class="subsubsectionToc">20.2.6 <a +href="#x1-20900020.2.6" id="QQ2-1-217">Variable Substitution</a></span> +<br />  <span class="subsectionToc">20.3 <a +href="#x1-21000020.3" id="QQ2-1-218">Customizing Forms</a></span> +<br />  <span class="subsectionToc">20.4 <a +href="#x1-21100020.4" id="QQ2-1-219">Customizing Modules</a></span> +<br />   <span class="subsubsectionToc">20.4.1 <a +href="#x1-21200020.4.1" id="QQ2-1-220">Database Access</a></span> +<br />  <span class="subsectionToc">20.5 <a +href="#x1-21300020.5" id="QQ2-1-221">CLI Examples</a></span> +<br /> <span class="partToc">III  <a +href="#x1-214000III" id="QQ2-1-222">Appendix</a></span> +<br /> <span class="sectionToc">A <a +href="#x1-215000A" id="QQ2-1-223">Where to Go for More Information</a></span> +<br /> <span class="sectionToc">B <a +href="#x1-216000B" id="QQ2-1-224">Quick Tips</a></span> +<br />  <span class="subsectionToc">B.1 <a +href="#x1-217000B.1" id="QQ2-1-225">Understanding Shipping Addresses and Carriers</a></span> +<br />  <span class="subsectionToc">B.2 <a +href="#x1-218000B.2" id="QQ2-1-226">Handling bad debts</a></span> +<br /> <span class="sectionToc">C <a +href="#x1-219000C" id="QQ2-1-227">Step by Steps for Vertical Markets</a></span> +<br />  <span class="subsectionToc">C.1 <a +href="#x1-220000C.1" id="QQ2-1-228">Common Installation Errors</a></span> +<br />  <span class="subsectionToc">C.2 <a +href="#x1-221000C.2" id="QQ2-1-229">Retail With Light Manufacturing</a></span> +<br /> <span class="sectionToc">D <a +href="#x1-222000D" id="QQ2-1-230">Glossary</a></span> +<br /> <span class="sectionToc">E <a +href="#x1-223000E" id="QQ2-1-231">GNU Free Documentation License</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-232">1. APPLICABILITY AND DEFINITIONS</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-233">2. VERBATIM COPYING</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-234">3. COPYING IN QUANTITY</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-235">4. MODIFICATIONS</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-236">5. COMBINING DOCUMENTS</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-237">6. COLLECTIONS OF DOCUMENTS</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-238">7. AGGREGATION WITH INDEPENDENT WORKS</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-239">8. TRANSLATION</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-240">9. TERMINATION</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-241">10. FUTURE REVISIONS OF THIS LICENSE</a></span> +<br />  <span class="subsectionToc"> <a +href="#Q1-1-242">ADDENDUM: How to use this License for your documents</a></span> + </div> + + +<!--l. 44--><p class="noindent"> +</p> + <h3 class="likesectionHead"><a + id="x1-2000"></a>List of Figures</h3> + <div class="tableofcontents"><span class="lofToc">1 <a +href="#x1-1090011">Simple AR Service Invoice Workflow Example</a></span><br /><span class="lofToc">2 <a +href="#x1-1100012">AR Workflow with +Shipping</a></span><br /><span class="lofToc">3 <a +href="#x1-1110013">Complex AR Workflow with Shipping</a></span><br /><span class="lofToc">4 <a +href="#x1-1160014">Simple AP Workflow</a></span><br /><span class="lofToc">5 <a +href="#x1-1170015">AP +Workflow with Receiving</a></span><br /><span class="lofToc">6 <a +href="#x1-1180016">Complex AP Workflow</a></span><br /><span class="lofToc">7 <a +href="#x1-1390017">Payroll as a GL Transaction (Purely +fictitious numbers)</a></span><br /><span class="lofToc">8 <a +href="#x1-1760018">The Ledger-SMB software stack in a Typical Implementation</a></span><br /> + </div> + + + <h1 class="partHead"><span class="titlemark">Part I<br /></span><a + id="x1-3000I"></a>Ledger-SMB and Business Processes</h1> + <h3 class="sectionHead"><span class="titlemark">1 </span> <a + id="x1-40001"></a>Introduction to Ledger-SMB</h3> +<!--l. 56--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">1.1 </span> <a + id="x1-50001.1"></a>Why Ledger-SMB</h4> +<!--l. 59--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">1.1.1 </span> <a + id="x1-60001.1.1"></a>Advantages of Ledger-SMB</h5> + <ul class="itemize1"> + <li class="itemize">Flexibility and Central Management + </li> + <li class="itemize">Accessibility over the Internet (for some users) + </li> + <li class="itemize">Relatively open data format + </li> + <li class="itemize">Integration with other tools + </li> + <li class="itemize">Excellent accounting options for Linux users + </li> + <li class="itemize">Open Source + </li> + <li class="itemize">Flexible, open framework that can be extended or modified to fit your business. + </li> + <li class="itemize">Security-conscious development community.</li></ul> +<!--l. 73--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">1.1.2 </span> <a + id="x1-70001.1.2"></a>Key Features</h5> + <ul class="itemize1"> + <li class="itemize">Accounts Receivable + <ul class="itemize2"> + <li class="itemize">Track sales by customer + + + </li> + <li class="itemize">Issue Invoices, Statements, Receipts, and more + </li> + <li class="itemize">Do job costing and time entry for customer projects + </li> + <li class="itemize">Manage sales orders and quotations + </li> + <li class="itemize">Ship items from sales orders</li></ul> + </li> + <li class="itemize">Accounts Payable + <ul class="itemize2"> + <li class="itemize">Track purchases and debts by vendor + </li> + <li class="itemize">Issue RFQ’s Purchase Orders, etc. + </li> + <li class="itemize">Track items received from purchase orders</li></ul> + </li> + <li class="itemize">Budgeting + <ul class="itemize2"> + <li class="itemize">Track expenditures and income across multiple departments + </li> + <li class="itemize">Track all transactions across departments</li></ul> + </li> + <li class="itemize">Check Printing + <ul class="itemize2"> + <li class="itemize">Customize template for any check form</li></ul> + </li> + <li class="itemize">General Ledger + </li> + <li class="itemize">Inventory Management + <ul class="itemize2"> + <li class="itemize">Track sales and orders of parts + </li> + <li class="itemize">Track cost of goods sold using First In/First Out method + </li> + <li class="itemize">List all parts below reorder point + </li> + <li class="itemize">Track ordering requirements + + + </li> + <li class="itemize">Track, ship, receive, and transfer parts to and from multiple warehouses</li></ul> + </li> + <li class="itemize">Localization + <ul class="itemize2"> + <li class="itemize">Provide Localized Translations for Part Descriptions + </li> + <li class="itemize">Provide Localized Templates for Invoices, Orders, Checks, and more + </li> + <li class="itemize">Select language per customer, invoice, order, etc.</li></ul> + </li> + <li class="itemize">Manufacturing + <ul class="itemize2"> + <li class="itemize">Track cost of goods sold for manufactured goods (assemblies) + </li> + <li class="itemize">Create assemblies and stock assemblies, tracking materials on hand</li></ul> + </li> + <li class="itemize">Multi-company/Multiuser + <ul class="itemize2"> + <li class="itemize">One isolated database per company + </li> + <li class="itemize">Users can have localized systems independent of company data set</li></ul> + </li> + <li class="itemize">Point of Sale + <ul class="itemize2"> + <li class="itemize">Run multiple cash registers against main Ledger-SMB installation + </li> + <li class="itemize">Suitable for retail stores and more + </li> + <li class="itemize">Credit card processing via TrustCommerce + </li> + <li class="itemize">Supports some POS hardware out of the box including: + <ul class="itemize3"> + <li class="itemize">Logic Controls PD3000 pole displays (serial or parallel) + </li> + <li class="itemize">Basic text-based receipt printers + </li> + <li class="itemize">Keyboard wedge barcode scanners + + + </li> + <li class="itemize">Keyboard wedge magnetic card readers + </li> + <li class="itemize">Printer-attached cash drawers</li></ul> + </li></ul> + </li> + <li class="itemize">Price Matrix + <ul class="itemize2"> + <li class="itemize">Track different prices for vendors and customers across the board + </li> + <li class="itemize">Provide discounts to groups of customers per item or across the board + </li> + <li class="itemize">Store vendors’ prices independent of the other last cost in the parts record</li></ul> + </li> + <li class="itemize">Reporting + <ul class="itemize2"> + <li class="itemize">Supports all basic financial statements + </li> + <li class="itemize">Easily display customer history, sales data, and additional information + </li> + <li class="itemize">Open framework allows for ODBC connections to be used to generate reports using third + party reporting tools.</li></ul> + </li> + <li class="itemize">Tax + <ul class="itemize2"> + <li class="itemize">Supports Retail Sales Tax and Value Added Tax type systems + </li> + <li class="itemize">Flexible framework allows one to customize reports to change the tax reporting framework + to meet any local requirement.</li></ul> + </li></ul> +<!--l. 173--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">1.2 </span> <a + id="x1-80001.2"></a>Limitations of Ledger-SMB</h4> + <ul class="itemize1"> + <li class="itemize">No payroll module (Payroll must be done manually) + </li> + <li class="itemize">Some integration limitations + + + </li> + <li class="itemize">Further development/maintenance requires a knowledge of a relatively broad range of + technologies</li></ul> +<!--l. 182--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">1.3 </span> <a + id="x1-90001.3"></a>System Requirements of Ledger-SMB</h4> + <ul class="itemize1"> + <li class="itemize">PostgreSQL + </li> + <li class="itemize">A CGI-enabled Web Server (for example, Apache) + </li> + <li class="itemize">Perl 5.8.x + </li> + <li class="itemize">An operating system which supports the above software (usually Linux, though Windows, + MacOS X, etc. do work) + </li> + <li class="itemize"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> (optional) is required to create PDF or Postscript invoices + </li> + <li class="itemize">The following CPAN modules: + <ul class="itemize2"> + <li class="itemize">Data::Dumper + </li> + <li class="itemize">Locale::Maketext + </li> + <li class="itemize">Locale::Maketext::Lexicon + </li> + <li class="itemize">MIME::Base64 + </li> + <li class="itemize">Digest::MD5 + </li> + <li class="itemize">HTML::Entities + </li> + <li class="itemize">DBI + </li> + <li class="itemize">DBD::Pg + </li> + <li class="itemize">Math::BigFloat + </li> + <li class="itemize">IO::File + + + </li> + <li class="itemize">Encode + </li> + <li class="itemize">Locale::Country + </li> + <li class="itemize">Locale::Language + </li> + <li class="itemize">Time::Local + </li> + <li class="itemize">Cwd + </li> + <li class="itemize">Config::Std + </li> + <li class="itemize">MIME::Lite</li></ul> + </li></ul> +<!--l. 214--><p class="noindent"> +</p> + <h3 class="sectionHead"><span class="titlemark">2 </span> <a + id="x1-100002"></a>User Account and Database Administration Basics</h3> +<!--l. 216--><p class="noindent">These functions are accessed via the admin.pl script in the installed directory of Ledger-SMB. +</p><!--l. 220--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">2.1 </span> <a + id="x1-110002.1"></a>Companies and Datasets</h4> +<!--l. 222--><p class="noindent">Ledger-SMB stores its information in locale-specific data sets. When a dataset is created, it sets various +defaults such as currency, a basic chart of accounts setup, and so forth. Note that the default setup is for +Canada, where the author of the software resides. +</p><!--l. 227--><p class="indent"> Datasets are stored as PostgreSQL databases. The application is designed with the idea that each dataset +will represent exactly one company. If a customer is working with multiple companies, he/she must create a +dataset to for each. +</p><!--l. 232--><p class="indent"> When creating a dataset, the application asks for both a username and a superusername. If the +superuser’s information is not filled in, Ledger-SMB will attempt to populate an existing dataset, but if this +information is filled in, the program will log into the PostgreSQL cluster with the superusername and +password, create the database, and attempt to add Plpgsql to it. +</p><!--l. 238--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">2.2 </span> <a + id="x1-120002.2"></a>How to Create a User</h4> +<!--l. 240--><p class="noindent">Users are created by going to the admin.pl page and clicking on "Add User." One then fills out the form and +when it is saved, the user is created. + + +</p><!--l. 245--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">2.3 </span> <a + id="x1-130002.3"></a>Permissions</h4> +<!--l. 247--><p class="noindent">The permissions system is not rigorously enforced within Ledger-SMB, in the sense that the +permissions API is generally not used in the application itself. Instead permissions are used to +enable/disable menu options. Setting an enforcement of such permissions would require some custom +programming at the present time. Most organizations, however, find that the current system is +adequate. +</p><!--l. 254--><p class="indent"> The checkboxes which are marked enable menu entries. Those that are unchecked disable those entries on +the menu. +</p><!--l. 258--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">2.4 </span> <a + id="x1-140002.4"></a>User Account Types</h4> + <ul class="itemize1"> + <li class="itemize">User is a general user of the system + </li> + <li class="itemize">Managers often are able to see a larger amount of data + </li> + <li class="itemize">Administrators have full access to the system</li></ul> +<!--l. 266--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">2.5 </span> <a + id="x1-150002.5"></a>Other Features</h4> + <ul class="itemize1"> + <li class="itemize">Lock System allows one to lock users out of the system while maintenance is performed. This is + only necessary during upgrades or maintenance which results in the RDBMS being offline. + </li> + <li class="itemize">Change Admin Password changes the administrative password. + </li> + <li class="itemize">Logout terminates the admin session.</li></ul> +<!--l. 276--><p class="noindent"> +</p> + <h3 class="sectionHead"><span class="titlemark">3 </span> <a + id="x1-160003"></a>Chart of Accounts</h3> +<!--l. 278--><p class="noindent">The Chart of Accounts provides a basic overview of the logical structure of the accounting program. One can +customize this chart to allow for tracking of different sorts of information. + + +</p><!--l. 283--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">3.1 </span> <a + id="x1-170003.1"></a>Introduction to Double Entry Bookkeeping</h4> +<!--l. 284--><p class="noindent">In order to set up your chart of accounts in LedgerSMB you will need to understand a bit about double entry +bookkeeping. This section provides a brief overview of the essential concepts. There is a list of references for +further reading at the end. +</p><!--l. 289--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">3.1.1 </span> <a + id="x1-180003.1.1"></a>Business Entity</h5> +<!--l. 290--><p class="noindent">You don’t want to mix your personal expenses and income with that of the business or you will +not be able to tell how much money it is making (if any). For the same reason you will want +to keep track of how much money you put into and take out of the business so you will want +to set up a completely seperate set of records for it and treat it almost as if it had a life of its +own. +</p><!--l. 297--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">3.1.2 </span> <a + id="x1-190003.1.2"></a>Double Entry</h5> +<!--l. 298--><p class="noindent">Examples: </p> + <ul class="itemize1"> + <li class="itemize">When you buy you pay money and receive goods. + </li> + <li class="itemize">When you sell you get money and give goods. + </li> + <li class="itemize">When you borrow you get money and give a promise to pay it back. + </li> + <li class="itemize">When you lend you give money and get a promise to pay it back. + </li> + <li class="itemize">When you sell on credit you give goods and get a promise to pay. + </li> + <li class="itemize">When you buy on credit you give a promise to pay and get goods.</li></ul> +<!--l. 308--><p class="indent"> You need to record both sides of each transaction: thus double entry. Furthermore, you want to organize +your entries, recording those having to do with money in one place, value of goods bought and sold in +another, money owed in yet another, etc. Hence you create accounts, and record each half of each transaction +in an appropriate account. Of course, you won’t have to actually record the amount in more than one place +yourself: the program takes care of that. +</p><!--l. 316--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">3.1.3 </span> <a + id="x1-200003.1.3"></a>Accounts</h5> +<!--l. 318--><p class="noindent"> + + + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">Assets</span> </dt><dd +class="description">Valuable stuff the business owns such as money and goods available for sale + </dd><dt class="description"> +<span +class="pplb8t-">Liabilities</span> </dt><dd +class="description">Debts owned by the business such as bank loans and unpaid bills + </dd><dt class="description"> +<span +class="pplb8t-">Equity or Capital</span> </dt><dd +class="description">What would be left for the owner if all the assets were converted to money and + all the liabilities paid off ("Share Capital" on the LedgerSMB default chart of accounts: not to be + confused with "Capital Assets".) + </dd><dt class="description"> +<span +class="pplb8t-">Revenue</span> </dt><dd +class="description">Income from business activity: increases Equity + </dd><dt class="description"> +<span +class="pplb8t-">Expense</span> </dt><dd +class="description">The light bill, the cost of goods sold, etc: decreases Equity</dd></dl> +<!--l. 330--><p class="noindent">All other accounts are subdivisions of these. The relationship between the top-level accounts +is often stated in the form of the Accounting Equation (don’t worry: you won’t have to solve +it): +</p><!--l. 334--><p class="indent"> Assets = Liabilities + Equity + (Revenue - Expense) +</p><!--l. 336--><p class="indent"> You won’t actually use this equation while doing your bookkeeping, but it’s a useful tool for +understanding how the system works. +</p><!--l. 339--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">3.1.4 </span> <a + id="x1-210003.1.4"></a>Debits and Credits</h5> +<!--l. 341--><p class="noindent">Traditional paper accounting systems used a two-column form in which all increases went in one column +and all deceases in the other. For asset and expense accounts increases went in the left column and decreases +in the right. For liability and capital accounts decreases went in the left column and increases in the right. +Looking at the accounting equation we see that assets are on the left, so it is logical that asset increases would +go on the left. Libilities, capital, and revenue are on the right so it is logical that their increase would go on +the right. Expenses, however, are on the right, so why do their increases go on the left? Because expenses are +subtracted from the right side of the equation and so expense increases decrease the right side of the +equation. +</p><!--l. 353--><p class="indent"> Entries in the left column of the traditional form are called debits, while entries on the right are called +credits. Neither is "negative". +</p> + <ul class="itemize1"> + <li class="itemize">Debits increase assets + </li> + <li class="itemize">Debits increase expense + </li> + <li class="itemize">Credits increase liabilities + </li> + <li class="itemize">Credits increase capital + </li> + <li class="itemize">Credits increase revenue</li></ul> + + +<!--l. 364--><p class="indent"> Examples: +</p><!--l. 366--><p class="indent"> You go to the bank and make a deposit. The teller tells you that he is going to credit your +account. This is correct: your account is money the bank owes you and so is a liability from their +point of view. Your deposit increased this liability and so they will credit it. They will make an +equal debit to their cash account. When you return you will debit your bank deposits account +because you have increased that asset and credit cash on hand because you have decreased that +one. +</p><!--l. 375--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">3.1.5 </span> <a + id="x1-220003.1.5"></a>Accrual</h5> +<!--l. 377--><p class="noindent">Early accounting systems were usually run on a cash basis. One generally did not consider money owed to +affect the financial health of a company, so expenses posted when paid as did income. +</p><!--l. 381--><p class="indent"> The problem with this approach is that it becomes very difficult or impossible to truly understand the +exact nature of the financial health of a business. One cannot get the full picture of the financial health of a +business because outstanding debts are not considered. Futhermore, this does not allow for revenue to +be tied to cost effectively, so it becomes difficult to assess how profitable a given activity truly +is. +</p><!--l. 388--><p class="indent"> To solve this problem, accrual-based systems were designed. The basic principle is that income and +expense should be posted as they are incurred, or accrued. This allows one to track income relative to +expense for specific projects or operations, and make better decisions about which activities will help one +maximize profitability. +</p><!--l. 394--><p class="indent"> To show how these systems differ, imagine that you bill a customer for time and materials for a project +you have just completed. The customer pays the bill after 30 days. In a cash based system, you would post +the income at the time when the customer pays, while in an accrual system, the income is posted at the time +when the project is completed. +</p><!--l. 400--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">3.1.6 </span> <a + id="x1-230003.1.6"></a>References</h5> +<!--l. 402--><p class="noindent"><span class="obeylines-h"><a +href="http://www.accounting-and-bookkeeping-tips.com/learning-accounting/accounting-basics-credit.htm" class="url" >http://www.accounting-and-bookkeeping-tips.com/learning-accounting/accounting-basics-credit.htm</a></span> +<br class="newline" />Discussion of debits and credits as well as links to other accounting subjects. +<br class="newline" /> +</p><!--l. 405--><p class="noindent"><span class="obeylines-h"><a +href="http://www.computer-consulting.com/accttips.htm" class="url" >http://www.computer-consulting.com/accttips.htm</a></span> +<br class="newline" />Discussion of double entry bookkeeping. +<br class="newline" /> +</p><!--l. 408--><p class="noindent"><span class="obeylines-h"><a +href="http://www.minnesota.com/~tom/sql-ledger/howtos/" class="url" >http://www.minnesota.com/~tom/sql-ledger/howtos/</a></span> +<br class="newline" />A short glossary, some links, and a FAQ (which makes the "credit=negative number" error). The FAQ focuses +on SQL-Ledger, LedgerSMB’s ancestor. +<br class="newline" /> +</p><!--l. 412--><p class="noindent"><span class="obeylines-h"><a +href="http://bitscafe.com/pub2/etp/sql-ledger-notes#expenses" class="url" >http://bitscafe.com/pub2/etp/sql-ledger-notes#expenses</a></span> +<br class="newline" />Some notes on using SQL-Ledger (LedgerSMB’s ancestor). +<br class="newline" /> +</p><!--l. 415--><p class="noindent"><span class="obeylines-h"><a +href="http://en.wikipedia.org/wiki/List_of_accounting_topics" class="url" >http://en.wikipedia.org/wiki/List_of_accounting_topics</a></span> +<br class="newline" />Wikipedia articles on accounting. +<br class="newline" /> +</p><!--l. 418--><p class="noindent"><span class="obeylines-h"><a +href="http://www.bized.ac.uk/learn/accounting/financial/index.htm" class="url" >http://www.bized.ac.uk/learn/accounting/financial/index.htm</a></span> +<br class="newline" />Basic accounting tutorial. +<br class="newline" /> + + +</p><!--l. 421--><p class="noindent"><span class="obeylines-h"><a +href="http://www.asset-analysis.com/glossary/glo_index.html" class="url" >http://www.asset-analysis.com/glossary/glo_index.html</a></span> +<br class="newline" />Financial dictionary and glossary. +<br class="newline" /> +</p><!--l. 424--><p class="noindent"><span class="obeylines-h"><a +href="http://www.geocities.com/chapleaucree/educational/FinanceHandbook.html" class="url" >http://www.geocities.com/chapleaucree/educational/FinanceHandbook.html</a></span> +<br class="newline" />Financial glossary. +<br class="newline" /> +</p><!--l. 427--><p class="noindent"><span class="obeylines-h"><a +href="http://www.quickmba.com/accounting/fin/" class="url" >http://www.quickmba.com/accounting/fin/</a></span> +<br class="newline" />Explanation of fundamentals of accounting, including good discussions of debits and credits and of +double-entry. +</p><!--l. 432--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a + id="x1-240003.2"></a>General Guidelines on Numbering Accounts</h4> +<!--l. 434--><p class="noindent">In general, most drop-down boxes in Ledger-SMB order the accounts by account number. Therefore by +setting appropriate account numbers, one can affect the default values. +</p><!--l. 438--><p class="indent"> A second consideration is to try to keep things under each heading appropriate to that heading. +Thus setting an account number for a bank loan account in the assets category is not generally +advisable. +</p><!--l. 443--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">3.3 </span> <a + id="x1-250003.3"></a>Adding/Modifying Accounts</h4> +<!--l. 445--><p class="noindent">These features are listed under System->Chart of Accounts. One can list the accounts and click on the +account number to modify them or click on the "add account" option to create new accounts. +</p> + <ul class="itemize1"> + <li class="itemize">Headings are just broad categories and do not store values themselves, while accounts are used + to store the transactional information. + </li> + <li class="itemize">One cannot have an account that is a summary account (like AR) and also has another function. + </li> + <li class="itemize">GIFI is mostly of interest to Canadian customers but it can be used to create reports of account + hierarchies.</li></ul> +<!--l. 459--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">3.4 </span> <a + id="x1-260003.4"></a>Listing Account Balances and Transactions</h4> +<!--l. 461--><p class="noindent">One can list the account balances via the Reports->Chart of Accounts report. Clicking on the account number +will provide a ledger for that account. + + +</p><!--l. 466--><p class="noindent"> +</p> + <h3 class="sectionHead"><span class="titlemark">4 </span> <a + id="x1-270004"></a>Administration</h3> +<!--l. 468--><p class="noindent">This section covers other (non-Chart of Accounts) aspects to the setup of the Ledger-SMB accounting +package. These are generally accessed in the System submenu. +</p><!--l. 473--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a + id="x1-280004.1"></a>Taxes, Defaults, and Preferences</h4> +<!--l. 474--><p class="noindent">One of the new features in 1.2 is the modular sales tax system and the simple sales tax module. This allows +one to install different tax modules and then select which taxes are applied by which programming modules. +The sales tax module has access to everything on the submitted form so it is able to make complex +determinations on what is taxable based on arbitrary criteria. +</p><!--l. 480--><p class="indent"> The tax rules drop-down box allows one to select any installed tax module (LedgerSMB 1.2 ships only +with the simple module), while the ordering is an integer which allows one to specify a tax run which occurs +on the form after any rules with lower entries in this box. This allows for compounding of sales tax (for +example, when PST applies to the total and GST as well). +</p><!--l. 485--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">4.1.1 </span> <a + id="x1-290004.1.1"></a>Adding A Sales Tax Account</h5> +<!--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– 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"> +</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->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> + <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"> +</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 +Rupiah), etc. Currencies are separated by colons. + + +</p><!--l. 520--><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 +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 +from a customer. +</p><!--l. 529--><p class="indent"> Leading zeros are preserved. Other special values which can be embedded using <span +class="cmmi-10"><</span>?lsmb ?<span +class="cmmi-10">> </span>tags +include: +</p><!--l. 532--><p class="indent"> + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">DATE</span> </dt><dd +class="description">expands to the current date + </dd><dt class="description"> +<span +class="pplb8t-">YYMMDD</span> </dt><dd +class="description">expands to a six-digit version of the date. The components of this date can be re-arranged + in any order, so MMDDYY, DDMMYY, or even just MMYY are all options. + </dd><dt class="description"> +<span +class="pplb8t-">NAME</span> </dt><dd +class="description">expands to the name of the customer or vendor + </dd><dt class="description"> +<span +class="pplb8t-">BUSINESS</span> </dt><dd +class="description">expands to the type of business assigned to the customer or ventor. + </dd><dt class="description"> +<span +class="pplb8t-">DESCRIPTION</span> </dt><dd +class="description">expands to the description of the part. Valid only for parts. + </dd><dt class="description"> +<span +class="pplb8t-">ITEM</span> </dt><dd +class="description">expands to the item field. Valid only for parts. + </dd><dt class="description"> +<span +class="pplb8t-">PERISCOPE</span> </dt><dd +class="description">expands to the partsgroup. Valid only for parts. + </dd><dt class="description"> +<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"> +</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 +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> + <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 +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 +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> + <div class="tabular"><table class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-2-1g"><col +id="TBL-2-1" /></colgroup><colgroup id="TBL-2-2g"><col +id="TBL-2-2" /></colgroup><colgroup id="TBL-2-3g"><col +id="TBL-2-3" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1" +class="td11">Account </td><td style="white-space:nowrap; text-align:right;" id="TBL-2-1-2" +class="td11">Debit</td><td style="white-space:nowrap; text-align:right;" id="TBL-2-1-3" +class="td11">Credit</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1" +class="td11">5760 Rent </td><td style="white-space:nowrap; text-align:right;" id="TBL-2-2-2" +class="td11"> $200</td><td style="white-space:nowrap; text-align:right;" id="TBL-2-2-3" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1" +class="td11">2100 Accounts Payable</td><td style="white-space:nowrap; text-align:right;" id="TBL-2-3-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-2-3-3" +class="td11"> $200</td> +</tr><tr + 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: +</p> + <div class="tabular"><table class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-3-1g"><col +id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col +id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col +id="TBL-3-3" /></colgroup><tr + style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1" +class="td11">Account </td><td style="white-space:nowrap; text-align:right;" id="TBL-3-1-2" +class="td11">Debit</td><td style="white-space:nowrap; text-align:right;" id="TBL-3-1-3" +class="td11">Credit</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1" +class="td11">5760 Rent </td><td style="white-space:nowrap; text-align:right;" id="TBL-3-2-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-3-2-3" +class="td11"> $200</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1" +class="td11">2100 Accounts Payable</td><td style="white-space:nowrap; text-align:right;" id="TBL-3-3-2" +class="td11"> $200</td><td style="white-space:nowrap; text-align:right;" id="TBL-3-3-3" +class="td11"> </td> +</tr><tr + 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 +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 +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 +them. +</p><!--l. 612--><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"> +</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 +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 +information, which form was used, and what the action was. No direct financial information is +included. +</p><!--l. 629--><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 +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> + <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 +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 +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 +functionality, you must create the department as a profit center. +</p><!--l. 658--><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 +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> + <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 +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> + <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 +give a firm that uses one’s services as a subcontractor a 10% discount or more. +</p><!--l. 680--><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"> +</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 +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’t otherwise have a use for GIFI can use it to create reports which agregate accounts +together. + + +</p><!--l. 692--><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. +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> + <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 +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> + <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 +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 +adjusted<span class="footnote-mark"><a +href="LedgerSMB-manual2.html#fn1x0"><sup class="textsuperscript">1</sup></a></span><a + id="x1-47001f1"></a> +income and expenses to an equity account usually called "Retained Earnings." Assets and liabilities are not +moved. Equity drawing/dividend accounts are also moved, but the investment accounts are not. The +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 +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 +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 +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><dl class="description"><dt class="description"> +<span +class="pplb8t-">templates</span> </dt><dd +class="description">is the directory where the templates are stored. + + + </dd><dt class="description"> +<span +class="pplb8t-">sendmail</span> </dt><dd +class="description">is the command to use to send a message. It must read the email from standard input. + </dd><dt class="description"> +<span +class="pplb8t-">language</span> </dt><dd +class="description">allows one to set the language for the login screen and admin page. + </dd><dt class="description"> +<span +class="pplb8t-">latex</span> </dt><dd +class="description">tells Ledger-SMB whether <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> is installed. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> is required for generating Postscript and + PDF invoices and the like. + </dd><dt class="description"> +<span +class="pplb8t-">Environmental variables</span> </dt><dd +class="description">can be set here too. One can add paths for searching for <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span>, etc. + </dd><dt class="description"> +<span +class="pplb8t-">Printers</span> </dt><dd +class="description">section can be used to set a hash table of printers for the software. The primary example is + <br class="newline" /><span +class="cmr-10">[</span>printers<span +class="cmr-10">]</span> + <br class="newline" />Default = lpr + <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"> +</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 +concepts. +</p><!--l. 771--><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"> + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">COGS</span> </dt><dd +class="description">is Cost of Goods Sold. When an item is sold, then the expense of its purchase is accrued as + attached to the income of the sale. + </dd><dt class="description"> +<span +class="pplb8t-">List</span> </dt><dd +class="description">Price is the recommended retail price. + </dd><dt class="description"> +<span +class="pplb8t-">Markup</span> </dt><dd +class="description">is the percentage increase that is applied to the last cost to get the sell price. + </dd><dt class="description"> +<span +class="pplb8t-">ROP</span> </dt><dd +class="description">is re-order point. Items with fewer in stock than this will show up on short reports. + </dd><dt class="description"> +<span +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"> +</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. +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> + <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"> +</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 +yet, but is sufficient that with some stylesheet changes, it could be made to work. +</p><!--l. 805--><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 +is associated with an expense/Cost of Goods Sold (COGS) account. +</p><!--l. 812--><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 +account and an income account. Services can be associated with sales tax. +</p><!--l. 819--><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 +“Shipping and Handling”, 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> + <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 +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> + <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 +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 +them once they are manufactured. +</p><!--l. 848--><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 +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 +required to produce the assembly would drop the part below the reorder point. +</p><!--l. 859--><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"> +</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 +the Parts report confines it to parts. +</p><!--l. 867--><p class="indent"> Types of reports are: +</p><!--l. 869--><p class="indent"> + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">Active</span> </dt><dd +class="description">lists all items not marked as obsolete. + </dd><dt class="description"> +<span +class="pplb8t-">On</span> </dt><dd +class="description">Hand lists current inventory . + </dd><dt class="description"> +<span +class="pplb8t-">Short</span> </dt><dd +class="description">Lists all items which are stocked below their ROP. + </dd><dt class="description"> +<span +class="pplb8t-">Obsolete</span> </dt><dd +class="description">Lists all items which are marked as obsolete. + </dd><dt class="description"> +<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. + + +</p><!--l. 883--><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 +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> + <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 +reports. +</p><!--l. 897--><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 +assemblies as well. +</p><!--l. 902--><p class="indent"> AP Invoices, Purchase Orders, and RFQ’s are not available on this report. +</p><!--l. 906--><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 +what they are for services. +</p><!--l. 912--><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’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 +part groups. +</p><!--l. 921--><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 +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 +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> + <h3 class="sectionHead"><span class="titlemark">6 </span> <a + id="x1-680006"></a>AP</h3> +<!--l. 939--><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. +This includes rent, utilities, etc. as well as orders of goods and services. +</p><!--l. 946--><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->Vendors->Add Vendor. The vendor list can be searched +under AP->Vendors->Reports->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 +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><dl class="description"><dt class="description"> +<span +class="pplb8t-">BIC</span> </dt><dd +class="description">Bank Identifier Code is often the same as the S.W.I.F.T. code. This is a code for the bank a + customer uses for automated money transfers. + </dd><dt class="description"> +<span +class="pplb8t-">IBAN</span> </dt><dd +class="description">International Bank Account Number is related to the BIC and is used for cross-border + automated money transfers. + </dd><dt class="description"> +<span +class="pplb8t-">Terms</span> </dt><dd +class="description">is the number of days one has to pay the invoice. + </dd><dt class="description"> +<span +class="pplb8t-">Vendor</span> </dt><dd +class="description">Number is automatically generated.</dd></dl> +<!--l. 970--><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, +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 +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 +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 +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 +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> + <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 +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 +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, +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> + <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 +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 +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> + <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->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 +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 +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> + <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 +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> + <h4 class="subsectionHead"><span class="titlemark">6.6 </span> <a + id="x1-760006.6"></a>Transaction/Invoice Reporting</h4> +<!--l. 1058--><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 +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 +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 +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 +paid. +</p><!--l. 1075--><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 +ID field is mostly useful for locating the specific database record if a duplicate invoice number +exists. +</p><!--l. 1082--><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"> +</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"> +</p> + <h4 class="subsectionHead"><span class="titlemark">6.7 </span> <a + id="x1-810006.7"></a>Vendor Reporting</h4> +<!--l. 1099--><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 +vendors. + + +</p><!--l. 1104--><p class="indent"> The basic types of reports are: +</p><!--l. 1106--><p class="indent"> + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">All</span> </dt><dd +class="description">Lists all vendors + </dd><dt class="description"> +<span +class="pplb8t-">Active</span> </dt><dd +class="description">Lists those vendors currently active + </dd><dt class="description"> +<span +class="pplb8t-">Inactive</span> </dt><dd +class="description">Lists those vendors who are currently inactive. time frame. + </dd><dt class="description"> +<span +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 +well if they occur between the from and to dates. +</p><!--l. 1119--><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 +vendors. One can find quantities, partnumber, and sell prices on this report. This facility can be used to +search RFQ’s, Purchase Orders, and AP Invoices. +</p><!--l. 1127--><p class="noindent"> +</p> + <h3 class="sectionHead"><span class="titlemark">7 </span> <a + id="x1-840007"></a>AR</h3> +<!--l. 1130--><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->Customers->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 +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 +credit. +</p><!--l. 1144--><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 +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> + <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 +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 +when a customer is asking for clarification on a bill, for example. +</p><!--l. 1163--><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 +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 +initial payments at this screen. +</p><!--l. 1174--><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->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> + <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->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> + <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 +in this document. +</p><!--l. 1197--><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’s PO has been associated with this transaction, one can search under this field as +well. + + +</p><!--l. 1205--><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 +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> + <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"> +</p> + <h3 class="sectionHead"><span class="titlemark">8 </span> <a + id="x1-950008"></a>Projects</h3> +<!--l. 1223--><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 +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> + <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 +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> + <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 +project itself. + + +</p><!--l. 1252--><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"> +</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 +use the total time in issuing invoices (this is not automated yet). +</p><!--l. 1262--><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 +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 +numbers, one can see the transactions associated with the project. +</p><!--l. 1272--><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"> +</p> + <h4 class="subsectionHead"><span class="titlemark">8.5 </span> <a + id="x1-1030008.5"></a>Possibilities for Using Projects</h4> + <ul class="itemize1"> + <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"> +</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 +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> + <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 +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> + <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. +Quotations can be created from Sales orders or AR Invoice automatically. +</p><!--l. 1310--><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->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 +from. More likely most customers will just generate invoices from orders. +</p><!--l. 1323--><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"> +</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 +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 +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 +asking for a quotation and is offered a verbal quote, then one might merely prepare the sales +order. +</p> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1090011"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 1: </td><td +class="content">Simple AR Service Invoice Workflow Example</td></tr></table><!--tex4ht:label?: x1-1090011 --> +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual0x.png" alt="PICT" /> + + +</p> + </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 +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 +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> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1100012"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 2: </td><td +class="content">AR Workflow with Shipping</td></tr></table><!--tex4ht:label?: x1-1100012 --> +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual1x.png" alt="PICT" /> + + +</p> + </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 +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 +mailed to the customer. +</p> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1110013"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 3: </td><td +class="content">Complex AR Workflow with Shipping</td></tr></table><!--tex4ht:label?: x1-1110013 --> +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual2x.png" alt="PICT" /> + + +</p> + </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 +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> + <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 +businesses will require a purchase order with certain terms in order to begin work on a product. These can be +generated from RFQ’s or AP Invoices. +</p><!--l. 1416--><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->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> + <h4 class="subsectionHead"><span class="titlemark">9.8 </span> <a + id="x1-1150009.8"></a>AP Work Flow</h4> +<!--l. 1426--><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 +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. +</p> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1160014"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 4: </td><td +class="content">Simple AP Workflow</td></tr></table><!--tex4ht:label?: x1-1160014 --> +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual3x.png" alt="PICT" /> + + +</p> + </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 +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 +received. +</p> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1170015"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 5: </td><td +class="content">AP Workflow with Receiving</td></tr></table><!--tex4ht:label?: x1-1170015 --> +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual4x.png" alt="PICT" /> + + +</p> + </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 +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 +time. +</p> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1180016"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 6: </td><td +class="content">Complex AP Workflow</td></tr></table><!--tex4ht:label?: x1-1180016 --> +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual5x.png" alt="PICT" /> + + +</p> + </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"> +</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 +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> + <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 +have more than one order associated with the relevant customer or vendor. +</p><!--l. 1512--><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 +orders, sales orders, RFQ’s, and quotations. +</p><!--l. 1519--><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->Transfer Inventory +screen. +</p><!--l. 1525--><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 +has very little other functionality. One could build payroll systems that could integrate with it +however. + + +</p><!--l. 1532--><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’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> + <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. +</p> + <ul class="itemize1"> + <li class="itemize">The discount text field is not available, nor is the unit field.. + </li> + <li class="itemize">The next part number is automatically focused when the data loads for rapid data entry. + </li> + <li class="itemize">Hot keys for the buttons are Alt-U for update, Alt-P for print, Alt-O for post, and Alt-R for print + and post. + </li> + <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"> +</p> + <h4 class="subsectionHead"><span class="titlemark">11.2 </span> <a + id="x1-12700011.2"></a>Possibilities for Data Entry</h4> + <ul class="itemize1"> + <li class="itemize">Barcode scanners can be used to scan items in as they are being rung in. + </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"> +</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 +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><dl class="description"><dt class="description"> +<span +class="pplb8t-">Touch</span> </dt><dd +class="description">screens: The default stylesheet is not really usable from a touchscreen as the items are often + too small. One would need to modify the stylesheets to ensure that the relevant items would be + reasonable. Setting down the resolution would also help. + </dd><dt class="description"> +<span +class="pplb8t-">Receipt</span> </dt><dd +class="description">Printers: ESC/POS printers generally work in text mode. Control sequences can be + embedded in the template as necessary. + </dd><dt class="description"> +<span +class="pplb8t-">Pole</span> </dt><dd +class="description">Displays: Generally supported. Only the Logic Controls PD3000 is supported out of the box, + but making this work for other models ought to be trivial. + </dd><dt class="description"> +<span +class="pplb8t-">Cash</span> </dt><dd +class="description">Drawers: These should be attached to the printer. The control codes is then specified in the + pos.conf.pl so that the command is sent to the printer when the open till button is pushed. + </dd><dt class="description"> +<span +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"> +</p> + <h4 class="subsectionHead"><span class="titlemark">11.4 </span> <a + id="x1-12900011.4"></a>Reports</h4> +<!--l. 1594--><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->Open screen allows one to find any POS receipts that are not entirely paid off. +</p><!--l. 1600--><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->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’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> + <h3 class="sectionHead"><span class="titlemark">12 </span> <a + id="x1-13200012"></a>General Ledger</h3> + + +<!--l. 1616--><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 +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> + <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 +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" +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 +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 +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> + <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): +</p> + <div class="tabular"><table class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-4-1g"><col +id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col +id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col +id="TBL-4-3" /></colgroup><colgroup id="TBL-4-4g"><col +id="TBL-4-4" /></colgroup><colgroup id="TBL-4-5g"><col +id="TBL-4-5" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1" +class="td11">Date </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2" +class="td11">Accounts and Explanation</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-3" +class="td11">Ref </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-1-4" +class="td11"> DEBIT</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-1-5" +class="td11">CREDIT</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1" +class="td11">March 1</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2" +class="td11">Checking Account </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-3" +class="td11">1060</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-2-4" +class="td11">10000.00</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-2-5" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2" +class="td11">John Doe Capital </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-3" +class="td11">3011</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-3-4" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-3-5" +class="td11">10000.00</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-2" +class="td11">John Doe began a business</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-3" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-4-4" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-4-5" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-2" +class="td11">with an investment of </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-3" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-5-4" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-5-5" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-2" +class="td11">$10000 </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-3" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-6-4" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-6-5" +class="td11"> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + 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 +Checking Account page: +</p> + <div class="tabular"><table class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-5-1g"><col +id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col +id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col +id="TBL-5-3" /></colgroup><colgroup id="TBL-5-4g"><col +id="TBL-5-4" /></colgroup><colgroup id="TBL-5-5g"><col +id="TBL-5-5" /></colgroup><colgroup id="TBL-5-6g"><col +id="TBL-5-6" /></colgroup><colgroup id="TBL-5-7g"><col +id="TBL-5-7" /></colgroup><colgroup id="TBL-5-8g"><col +id="TBL-5-8" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1" +class="td11">DATE </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-2" +class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-3" +class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-5-1-4" +class="td11"> DEBITS</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-5" +class="td11">DATE</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-6" +class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-7" +class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-5-1-8" +class="td11">CREDITS</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-1" +class="td11">March 1</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-3" +class="td11">J1 </td><td style="white-space:nowrap; text-align:right;" id="TBL-5-2-4" +class="td11">10000.00</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-5" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-6" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-7" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-5-2-8" +class="td11"> </td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + 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: +</p> + + + <div class="tabular"><table class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-6-1g"><col +id="TBL-6-1" /></colgroup><colgroup id="TBL-6-2g"><col +id="TBL-6-2" /></colgroup><colgroup id="TBL-6-3g"><col +id="TBL-6-3" /></colgroup><colgroup id="TBL-6-4g"><col +id="TBL-6-4" /></colgroup><colgroup id="TBL-6-5g"><col +id="TBL-6-5" /></colgroup><colgroup id="TBL-6-6g"><col +id="TBL-6-6" /></colgroup><colgroup id="TBL-6-7g"><col +id="TBL-6-7" /></colgroup><colgroup id="TBL-6-8g"><col +id="TBL-6-8" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1" +class="td11">DATE</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2" +class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-3" +class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-6-1-4" +class="td11">DEBITS</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-5" +class="td11">DATE </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-6" +class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-7" +class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-6-1-8" +class="td11">CREDITS</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-3" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-6-2-4" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-5" +class="td11">March 1</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-6" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-7" +class="td11">J1 </td><td style="white-space:nowrap; text-align:right;" id="TBL-6-2-8" +class="td11"> 10000.00</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + 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"> +</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 +it has one serious deficiency— 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 +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 +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 +more complex than this but this is very close to the actual mechanism). +</p><!--l. 1767--><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->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><dl class="description"><dt class="description"> +<span +class="pplb8t-">Reference</span> </dt><dd +class="description">refers to the source document for the transfer. One can use transfer sheets, bank receipt + numbers, etc for this field. + </dd><dt class="description"> +<span +class="pplb8t-">Description</span> </dt><dd +class="description">is optional but really should be filled in. It ought to be a description of the transaction. + </dd><dt class="description"> +<span +class="pplb8t-">Notes</span> </dt><dd +class="description">provide supplemental information for the transaction. + </dd><dt class="description"> +<span +class="pplb8t-">FX</span> </dt><dd +class="description">indicates whether foreign exchange is a factor in this transaction. + </dd><dt class="description"> +<span +class="pplb8t-">Debit</span> </dt><dd +class="description">indicates money going <span +class="pplb8t-">into </span>the asset account. + </dd><dt class="description"> +<span +class="pplb8t-">Credit</span> </dt><dd +class="description">indicates money coming <span +class="pplb8t-">out </span>of the asset account. + </dd><dt class="description"> +<span +class="pplb8t-">Source</span> </dt><dd +class="description">is the source document for that portion of the transaction. + </dd><dt class="description"> +<span +class="pplb8t-">Memo</span> </dt><dd +class="description">lists additional information as necessary. + + + </dd><dt class="description"> +<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’s bank account. +The reason is that your bank statement is done from the bank’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 +in plus an extra line for the new line in the data entry. +</p><!--l. 1800--><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->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 +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> + <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 +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> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1390017"></a> + + +<br /><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 7: </td><td +class="content">Payroll as a GL Transaction (Purely fictitious numbers)</td></tr></table><!--tex4ht:label?: x1-1390017 --> + <div class="tabular"><table class="tabular" +cellspacing="0" cellpadding="0" rules="groups" +><colgroup id="TBL-7-1g"><col +id="TBL-7-1" /></colgroup><colgroup id="TBL-7-2g"><col +id="TBL-7-2" /></colgroup><colgroup id="TBL-7-3g"><col +id="TBL-7-3" /></colgroup><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1" +class="td11">Account </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-1-2" +class="td11">Debit</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-1-3" +class="td11">Credit</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1" +class="td11">5101 Wages and Salaries </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-2-2" +class="td11"> 500</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-2-3" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1" +class="td11">2032 Accrued Wages </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-3-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-3-3" +class="td11"> 450</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1" +class="td11">2033 Fed. Income Tax wthd</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-4-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-4-3" +class="td11"> 30</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1" +class="td11">2034 State Inc. Tax. wthd </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-5-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-5-3" +class="td11"> 15</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-1" +class="td11">2035 Social Security wthd </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-6-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-6-3" +class="td11"> 3</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-7-1" +class="td11">2036 Medicare wthd </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-7-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-7-3" +class="td11"> 2</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-8-1" +class="td11">2032 Accrued Wages </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-8-2" +class="td11"> 450</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-8-3" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-9-1" +class="td11">1060 Checking Acct </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-9-2" +class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-9-3" +class="td11"> 450</td> +</tr><tr +class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr + style="vertical-align:baseline;" id="TBL-7-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-10-1" +class="td11"> </td> </tr></table> +</div> + + + </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 +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 +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 +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><dl class="description"><dt class="description"> +<span +class="pplb8t-">Reference</span> </dt><dd +class="description">is the invoice number, or other reference number associated with the transaction. + </dd><dt class="description"> +<span +class="pplb8t-">Source</span> </dt><dd +class="description">is the field related to the source document number in a payment or other transaction.<span class="footnote-mark"><a +href="LedgerSMB-manual4.html#fn3x0"><sup class="textsuperscript">3</sup></a></span><a + id="x1-141001f3"></a> + </dd><dt class="description"> +<span +class="pplb8t-">Memo</span> </dt><dd +class="description">relates to the memo field on a payment. + </dd><dt class="description"> +<span +class="pplb8t-">Department</span> </dt><dd +class="description">can be used to filter results by department. + </dd><dt class="description"> +<span +class="pplb8t-">Account</span> </dt><dd +class="description">Type can be used to filter results by type of account (Asset, Liability, etc.) + </dd><dt class="description"> +<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’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> + <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 +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> + <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, +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 +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 +the ones you want to process and click "Process Transactions." +</p><!--l. 1933--><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 +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> + <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 +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 +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 +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> + <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–>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 +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> + <h4 class="subsectionHead"><span class="titlemark">14.3 </span> <a + id="x1-14700014.3"></a>Trial Balance</h4> +<!--l. 1980--><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 +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> + <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 –>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 +as whether or not they have been reconciled. +</p><!--l. 2004--><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’t Balance?</h5> +<!--l. 2006--><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> + <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 +activity at a glance for the entire business. +</p><!--l. 2020--><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 +financial interval. This can be used in preparing budgets for the next accounting period. +</p><!--l. 2027--><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 +information on the financial health of a business. +</p><!--l. 2033--><p class="indent"> The report is run from Reports–>Income Statement. The report preparation screen shows the following +fields: +</p><!--l. 2036--><p class="indent"> + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">Department</span> </dt><dd +class="description">allows you to run reports for individual departments. This is useful for budgetary + purposes. + </dd><dt class="description"> +<span +class="pplb8t-">Project</span> </dt><dd +class="description">allows you to run reports on individual projects. This can show how profitable a given project + was during a given time period. + </dd><dt class="description"> +<span +class="pplb8t-">From</span> </dt><dd +class="description">and To allow you to select arbitrary from and to dates. + </dd><dt class="description"> +<span +class="pplb8t-">Period</span> </dt><dd +class="description">allows you to specify a standard accounting period. + </dd><dt class="description"> +<span +class="pplb8t-">Compare to</span> </dt><dd +class="description">fields allow you to run a second report for comparison purposes for a separate range of + dates or accounting period. + </dd><dt class="description"> +<span +class="pplb8t-">Decimalplaces</span> </dt><dd +class="description">allows you to display numbers to a given precision. + </dd><dt class="description"> +<span +class="pplb8t-">Method</span> </dt><dd +class="description">allows you to select between accrual and cash basis reports. + </dd><dt class="description"> +<span +class="pplb8t-">Include</span> </dt><dd +class="description">in Report provides various options for reporting. + </dd><dt class="description"> +<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 +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> + <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 +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 +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’s performance and their +ability to work within their budget. One can compare a department or project’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> + <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 +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 +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. +Balance sheets don’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><dl class="description"><dt class="description"> +<span +class="pplb8t-">Department</span> </dt><dd +class="description">allows you to run separate balance sheets for each department. + </dd><dt class="description"> +<span +class="pplb8t-">As</span> </dt><dd +class="description">at specifies the date. If blank this will be the current date. + </dd><dt class="description"> +<span +class="pplb8t-">Compare to</span> </dt><dd +class="description">specifies the date to compare the balance sheet to. + </dd><dt class="description"> +<span +class="pplb8t-">Decimalplaces</span> </dt><dd +class="description">specifies the number of decimal places to use. + </dd><dt class="description"> +<span +class="pplb8t-">Method</span> </dt><dd +class="description">selects between cash and accrual basis. + </dd><dt class="description"> +<span +class="pplb8t-">Include</span> </dt><dd +class="description">in report allows you to select supplemental information on the report. + </dd><dt class="description"> +<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 +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. 2116--><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’t balance?</h4> +<!--l. 2118--><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> + <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. +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> + <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 +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 +invoice than a customer in Canada. +</p><!--l. 2147--><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 +understand the template system. +</p><!--l. 2153--><p class="indent"> The first two lines are: +<br class="newline" /><%company align=center width=40%> +<br class="newline" /><%address align=center width=40%> +<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 +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 +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 <% and %>. 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> + <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: +</p> + <ul class="itemize1"> + <li class="itemize">Income Statement + </li> + <li class="itemize">Balance Sheet + </li> + <li class="itemize">Invoice (AR) + </li> + <li class="itemize">AR Transaction + </li> + <li class="itemize">AP Transaction + </li> + <li class="itemize">Packing List + </li> + <li class="itemize">Pick List + </li> + <li class="itemize">Sales Order + </li> + <li class="itemize">Work Order + </li> + <li class="itemize">Purchase Order + </li> + <li class="itemize">Bin List + </li> + <li class="itemize">Statement + </li> + <li class="itemize">Quotation + </li> + <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 +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’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 +one has a backup of the templates, especially if they have already been customized. + + +</p><!--l. 2205--><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> 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 +class="E">E</span>X</span></span> : +</p> + <ul class="itemize1"> + <li class="itemize">Invoice + </li> + <li class="itemize">AR Transaction + </li> + <li class="itemize">AP Transaction + </li> + <li class="itemize">Packing List + </li> + <li class="itemize">Pick List + </li> + <li class="itemize">Sales Order + </li> + <li class="itemize">Work Order + </li> + <li class="itemize">Purchase Order + </li> + <li class="itemize">Bin List + </li> + <li class="itemize">Statement + </li> + <li class="itemize">Check + </li> + <li class="itemize">Receipt + </li> + <li class="itemize">Quotation + </li> + <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 +class="E">E</span>X</span></span> 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 +class="E">E</span>X</span></span> 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> implementation such as LY X. + + +</p><!--l. 2235--><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> ?</h5> +<!--l. 2237--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> (pronounced LAY-tech) is an extension on the <span class="TEX">T<span +class="E">E</span>X</span> 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 +class="E">E</span>X</span> engine do the heavy +lifting in terms of determining the optimal formatting for the page. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> 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 +class="E">E</span>X</span></span> 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> 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 +class="E">E</span>X</span></span> 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 +class="E">E</span>X</span></span>. +</p><!--l. 2259--><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> 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 +class="E">E</span>X</span></span> 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 +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> implementations, it is open source and is included with most Linux +distributions. +</p><!--l. 2267--><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 +class="E">E</span>X</span></span> 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’s for +PDF’s, though GIF’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> document resides in the users +directory. +</p><!--l. 2276--><p class="indent"> HTML documents can have logos in many different formats. PNG’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 +by it. +</p><!--l. 2284--><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 +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> respectively). +</p><!--l. 2293--><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> + <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 +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 +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> + <h3 class="sectionHead"><span class="titlemark">16 </span> <a + id="x1-16700016"></a>An Introduction to the CLI</h3> +<!--l. 2314--><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"> +</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 +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&path=bin&password=xxxxx&action=search&db=customer" +</p><!--l. 2334--><p class="indent"> The cd command moves your terminal session’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 (&). 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&path=bin&password=lOis,lAn3&action=search&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 +result isn’t useful in itself, but it shows we are on the right track. +</p><!--l. 2351--><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 +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 +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> + <table +class="verbatim"><tr class="verbatim"><td +class="verbatim"><div class="verbatim"> +<body> + <br /> + <br /><form method=post action=ct.pl> + <br /> + <br /><input type=hidden name=db value=customer> + <br /> + <br /><table width=100%> + <br />  <tr> + <br />    <th class=listtop>Search</th> + <br />. + <br />. + <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 +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> + <h5 class="subsubsectionHead"><span class="titlemark">16.3.1 </span> <a + id="x1-17100016.3.1"></a>Script 1 (Bash)</h5> + + + <table +class="verbatim"><tr class="verbatim"><td +class="verbatim"><div class="verbatim"> +#!/bin/bash + <br />####################################################################### + <br /># + <br /># lsmb01-cli-example.sh + <br /># Copyright (C) 2006. Louis B. Moore + <br /># + <br /># $Id: $ + <br /># + <br /># This program is free software; you can redistribute it and/or modify + <br /># it under the terms of the GNU General Public License as published by + <br /># the Free Software Foundation; either version 2 of the License, or + <br /># (at your option) any later version. + <br /># + <br /># This program is distributed in the hope that it will be useful, + <br /># but WITHOUT ANY WARRANTY; without even the implied warranty of + <br /># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + <br /># GNU General Public License for more details. + <br /># You should have received a copy of the GNU General Public License + <br /># along with this program; if not, write to the Free Software + <br /># Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + <br /># + <br />####################################################################### + <br /> + <br />NOW=‘pwd‘ + <br /> + <br />echo -n ~Ledger-SMB login: ~ + <br />read LSLOGIN + <br />echo + <br /> + <br />echo -n ~Ledger-SMB password: ~ + <br />stty -echo + <br />read LSPWD + <br />stty echo + <br />echo + <br /> + <br />ARG=~login=${LSLOGIN}&password=${LSPWD}&path=bin&action=search&db=customer~ + <br /> + <br />LGIN=~login=${LSLOGIN}&password=${LSPWD}&path=bin&action=login~ + <br />LGOT=~login=${LSLOGIN}&password=${LSPWD}&path=bin&action=logout~ + <br /> + <br />cd /usr/local/ledger-smb + <br /> + <br />./login.pl $LGIN 2>&1  > /dev/null + <br />./ct.pl $ARG + <br />./login.pl $LGOT 2>&1  > /dev/null + <br /> + <br />cd $NOW + <br /> + + + <br />exit 0 +</div> +</td></tr></table> +<!--l. 2451--><p class="nopar"> +</p><!--l. 2454--><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 +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 +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 +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 +exits. +</p><!--l. 2478--><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> + + + <table +class="verbatim"><tr class="verbatim"><td +class="verbatim"><div class="verbatim"> +#!/usr/bin/perl -w + <br /># + <br />#  File:         lsmb02-cli-example.pl + <br />#  Environment:  Ledger-SMB 1.2.0+ + <br />#  Author:       Louis B. Moore + <br /># + <br />#  Copyright (C)   2006  Louis B. Moore + <br /># + <br />#  This program is free software; you can redistribute it and/or + <br />#  modify it under the terms of the GNU General Public License + <br />#  as published by the Free Software Foundation; either version 2 + <br />#  of the License, or (at your option) any later version. + <br /># + <br />#  This program is distributed in the hope that it will be useful, + <br />#  but WITHOUT ANY WARRANTY; without even the implied warranty of + <br />#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + <br />#  GNU General Public License for more details. + <br /># + <br />#  You should have received a copy of the GNU General Public License + <br />#  along with this program; if not, write to the Free Software + <br />#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. + <br /># + <br />#  Revision: + <br />#       $Id$ + <br /># + <br /># + <br /> + <br />use File::chdir; + <br />use HTML::Entities; + <br /> + <br /> + <br />print ~\n\nLedger-SMB login: ~; + <br />my $login = <STDIN>; + <br />chomp($login); + <br /> + <br /> + <br />print ~\nLedger-SMB password: ~; + <br />system(~stty -echo~); + <br />my $pwd = <STDIN>; + <br />system(~stty echo~); + <br />chomp($pwd); + <br />print ~\n\n~; + <br /> + <br />$cmd = ~login=~ . $login . ’&password=’ . $pwd . ’&path=bin&action=login’; + <br /> + <br />$signin = runLScmd(~./login.pl~,$cmd); + <br /> + <br />if ( $signin =~ m/Error:/ ) { + + + <br /> + <br />print ~\nLogin error\n~; + <br />exit; + <br /> + <br />} + <br /> + <br /> + <br />while (<main::DATA>) { + <br /> + <br />chomp; + <br />@rec = split(/\|/); + <br /> + <br />$arg = ’path=bin/mozilla&login=’ . $login . ’&password=’ . $pwd . + <br />’&action=’       . escape(substr($rec[0],0,35)) . + <br />’&db=’           . $rec[1] . + <br />’&name=’         . escape(substr($rec[2],0,35)) . + <br />’&vendornumber=’ . $rec[3] . + <br />’&address1=’     . escape(substr($rec[4],0,35)) . + <br />’&address2=’     . escape(substr($rec[5],0,35)) . + <br />’&city=’         . escape(substr($rec[6],0,35)) . + <br />’&state=’        . escape(substr($rec[7],0,35)) . + <br />’&zipcode=’      . escape(substr($rec[8],0,35)) . + <br />’&country=’      . escape(substr($rec[9],0,35)) . + <br />’&phone=’        . escape(substr($rec[10],0,20)) . + <br />’&tax_2150=1’ . + <br />’&taxaccounts=2150’ . + <br />’&taxincluded=0’ . + <br />’&terms=0’; + <br /> + <br />$rc=runLScmd(~./ct.pl~,$arg); + <br /> + <br />if ($rc =~ m/Vendor saved!/) { + <br /> + <br />print ~$rec[2] SAVED\n~; + <br /> + <br />} else { + <br /> + <br />print ~$rec[2] ERROR\n~; + <br /> + <br />} + <br /> + <br />} + <br /> + <br /> + <br />$cmd = ~login=~ . $login . ’&password=’ . $pwd . ’&path=bin&action=logout’; + <br /> + <br />$signin = runLScmd(~./login.pl~,$cmd); + <br /> + <br />if ( $signin =~ m/Error:/ ) { + <br /> + <br />    print ~\nLogout error\n~; + <br /> + + + <br />} + <br /> + <br />exit; + <br /> + <br /> + <br />#******************************************************* + <br /># Subroutines + <br />#******************************************************* + <br /> + <br /> + <br />sub runLScmd { + <br /> + <br />    my $cmd  = shift; + <br />    my $args = shift; + <br />    my $i    = 0; + <br />    my $results; + <br /> + <br />    local $CWD = ~/usr/local/ledger-smb/~; + <br /> + <br />    $cmd = $cmd . ~ \~~ . $args . ~\~~; + <br /> + <br />    $results = ‘$cmd 2>&1‘; + <br /> + <br />    return $results; + <br /> + <br />} + <br /> + <br />sub escape { + <br /> + <br />    my $str = shift; + <br /> + <br />    if ($str) { + <br /> + <br />decode_entities($str); + <br />$str =~ s/([^a-zA-Z0-9_.-])/sprintf(~%%%02x~, ord($1))/ge; + <br />    } + <br /> + <br />    return $str; + <br /> + <br />} + <br /> + <br /> + <br />#******************************************************* + <br /># Record Format + <br />#******************************************************* + <br /># + <br /># action | db | name | vendornumber | address1 | address2 | city | state | zipcode | country | phone + <br /># + <br /> + <br />__END__ + <br />save|vendor|Parts are Us|1377|238 Riverview|Suite 11|Cheese Head|WI|56743|USA|555-123-3322| + <br />save|vendor|Widget Heaven|1378|41 S. Riparian Way||Show Me|MO|39793|USA|555-231-3309| + + + <br />save|vendor|Consolidated Spackle|1379|1010 Binary Lane|Dept 1101|Beverly Hills|CA|90210|USA|555-330-7639 x772| + <br /> + <br /> +</div> +</td></tr></table> +<!--l. 2635--><p class="nopar"> + + +</p> + <h1 class="partHead"><span class="titlemark">Part II<br /></span><a + 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. +The code is well partitioned, and the main operation modules are written in an object oriented +way. +</p><!--l. 2651--><p class="noindent"> +</p> + <h4 class="subsectionHead"><span class="titlemark">17.1 </span> <a + id="x1-17600017.1"></a>The Software Stack</h4> + <hr class="figure" /><div class="figure" +><table class="figure"><tr class="figure"><td class="figure" +> + + +<a + id="x1-1760018"></a> + + +<!--l. 9--><p class="center"> <img +src="LedgerSMB-manual6x.png" alt="PICT" /> +<br /></p><table class="caption" +><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure 8: </td><td +class="content">The Ledger-SMB software stack in a Typical Implementation</td></tr></table><!--tex4ht:label?: x1-1760018 --> + + + </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 +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 +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’s. +</p><!--l. 2674--><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 +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’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 +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 +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> + <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 +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 +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 +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 +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> + <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 +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 +row. +</p><!--l. 2748--><p class="indent"> A second problem occurs in that each transaction is given a transaction id. These id’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 +transaction ID gets too close to a wraparound. So while the problem is not as serious in 8.1, the +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 +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 +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> + <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 +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 +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 +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 +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> + <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 +code is well written and compartmentalized. This section covers the basic possibilities involving +customization. +</p><!--l. 2807--><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 +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 +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 +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 +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 +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. +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> + <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, +etc. +</p><!--l. 2850--><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, +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 +(based on the POS sales template) to do this. + + +</p><!--l. 2865--><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 +easily. +</p><!--l. 2871--><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 +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 +track all the printed documents associated with an order or invoice. +</p><!--l. 2884--><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 +interface scripts. Most templates are easy enough to modify. +</p><!--l. 2891--><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 +Javascript in them to automatically print them on load. +</p><!--l. 2898--><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 +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> + <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 +allows one to go back and look up the invoices involved. + + +</p><!--l. 2913--><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 +challenges, but in the end, one can integrate a large number of tools. +</p><!--l. 2920--><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 +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> + <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 +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> + <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 +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> + <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 ’id’ 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 +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> + <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 +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 +applications in real-time. This can avoid the main issue of duplicate id’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. +This can be cleaner regarding update issues, but it can also pose issues regarding duplicate id +fields. +</p><!--l. 2985--><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’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> + <h4 class="subsectionHead"><span class="titlemark">19.3 </span> <a + id="x1-19800019.3"></a>Line of Business Tools on other RDBMS’s</h4> +<!--l. 2995--><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> + <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 +(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– 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 +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. +This must go both ways. +</p><!--l. 3023--><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 +DBI-Link. This package requires PL/Perl to be installed in PostgreSQL, and it allows PostgreSQL to present +any data accessible via Perl’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> + <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 +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> + <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 +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 +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 +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> + <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 +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 <?lsmb and ?>. The actual parsing is done by the +parse_template function in LSMB/Form.pm. +</p><!--l. 3080--><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 +class="E">E</span>X</span></span> templates is <?lsmb pagebreak num1 num2 num3 ?> +</p> + + + <ul class="itemize1"> + <li class="itemize">num1 represents characters per line + </li> + <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 <?lsmb end pagebreak ?>. Any text within the pagebreak block is ignored +by the template. +</p><!--l. 3094--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">20.2.2 </span> <a + id="x1-20500020.2.2"></a>Conditionals</h5> + <ul class="itemize1"> + <li class="itemize"><?lsmb if not varname ?>tells the parser to include the next block only if varname was posted + by the submitting form (or set via the form hash elsewhere in the scripts). The block ends with + <?lsmb end varname ?> + </li> + <li class="itemize"><?lsmb if varname ?>tells the parser to include the block if varname was posted in the + submitting form (or set via the form hash elsewhere in the scripts). The block ends with <?lsmb + end varname ?> + </li> + <li class="itemize">Lines conditionals are otherwise ignored by the parser. + </li> + <li class="itemize">Conditionals cannot be nested, but IF’s can be nested inside loops.</li></ul> +<!--l. 3109--><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"><?lsmb foreach varname ?>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 <?lsmb end varname ?> +</p><!--l. 3117--><p class="noindent"> +</p> + <h5 class="subsubsectionHead"><span class="titlemark">20.2.4 </span> <a + id="x1-20700020.2.4"></a>File Inclusion</h5> + <ul class="itemize1"> + <li class="itemize">Files may be included with the syntax <?lsmb + include template_name ?>where templatename is the name of the template within the current + template directory (usually templates/$username/). Note that for <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> templates, the input + or include functionalities might be better suited for many many things. + + + </li> + <li class="itemize">Cannot be used with conditionals + </li> + <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"> +</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 +class="E">E</span>X</span></span> cross-references require two passes with latex to resolve. This is because the type is set page by +page and the program really doesn’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 +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> 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 +class="E">E</span>X</span></span> 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 –interaction=nonstopmode $self-><span +class="cmsy-10">{ </span>tmpfile<span +class="cmsy-10">}</span> > $ self-><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> + <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: +</p> + <ul class="itemize1"> + <li class="itemize"><?lsmb varname options ?>Options are one or more (whitespace separated) of: + <ul class="itemize2"> + <li class="itemize">align=left/right/center + </li> + <li class="itemize">width=chars where chars is the width in characters before wrapping + </li> + <li class="itemize">offset=chars where chars is the number of spaces to (depending on alignment).</li></ul> + </li></ul> + + +<!--l. 3175--><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, +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 +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-><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->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 +one might go about doing this. +</p><!--l. 3200--><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 +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’s is on the Developmers’ 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 +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> + <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->dbconnect(%myconfig) method +commits each individual statement as its own transaction. The $form->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> + <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 +<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&title=Louis%20B.%20Moore</a></span>. + + +</p> + <h1 class="partHead"><span class="titlemark">Part III<br /></span><a + 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 +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 +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> + <h3 class="sectionHead"><span class="titlemark">B </span> <a + id="x1-216000B"></a>Quick Tips</h3> +<!--l. 3260--><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 +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 +commentary (or instructions for the shipping crew). +</p><!--l. 3272--><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’s check bounces or a collection requirement is made, one can flag the customer’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 +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> + <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"> +</p> + <h4 class="subsectionHead"><span class="titlemark">C.1 </span> <a + id="x1-220000C.1"></a>Common Installation Errors</h4> + + + <ul class="itemize1"> + <li class="itemize">Ledger-SMB is generally best installed in its own directory outside of the wwwroot directory. + While it is possible to install it inside the wwwroot directory, the instructions and the faq don’t + cover the common problems here. + </li> + <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"> +</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 +store. +</p><!--l. 3306--><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"> + </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> + </li> + <li class="enumerate"><a + id="x1-221008x3"></a>Define Goods, Labor, and Services as raw parts ordered from the vendors. + <ul class="itemize1"> + <li class="itemize">These are located under the goods and services menu node.</li></ul> + </li> + <li class="enumerate"><a + id="x1-221010x4"></a>Define assemblies. + <ul class="itemize1"> + <li class="itemize">These are also located under goods and services. + </li> + <li class="itemize">Component goods and services must be defined prior to creating assembly.</li></ul> + </li> + <li class="enumerate"><a + id="x1-221012x5"></a>Enter an AP Invoice to populate inventory with proper raw materials. + <ul class="itemize1"> + <li class="itemize">One must generally add a generic vendor first. The vendor is added under + AP->Vendors->Add Vendor.</li></ul> + + + </li> + <li class="enumerate"><a + id="x1-221014x6"></a>To pay an AP invoice like a check, go to cash-<span +class="cmmi-10">></span>payment. Fill out approrpiate fields and click + print. + <ul class="itemize1"> + <li class="itemize">Note that one should select an invoice and enter in the payment amount in the appropriate + line of the invoice list. If you add amounts to the master amount list, you will find that + they are added to the amount paid on the invoice as a prepayment. + </li> + <li class="itemize">The source field is the check number.</li></ul> + </li> + <li class="enumerate"><a + id="x1-221016x7"></a>Stock assemblies + </li> + <li class="enumerate"><a + id="x1-221018x8"></a>One can use AR Invoices or the POS interface to sell goods and services. + <ul class="itemize1"> + <li class="itemize">Sales Invoice + <ul class="itemize2"> + <li class="itemize">Can be generated from orders or quotations + </li> + <li class="itemize">Cannot include labor/overhead except as part of an assembly + </li> + <li class="itemize">One can make the mistake of printing the invoice and forgetting to post it. In this event, + the invoice does not officially exist in the accounting system. + </li> + <li class="itemize">For new customers, you must add the customer first (under AR->Customers->Add + Customer.</li></ul> + </li> + <li class="itemize">POS Interface + <ul class="itemize2"> + <li class="itemize">Cannot include labor/overhead except as part of an assembly + </li> + <li class="itemize">Printing without posting is often even easier in the POS because of the rapid workflow. + Yet it is just as severe a problem.</li></ul> + </li> + <li class="itemize">Ecommerce and Mail Order Operations + <ul class="itemize2"> + <li class="itemize">See the shipping workflow documentation above.</li></ul> + </li> + <li class="itemize">Customers are set up by going to AR->Customers->Add Customer (or the equivalent localized + translation). The appropriate fields are filled out and the buttons are used at the bottom to save the + record and optionally use it to create an invoice, etc. + + + <ul class="itemize2"> + <li class="itemize">Saving a customer returns to the customer screen. After the appropriate invoice, + transaction, etc. is entered and posted, Ledger-SMB will return to the add customer + screen.</li></ul> + </li></ul> + </li> + <li class="enumerate"><a + id="x1-221020x9"></a>One can use the requirements report to help determine what parts need to be ordered though one + cannot generate PO’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 +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 +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->Reports->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> + <h3 class="sectionHead"><span class="titlemark">D </span> <a + id="x1-222000D"></a>Glossary</h3> +<!--l. 3398--><p class="noindent"> + </p><dl class="description"><dt class="description"> +<span +class="pplb8t-">BIC</span> </dt><dd +class="description">Bank Identifier Code is often the same as the S.W.I.F.T. code. This is a code for the bank a + customer uses for automated money transfers. + </dd><dt class="description"> +<span +class="pplb8t-">COGS</span> </dt><dd +class="description">is Cost of Goods Sold. When an item is sold, then the expense of its purchase is accrued as + attached to the income of the sale. It is tracked as COGS. + </dd><dt class="description"> +<span +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"> + </p><dl class="description"><dt class="description"> + <span +class="pplb8t-">Equity</span> </dt><dd +class="description">: Credits are added to the account when money is invested in the business. + </dd><dt class="description"> + <span +class="pplb8t-">Asset</span> </dt><dd +class="description">: Credits are added when money is deducted from an asset account. + </dd><dt class="description"> + <span +class="pplb8t-">Liability</span> </dt><dd +class="description">: Credits are added when money is owed to the business account. + </dd><dt class="description"> + <span +class="pplb8t-">Income</span> </dt><dd +class="description">: Credits are added when income is earned. + </dd><dt class="description"> + <span +class="pplb8t-">Expense</span> </dt><dd +class="description">: Credits are used to apply adjustments at the end of accounting periods to indicate + that not all the expense for an AP transaction has been fully accrued.</dd></dl> + + + </dd><dt class="description"> +<span +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"> + </p><dl class="description"><dt class="description"> + <span +class="pplb8t-">Equity</span> </dt><dd +class="description">: Debits are added when money is paid to business owners. + </dd><dt class="description"> + <span +class="pplb8t-">Asset</span> </dt><dd +class="description">: Debits are added when money is added to an account. + </dd><dt class="description"> + <span +class="pplb8t-">Liability</span> </dt><dd +class="description">: Debits are added when money that is owed is paid off. + </dd><dt class="description"> + <span +class="pplb8t-">Income</span> </dt><dd +class="description">: Debits are used to temporarily adjust income to defer unearned income to the next + accounting period. + </dd><dt class="description"> + <span +class="pplb8t-">Expense</span> </dt><dd +class="description">: Debits are added as expenses are incurred.</dd></dl> + </dd><dt class="description"> +<span +class="pplb8t-">IBAN</span> </dt><dd +class="description">International Bank Account Number is related to the BIC and is used for cross-border automated + money transfers. + </dd><dt class="description"> +<span +class="pplb8t-">List</span> </dt><dd +class="description">Price is the recommended retail price. + </dd><dt class="description"> +<span +class="pplb8t-">Markup</span> </dt><dd +class="description">is the percentage increase that is applied to the last cost to get the sell price. + </dd><dt class="description"> +<span +class="pplb8t-">ROP</span> </dt><dd +class="description">Re-order point. Items with fewer in stock than this will show up on short reports. + </dd><dt class="description"> +<span +class="pplb8t-">Sell</span> </dt><dd +class="description">Price is the price at which the item is sold. + </dd><dt class="description"> +<span +class="pplb8t-">SKU</span> </dt><dd +class="description">Stock Keeping Unit: a number designating a specific product. + </dd><dt class="description"> +<span +class="pplb8t-">Source</span> </dt><dd +class="description">Document : a paper document that can be used as evidence that a transaction occurred. + Source documents can include canceled checks, receipts, credit card statements and the + like. + </dd><dt class="description"> +<span +class="pplb8t-">Terms</span> </dt><dd +class="description">is the number of days one has to pay the invoice. Most businesses abbreviate the terms as Net n + where n is the number of days. For example, Net 30 means the customer has 30 days to pay the net + due on an invoice before it is late and incurs late fees. Sometimes you will see 2 10 net 30 + or similar. This means 2% discount if paid within 10 days but due within 30 days in any + case.</dd></dl> +<!--l. 1--><p class="noindent"> +</p> + <h3 class="sectionHead"><span class="titlemark">E </span> <a + id="x1-223000E"></a>GNU Free Documentation License</h3> + + +<div class="center" +> +<!--l. 5--><p class="noindent"> +</p><!--l. 7--><p class="noindent">Version 1.2, November 2002 +</p><!--l. 10--><p class="noindent">Copyright <span +class="cmsy-10">©</span>2000,2001,2002 Free Software Foundation, Inc. +</p><!--l. 14--><p class="noindent">51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +</p><!--l. 18--><p class="noindent">Everyone is permitted to copy and distribute verbatim copies of this license document, but changing +it is not allowed.</p></div> +<div class="center" +> +<!--l. 23--><p class="noindent"> +</p><!--l. 24--><p class="noindent"><span +class="pplb8t-x-x-120">Preamble</span></p></div> +<!--l. 27--><p class="noindent">The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in +the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and +publisher a way to get credit for their work, while not being considered responsible for modifications made +by others. +</p><!--l. 35--><p class="indent"> This License is a kind of "copyleft", which means that derivative works of the document must themselves +be free in the same sense. It complements the GNU General Public License, which is a copyleft license +designed for free software. +</p><!--l. 40--><p class="indent"> We have designed this License in order to use it for manuals for free software, because free +software needs free documentation: a free program should come with manuals providing the +same freedoms that the software does. But this License is not limited to software manuals; it +can be used for any textual work, regardless of subject matter or whether it is published as a +printed book. We recommend this License principally for works whose purpose is instruction or +reference. +</p> +<div class="center" +> +<!--l. 49--><p class="noindent"> +</p><!--l. 50--><p class="noindent"><span +class="pplb8t-x-x-144">1. APPLICABILITY AND DEFINITIONS</span> <a + id="Q1-1-232"></a></p></div> +<!--l. 54--><p class="indent"> This License applies to any manual or other work, in any medium, that contains a notice placed by the +copyright holder saying it can be distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. +The <span +class="pplb8t-">"Document"</span>, below, refers to any such manual or work. Any member of the public is a licensee, and is +addressed as <span +class="pplb8t-">"you"</span>. You accept the license if you copy, modify or distribute the work in a way requiring +permission under copyright law. +</p><!--l. 64--><p class="indent"> A <span +class="pplb8t-">"Modified Version" </span>of the Document means any work containing the Document or a portion of it, +either copied verbatim, or with modifications and/or translated into another language. +</p><!--l. 68--><p class="indent"> A <span +class="pplb8t-">"Secondary Section" </span>is a named appendix or a front-matter section of the Document that deals +exclusively with the relationship of the publishers or authors of the Document to the Document’s overall +subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, +if the Document is in part a textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical connection with the subject or with +related matters, or of legal, commercial, philosophical, ethical or political position regarding +them. + + +</p><!--l. 79--><p class="indent"> The <span +class="pplb8t-">"Invariant Sections" </span>are certain Secondary Sections whose titles are designated, as being those of +Invariant Sections, in the notice that says that the Document is released under this License. If a section does +not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document +may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are +none. +</p><!--l. 87--><p class="indent"> The <span +class="pplb8t-">"Cover Texts" </span>are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover +Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at +most 5 words, and a Back-Cover Text may be at most 25 words. +</p><!--l. 92--><p class="indent"> A <span +class="pplb8t-">"Transparent" </span>copy of the Document means a machine-readable copy, represented in a format whose +specification is available to the general public, that is suitable for revising the document straightforwardly +with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) +some widely available drawing editor, and that is suitable for input to text formatters or for +automatic translation to a variety of formats suitable for input to text formatters. A copy made in an +otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. An image format is not +Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called +<span +class="pplb8t-">"Opaque"</span>. +</p><!--l. 105--><p class="indent"> Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input +format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include +PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally +available, and the machine-generated HTML, PostScript or PDF produced by some word processors for +output purposes only. +</p><!--l. 116--><p class="indent"> The <span +class="pplb8t-">"Title Page" </span>means, for a printed book, the title page itself, plus such following pages as +are needed to hold, legibly, the material this License requires to appear in the title page. For +works in formats which do not have any title page as such, "Title Page" means the text near +the most prominent appearance of the work’s title, preceding the beginning of the body of the +text. +</p><!--l. 123--><p class="indent"> A section <span +class="pplb8t-">"Entitled XYZ" </span>means a named subunit of the Document whose title either is precisely XYZ or +contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as <span +class="pplb8t-">"Acknowledgements"</span>, <span +class="pplb8t-">"Dedications"</span>, <span +class="pplb8t-">"Endorsements"</span>, or +<span +class="pplb8t-">"History"</span>.) To <span +class="pplb8t-">"Preserve the Title" </span>of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. +</p><!--l. 132--><p class="indent"> The Document may include Warranty Disclaimers next to the notice which states that this License applies +to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but +only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is +void and has no effect on the meaning of this License. +</p> +<div class="center" +> +<!--l. 140--><p class="noindent"> +</p><!--l. 141--><p class="noindent"><span +class="pplb8t-x-x-144">2. VERBATIM COPYING</span> <a + id="Q1-1-233"></a></p></div> +<!--l. 145--><p class="indent"> You may copy and distribute the Document in any medium, either commercially or noncommercially, +provided that this License, the copyright notices, and the license notice saying this License applies to the +Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this +License. You may not use technical measures to obstruct or control the reading or further copying of the +copies you make or distribute. However, you may accept compensation in exchange for copies. If +you distribute a large enough number of copies you must also follow the conditions in section +3. + + +</p><!--l. 155--><p class="indent"> You may also lend copies, under the same conditions stated above, and you may publicly display +copies. +</p> +<div class="center" +> +<!--l. 159--><p class="noindent"> +</p><!--l. 160--><p class="noindent"><span +class="pplb8t-x-x-144">3. COPYING IN QUANTITY</span> <a + id="Q1-1-234"></a></p></div> +<!--l. 165--><p class="indent"> If you publish printed copies (or copies in media that commonly have printed covers) of the Document, +numbering more than 100, and the Document’s license notice requires Cover Texts, you must +enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts +on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and +legibly identify you as the publisher of these copies. The front cover must present the full title +with all words of the title equally prominent and visible. You may add other material on the +covers in addition. Copying with changes limited to the covers, as long as they preserve the +title of the Document and satisfy these conditions, can be treated as verbatim copying in other +respects. +</p><!--l. 178--><p class="indent"> If the required texts for either cover are too voluminous to fit legibly, you should put the first +ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent +pages. +</p><!--l. 183--><p class="indent"> If you publish or distribute Opaque copies of the Document numbering more than 100, you must either +include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque +copy a computer-network location from which the general network-using public has access to +download using public-standard network protocols a complete Transparent copy of the Document, +free of added material. If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy +will remain thus accessible at the stated location until at least one year after the last time you +distribute an Opaque copy (directly or through your agents or retailers) of that edition to the +public. +</p><!--l. 196--><p class="indent"> It is requested, but not required, that you contact the authors of the Document well before redistributing +any large number of copies, to give them a chance to provide you with an updated version of the +Document. +</p> +<div class="center" +> +<!--l. 201--><p class="noindent"> +</p><!--l. 202--><p class="noindent"><span +class="pplb8t-x-x-144">4. MODIFICATIONS</span> <a + id="Q1-1-235"></a></p></div> +<!--l. 206--><p class="indent"> You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and +3 above, provided that you release the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution and modification of the Modified +Version to whoever possesses a copy of it. In addition, you must do these things in the Modified +Version: +</p> + <ul class="itemize1"> + <li class="itemize">Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and + from those of previous versions (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version if the original publisher of + that version gives permission. + + + </li> + <li class="itemize">List on the Title Page, as authors, one or more persons or entities responsible for authorship of + the modifications in the Modified Version, together with at least five of the principal authors of + the Document (all of its principal authors, if it has fewer than five), unless they release you from + this requirement. + </li> + <li class="itemize">State on the Title page the name of the publisher of the Modified Version, as the publisher. + </li> + <li class="itemize">Preserve all the copyright notices of the Document. + </li> + <li class="itemize">Add an appropriate copyright notice for your modifications adjacent to the other copyright + notices. + </li> + <li class="itemize">Include, immediately after the copyright notices, a license notice giving the public permission to + use the Modified Version under the terms of this License, in the form shown in the Addendum + below. + </li> + <li class="itemize">Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given + in the Document’s license notice. + </li> + <li class="itemize">Include an unaltered copy of this License. + </li> + <li class="itemize">Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the + title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there + is no section Entitled "History" in the Document, create one stating the title, year, authors, and + publisher of the Document as given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. + </li> + <li class="itemize">Preserve the network location, if any, given in the Document for public access to a Transparent + copy of the Document, and likewise the network locations given in the Document for previous + versions it was based on. These may be placed in the "History" section. You may omit a network + location for a work that was published at least four years before the Document itself, or if the + original publisher of the version it refers to gives permission. + </li> + <li class="itemize">For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the + section, and preserve in the section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + </li> + <li class="itemize">Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. + Section numbers or the equivalent are not considered part of the section titles. + </li> + <li class="itemize">Delete any section Entitled "Endorsements". Such a section may not be included in the Modified + Version. + + + </li> + <li class="itemize">Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any + Invariant Section. + </li> + <li class="itemize">Preserve any Warranty Disclaimers.</li></ul> +<!--l. 292--><p class="indent"> If the Modified Version includes new front-matter sections or appendices that qualify as Secondary +Sections and contain no material copied from the Document, you may at your option designate some +or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections +in the Modified Version’s license notice. These titles must be distinct from any other section +titles. +</p><!--l. 299--><p class="indent"> You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your +Modified Version by various parties–for example, statements of peer review or that the text has been +approved by an organization as the authoritative definition of a standard. +</p><!--l. 305--><p class="indent"> You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a +Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one +entity. If the Document already includes a cover text for the same cover, previously added by you or by +arrangement made by the same entity you are acting on behalf of, you may not add another; but you +may replace the old one, on explicit permission from the previous publisher that added the old +one. +</p><!--l. 315--><p class="indent"> The author(s) and publisher(s) of the Document do not by this License give permission to use their names +for publicity for or to assert or imply endorsement of any Modified Version. +</p> +<div class="center" +> +<!--l. 320--><p class="noindent"> +</p><!--l. 321--><p class="noindent"><span +class="pplb8t-x-x-144">5. COMBINING DOCUMENTS</span> <a + id="Q1-1-236"></a></p></div> +<!--l. 326--><p class="indent"> You may combine the Document with other documents released under this License, under the terms +defined in section 4 above for modified versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and list them all as Invariant +Sections of your combined work in its license notice, and that you preserve all their Warranty +Disclaimers. +</p><!--l. 333--><p class="indent"> The combined work need only contain one copy of this License, and multiple identical Invariant Sections +may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different +contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the +original author or publisher of that section if known, or else a unique number. Make the same +adjustment to the section titles in the list of Invariant Sections in the license notice of the combined +work. +</p><!--l. 342--><p class="indent"> In the combination, you must combine any sections Entitled "History" in the various original documents, +forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and +any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements". +</p> +<div class="center" +> +<!--l. 348--><p class="noindent"> +</p><!--l. 349--><p class="noindent"><span +class="pplb8t-x-x-144">6. COLLECTIONS OF DOCUMENTS</span> <a + id="Q1-1-237"></a></p></div> + + +<!--l. 353--><p class="indent"> You may make a collection consisting of the Document and other documents released under this License, +and replace the individual copies of this License in the various documents with a single copy that is included +in the collection, provided that you follow the rules of this License for verbatim copying of each of the +documents in all other respects. +</p><!--l. 359--><p class="indent"> You may extract a single document from such a collection, and distribute it individually under this +License, provided you insert a copy of this License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. +</p> +<div class="center" +> +<!--l. 365--><p class="noindent"> +</p><!--l. 366--><p class="noindent"><span +class="pplb8t-x-x-144">7. AGGREGATION WITH INDEPENDENT WORKS</span> <a + id="Q1-1-238"></a></p></div> +<!--l. 371--><p class="indent"> A compilation of the Document or its derivatives with other separate and independent documents or +works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the +individual works permit. When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves derivative works of the +Document. +</p><!--l. 380--><p class="indent"> If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the +Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers +that bracket the Document within the aggregate, or the electronic equivalent of covers if the +Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole +aggregate. +</p> +<div class="center" +> +<!--l. 389--><p class="noindent"> +</p><!--l. 390--><p class="noindent"><span +class="pplb8t-x-x-144">8. TRANSLATION</span> <a + id="Q1-1-239"></a></p></div> +<!--l. 395--><p class="indent"> Translation is considered a kind of modification, so you may distribute translations of the +Document under the terms of section 4. Replacing Invariant Sections with translations requires +special permission from their copyright holders, but you may include translations of some or +all Invariant Sections in addition to the original versions of these Invariant Sections. You may +include a translation of this License, and all the license notices in the Document, and any Warranty +Disclaimers, provided that you also include the original English version of this License and +the original versions of those notices and disclaimers. In case of a disagreement between the +translation and the original version of this License or a notice or disclaimer, the original version will +prevail. +</p><!--l. 408--><p class="indent"> If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the +requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual +title. +</p> +<div class="center" +> +<!--l. 414--><p class="noindent"> +</p><!--l. 415--><p class="noindent"><span +class="pplb8t-x-x-144">9. TERMINATION</span> <a + id="Q1-1-240"></a></p></div> + + +<!--l. 420--><p class="indent"> You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under +this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, parties who have received copies, or rights, +from you under this License will not have their licenses terminated so long as such parties remain in full +compliance. +</p> +<div class="center" +> +<!--l. 429--><p class="noindent"> +</p><!--l. 430--><p class="noindent"><span +class="pplb8t-x-x-144">10. FUTURE REVISIONS OF THIS LICENSE</span> <a + id="Q1-1-241"></a></p></div> +<!--l. 435--><p class="indent"> The Free Software Foundation may publish new, revised versions of the GNU Free Documentation +License from time to time. Such new versions will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See http://www.gnu.org/copyleft/. +</p><!--l. 441--><p class="indent"> Each version of the License is given a distinguishing version number. If the Document specifies that a +particular numbered version of this License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or of any later version that has been +published (not as a draft) by the Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not as a draft) by the Free Software +Foundation. +</p> +<div class="center" +> +<!--l. 451--><p class="noindent"> +</p><!--l. 452--><p class="noindent"><span +class="pplb8t-x-x-144">ADDENDUM: How to use this License for your documents</span> <a + id="Q1-1-242"></a></p></div> +<!--l. 456--><p class="indent"> To use this License in a document you have written, include a copy of the License in the document and +put the following copyright and license notices just after the title page: +</p><!--l. 461--><p class="indent"> + </p><div class="quote"> + <!--l. 462--><p class="noindent">Copyright <span +class="cmsy-10">©</span>YEAR YOUR NAME. 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 published by the Free Software Foundation; with no Invariant Sections, + no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License".</p></div> +<!--l. 472--><p class="indent"> If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line +with this: +</p><!--l. 476--><p class="indent"> + </p><div class="quote"> + <!--l. 477--><p class="noindent">with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being + LIST, and with the Back-Cover Texts being LIST.</p></div> + + +<!--l. 482--><p class="indent"> If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those +two alternatives to suit the situation. +</p><!--l. 486--><p class="indent"> If your document contains nontrivial examples of program code, we recommend releasing these +examples in parallel under your choice of free software license, such as the GNU General Public License, to +permit their use in free software. +</p> + +</body></html> + + + + diff --git a/doc/html_manual/LedgerSMB-manual0x.png b/doc/html_manual/LedgerSMB-manual0x.png Binary files differnew file mode 100644 index 00000000..5e64113b --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual0x.png diff --git a/doc/html_manual/LedgerSMB-manual1x.png b/doc/html_manual/LedgerSMB-manual1x.png Binary files differnew file mode 100644 index 00000000..60b3beba --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual1x.png diff --git a/doc/html_manual/LedgerSMB-manual2.html b/doc/html_manual/LedgerSMB-manual2.html new file mode 100644 index 00000000..878014e3 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual2.html @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<!-- xhtml --> +<meta name="src" content="LedgerSMB-manual.tex" /> +<meta name="date" content="2007-03-26 00:09: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 + 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 +class="pplr8t-x-x-80">however.</span></p></div> + +</body></html> diff --git a/doc/html_manual/LedgerSMB-manual2x.png b/doc/html_manual/LedgerSMB-manual2x.png Binary files differnew file mode 100644 index 00000000..ded6badb --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual2x.png diff --git a/doc/html_manual/LedgerSMB-manual3.html b/doc/html_manual/LedgerSMB-manual3.html new file mode 100644 index 00000000..6574ca04 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual3.html @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<!-- xhtml --> +<meta name="src" content="LedgerSMB-manual.tex" /> +<meta name="date" content="2007-03-26 00:09: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 + 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 +class="pplr8t-x-x-80">that is stored for reconciliation purposes.</span></p></div> + +</body></html> diff --git a/doc/html_manual/LedgerSMB-manual3x.png b/doc/html_manual/LedgerSMB-manual3x.png Binary files differnew file mode 100644 index 00000000..b5783962 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual3x.png diff --git a/doc/html_manual/LedgerSMB-manual4.html b/doc/html_manual/LedgerSMB-manual4.html new file mode 100644 index 00000000..eb08cc61 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual4.html @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="iso-8859-1" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd--> +<html xmlns="http://www.w3.org/1999/xhtml" +> +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" /> +<!-- xhtml --> +<meta name="src" content="LedgerSMB-manual.tex" /> +<meta name="date" content="2007-03-26 00:09: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 + 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 +class="pplr8t-x-x-80">transaction.</span></p></div> +</body></html> diff --git a/doc/html_manual/LedgerSMB-manual4x.png b/doc/html_manual/LedgerSMB-manual4x.png Binary files differnew file mode 100644 index 00000000..fb00f3a3 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual4x.png diff --git a/doc/html_manual/LedgerSMB-manual5x.png b/doc/html_manual/LedgerSMB-manual5x.png Binary files differnew file mode 100644 index 00000000..95cce81b --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual5x.png diff --git a/doc/html_manual/LedgerSMB-manual6x.png b/doc/html_manual/LedgerSMB-manual6x.png Binary files differnew file mode 100644 index 00000000..1dd3dea6 --- /dev/null +++ b/doc/html_manual/LedgerSMB-manual6x.png diff --git a/doc/manual/LedgerSMB-manual.aux b/doc/manual/LedgerSMB-manual.aux index 970ab311..3611cf7d 100644 --- a/doc/manual/LedgerSMB-manual.aux +++ b/doc/manual/LedgerSMB-manual.aux @@ -11,249 +11,10 @@ \global \let \hyper@last\relax \fi +\ifx\rEfLiNK\UnDef\gdef \rEfLiNK#1#2{#2}\fi \select@language{english} \@writefile{toc}{\select@language{english}} \@writefile{lof}{\select@language{english}} \@writefile{lot}{\select@language{english}} -\@writefile{toc}{\contentsline {part}{I\hspace {1em}Ledger-SMB and Business Processes}{7}{part.1}} -\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction to Ledger-SMB}{7}{section.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Why Ledger-SMB}{7}{subsection.1.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}Advantages of Ledger-SMB}{7}{subsubsection.1.1.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}Key Features}{7}{subsubsection.1.1.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Limitations of Ledger-SMB}{9}{subsection.1.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}System Requirements of Ledger-SMB}{9}{subsection.1.3}} -\@writefile{toc}{\contentsline {section}{\numberline {2}User Account and Database Administration Basics}{9}{section.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Companies and Datasets}{10}{subsection.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}How to Create a User}{10}{subsection.2.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Permissions}{10}{subsection.2.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}User Account Types}{10}{subsection.2.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Other Features}{10}{subsection.2.5}} -\@writefile{toc}{\contentsline {section}{\numberline {3}Chart of Accounts}{10}{section.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Introduction to Double Entry Bookkeeping}{11}{subsection.3.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}Business Entity}{11}{subsubsection.3.1.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.2}Double Entry}{11}{subsubsection.3.1.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.3}Accounts}{11}{subsubsection.3.1.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.4}Debits and Credits}{12}{subsubsection.3.1.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.5}Accrual}{12}{subsubsection.3.1.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.6}References}{12}{subsubsection.3.1.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}General Guidelines on Numbering Accounts}{13}{subsection.3.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Adding/Modifying Accounts}{13}{subsection.3.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Listing Account Balances and Transactions}{13}{subsection.3.4}} -\@writefile{toc}{\contentsline {section}{\numberline {4}Administration}{14}{section.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Taxes, Defaults, and Preferences}{14}{subsection.4.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Adding A Sales Tax Account}{14}{subsubsection.4.1.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.2}Setting a Sales Tax Amount}{14}{subsubsection.4.1.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.3}Default Account Setup}{14}{subsubsection.4.1.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.4}Currency Setup}{14}{subsubsection.4.1.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.5}Sequence Settings}{14}{subsubsection.4.1.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Audit Control}{15}{subsection.4.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Explaining transaction reversal}{15}{subsubsection.4.2.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Close books option}{15}{subsubsection.4.2.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Audit Trails}{15}{subsubsection.4.2.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Departments}{16}{subsection.4.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Cost v Profit Centers.}{16}{subsubsection.4.3.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Warehouses}{16}{subsection.4.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Languages}{16}{subsection.4.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}Types of Businesses}{16}{subsection.4.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}Misc.}{16}{subsection.4.7}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.1}GIFI}{16}{subsubsection.4.7.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.2}SIC}{16}{subsubsection.4.7.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.3}Overview of Template Editing}{17}{subsubsection.4.7.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.4}Year-end}{17}{subsubsection.4.7.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Options in the ledger-smb.conf}{17}{subsection.4.8}} -\@writefile{toc}{\contentsline {section}{\numberline {5}Goods and Services}{17}{section.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Basic Terms}{18}{subsection.5.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}The Price Matrix}{18}{subsection.5.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Pricegroups}{18}{subsection.5.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Groups}{18}{subsection.5.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.5}Labor/Overhead}{18}{subsection.5.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.6}Services}{18}{subsection.5.6}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.6.1}Shipping and Handling as a Service}{18}{subsubsection.5.6.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.7}Parts}{18}{subsection.5.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.8}Assemblies and Manufacturing}{19}{subsection.5.8}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.8.1}Stocking Assemblies}{19}{subsubsection.5.8.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.9}Reporting}{19}{subsection.5.9}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.1}All Items and Parts Reports}{19}{subsubsection.5.9.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.2}Requirements}{19}{subsubsection.5.9.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.3}Services and Labor}{19}{subsubsection.5.9.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.4}Assemblies}{19}{subsubsection.5.9.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.9.5}Groups and Pricegroups}{20}{subsubsection.5.9.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.10}Translations}{20}{subsection.5.10}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.11}How Cost of Goods Sold is tracked}{20}{subsection.5.11}} -\@writefile{toc}{\contentsline {section}{\numberline {6}AP}{20}{section.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Basic AP Concepts}{20}{subsection.6.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Vendors}{20}{subsection.6.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}AP Transactions}{20}{subsection.6.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}AP Invoices}{21}{subsection.6.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}Correcting an AP Invoice}{21}{subsubsection.6.4.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}Cash payment And Check Printing}{21}{subsection.6.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.1}Rapid Payment Entry Screen}{21}{subsubsection.6.5.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.6}Transaction/Invoice Reporting}{22}{subsection.6.6}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.6.1}Transactions Report}{22}{subsubsection.6.6.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.6.2}Outstanding Report}{22}{subsubsection.6.6.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.6.3}AP Aging Report}{22}{subsubsection.6.6.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.6.4}Tax Paid and Non-taxable Report}{22}{subsubsection.6.6.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {6.7}Vendor Reporting}{22}{subsection.6.7}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.1}Vendor Search}{22}{subsubsection.6.7.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.2}Vendor History}{22}{subsubsection.6.7.2}} -\@writefile{toc}{\contentsline {section}{\numberline {7}AR}{23}{section.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Customers}{23}{subsection.7.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.1}Customer Price Matrix}{23}{subsubsection.7.1.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}AR Transactions}{23}{subsection.7.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}AR Invoices}{23}{subsection.7.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Cash Receipt}{23}{subsection.7.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.4.1}Cash Receipts for multiple customers}{23}{subsubsection.7.4.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}AR Transaction Reporting}{23}{subsection.7.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.1}AR Transactions Report}{24}{subsubsection.7.5.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.2}AR Aging Report}{24}{subsubsection.7.5.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {7.6}Customer Reporting}{24}{subsection.7.6}} -\@writefile{toc}{\contentsline {section}{\numberline {8}Projects}{24}{section.8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Project Basics}{24}{subsection.8.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Timecards}{24}{subsection.8.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}Projects and Invoices}{24}{subsection.8.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Reporting}{24}{subsection.8.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.4.1}Timecard Reporting}{24}{subsubsection.8.4.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.4.2}Project Transaction Reporting}{24}{subsubsection.8.4.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.4.3}List of Projects}{25}{subsubsection.8.4.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {8.5}Possibilities for Using Projects}{25}{subsection.8.5}} -\@writefile{toc}{\contentsline {section}{\numberline {9}Quotations and Order Management}{25}{section.9}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Sales Orders}{25}{subsection.9.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Quotations}{25}{subsection.9.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}Shipping}{25}{subsection.9.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.4}AR Work Flow}{25}{subsection.9.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.4.1}Service Example}{25}{subsubsection.9.4.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Simple AR Service Invoice Workflow Example}}{26}{figure.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.4.2}Single Warehouse Example}{26}{subsubsection.9.4.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.4.3}Multiple Warehouse Example}{26}{subsubsection.9.4.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.5}Requests for Quotation (RFQ)}{26}{subsection.9.5}} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces AR Workflow with Shipping}}{27}{figure.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Complex AR Workflow with Shipping}}{28}{figure.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.6}Purchase Orders}{29}{subsection.9.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.7}Receiving}{29}{subsection.9.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.8}AP Work Flow}{29}{subsection.9.8}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.8.1}Bookkeeper entering the received items, order completed in full}{29}{subsubsection.9.8.1}} -\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Simple AP Workflow}}{29}{figure.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.8.2}Bookkeeper entering received items, order completed in part}{29}{subsubsection.9.8.2}} -\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces AP Workflow with Receiving}}{30}{figure.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.8.3}Receiving staff entering items}{31}{subsubsection.9.8.3}} -\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Complex AP Workflow}}{31}{figure.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.9}Generation and Consolidation}{31}{subsection.9.9}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.9.1}Generation}{31}{subsubsection.9.9.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.9.2}Consolidation}{32}{subsubsection.9.9.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.10}Reporting}{32}{subsection.9.10}} -\@writefile{toc}{\contentsline {subsection}{\numberline {9.11}Shipping Module: Transferring Inventory between Warehouses}{32}{subsection.9.11}} -\@writefile{toc}{\contentsline {section}{\numberline {10}HR}{32}{section.10}} -\@writefile{toc}{\contentsline {section}{\numberline {11}POS}{32}{section.11}} -\@writefile{toc}{\contentsline {subsection}{\numberline {11.1}Sales Screen}{32}{subsection.11.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {11.2}Possibilities for Data Entry}{32}{subsection.11.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {11.3}Hardware Support}{33}{subsection.11.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {11.4}Reports}{33}{subsection.11.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {11.4.1}Open Invoices}{33}{subsubsection.11.4.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {11.4.2}Receipts}{33}{subsubsection.11.4.2}} -\@writefile{toc}{\contentsline {section}{\numberline {12}General Ledger}{33}{section.12}} -\@writefile{toc}{\contentsline {subsection}{\numberline {12.1}GL Basics}{33}{subsection.12.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {12.1.1}Paper-based accounting systems and the GL}{33}{subsubsection.12.1.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {12.1.2}Double Entry Examples on Paper}{34}{subsubsection.12.1.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {12.1.3}The GL in Ledger-SMB}{34}{subsubsection.12.1.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {12.2}Cash Transfer}{34}{subsection.12.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {12.3}GL Transactions}{35}{subsection.12.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {12.4}Payroll as a GL transaction}{35}{subsection.12.4}} -\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Payroll as a GL Transaction (Purely fictitious numbers)}}{35}{figure.7}} -\@writefile{toc}{\contentsline {subsection}{\numberline {12.5}Reconciliation}{35}{subsection.12.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {12.6}Reports}{36}{subsection.12.6}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {12.6.1}GL as access to almost everything else}{36}{subsubsection.12.6.1}} -\@writefile{toc}{\contentsline {section}{\numberline {13}Recurring Transactions}{36}{section.13}} -\@writefile{toc}{\contentsline {section}{\numberline {14}Financial Statements and Reports}{36}{section.14}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.1}Cash v. Accrual Basis}{37}{subsection.14.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.2}Viewing the Chart of Accounts and Transactions}{37}{subsection.14.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.3}Trial Balance}{37}{subsection.14.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {14.3.1}The Paper-based function of a Trial Balance}{37}{subsubsection.14.3.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {14.3.2}Running the Trial Balance Report}{37}{subsubsection.14.3.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {14.3.3}What if the Trial Balance doesn't Balance?}{37}{subsubsection.14.3.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {14.3.4}Trial Balance as a Summary of Account Activity}{37}{subsubsection.14.3.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {14.3.5}Trial Balance as a Budget Planning Tool}{38}{subsubsection.14.3.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.4}Income Statement}{38}{subsection.14.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {14.4.1}Uses of an Income Statement}{38}{subsubsection.14.4.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.5}Balance Sheet}{39}{subsection.14.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.6}What if the Balance Sheet doesn't balance?}{39}{subsection.14.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {14.7}No Statement of Owner Equity?}{39}{subsection.14.7}} -\@writefile{toc}{\contentsline {section}{\numberline {15}The Template System}{39}{section.15}} -\@writefile{toc}{\contentsline {subsection}{\numberline {15.1}Text Templates}{40}{subsection.15.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {15.2}HTML Templates}{40}{subsection.15.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {15.3}\LaTeX {}\ Templates}{41}{subsection.15.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {15.3.1}What is \LaTeX {}\ ?}{41}{subsubsection.15.3.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {15.3.2}Using L\kern -.1667em\lower .25em\hbox {Y}\kern -.125emX\spacefactor \@m {} to Edit \LaTeX {}\ Templates}{41}{subsubsection.15.3.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {15.4}Customizing Logos}{42}{subsection.15.4}} -\@writefile{toc}{\contentsline {subsection}{\numberline {15.5}How are They Stored in the Filesystem?}{42}{subsection.15.5}} -\@writefile{toc}{\contentsline {subsection}{\numberline {15.6}Upgrade Issues}{42}{subsection.15.6}} -\@writefile{toc}{\contentsline {section}{\numberline {16}An Introduction to the CLI}{42}{section.16}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.1}Conventions}{42}{subsection.16.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.2}Preliminaries}{42}{subsection.16.2}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.3}First Script: lsmb01-cli-example.sh}{43}{subsection.16.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.3.1}Script 1 (Bash)}{43}{subsubsection.16.3.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.4}Second Script: lsmb02-cli-example.pl}{44}{subsection.16.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.1}Script 2 (Perl)}{45}{subsubsection.16.4.1}} -\@writefile{toc}{\contentsline {part}{II\hspace {1em}Technical Overview}{49}{part.2}} -\@writefile{toc}{\contentsline {section}{\numberline {17}Basic Architecture}{49}{section.17}} -\@writefile{toc}{\contentsline {subsection}{\numberline {17.1}The Software Stack}{49}{subsection.17.1}} -\newlabel{fig-sl-stack}{{17.1}{49}{The Software Stack\relax }{subsection.17.1}{}} -\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces The Ledger-SMB software stack in a Typical Implementation}}{49}{figure.8}} -\@writefile{toc}{\contentsline {subsection}{\numberline {17.2}Capacity Planning}{50}{subsection.17.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.2.1}Scalability Strategies}{50}{subsubsection.17.2.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.2.2}Database Maintenance}{50}{subsubsection.17.2.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.2.3}Known issues}{51}{subsubsection.17.2.3}} -\@writefile{toc}{\contentsline {section}{\numberline {18}Customization Possibilities}{51}{section.18}} -\@writefile{toc}{\contentsline {subsection}{\numberline {18.1}Brief Guide to the Source Code}{51}{subsection.18.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {18.2}Data Entry Screens}{52}{subsection.18.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {18.2.1}Examples}{52}{subsubsection.18.2.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {18.3}Extensions}{52}{subsection.18.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {18.3.1}Examples}{52}{subsubsection.18.3.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {18.4}Templates}{52}{subsection.18.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {18.4.1}Examples}{52}{subsubsection.18.4.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {18.5}Reports}{52}{subsection.18.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {18.5.1}Examples}{53}{subsubsection.18.5.1}} -\@writefile{toc}{\contentsline {section}{\numberline {19}Integration Possibilities}{53}{section.19}} -\@writefile{toc}{\contentsline {subsection}{\numberline {19.1}Reporting Tools}{53}{subsection.19.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {19.1.1}Examples}{53}{subsubsection.19.1.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {19.2}Line of Business Tools on PostgreSQL}{53}{subsection.19.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {19.2.1}Known Issues}{53}{subsubsection.19.2.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {19.2.2}Strategies}{53}{subsubsection.19.2.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {19.2.3}Examples}{54}{subsubsection.19.2.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {19.3}Line of Business Tools on other RDBMS's}{54}{subsection.19.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {19.3.1}Strategies}{54}{subsubsection.19.3.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {19.3.2}Integration Products and Open Source Projects}{54}{subsubsection.19.3.2}} -\@writefile{toc}{\contentsline {section}{\numberline {20}Customization Guide}{54}{section.20}} -\@writefile{toc}{\contentsline {subsection}{\numberline {20.1}General Information}{54}{subsection.20.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {20.2}Customizing Templates}{55}{subsection.20.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.2.1}Page Breaks in \LaTeX {}}{55}{subsubsection.20.2.1}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.2.2}Conditionals}{55}{subsubsection.20.2.2}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.2.3}Loops}{55}{subsubsection.20.2.3}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.2.4}File Inclusion}{56}{subsubsection.20.2.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.2.5}Cross-referencing and multiple passes of \LaTeX {}}{56}{subsubsection.20.2.5}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.2.6}Variable Substitution}{56}{subsubsection.20.2.6}} -\@writefile{toc}{\contentsline {subsection}{\numberline {20.3}Customizing Forms}{56}{subsection.20.3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {20.4}Customizing Modules}{57}{subsection.20.4}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {20.4.1}Database Access}{57}{subsubsection.20.4.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {20.5}CLI Examples}{57}{subsection.20.5}} -\@writefile{toc}{\contentsline {part}{III\hspace {1em}Appendix}{58}{part.3}} -\@writefile{toc}{\contentsline {section}{\numberline {A}Where to Go for More Information}{58}{section.A}} -\@writefile{toc}{\contentsline {section}{\numberline {B}Quick Tips}{58}{section.B}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.1}Understanding Shipping Addresses and Carriers}{58}{subsection.B.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {B.2}Handling bad debts}{58}{subsection.B.2}} -\@writefile{toc}{\contentsline {section}{\numberline {C}Step by Steps for Vertical Markets}{58}{section.C}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.1}Common Installation Errors}{58}{subsection.C.1}} -\@writefile{toc}{\contentsline {subsection}{\numberline {C.2}Retail With Light Manufacturing}{58}{subsection.C.2}} -\@writefile{toc}{\contentsline {section}{\numberline {D}Glossary}{60}{section.D}} -\@writefile{toc}{\contentsline {section}{\numberline {E}GNU Free Documentation License}{61}{section.E}} -\newlabel{fdl}{{E}{61}{GNU Free Documentation License\relax }{section.E}{}} -\@writefile{toc}{\contentsline {subsection}{1. APPLICABILITY AND DEFINITIONS}{61}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{2. VERBATIM COPYING}{62}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{3. COPYING IN QUANTITY}{62}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{4. MODIFICATIONS}{63}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{5. COMBINING DOCUMENTS}{64}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{6. COLLECTIONS OF DOCUMENTS}{65}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{7. AGGREGATION WITH INDEPENDENT WORKS}{65}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{8. TRANSLATION}{65}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{9. TERMINATION}{65}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{10. FUTURE REVISIONS OF THIS LICENSE}{65}{section*.3}} -\@writefile{toc}{\contentsline {subsection}{ADDENDUM: How to use this License for your documents}{66}{section*.3}} +\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 37f6b998..0cd8f76b 100644 --- a/doc/manual/LedgerSMB-manual.log +++ b/doc/manual/LedgerSMB-manual.log @@ -1,14 +1,13 @@ -This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=pdflatex 2007.1.7) 18 FEB 2007 11:35 +This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) (format=latex 2007.1.7) 26 MAR 2007 00:09 entering extended mode -**LedgerSMB-manual.tex -(./LedgerSMB-manual.tex -LaTeX2e <2003/12/01> -Babel <v3.8d> and hyphenation patterns for american, french, german, ngerman, b -ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch, esperanto, e -stonian, finnish, greek, icelandic, irish, italian, latin, magyar, norsk, polis -h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur -kish, ukrainian, nohyphenation, loaded. -(/usr/share/texmf/tex/latex/base/article.cls +**\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]{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 File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option) @@ -25,6 +24,19 @@ File: size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option) \belowcaptionskip=\skip42 \bibindent=\dimen102 ) +(/usr/share/texmf/tex/generic/tex4ht/tex4ht.sty +version 2006-01-19-00:46 +Package: tex4ht +-------------------------------------- +--- Note --- for _ at preamble, use the command line option `early_' +-------------------------------------- +-------------------------------------- +--- Note --- for ^ at preamble, use the command line option `early^' +-------------------------------------- +) +(/usr/share/texmf/tex/generic/tex4ht/usepackage.4ht +version 2006-03-27-18:14 +) (/usr/share/texmf/tex/latex/base/fontenc.sty Package: fontenc 2004/02/22 v1.99f Standard LaTeX package @@ -53,11 +65,13 @@ Package: color 1999/02/16 v1.0i Standard LaTeX Color (DPC) (/usr/share/texmf/tex/latex/graphics/color.cfg File: color.cfg 2005/02/03 v1.3 color configuration of teTeX/TeXLive ) -Package color Info: Driver file: pdftex.def on input line 125. +Package color Info: Driver file: dvips.def on input line 125. -(/usr/share/texmf/tex/latex/graphics/pdftex.def -File: pdftex.def 2002/06/19 v0.03k graphics/color for pdftex -\Gread@gobject=\count87 +(/usr/share/texmf/tex/latex/graphics/dvips.def +File: dvips.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +) +(/usr/share/texmf/tex/latex/graphics/dvipsnam.def +File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) )) (/usr/share/texmf/tex/latex/hyperref/hyperref.sty Package: hyperref 2003/11/30 v6.74m Hypertext links for LaTeX @@ -67,8 +81,8 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC) \KV@toks@=\toks14 ) \@linkdim=\dimen103 -\Hy@linkcounter=\count88 -\Hy@pagecounter=\count89 +\Hy@linkcounter=\count87 +\Hy@pagecounter=\count88 (/usr/share/texmf/tex/latex/hyperref/pd1enc.def File: pd1enc.def 2003/11/30 v6.74m Hyperref: PDFDocEncoding definition (HO) @@ -77,6 +91,7 @@ File: pd1enc.def 2003/11/30 v6.74m Hyperref: PDFDocEncoding definition (HO) File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive and teTeX ) Package hyperref Info: Option `colorlinks' set `true' on input line 1830. +Package hyperref Info: Option `colorlinks' set `true' on input line 1830. Package hyperref Info: Hyper figures OFF on input line 1880. Package hyperref Info: Link nesting OFF on input line 1885. Package hyperref Info: Hyper index ON on input line 1888. @@ -86,7 +101,7 @@ Package hyperref Info: Backreferencing OFF on input line 1900. Implicit mode ON; LaTeX internals redefined Package hyperref Info: Bookmarks ON on input line 2004. LaTeX Info: Redefining \url on input line 2143. -\Fld@menulength=\count90 +\Fld@menulength=\count89 \Field@Width=\dimen104 \Fld@charsize=\dimen105 \Choice@toks=\toks15 @@ -96,33 +111,18 @@ Package hyperref Info: Link nesting OFF on input line 2623. Package hyperref Info: Hyper index ON on input line 2626. Package hyperref Info: backreferencing OFF on input line 2633. Package hyperref Info: Link coloring ON on input line 2636. -\c@Item=\count91 -\c@Hfootnote=\count92 +Hyperref stopped early ) -*hyperref using default driver hpdftex* -(/usr/share/texmf/tex/latex/hyperref/hpdftex.def -File: hpdftex.def 2003/11/30 v6.74m Hyperref driver for pdfTeX +*hyperref using driver htex4ht* +(/usr/share/texmf/tex/latex/hyperref/htex4ht.def +File: htex4ht.def 2003/11/30 v6.74m Hyperref driver for TeX4ht -(/usr/share/texmf/tex/latex/psnfss/pifont.sty -Package: pifont 2004/09/15 PSNFSS-v9.2 Pi font support (SPQR) -LaTeX Font Info: Try loading font information for U+pzd on input line 63. - -(/usr/share/texmf/tex/latex/psnfss/upzd.fd -File: upzd.fd 2001/06/04 font definitions for U/pzd. -) -LaTeX Font Info: Try loading font information for U+psy on input line 64. - -(/usr/share/texmf/tex/latex/psnfss/upsy.fd -File: upsy.fd 2001/06/04 font definitions for U/psy. -)) -\Fld@listcount=\count93 -\@outlinefile=\write3 -) -(/usr/share/texmf/tex/latex/geometry/geometry.sty +hyperref tex4ht: tex4ht already loaded +) (/usr/share/texmf/tex/latex/geometry/geometry.sty Package: geometry 2002/07/08 v3.2 Page Geometry -\Gm@cnth=\count94 -\Gm@cntv=\count95 -\c@Gm@tempcnt=\count96 +\Gm@cnth=\count90 +\Gm@cntv=\count91 +\c@Gm@tempcnt=\count92 \Gm@bindingoffset=\dimen106 \Gm@wd@mp=\dimen107 \Gm@odd@mp=\dimen108 @@ -138,7 +138,7 @@ Language: english 2004/06/14 v3.3o English support from the babel system (/usr/share/texmf/tex/generic/babel/babel.def File: babel.def 2004/11/20 v3.8d Babel common definitions -\babel@savecnt=\count97 +\babel@savecnt=\count93 \U@D=\dimen110 ) \l@british = a dialect from \language\l@english @@ -146,6 +146,319 @@ File: babel.def 2004/11/20 v3.8d Babel common definitions \l@canadian = a dialect from \language\l@american \l@australian = a dialect from \language\l@british \l@newzealand = a dialect from \language\l@british +)) +(/usr/share/texmf/tex/generic/tex4ht/tex4ht.4ht +version 2006-02-22-12:25 +-------------------------------------- +--- Note --- for additional information, use the command line option `info' +-------------------------------------- + +:::::::::::::::::::::::::::::::::::::::::: + TeX4ht info is available in the log file +:::::::::::::::::::::::::::::::::::::::::: +) (/usr/share/texmf/tex/generic/tex4ht/tex4ht.sty +version 2006-01-19-00:46 + +--- needs --- tex4ht LedgerSMB-manual --- +\tmp:cnt=\count94 +\openout15 = `LedgerSMB-manual.tmp'. + +(./LedgerSMB-manual.tmp) +\tmp:toks=\toks18 +\tmp:dim=\skip43 + (./LedgerSMB-manual.xref) +\:refout=\write3 +\openout3 = `LedgerSMB-manual.xref'. + + +(/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/html4-math.4ht +version 2006-03-27-18:14 +) +-------------------------------------- +--- Note --- for marking of the base font, use the command line option `fonts+' + +-------------------------------------- +-------------------------------------- +--- Note --- for non active _, use the command line option `no_' +-------------------------------------- +-------------------------------------- +--- Note --- for _ of catcode 13, use the command line option `_13' +-------------------------------------- +-------------------------------------- +--- Note --- for non active ^, use the command line option `no^' +-------------------------------------- +-------------------------------------- +--- Note --- for ^ of catcode 13, use the command line option `^13' +-------------------------------------- + +(/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/html4-math.4ht +version 2006-03-27-18:14 +) +\:tokwrite=\toks19 +\:tokpage=\toks20 +-------------------------------------- +--- Note --- for back links to toc, use the command line option `sections+' +-------------------------------------- +-------------------------------------- +--- Note --- for linear crosslinks of pages, use the command line option `next' + +-------------------------------------- +\openout15 = `LedgerSMB-manual.4ct'. + +\:tocout=\write4 +\openout4 = `LedgerSMB-manual.4tc'. + + +(/usr/share/texmf/tex/generic/tex4ht/html4.4ht +version 2006-03-27-18:14 +) +(/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/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/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/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/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/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/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/html4.4ht +version 2006-03-27-18:14 +) +(/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 + +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/html4.4ht +version 2006-03-27-18:14 +) +(/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/html4.4ht +version 2006-03-27-18:14 +) +(/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/html4.4ht +version 2006-03-27-18:14 +) +(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht +version 2006-03-27-18:14 +)) +(/usr/share/texmf/tex/generic/tex4ht/html4.4ht +version 2006-03-27-18:14 +) +(/usr/share/texmf/tex/generic/tex4ht/html4-math.4ht +version 2006-03-27-18:14 )) (./LedgerSMB-manual.aux) \openout1 = `LedgerSMB-manual.aux'. @@ -168,51 +481,9 @@ LaTeX Font Info: Try loading font information for T1+ppl on input line 32. (/usr/share/texmf/tex/latex/psnfss/t1ppl.fd File: t1ppl.fd 2001/06/04 font definitions for T1/ppl. ) -(/usr/share/texmf/tex/context/base/supp-pdf.tex -(/usr/share/texmf/tex/context/base/supp-mis.tex -loading : Context Support Macros / Miscellaneous (2004.10.26) -\protectiondepth=\count98 -\scratchcounter=\count99 -\scratchtoks=\toks18 -\scratchdimen=\dimen111 -\scratchskip=\skip43 -\scratchmuskip=\muskip11 -\scratchbox=\box26 -\scratchread=\read1 -\scratchwrite=\write4 -\zeropoint=\dimen112 -\onepoint=\dimen113 -\onebasepoint=\dimen114 -\minusone=\count100 -\thousandpoint=\dimen115 -\onerealpoint=\dimen116 -\emptytoks=\toks19 -\nextbox=\box27 -\nextdepth=\dimen117 -\everyline=\toks20 -\!!counta=\count101 -\!!countb=\count102 -\recursecounter=\count103 -) -loading : Context Support Macros / PDF (2004.03.26) -\nofMPsegments=\count104 -\nofMParguments=\count105 -\MPscratchCnt=\count106 -\MPscratchDim=\dimen118 -\MPnumerator=\count107 -\everyMPtoPDFconversion=\toks21 -) Package hyperref Info: Link coloring ON on input line 32. - (/usr/share/texmf/tex/latex/hyperref/nameref.sty -Package: nameref 2003/12/03 v2.21 Cross-referencing by name of section -\c@section@level=\count108 -) LaTeX Info: Redefining \ref on input line 32. LaTeX Info: Redefining \pageref on input line 32. - (./LedgerSMB-manual.out) -(./LedgerSMB-manual.out) -\openout3 = `LedgerSMB-manual.out'. - -------------------- Geometry parameters paper: class default landscape: -- @@ -230,14 +501,14 @@ truedimen: -- includehead: -- includefoot: -- includemp: -- -driver: pdftex +driver: -------------------- Page layout dimensions and switches \paperwidth 614.295pt \paperheight 794.96999pt \textwidth 443.57848pt \textheight 624.25346pt -\oddsidemargin 13.08827pt -\evensidemargin 13.08827pt +\oddsidemargin 0.0pt +\evensidemargin 0.0pt \topmargin -23.91173pt \headheight 12.0pt \headsep 25.0pt @@ -252,276 +523,134 @@ driver: pdftex (1in=72.27pt, 1cm=28.45pt) ----------------------- +--- file LedgerSMB-manual.css --- + [1 + +] [2] LaTeX Font Info: External font `cmex10' loaded for size -(Font) <12> on input line 34. +(Font) <12> on input line 33. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <8> on input line 34. +(Font) <8> on input line 33. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <6> on input line 34. +(Font) <6> on input line 33. LaTeX Font Info: Try loading font information for OMS+ppl on input line 34. - (/usr/share/texmf/tex/latex/psnfss/omsppl.fd + +(/usr/share/texmf/tex/latex/psnfss/omsppl.fd File: omsppl.fd ) LaTeX Font Info: Font shape `OMS/ppl/m/n' in size <10> not available (Font) Font shape `OMS/cmsy/m/n' tried instead on input line 34. LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <14.4> not available (Font) Font shape `T1/ppl/b/n' tried instead on input line 42. +LaTeX Font Info: Try loading font information for T1+pcr on input line 42. -(./LedgerSMB-manual.toc +(/usr/share/texmf/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. +) (./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 2. +(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 3. +(Font) Font shape `T1/ppl/b/n' tried instead on input line 59. + [9 + +] [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 4. +(Font) <7> on input line 530. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <5> on input line 4. - [1 - -{/usr/share/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2] [3] [4] [5]) -\tf@toc=\write5 -\openout5 = `LedgerSMB-manual.toc'. - - (./LedgerSMB-manual.lof) -\tf@lof=\write6 -\openout6 = `LedgerSMB-manual.lof'. - - [6] -LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <20.74> not available -(Font) Font shape `T1/ppl/b/n' tried instead on input line 50. - [7 - -] [8] [9] [10] [11] -Overfull \hbox (0.23595pt too wide) in paragraph at lines 402--404 -[][]$\T1/ppl/m/n/10 http : / / www . accounting-[]and-[]bookkeeping-[]tips . co -m / learning-[]accounting / accounting-[]basics-[]credit . - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 402--404 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 405--407 - - [] - -[12] -Underfull \hbox (badness 10000) in paragraph at lines 408--411 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 412--414 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 415--417 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 418--420 - - [] - +(Font) <5> on input line 530. + [21] [22] [23] +--- file LedgerSMB-manual2.html --- + [24 -Underfull \hbox (badness 10000) in paragraph at lines 421--423 +] [25] [26] [27] [28] [29] +[30] [31] [32] [33] [34] [35] [36] [37 - [] +] (./simple_ar_dataflow.tex +l. 9 Writing LedgerSMB-manual.idv[1] (LedgerSMB-manual0x.png) +) [38 +] +[39 -Underfull \hbox (badness 10000) in paragraph at lines 424--426 +] [40 - [] +] (./ar_workflow_ship.tex +l. 9 Writing LedgerSMB-manual.idv[2] (LedgerSMB-manual1x.png) +) [41 -[13] [14] [15] [16] [17] -Overfull \hbox (4.69608pt too wide) in paragraph at lines 814--817 -\T1/ppl/m/n/10 Services in-clude any la-bor that is billed di-rectly to the cus --tomer. It is as-so-ci-ated with an ex-pense/COGS - [] +] [42 -[18] [19] [20] [21] [22] [23] [24] (./simple_ar_dataflow.tex) [25] -(./ar_workflow_ship.tex) (./ar_workflow_complex.tex) -Overfull \hbox (90.87096pt too wide) in paragraph at lines 58--1397 -[][] - [] +] [43 +] (./ar_workflow_complex.tex +l. 9 Writing LedgerSMB-manual.idv[3] (LedgerSMB-manual2x.png) +) +[44 -Underfull \hbox (badness 10000) in paragraph at lines 58--1397 - - [] - -[26] [27] [28] (./simple_ap_workflow.tex) (./ap_workflow_ship.tex) [29] -[30] (./ap_workflow_complex.tex) -Overfull \hbox (90.87096pt too wide) in paragraph at lines 58--1488 -[][] - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 58--1488 - - [] - -[31] [32] [33] [34] [35] [36] [37] [38] [39] -Underfull \hbox (badness 10000) in paragraph at lines 2153--2156 - - [] - -LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <8> not available -(Font) Font shape `T1/ppl/b/n' tried instead on input line 2205. -[40] -Overfull \hbox (0.31456pt too wide) in paragraph at lines 2226--2229 -\T1/ppl/m/n/10 L[]T[]X tem-plates al-low one to gen-er-ate PDF and postscript d -oc-u-ments and print di-rectly to a postscript- - [] - -LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <7> not available -(Font) Font shape `T1/ppl/b/n' tried instead on input line 2235. - -Package hyperref Warning: Token not allowed in a PDFDocEncoded string: -(hyperref) \kern -1.66702pt -(hyperref) removed on input line 2259. - - -Package hyperref Warning: Token not allowed in a PDFDocEncoded string, -(hyperref) removing `\lower' on input line 2259. - - -Package hyperref Warning: Token not allowed in a PDFDocEncoded string, -(hyperref) removing `\hbox' on input line 2259. - - -Package hyperref Warning: Token not allowed in a PDFDocEncoded string: -(hyperref) \kern -1.25pt -(hyperref) removed on input line 2259. - - -Package hyperref Warning: Token not allowed in a PDFDocEncoded string, -(hyperref) removing `\spacefactor' on input line 2259. - - -Package hyperref Warning: Token not allowed in a PDFDocEncoded string, -(hyperref) removing `\@m' on input line 2259. - -[41] -Overfull \hbox (45.1759pt too wide) in paragraph at lines 2331--2333 -[]\T1/ppl/m/n/10 cd /usr/local/ledger-smb ./ct.pl "lo-gin=name&path=bin&passwor -d=xxxxx&action=search&db=customer" - [] - - -Overfull \hbox (78.15541pt too wide) in paragraph at lines 2343--2345 -[]\T1/ppl/m/n/10 cd /usr/local/ledger-smb ./ct.pl "lo-gin=clarkkent&path=bin&pa -ssword=lOis,lAn3&action=search&db=customer" - [] - -[42] -LaTeX Font Info: Try loading font information for T1+pcr on input line 2378. - - (/usr/share/texmf/tex/latex/psnfss/t1pcr.fd -File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. -) [43] -Overfull \hbox (6.42152pt too wide) in paragraph at lines 2451--2451 -[]\T1/pcr/m/n/10 ARG="login=${LSLOGIN}&password=${LSPWD}&path=bin&action=search -&db=customer"[] - [] - -[44] -Overfull \hbox (24.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA.[] - [] +] [45 +] [46 -Overfull \hbox (0.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 $cmd = "login=" . $login . '&password=' . $pwd . '&path=bin&ac -tion=login';[] - [] +] (./simple_ap_workflow.tex +l. 9 Writing LedgerSMB-manual.idv[4] (LedgerSMB-manual3x.png) +) [47 -[45] -Overfull \hbox (6.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 $cmd = "login=" . $login . '&password=' . $pwd . '&path=bin&ac -tion=logout';[] - [] +] [48 -[46] -Overfull \hbox (156.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 # action | db | name | vendornumber | address1 | address2 | ci -ty | state | zipcode | country | phone[] - [] +] [49 +] +(./ap_workflow_ship.tex +l. 9 Writing LedgerSMB-manual.idv[5] (LedgerSMB-manual4x.png) +) [50 -Overfull \hbox (102.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 save|vendor|Parts are Us|1377|238 Riverview|Suite 11|Cheese He -ad|WI|56743|USA|555-123-3322|[] - [] +] [51 +] [52 -Overfull \hbox (66.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 save|vendor|Widget Heaven|1378|41 S. Riparian Way||Show Me|MO| -39793|USA|555-231-3309|[] - [] +] (./ap_workflow_complex.tex +l. 9 Writing LedgerSMB-manual.idv[6] (LedgerSMB-manual5x.png) +) [53 -[47] -Overfull \hbox (216.42152pt too wide) in paragraph at lines 2635--2635 -[]\T1/pcr/m/n/10 save|vendor|Consolidated Spackle|1379|1010 Binary Lane|Dept 11 -01|Beverly Hills|CA|90210|USA|555-330-7639 x772|[] - [] +] +[54 -[48] (./sl-stack.tex) [49 +] [55] [56] [57] [58] [59] [60 -] [50] -Overfull \hbox (3.85573pt too wide) in paragraph at lines 2827--2830 -[]\T1/ppl/m/n/10 The css di-rec-tory in the root in-stall di-rec-tory con-tains - CSS doc-u-ments to pro-vide var-i-ous stylesheets - [] +] [61 -[51] [52] [53] [54] -Overfull \hbox (1.72615pt too wide) in paragraph at lines 3120--3126 -\T1/ppl/m/n/10 the name of the tem-plate within the cur-rent tem-plate di-rec-t -ory (usu-ally tem-plates/$username/). - [] +] +--- file LedgerSMB-manual3.html --- +--- file LedgerSMB-manual4.html --- + [62 -[55] [56] -Overfull \hbox (6.58676pt too wide) in paragraph at lines 3221--3226 -\T1/ppl/m/n/10 The $form ob-ject pro-vides two meth-ods for ac-cess-ing the dat -abase. The $form->dbconnect(%myconfig) - [] +] [63] [64] [65] [66] [67] [68] +[69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80 -Overfull \hbox (40.4262pt too wide) in paragraph at lines 3221--3226 -\T1/ppl/m/n/10 method com-mits each in-di-vid-ual state-ment as its own trans-a -c-tion. The $form->dbconnect_noauto(%myconfig) - [] +] [81 -[57] [58 +] +(./sl-stack.tex +l. 9 Writing LedgerSMB-manual.idv[7] (LedgerSMB-manual6x.png) +) [82 -] [59] [60] (./fdl.tex +] [83 -Package hyperref Warning: The anchor of a bookmark and its parent's must not -(hyperref) be the same. Added a new anchor on input line 51. +] [84] [85] [86] [87] [88] [89] [90] [91] [92] +[93 -[61] [62] [63] [64] [65]) [66] (./LedgerSMB-manual.aux) ) +] [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: - 3985 strings out of 94500 - 53369 string characters out of 1176767 - 105595 words of memory out of 1000000 - 6774 multiletter control sequences out of 10000+50000 - 29317 words of font info for 55 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 - 34i,9n,41p,245b,277s stack positions out of 1500i,500n,5000p,200000b,5000s -PDF statistics: - 1503 PDF objects out of 300000 - 312 named destinations out of 131072 - 1873 words of extra memory for PDF output out of 65536 -{/usr/share/texmf/font -s/enc/dvips/psnfss/8r.enc}</usr/share/texmf/fonts/type1/urw/courier/ucrr8a.pfb> -</usr/share/texmf/fonts/type1/bluesky/latex/line10.pfb></usr/share/texmf/fonts/ -type1/bluesky/cm/cmr10.pfb></usr/share/texmf/fonts/type1/bluesky/cm/cmmi10.pfb> -</usr/share/texmf/fonts/type1/urw/palatino/uplb8a.pfb></usr/share/texmf/fonts/t -ype1/bluesky/cm/cmsy10.pfb></usr/share/texmf/fonts/type1/urw/palatino/uplr8a.pf -b> -Output written on LedgerSMB-manual.pdf (66 pages, 398738 bytes). + 33i,8n,40p,731b,789s stack positions out of 1500i,500n,5000p,200000b,5000s + +Output written on LedgerSMB-manual.dvi (105 pages, 394252 bytes). |