/doc/index/

lesheet' type='text/css' href='/cgit-local/local.css'/>
summaryrefslogtreecommitdiff
path: root/doc/html_manual/LedgerSMB-manual.html
blob: 219f05ea8cb1e21bc265252df5e11bf31af57666 (plain)
  1. <?xml version="1.0" encoding="iso-8859-1" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <!--http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
  5. <html xmlns="http://www.w3.org/1999/xhtml"
  6. >
  7. <head><title>Ledger-SMB Manual v. 1.2</title>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  9. <meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" />
  10. <meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/mn.html)" />
  11. <!-- xhtml -->
  12. <meta name="src" content="LedgerSMB-manual.tex" />
  13. <meta name="date" content="2007-04-09 13:59:00" />
  14. <link rel="stylesheet" type="text/css" href="LedgerSMB-manual.css" />
  15. </head><body
  16. >
  17. <div class="maketitle">
  18. <h2 class="titleHead">Ledger-SMB Manual v. 1.2</h2>
  19. <div class="author" ><span
  20. class="pplr8t-x-x-120">The LedgerSMB Core Team</span></div>
  21. <br />
  22. <div class="date" ><span
  23. class="pplr8t-x-x-120">April 9, 2007</span></div>
  24. </div>Copyright <span
  25. class="cmsy-10">&#169;</span>2006 The LedgerSMB Core Team. Permission is granted to copy, distribute and/or modify this
  26. document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
  27. published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no
  28. Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation
  29. License" (Appendix <a
  30. href="#x1-223000E">E<!--tex4ht:ref: fdl --></a>).
  31. <h3 class="likesectionHead"><a
  32. id="x1-1000"></a>Contents</h3>
  33. <div class="tableofcontents">
  34. <span class="partToc">I&#x00A0;&#x00A0;<a
  35. href="#x1-3000I" id="QQ2-1-3">Ledger-SMB and Business Processes</a></span>
  36. <br /> <span class="sectionToc">1 <a
  37. href="#x1-40001" id="QQ2-1-4">Introduction to Ledger-SMB</a></span>
  38. <br /> &#x00A0;<span class="subsectionToc">1.1 <a
  39. href="#x1-50001.1" id="QQ2-1-5">Why Ledger-SMB</a></span>
  40. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">1.1.1 <a
  41. href="#x1-60001.1.1" id="QQ2-1-6">Advantages of Ledger-SMB</a></span>
  42. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">1.1.2 <a
  43. href="#x1-70001.1.2" id="QQ2-1-7">Key Features</a></span>
  44. <br /> &#x00A0;<span class="subsectionToc">1.2 <a
  45. href="#x1-80001.2" id="QQ2-1-8">Limitations of Ledger-SMB</a></span>
  46. <br /> &#x00A0;<span class="subsectionToc">1.3 <a
  47. href="#x1-90001.3" id="QQ2-1-9">System Requirements of Ledger-SMB</a></span>
  48. <br /> <span class="sectionToc">2 <a
  49. href="#x1-100002" id="QQ2-1-10">User Account and Database Administration Basics</a></span>
  50. <br /> &#x00A0;<span class="subsectionToc">2.1 <a
  51. href="#x1-110002.1" id="QQ2-1-11">Companies and Datasets</a></span>
  52. <br /> &#x00A0;<span class="subsectionToc">2.2 <a
  53. href="#x1-120002.2" id="QQ2-1-12">How to Create a User</a></span>
  54. <br /> &#x00A0;<span class="subsectionToc">2.3 <a
  55. href="#x1-130002.3" id="QQ2-1-13">Permissions</a></span>
  56. <br /> &#x00A0;<span class="subsectionToc">2.4 <a
  57. href="#x1-140002.4" id="QQ2-1-14">User Account Types</a></span>
  58. <br /> &#x00A0;<span class="subsectionToc">2.5 <a
  59. href="#x1-150002.5" id="QQ2-1-15">Other Features</a></span>
  60. <br /> <span class="sectionToc">3 <a
  61. href="#x1-160003" id="QQ2-1-16">Chart of Accounts</a></span>
  62. <br /> &#x00A0;<span class="subsectionToc">3.1 <a
  63. href="#x1-170003.1" id="QQ2-1-17">Introduction to Double Entry Bookkeeping</a></span>
  64. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">3.1.1 <a
  65. href="#x1-180003.1.1" id="QQ2-1-18">Business Entity</a></span>
  66. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">3.1.2 <a
  67. href="#x1-190003.1.2" id="QQ2-1-19">Double Entry</a></span>
  68. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">3.1.3 <a
  69. href="#x1-200003.1.3" id="QQ2-1-20">Accounts</a></span>
  70. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">3.1.4 <a
  71. href="#x1-210003.1.4" id="QQ2-1-21">Debits and Credits</a></span>
  72. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">3.1.5 <a
  73. href="#x1-220003.1.5" id="QQ2-1-22">Accrual</a></span>
  74. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">3.1.6 <a
  75. href="#x1-230003.1.6" id="QQ2-1-23">References</a></span>
  76. <br /> &#x00A0;<span class="subsectionToc">3.2 <a
  77. href="#x1-240003.2" id="QQ2-1-24">General Guidelines on Numbering Accounts</a></span>
  78. <br /> &#x00A0;<span class="subsectionToc">3.3 <a
  79. href="#x1-250003.3" id="QQ2-1-25">Adding/Modifying Accounts</a></span>
  80. <br /> &#x00A0;<span class="subsectionToc">3.4 <a
  81. href="#x1-260003.4" id="QQ2-1-26">Listing Account Balances and Transactions</a></span>
  82. <br /> <span class="sectionToc">4 <a
  83. href="#x1-270004" id="QQ2-1-27">Administration</a></span>
  84. <br /> &#x00A0;<span class="subsectionToc">4.1 <a
  85. href="#x1-280004.1" id="QQ2-1-28">Taxes, Defaults, and Preferences</a></span>
  86. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.1.1 <a
  87. href="#x1-290004.1.1" id="QQ2-1-29">Adding A Sales Tax Account</a></span>
  88. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.1.2 <a
  89. href="#x1-300004.1.2" id="QQ2-1-30">Setting a Sales Tax Amount</a></span>
  90. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.1.3 <a
  91. href="#x1-310004.1.3" id="QQ2-1-31">Default Account Setup</a></span>
  92. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.1.4 <a
  93. href="#x1-320004.1.4" id="QQ2-1-32">Currency Setup</a></span>
  94. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.1.5 <a
  95. href="#x1-330004.1.5" id="QQ2-1-33">Sequence Settings</a></span>
  96. <br /> &#x00A0;<span class="subsectionToc">4.2 <a
  97. href="#x1-340004.2" id="QQ2-1-34">Audit Control</a></span>
  98. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.2.1 <a
  99. href="#x1-350004.2.1" id="QQ2-1-35">Explaining transaction reversal</a></span>
  100. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.2.2 <a
  101. href="#x1-360004.2.2" id="QQ2-1-36">Close books option</a></span>
  102. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.2.3 <a
  103. href="#x1-370004.2.3" id="QQ2-1-37">Audit Trails</a></span>
  104. <br /> &#x00A0;<span class="subsectionToc">4.3 <a
  105. href="#x1-380004.3" id="QQ2-1-38">Departments</a></span>
  106. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.3.1 <a
  107. href="#x1-390004.3.1" id="QQ2-1-39">Cost v Profit Centers.</a></span>
  108. <br /> &#x00A0;<span class="subsectionToc">4.4 <a
  109. href="#x1-400004.4" id="QQ2-1-40">Warehouses</a></span>
  110. <br /> &#x00A0;<span class="subsectionToc">4.5 <a
  111. href="#x1-410004.5" id="QQ2-1-41">Languages</a></span>
  112. <br /> &#x00A0;<span class="subsectionToc">4.6 <a
  113. href="#x1-420004.6" id="QQ2-1-42">Types of Businesses</a></span>
  114. <br /> &#x00A0;<span class="subsectionToc">4.7 <a
  115. href="#x1-430004.7" id="QQ2-1-43">Misc.</a></span>
  116. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.7.1 <a
  117. href="#x1-440004.7.1" id="QQ2-1-44">GIFI</a></span>
  118. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.7.2 <a
  119. href="#x1-450004.7.2" id="QQ2-1-45">SIC</a></span>
  120. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.7.3 <a
  121. href="#x1-460004.7.3" id="QQ2-1-46">Overview of Template Editing</a></span>
  122. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">4.7.4 <a
  123. href="#x1-470004.7.4" id="QQ2-1-47">Year-end</a></span>
  124. <br /> &#x00A0;<span class="subsectionToc">4.8 <a
  125. href="#x1-480004.8" id="QQ2-1-48">Options in the ledger-smb.conf</a></span>
  126. <br /> <span class="sectionToc">5 <a
  127. href="#x1-490005" id="QQ2-1-49">Goods and Services</a></span>
  128. <br /> &#x00A0;<span class="subsectionToc">5.1 <a
  129. href="#x1-500005.1" id="QQ2-1-50">Basic Terms</a></span>
  130. <br /> &#x00A0;<span class="subsectionToc">5.2 <a
  131. href="#x1-510005.2" id="QQ2-1-51">The Price Matrix</a></span>
  132. <br /> &#x00A0;<span class="subsectionToc">5.3 <a
  133. href="#x1-520005.3" id="QQ2-1-52">Pricegroups</a></span>
  134. <br /> &#x00A0;<span class="subsectionToc">5.4 <a
  135. href="#x1-530005.4" id="QQ2-1-53">Groups</a></span>
  136. <br /> &#x00A0;<span class="subsectionToc">5.5 <a
  137. href="#x1-540005.5" id="QQ2-1-54">Labor/Overhead</a></span>
  138. <br /> &#x00A0;<span class="subsectionToc">5.6 <a
  139. href="#x1-550005.6" id="QQ2-1-55">Services</a></span>
  140. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.6.1 <a
  141. href="#x1-560005.6.1" id="QQ2-1-56">Shipping and Handling as a Service</a></span>
  142. <br /> &#x00A0;<span class="subsectionToc">5.7 <a
  143. href="#x1-570005.7" id="QQ2-1-57">Parts</a></span>
  144. <br /> &#x00A0;<span class="subsectionToc">5.8 <a
  145. href="#x1-580005.8" id="QQ2-1-58">Assemblies and Manufacturing</a></span>
  146. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.8.1 <a
  147. href="#x1-590005.8.1" id="QQ2-1-59">Stocking Assemblies</a></span>
  148. <br /> &#x00A0;<span class="subsectionToc">5.9 <a
  149. href="#x1-600005.9" id="QQ2-1-60">Reporting</a></span>
  150. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.9.1 <a
  151. href="#x1-610005.9.1" id="QQ2-1-61">All Items and Parts Reports</a></span>
  152. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.9.2 <a
  153. href="#x1-620005.9.2" id="QQ2-1-62">Requirements</a></span>
  154. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.9.3 <a
  155. href="#x1-630005.9.3" id="QQ2-1-63">Services and Labor</a></span>
  156. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.9.4 <a
  157. href="#x1-640005.9.4" id="QQ2-1-64">Assemblies</a></span>
  158. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">5.9.5 <a
  159. href="#x1-650005.9.5" id="QQ2-1-65">Groups and Pricegroups</a></span>
  160. <br /> &#x00A0;<span class="subsectionToc">5.10 <a
  161. href="#x1-660005.10" id="QQ2-1-66">Translations</a></span>
  162. <br /> &#x00A0;<span class="subsectionToc">5.11 <a
  163. href="#x1-670005.11" id="QQ2-1-67">How Cost of Goods Sold is tracked</a></span>
  164. <br /> <span class="sectionToc">6 <a
  165. href="#x1-680006" id="QQ2-1-68">AP</a></span>
  166. <br /> &#x00A0;<span class="subsectionToc">6.1 <a
  167. href="#x1-690006.1" id="QQ2-1-69">Basic AP Concepts</a></span>
  168. <br /> &#x00A0;<span class="subsectionToc">6.2 <a
  169. href="#x1-700006.2" id="QQ2-1-70">Vendors</a></span>
  170. <br /> &#x00A0;<span class="subsectionToc">6.3 <a
  171. href="#x1-710006.3" id="QQ2-1-71">AP Transactions</a></span>
  172. <br /> &#x00A0;<span class="subsectionToc">6.4 <a
  173. href="#x1-720006.4" id="QQ2-1-72">AP Invoices</a></span>
  174. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.4.1 <a
  175. href="#x1-730006.4.1" id="QQ2-1-73">Correcting an AP Invoice</a></span>
  176. <br /> &#x00A0;<span class="subsectionToc">6.5 <a
  177. href="#x1-740006.5" id="QQ2-1-74">Cash payment And Check Printing</a></span>
  178. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.5.1 <a
  179. href="#x1-750006.5.1" id="QQ2-1-75">Rapid Payment Entry Screen</a></span>
  180. <br /> &#x00A0;<span class="subsectionToc">6.6 <a
  181. href="#x1-760006.6" id="QQ2-1-76">Transaction/Invoice Reporting</a></span>
  182. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.6.1 <a
  183. href="#x1-770006.6.1" id="QQ2-1-77">Transactions Report</a></span>
  184. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.6.2 <a
  185. href="#x1-780006.6.2" id="QQ2-1-78">Outstanding Report</a></span>
  186. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.6.3 <a
  187. href="#x1-790006.6.3" id="QQ2-1-79">AP Aging Report</a></span>
  188. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.6.4 <a
  189. href="#x1-800006.6.4" id="QQ2-1-80">Tax Paid and Non-taxable Report</a></span>
  190. <br /> &#x00A0;<span class="subsectionToc">6.7 <a
  191. href="#x1-810006.7" id="QQ2-1-81">Vendor Reporting</a></span>
  192. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.7.1 <a
  193. href="#x1-820006.7.1" id="QQ2-1-82">Vendor Search</a></span>
  194. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">6.7.2 <a
  195. href="#x1-830006.7.2" id="QQ2-1-83">Vendor History</a></span>
  196. <br /> <span class="sectionToc">7 <a
  197. href="#x1-840007" id="QQ2-1-84">AR</a></span>
  198. <br /> &#x00A0;<span class="subsectionToc">7.1 <a
  199. href="#x1-850007.1" id="QQ2-1-85">Customers</a></span>
  200. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">7.1.1 <a
  201. href="#x1-860007.1.1" id="QQ2-1-86">Customer Price Matrix</a></span>
  202. <br /> &#x00A0;<span class="subsectionToc">7.2 <a
  203. href="#x1-870007.2" id="QQ2-1-87">AR Transactions</a></span>
  204. <br /> &#x00A0;<span class="subsectionToc">7.3 <a
  205. href="#x1-880007.3" id="QQ2-1-88">AR Invoices</a></span>
  206. <br /> &#x00A0;<span class="subsectionToc">7.4 <a
  207. href="#x1-890007.4" id="QQ2-1-89">Cash Receipt</a></span>
  208. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">7.4.1 <a
  209. href="#x1-900007.4.1" id="QQ2-1-90">Cash Receipts for multiple customers</a></span>
  210. <br /> &#x00A0;<span class="subsectionToc">7.5 <a
  211. href="#x1-910007.5" id="QQ2-1-91">AR Transaction Reporting</a></span>
  212. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">7.5.1 <a
  213. href="#x1-920007.5.1" id="QQ2-1-92">AR Transactions Report</a></span>
  214. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">7.5.2 <a
  215. href="#x1-930007.5.2" id="QQ2-1-93">AR Aging Report</a></span>
  216. <br /> &#x00A0;<span class="subsectionToc">7.6 <a
  217. href="#x1-940007.6" id="QQ2-1-94">Customer Reporting</a></span>
  218. <br /> <span class="sectionToc">8 <a
  219. href="#x1-950008" id="QQ2-1-95">Projects</a></span>
  220. <br /> &#x00A0;<span class="subsectionToc">8.1 <a
  221. href="#x1-960008.1" id="QQ2-1-96">Project Basics</a></span>
  222. <br /> &#x00A0;<span class="subsectionToc">8.2 <a
  223. href="#x1-970008.2" id="QQ2-1-97">Timecards</a></span>
  224. <br /> &#x00A0;<span class="subsectionToc">8.3 <a
  225. href="#x1-980008.3" id="QQ2-1-98">Projects and Invoices</a></span>
  226. <br /> &#x00A0;<span class="subsectionToc">8.4 <a
  227. href="#x1-990008.4" id="QQ2-1-99">Reporting</a></span>
  228. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">8.4.1 <a
  229. href="#x1-1000008.4.1" id="QQ2-1-100">Timecard Reporting</a></span>
  230. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">8.4.2 <a
  231. href="#x1-1010008.4.2" id="QQ2-1-101">Project Transaction Reporting</a></span>
  232. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">8.4.3 <a
  233. href="#x1-1020008.4.3" id="QQ2-1-102">List of Projects</a></span>
  234. <br /> &#x00A0;<span class="subsectionToc">8.5 <a
  235. href="#x1-1030008.5" id="QQ2-1-103">Possibilities for Using Projects</a></span>
  236. <br /> <span class="sectionToc">9 <a
  237. href="#x1-1040009" id="QQ2-1-104">Quotations and Order Management</a></span>
  238. <br /> &#x00A0;<span class="subsectionToc">9.1 <a
  239. href="#x1-1050009.1" id="QQ2-1-105">Sales Orders</a></span>
  240. <br /> &#x00A0;<span class="subsectionToc">9.2 <a
  241. href="#x1-1060009.2" id="QQ2-1-106">Quotations</a></span>
  242. <br /> &#x00A0;<span class="subsectionToc">9.3 <a
  243. href="#x1-1070009.3" id="QQ2-1-107">Shipping</a></span>
  244. <br /> &#x00A0;<span class="subsectionToc">9.4 <a
  245. href="#x1-1080009.4" id="QQ2-1-108">AR Work Flow</a></span>
  246. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.4.1 <a
  247. href="#x1-1090009.4.1" id="QQ2-1-109">Service Example</a></span>
  248. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.4.2 <a
  249. href="#x1-1100009.4.2" id="QQ2-1-111">Single Warehouse Example</a></span>
  250. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.4.3 <a
  251. href="#x1-1110009.4.3" id="QQ2-1-113">Multiple Warehouse Example</a></span>
  252. <br /> &#x00A0;<span class="subsectionToc">9.5 <a
  253. href="#x1-1120009.5" id="QQ2-1-115">Requests for Quotation (RFQ)</a></span>
  254. <br /> &#x00A0;<span class="subsectionToc">9.6 <a
  255. href="#x1-1130009.6" id="QQ2-1-116">Purchase Orders</a></span>
  256. <br /> &#x00A0;<span class="subsectionToc">9.7 <a
  257. href="#x1-1140009.7" id="QQ2-1-117">Receiving</a></span>
  258. <br /> &#x00A0;<span class="subsectionToc">9.8 <a
  259. href="#x1-1150009.8" id="QQ2-1-118">AP Work Flow</a></span>
  260. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.8.1 <a
  261. href="#x1-1160009.8.1" id="QQ2-1-119">Bookkeeper entering the received items, order completed in full</a></span>
  262. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.8.2 <a
  263. href="#x1-1170009.8.2" id="QQ2-1-121">Bookkeeper entering received items, order completed in part</a></span>
  264. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.8.3 <a
  265. href="#x1-1180009.8.3" id="QQ2-1-123">Receiving staff entering items</a></span>
  266. <br /> &#x00A0;<span class="subsectionToc">9.9 <a
  267. href="#x1-1190009.9" id="QQ2-1-125">Generation and Consolidation</a></span>
  268. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.9.1 <a
  269. href="#x1-1200009.9.1" id="QQ2-1-126">Generation</a></span>
  270. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">9.9.2 <a
  271. href="#x1-1210009.9.2" id="QQ2-1-127">Consolidation</a></span>
  272. <br /> &#x00A0;<span class="subsectionToc">9.10 <a
  273. href="#x1-1220009.10" id="QQ2-1-128">Reporting</a></span>
  274. <br /> &#x00A0;<span class="subsectionToc">9.11 <a
  275. href="#x1-1230009.11" id="QQ2-1-129">Shipping Module: Transferring Inventory between Warehouses</a></span>
  276. <br /> <span class="sectionToc">10 <a
  277. href="#x1-12400010" id="QQ2-1-130">HR</a></span>
  278. <br /> <span class="sectionToc">11 <a
  279. href="#x1-12500011" id="QQ2-1-131">POS</a></span>
  280. <br /> &#x00A0;<span class="subsectionToc">11.1 <a
  281. href="#x1-12600011.1" id="QQ2-1-132">Sales Screen</a></span>
  282. <br /> &#x00A0;<span class="subsectionToc">11.2 <a
  283. href="#x1-12700011.2" id="QQ2-1-133">Possibilities for Data Entry</a></span>
  284. <br /> &#x00A0;<span class="subsectionToc">11.3 <a
  285. href="#x1-12800011.3" id="QQ2-1-134">Hardware Support</a></span>
  286. <br /> &#x00A0;<span class="subsectionToc">11.4 <a
  287. href="#x1-12900011.4" id="QQ2-1-135">Reports</a></span>
  288. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">11.4.1 <a
  289. href="#x1-13000011.4.1" id="QQ2-1-136">Open Invoices</a></span>
  290. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">11.4.2 <a
  291. href="#x1-13100011.4.2" id="QQ2-1-137">Receipts</a></span>
  292. <br /> <span class="sectionToc">12 <a
  293. href="#x1-13200012" id="QQ2-1-138">General Ledger</a></span>
  294. <br /> &#x00A0;<span class="subsectionToc">12.1 <a
  295. href="#x1-13300012.1" id="QQ2-1-139">GL Basics</a></span>
  296. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">12.1.1 <a
  297. href="#x1-13400012.1.1" id="QQ2-1-140">Paper-based accounting systems and the GL</a></span>
  298. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">12.1.2 <a
  299. href="#x1-13500012.1.2" id="QQ2-1-141">Double Entry Examples on Paper</a></span>
  300. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">12.1.3 <a
  301. href="#x1-13600012.1.3" id="QQ2-1-142">The GL in Ledger-SMB</a></span>
  302. <br /> &#x00A0;<span class="subsectionToc">12.2 <a
  303. href="#x1-13700012.2" id="QQ2-1-143">Cash Transfer</a></span>
  304. <br /> &#x00A0;<span class="subsectionToc">12.3 <a
  305. href="#x1-13800012.3" id="QQ2-1-144">GL Transactions</a></span>
  306. <br /> &#x00A0;<span class="subsectionToc">12.4 <a
  307. href="#x1-13900012.4" id="QQ2-1-145">Payroll as a GL transaction</a></span>
  308. <br /> &#x00A0;<span class="subsectionToc">12.5 <a
  309. href="#x1-14000012.5" id="QQ2-1-147">Reconciliation</a></span>
  310. <br /> &#x00A0;<span class="subsectionToc">12.6 <a
  311. href="#x1-14100012.6" id="QQ2-1-148">Reports</a></span>
  312. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">12.6.1 <a
  313. href="#x1-14200012.6.1" id="QQ2-1-149">GL as access to almost everything else</a></span>
  314. <br /> <span class="sectionToc">13 <a
  315. href="#x1-14300013" id="QQ2-1-150">Recurring Transactions</a></span>
  316. <br /> <span class="sectionToc">14 <a
  317. href="#x1-14400014" id="QQ2-1-151">Financial Statements and Reports</a></span>
  318. <br /> &#x00A0;<span class="subsectionToc">14.1 <a
  319. href="#x1-14500014.1" id="QQ2-1-152">Cash v. Accrual Basis</a></span>
  320. <br /> &#x00A0;<span class="subsectionToc">14.2 <a
  321. href="#x1-14600014.2" id="QQ2-1-153">Viewing the Chart of Accounts and Transactions</a></span>
  322. <br /> &#x00A0;<span class="subsectionToc">14.3 <a
  323. href="#x1-14700014.3" id="QQ2-1-154">Trial Balance</a></span>
  324. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">14.3.1 <a
  325. href="#x1-14800014.3.1" id="QQ2-1-155">The Paper-based function of a Trial Balance</a></span>
  326. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">14.3.2 <a
  327. href="#x1-14900014.3.2" id="QQ2-1-156">Running the Trial Balance Report</a></span>
  328. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">14.3.3 <a
  329. href="#x1-15000014.3.3" id="QQ2-1-157">What if the Trial Balance doesn&#8217;t Balance?</a></span>
  330. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">14.3.4 <a
  331. href="#x1-15100014.3.4" id="QQ2-1-158">Trial Balance as a Summary of Account Activity</a></span>
  332. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">14.3.5 <a
  333. href="#x1-15200014.3.5" id="QQ2-1-159">Trial Balance as a Budget Planning Tool</a></span>
  334. <br /> &#x00A0;<span class="subsectionToc">14.4 <a
  335. href="#x1-15300014.4" id="QQ2-1-160">Income Statement</a></span>
  336. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">14.4.1 <a
  337. href="#x1-15400014.4.1" id="QQ2-1-161">Uses of an Income Statement</a></span>
  338. <br /> &#x00A0;<span class="subsectionToc">14.5 <a
  339. href="#x1-15500014.5" id="QQ2-1-162">Balance Sheet</a></span>
  340. <br /> &#x00A0;<span class="subsectionToc">14.6 <a
  341. href="#x1-15600014.6" id="QQ2-1-163">What if the Balance Sheet doesn&#8217;t balance?</a></span>
  342. <br /> &#x00A0;<span class="subsectionToc">14.7 <a
  343. href="#x1-15700014.7" id="QQ2-1-164">No Statement of Owner Equity?</a></span>
  344. <br /> <span class="sectionToc">15 <a
  345. href="#x1-15800015" id="QQ2-1-165">The Template System</a></span>
  346. <br /> &#x00A0;<span class="subsectionToc">15.1 <a
  347. href="#x1-15900015.1" id="QQ2-1-166">Text Templates</a></span>
  348. <br /> &#x00A0;<span class="subsectionToc">15.2 <a
  349. href="#x1-16000015.2" id="QQ2-1-167">HTML Templates</a></span>
  350. <br /> &#x00A0;<span class="subsectionToc">15.3 <a
  351. href="#x1-16100015.3" id="QQ2-1-168"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  352. class="E">E</span>X</span></span> Templates</a></span>
  353. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">15.3.1 <a
  354. 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
  355. class="E">E</span>X</span></span> ?</a></span>
  356. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">15.3.2 <a
  357. 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
  358. class="E">E</span>X</span></span> Templates</a></span>
  359. <br /> &#x00A0;<span class="subsectionToc">15.4 <a
  360. href="#x1-16400015.4" id="QQ2-1-171">Customizing Logos</a></span>
  361. <br /> &#x00A0;<span class="subsectionToc">15.5 <a
  362. href="#x1-16500015.5" id="QQ2-1-172">How are They Stored in the Filesystem?</a></span>
  363. <br /> &#x00A0;<span class="subsectionToc">15.6 <a
  364. href="#x1-16600015.6" id="QQ2-1-173">Upgrade Issues</a></span>
  365. <br /> <span class="sectionToc">16 <a
  366. href="#x1-16700016" id="QQ2-1-174">An Introduction to the CLI</a></span>
  367. <br /> &#x00A0;<span class="subsectionToc">16.1 <a
  368. href="#x1-16800016.1" id="QQ2-1-175">Conventions</a></span>
  369. <br /> &#x00A0;<span class="subsectionToc">16.2 <a
  370. href="#x1-16900016.2" id="QQ2-1-176">Preliminaries</a></span>
  371. <br /> &#x00A0;<span class="subsectionToc">16.3 <a
  372. href="#x1-17000016.3" id="QQ2-1-177">First Script: lsmb01-cli-example.sh</a></span>
  373. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">16.3.1 <a
  374. href="#x1-17100016.3.1" id="QQ2-1-178">Script 1 (Bash)</a></span>
  375. <br /> &#x00A0;<span class="subsectionToc">16.4 <a
  376. href="#x1-17200016.4" id="QQ2-1-179">Second Script: lsmb02-cli-example.pl</a></span>
  377. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">16.4.1 <a
  378. href="#x1-17300016.4.1" id="QQ2-1-180">Script 2 (Perl)</a></span>
  379. <br /> <span class="partToc">II&#x00A0;&#x00A0;<a
  380. href="#x1-174000II" id="QQ2-1-181">Technical Overview</a></span>
  381. <br /> <span class="sectionToc">17 <a
  382. href="#x1-17500017" id="QQ2-1-182">Basic Architecture</a></span>
  383. <br /> &#x00A0;<span class="subsectionToc">17.1 <a
  384. href="#x1-17600017.1" id="QQ2-1-183">The Software Stack</a></span>
  385. <br /> &#x00A0;<span class="subsectionToc">17.2 <a
  386. href="#x1-17700017.2" id="QQ2-1-185">Capacity Planning</a></span>
  387. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">17.2.1 <a
  388. href="#x1-17800017.2.1" id="QQ2-1-186">Scalability Strategies</a></span>
  389. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">17.2.2 <a
  390. href="#x1-17900017.2.2" id="QQ2-1-187">Database Maintenance</a></span>
  391. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">17.2.3 <a
  392. href="#x1-18000017.2.3" id="QQ2-1-188">Known issues</a></span>
  393. <br /> <span class="sectionToc">18 <a
  394. href="#x1-18100018" id="QQ2-1-189">Customization Possibilities</a></span>
  395. <br /> &#x00A0;<span class="subsectionToc">18.1 <a
  396. href="#x1-18200018.1" id="QQ2-1-190">Brief Guide to the Source Code</a></span>
  397. <br /> &#x00A0;<span class="subsectionToc">18.2 <a
  398. href="#x1-18300018.2" id="QQ2-1-191">Data Entry Screens</a></span>
  399. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">18.2.1 <a
  400. href="#x1-18400018.2.1" id="QQ2-1-192">Examples</a></span>
  401. <br /> &#x00A0;<span class="subsectionToc">18.3 <a
  402. href="#x1-18500018.3" id="QQ2-1-193">Extensions</a></span>
  403. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">18.3.1 <a
  404. href="#x1-18600018.3.1" id="QQ2-1-194">Examples</a></span>
  405. <br /> &#x00A0;<span class="subsectionToc">18.4 <a
  406. href="#x1-18700018.4" id="QQ2-1-195">Templates</a></span>
  407. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">18.4.1 <a
  408. href="#x1-18800018.4.1" id="QQ2-1-196">Examples</a></span>
  409. <br /> &#x00A0;<span class="subsectionToc">18.5 <a
  410. href="#x1-18900018.5" id="QQ2-1-197">Reports</a></span>
  411. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">18.5.1 <a
  412. href="#x1-19000018.5.1" id="QQ2-1-198">Examples</a></span>
  413. <br /> <span class="sectionToc">19 <a
  414. href="#x1-19100019" id="QQ2-1-199">Integration Possibilities</a></span>
  415. <br /> &#x00A0;<span class="subsectionToc">19.1 <a
  416. href="#x1-19200019.1" id="QQ2-1-200">Reporting Tools</a></span>
  417. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">19.1.1 <a
  418. href="#x1-19300019.1.1" id="QQ2-1-201">Examples</a></span>
  419. <br /> &#x00A0;<span class="subsectionToc">19.2 <a
  420. href="#x1-19400019.2" id="QQ2-1-202">Line of Business Tools on PostgreSQL</a></span>
  421. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">19.2.1 <a
  422. href="#x1-19500019.2.1" id="QQ2-1-203">Known Issues</a></span>
  423. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">19.2.2 <a
  424. href="#x1-19600019.2.2" id="QQ2-1-204">Strategies</a></span>
  425. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">19.2.3 <a
  426. href="#x1-19700019.2.3" id="QQ2-1-205">Examples</a></span>
  427. <br /> &#x00A0;<span class="subsectionToc">19.3 <a
  428. href="#x1-19800019.3" id="QQ2-1-206">Line of Business Tools on other RDBMS&#8217;s</a></span>
  429. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">19.3.1 <a
  430. href="#x1-19900019.3.1" id="QQ2-1-207">Strategies</a></span>
  431. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">19.3.2 <a
  432. href="#x1-20000019.3.2" id="QQ2-1-208">Integration Products and Open Source Projects</a></span>
  433. <br /> <span class="sectionToc">20 <a
  434. href="#x1-20100020" id="QQ2-1-209">Customization Guide</a></span>
  435. <br /> &#x00A0;<span class="subsectionToc">20.1 <a
  436. href="#x1-20200020.1" id="QQ2-1-210">General Information</a></span>
  437. <br /> &#x00A0;<span class="subsectionToc">20.2 <a
  438. href="#x1-20300020.2" id="QQ2-1-211">Customizing Templates</a></span>
  439. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.2.1 <a
  440. 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
  441. class="E">E</span>X</span></span></a></span>
  442. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.2.2 <a
  443. href="#x1-20500020.2.2" id="QQ2-1-213">Conditionals</a></span>
  444. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.2.3 <a
  445. href="#x1-20600020.2.3" id="QQ2-1-214">Loops</a></span>
  446. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.2.4 <a
  447. href="#x1-20700020.2.4" id="QQ2-1-215">File Inclusion</a></span>
  448. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.2.5 <a
  449. 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
  450. class="E">E</span>X</span></span></a></span>
  451. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.2.6 <a
  452. href="#x1-20900020.2.6" id="QQ2-1-217">Variable Substitution</a></span>
  453. <br /> &#x00A0;<span class="subsectionToc">20.3 <a
  454. href="#x1-21000020.3" id="QQ2-1-218">Customizing Forms</a></span>
  455. <br /> &#x00A0;<span class="subsectionToc">20.4 <a
  456. href="#x1-21100020.4" id="QQ2-1-219">Customizing Modules</a></span>
  457. <br /> &#x00A0;&#x00A0;<span class="subsubsectionToc">20.4.1 <a
  458. href="#x1-21200020.4.1" id="QQ2-1-220">Database Access</a></span>
  459. <br /> &#x00A0;<span class="subsectionToc">20.5 <a
  460. href="#x1-21300020.5" id="QQ2-1-221">CLI Examples</a></span>
  461. <br /> <span class="partToc">III&#x00A0;&#x00A0;<a
  462. href="#x1-214000III" id="QQ2-1-222">Appendix</a></span>
  463. <br /> <span class="sectionToc">A <a
  464. href="#x1-215000A" id="QQ2-1-223">Where to Go for More Information</a></span>
  465. <br /> <span class="sectionToc">B <a
  466. href="#x1-216000B" id="QQ2-1-224">Quick Tips</a></span>
  467. <br /> &#x00A0;<span class="subsectionToc">B.1 <a
  468. href="#x1-217000B.1" id="QQ2-1-225">Understanding Shipping Addresses and Carriers</a></span>
  469. <br /> &#x00A0;<span class="subsectionToc">B.2 <a
  470. href="#x1-218000B.2" id="QQ2-1-226">Handling bad debts</a></span>
  471. <br /> <span class="sectionToc">C <a
  472. href="#x1-219000C" id="QQ2-1-227">Step by Steps for Vertical Markets</a></span>
  473. <br /> &#x00A0;<span class="subsectionToc">C.1 <a
  474. href="#x1-220000C.1" id="QQ2-1-228">Common Installation Errors</a></span>
  475. <br /> &#x00A0;<span class="subsectionToc">C.2 <a
  476. href="#x1-221000C.2" id="QQ2-1-229">Retail With Light Manufacturing</a></span>
  477. <br /> <span class="sectionToc">D <a
  478. href="#x1-222000D" id="QQ2-1-230">Glossary</a></span>
  479. <br /> <span class="sectionToc">E <a
  480. href="#x1-223000E" id="QQ2-1-231">GNU Free Documentation License</a></span>
  481. <br /> &#x00A0;<span class="subsectionToc"> <a
  482. href="#Q1-1-232">1. APPLICABILITY AND DEFINITIONS</a></span>
  483. <br /> &#x00A0;<span class="subsectionToc"> <a
  484. href="#Q1-1-233">2. VERBATIM COPYING</a></span>
  485. <br /> &#x00A0;<span class="subsectionToc"> <a
  486. href="#Q1-1-234">3. COPYING IN QUANTITY</a></span>
  487. <br /> &#x00A0;<span class="subsectionToc"> <a
  488. href="#Q1-1-235">4. MODIFICATIONS</a></span>
  489. <br /> &#x00A0;<span class="subsectionToc"> <a
  490. href="#Q1-1-236">5. COMBINING DOCUMENTS</a></span>
  491. <br /> &#x00A0;<span class="subsectionToc"> <a
  492. href="#Q1-1-237">6. COLLECTIONS OF DOCUMENTS</a></span>
  493. <br /> &#x00A0;<span class="subsectionToc"> <a
  494. href="#Q1-1-238">7. AGGREGATION WITH INDEPENDENT WORKS</a></span>
  495. <br /> &#x00A0;<span class="subsectionToc"> <a
  496. href="#Q1-1-239">8. TRANSLATION</a></span>
  497. <br /> &#x00A0;<span class="subsectionToc"> <a
  498. href="#Q1-1-240">9. TERMINATION</a></span>
  499. <br /> &#x00A0;<span class="subsectionToc"> <a
  500. href="#Q1-1-241">10. FUTURE REVISIONS OF THIS LICENSE</a></span>
  501. <br /> &#x00A0;<span class="subsectionToc"> <a
  502. href="#Q1-1-242">ADDENDUM: How to use this License for your documents</a></span>
  503. </div>
  504. <!--l. 44--><p class="noindent">
  505. </p>
  506. <h3 class="likesectionHead"><a
  507. id="x1-2000"></a>List of Figures</h3>
  508. <div class="tableofcontents"><span class="lofToc">1&#x00A0;<a
  509. href="#x1-1090011">Simple AR Service Invoice Workflow Example</a></span><br /><span class="lofToc">2&#x00A0;<a
  510. href="#x1-1100012">AR Workflow with
  511. Shipping</a></span><br /><span class="lofToc">3&#x00A0;<a
  512. href="#x1-1110013">Complex AR Workflow with Shipping</a></span><br /><span class="lofToc">4&#x00A0;<a
  513. href="#x1-1160014">Simple AP Workflow</a></span><br /><span class="lofToc">5&#x00A0;<a
  514. href="#x1-1170015">AP
  515. Workflow with Receiving</a></span><br /><span class="lofToc">6&#x00A0;<a
  516. href="#x1-1180016">Complex AP Workflow</a></span><br /><span class="lofToc">7&#x00A0;<a
  517. href="#x1-1390017">Payroll as a GL Transaction (Purely
  518. fictitious numbers)</a></span><br /><span class="lofToc">8&#x00A0;<a
  519. href="#x1-1760018">The Ledger-SMB software stack in a Typical Implementation</a></span><br />
  520. </div>
  521. <h1 class="partHead"><span class="titlemark">Part&#x00A0;I<br /></span><a
  522. id="x1-3000I"></a>Ledger-SMB and Business Processes</h1>
  523. <h3 class="sectionHead"><span class="titlemark">1 </span> <a
  524. id="x1-40001"></a>Introduction to Ledger-SMB</h3>
  525. <!--l. 56--><p class="noindent">
  526. </p>
  527. <h4 class="subsectionHead"><span class="titlemark">1.1 </span> <a
  528. id="x1-50001.1"></a>Why Ledger-SMB</h4>
  529. <!--l. 59--><p class="noindent">
  530. </p>
  531. <h5 class="subsubsectionHead"><span class="titlemark">1.1.1 </span> <a
  532. id="x1-60001.1.1"></a>Advantages of Ledger-SMB</h5>
  533. <ul class="itemize1">
  534. <li class="itemize">Flexibility and Central Management
  535. </li>
  536. <li class="itemize">Accessibility over the Internet (for some users)
  537. </li>
  538. <li class="itemize">Relatively open data format
  539. </li>
  540. <li class="itemize">Integration with other tools
  541. </li>
  542. <li class="itemize">Excellent accounting options for Linux users
  543. </li>
  544. <li class="itemize">Open Source
  545. </li>
  546. <li class="itemize">Flexible, open framework that can be extended or modified to fit your business.
  547. </li>
  548. <li class="itemize">Security-conscious development community.</li></ul>
  549. <!--l. 73--><p class="noindent">
  550. </p>
  551. <h5 class="subsubsectionHead"><span class="titlemark">1.1.2 </span> <a
  552. id="x1-70001.1.2"></a>Key Features</h5>
  553. <ul class="itemize1">
  554. <li class="itemize">Accounts Receivable
  555. <ul class="itemize2">
  556. <li class="itemize">Track sales by customer
  557. </li>
  558. <li class="itemize">Issue Invoices, Statements, Receipts, and more
  559. </li>
  560. <li class="itemize">Do job costing and time entry for customer projects
  561. </li>
  562. <li class="itemize">Manage sales orders and quotations
  563. </li>
  564. <li class="itemize">Ship items from sales orders</li></ul>
  565. </li>
  566. <li class="itemize">Accounts Payable
  567. <ul class="itemize2">
  568. <li class="itemize">Track purchases and debts by vendor
  569. </li>
  570. <li class="itemize">Issue RFQ&#8217;s Purchase Orders, etc.
  571. </li>
  572. <li class="itemize">Track items received from purchase orders</li></ul>
  573. </li>
  574. <li class="itemize">Budgeting
  575. <ul class="itemize2">
  576. <li class="itemize">Track expenditures and income across multiple departments
  577. </li>
  578. <li class="itemize">Track all transactions across departments</li></ul>
  579. </li>
  580. <li class="itemize">Check Printing
  581. <ul class="itemize2">
  582. <li class="itemize">Customize template for any check form</li></ul>
  583. </li>
  584. <li class="itemize">General Ledger
  585. </li>
  586. <li class="itemize">Inventory Management
  587. <ul class="itemize2">
  588. <li class="itemize">Track sales and orders of parts
  589. </li>
  590. <li class="itemize">Track cost of goods sold using First In/First Out method
  591. </li>
  592. <li class="itemize">List all parts below reorder point
  593. </li>
  594. <li class="itemize">Track ordering requirements
  595. </li>
  596. <li class="itemize">Track, ship, receive, and transfer parts to and from multiple warehouses</li></ul>
  597. </li>
  598. <li class="itemize">Localization
  599. <ul class="itemize2">
  600. <li class="itemize">Provide Localized Translations for Part Descriptions
  601. </li>
  602. <li class="itemize">Provide Localized Templates for Invoices, Orders, Checks, and more
  603. </li>
  604. <li class="itemize">Select language per customer, invoice, order, etc.</li></ul>
  605. </li>
  606. <li class="itemize">Manufacturing
  607. <ul class="itemize2">
  608. <li class="itemize">Track cost of goods sold for manufactured goods (assemblies)
  609. </li>
  610. <li class="itemize">Create assemblies and stock assemblies, tracking materials on hand</li></ul>
  611. </li>
  612. <li class="itemize">Multi-company/Multiuser
  613. <ul class="itemize2">
  614. <li class="itemize">One isolated database per company
  615. </li>
  616. <li class="itemize">Users can have localized systems independent of company data set</li></ul>
  617. </li>
  618. <li class="itemize">Point of Sale
  619. <ul class="itemize2">
  620. <li class="itemize">Run multiple cash registers against main Ledger-SMB installation
  621. </li>
  622. <li class="itemize">Suitable for retail stores and more
  623. </li>
  624. <li class="itemize">Credit card processing via TrustCommerce
  625. </li>
  626. <li class="itemize">Supports some POS hardware out of the box including:
  627. <ul class="itemize3">
  628. <li class="itemize">Logic Controls PD3000 pole displays (serial or parallel)
  629. </li>
  630. <li class="itemize">Basic text-based receipt printers
  631. </li>
  632. <li class="itemize">Keyboard wedge barcode scanners
  633. </li>
  634. <li class="itemize">Keyboard wedge magnetic card readers
  635. </li>
  636. <li class="itemize">Printer-attached cash drawers</li></ul>
  637. </li></ul>
  638. </li>
  639. <li class="itemize">Price Matrix
  640. <ul class="itemize2">
  641. <li class="itemize">Track different prices for vendors and customers across the board
  642. </li>
  643. <li class="itemize">Provide discounts to groups of customers per item or across the board
  644. </li>
  645. <li class="itemize">Store vendors&#8217; prices independent of the other last cost in the parts record</li></ul>
  646. </li>
  647. <li class="itemize">Reporting
  648. <ul class="itemize2">
  649. <li class="itemize">Supports all basic financial statements
  650. </li>
  651. <li class="itemize">Easily display customer history, sales data, and additional information
  652. </li>
  653. <li class="itemize">Open framework allows for ODBC connections to be used to generate reports using third
  654. party reporting tools.</li></ul>
  655. </li>
  656. <li class="itemize">Tax
  657. <ul class="itemize2">
  658. <li class="itemize">Supports Retail Sales Tax and Value Added Tax type systems
  659. </li>
  660. <li class="itemize">Flexible framework allows one to customize reports to change the tax reporting framework
  661. to meet any local requirement.</li></ul>
  662. </li></ul>
  663. <!--l. 173--><p class="noindent">
  664. </p>
  665. <h4 class="subsectionHead"><span class="titlemark">1.2 </span> <a
  666. id="x1-80001.2"></a>Limitations of Ledger-SMB</h4>
  667. <ul class="itemize1">
  668. <li class="itemize">No payroll module (Payroll must be done manually)
  669. </li>
  670. <li class="itemize">Some integration limitations
  671. </li>
  672. <li class="itemize">Further development/maintenance requires a knowledge of a relatively broad range of
  673. technologies</li></ul>
  674. <!--l. 182--><p class="noindent">
  675. </p>
  676. <h4 class="subsectionHead"><span class="titlemark">1.3 </span> <a
  677. id="x1-90001.3"></a>System Requirements of Ledger-SMB</h4>
  678. <ul class="itemize1">
  679. <li class="itemize">PostgreSQL
  680. </li>
  681. <li class="itemize">A CGI-enabled Web Server (for example, Apache)
  682. </li>
  683. <li class="itemize">Perl 5.8.x
  684. </li>
  685. <li class="itemize">An operating system which supports the above software (usually Linux, though Windows,
  686. MacOS X, etc. do work)
  687. </li>
  688. <li class="itemize"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  689. class="E">E</span>X</span></span>&#x00A0;(optional) is required to create PDF or Postscript invoices
  690. </li>
  691. <li class="itemize">The following CPAN modules:
  692. <ul class="itemize2">
  693. <li class="itemize">Data::Dumper
  694. </li>
  695. <li class="itemize">Locale::Maketext
  696. </li>
  697. <li class="itemize">Locale::Maketext::Lexicon
  698. </li>
  699. <li class="itemize">MIME::Base64
  700. </li>
  701. <li class="itemize">Digest::MD5
  702. </li>
  703. <li class="itemize">HTML::Entities
  704. </li>
  705. <li class="itemize">DBI
  706. </li>
  707. <li class="itemize">DBD::Pg
  708. </li>
  709. <li class="itemize">Math::BigFloat
  710. </li>
  711. <li class="itemize">IO::File
  712. </li>
  713. <li class="itemize">Encode
  714. </li>
  715. <li class="itemize">Locale::Country
  716. </li>
  717. <li class="itemize">Locale::Language
  718. </li>
  719. <li class="itemize">Time::Local
  720. </li>
  721. <li class="itemize">Cwd
  722. </li>
  723. <li class="itemize">Config::Std
  724. </li>
  725. <li class="itemize">MIME::Lite</li></ul>
  726. </li></ul>
  727. <!--l. 214--><p class="noindent">
  728. </p>
  729. <h3 class="sectionHead"><span class="titlemark">2 </span> <a
  730. id="x1-100002"></a>User Account and Database Administration Basics</h3>
  731. <!--l. 216--><p class="noindent">These functions are accessed via the admin.pl script in the installed directory of Ledger-SMB.
  732. </p><!--l. 220--><p class="noindent">
  733. </p>
  734. <h4 class="subsectionHead"><span class="titlemark">2.1 </span> <a
  735. id="x1-110002.1"></a>Companies and Datasets</h4>
  736. <!--l. 222--><p class="noindent">Ledger-SMB stores its information in locale-specific data sets. When a dataset is created, it sets various
  737. defaults such as currency, a basic chart of accounts setup, and so forth. Note that the default setup is for
  738. Canada, where the author of the software resides.
  739. </p><!--l. 227--><p class="indent"> Datasets are stored as PostgreSQL databases. The application is designed with the idea that each dataset
  740. will represent exactly one company. If a customer is working with multiple companies, he/she must create a
  741. dataset to for each.
  742. </p><!--l. 232--><p class="indent"> When creating a dataset, the application asks for both a username and a superusername. If the
  743. superuser&#8217;s information is not filled in, Ledger-SMB will attempt to populate an existing dataset, but if this
  744. information is filled in, the program will log into the PostgreSQL cluster with the superusername and
  745. password, create the database, and attempt to add Plpgsql to it.
  746. </p><!--l. 238--><p class="noindent">
  747. </p>
  748. <h4 class="subsectionHead"><span class="titlemark">2.2 </span> <a
  749. id="x1-120002.2"></a>How to Create a User</h4>
  750. <!--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
  751. when it is saved, the user is created.
  752. </p><!--l. 245--><p class="noindent">
  753. </p>
  754. <h4 class="subsectionHead"><span class="titlemark">2.3 </span> <a
  755. id="x1-130002.3"></a>Permissions</h4>
  756. <!--l. 247--><p class="noindent">The permissions system is not rigorously enforced within Ledger-SMB, in the sense that the
  757. permissions API is generally not used in the application itself. Instead permissions are used to
  758. enable/disable menu options. Setting an enforcement of such permissions would require some custom
  759. programming at the present time. Most organizations, however, find that the current system is
  760. adequate.
  761. </p><!--l. 254--><p class="indent"> The checkboxes which are marked enable menu entries. Those that are unchecked disable those entries on
  762. the menu.
  763. </p><!--l. 258--><p class="noindent">
  764. </p>
  765. <h4 class="subsectionHead"><span class="titlemark">2.4 </span> <a
  766. id="x1-140002.4"></a>User Account Types</h4>
  767. <ul class="itemize1">
  768. <li class="itemize">User is a general user of the system
  769. </li>
  770. <li class="itemize">Managers often are able to see a larger amount of data
  771. </li>
  772. <li class="itemize">Administrators have full access to the system</li></ul>
  773. <!--l. 266--><p class="noindent">
  774. </p>
  775. <h4 class="subsectionHead"><span class="titlemark">2.5 </span> <a
  776. id="x1-150002.5"></a>Other Features</h4>
  777. <ul class="itemize1">
  778. <li class="itemize">Lock System allows one to lock users out of the system while maintenance is performed. This is
  779. only necessary during upgrades or maintenance which results in the RDBMS being offline.
  780. </li>
  781. <li class="itemize">Change Admin Password changes the administrative password.
  782. </li>
  783. <li class="itemize">Logout terminates the admin session.</li></ul>
  784. <!--l. 276--><p class="noindent">
  785. </p>
  786. <h3 class="sectionHead"><span class="titlemark">3 </span> <a
  787. id="x1-160003"></a>Chart of Accounts</h3>
  788. <!--l. 278--><p class="noindent">The Chart of Accounts provides a basic overview of the logical structure of the accounting program. One can
  789. customize this chart to allow for tracking of different sorts of information.
  790. </p><!--l. 283--><p class="noindent">
  791. </p>
  792. <h4 class="subsectionHead"><span class="titlemark">3.1 </span> <a
  793. id="x1-170003.1"></a>Introduction to Double Entry Bookkeeping</h4>
  794. <!--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
  795. bookkeeping. This section provides a brief overview of the essential concepts. There is a list of references for
  796. further reading at the end.
  797. </p><!--l. 289--><p class="noindent">
  798. </p>
  799. <h5 class="subsubsectionHead"><span class="titlemark">3.1.1 </span> <a
  800. id="x1-180003.1.1"></a>Business Entity</h5>
  801. <!--l. 290--><p class="noindent">You don&#8217;t want to mix your personal expenses and income with that of the business or you will
  802. not be able to tell how much money it is making (if any). For the same reason you will want
  803. to keep track of how much money you put into and take out of the business so you will want
  804. to set up a completely seperate set of records for it and treat it almost as if it had a life of its
  805. own.
  806. </p><!--l. 297--><p class="noindent">
  807. </p>
  808. <h5 class="subsubsectionHead"><span class="titlemark">3.1.2 </span> <a
  809. id="x1-190003.1.2"></a>Double Entry</h5>
  810. <!--l. 298--><p class="noindent">Examples: </p>
  811. <ul class="itemize1">
  812. <li class="itemize">When you buy you pay money and receive goods.
  813. </li>
  814. <li class="itemize">When you sell you get money and give goods.
  815. </li>
  816. <li class="itemize">When you borrow you get money and give a promise to pay it back.
  817. </li>
  818. <li class="itemize">When you lend you give money and get a promise to pay it back.
  819. </li>
  820. <li class="itemize">When you sell on credit you give goods and get a promise to pay.
  821. </li>
  822. <li class="itemize">When you buy on credit you give a promise to pay and get goods.</li></ul>
  823. <!--l. 308--><p class="indent"> You need to record both sides of each transaction: thus double entry. Furthermore, you want to organize
  824. your entries, recording those having to do with money in one place, value of goods bought and sold in
  825. another, money owed in yet another, etc. Hence you create accounts, and record each half of each transaction
  826. in an appropriate account. Of course, you won&#8217;t have to actually record the amount in more than one place
  827. yourself: the program takes care of that.
  828. </p><!--l. 316--><p class="noindent">
  829. </p>
  830. <h5 class="subsubsectionHead"><span class="titlemark">3.1.3 </span> <a
  831. id="x1-200003.1.3"></a>Accounts</h5>
  832. <!--l. 318--><p class="noindent">
  833. </p><dl class="description"><dt class="description">
  834. <span
  835. class="pplb8t-">Assets</span> </dt><dd
  836. class="description">Valuable stuff the business owns such as money and goods available for sale
  837. </dd><dt class="description">
  838. <span
  839. class="pplb8t-">Liabilities</span> </dt><dd
  840. class="description">Debts owned by the business such as bank loans and unpaid bills
  841. </dd><dt class="description">
  842. <span
  843. class="pplb8t-">Equity or Capital</span> </dt><dd
  844. class="description">What would be left for the owner if all the assets were converted to money and
  845. all the liabilities paid off ("Share Capital" on the LedgerSMB default chart of accounts: not to be
  846. confused with "Capital Assets".)
  847. </dd><dt class="description">
  848. <span
  849. class="pplb8t-">Revenue</span> </dt><dd
  850. class="description">Income from business activity: increases Equity
  851. </dd><dt class="description">
  852. <span
  853. class="pplb8t-">Expense</span> </dt><dd
  854. class="description">The light bill, the cost of goods sold, etc: decreases Equity</dd></dl>
  855. <!--l. 330--><p class="noindent">All other accounts are subdivisions of these. The relationship between the top-level accounts
  856. is often stated in the form of the Accounting Equation (don&#8217;t worry: you won&#8217;t have to solve
  857. it):
  858. </p><!--l. 334--><p class="indent"> Assets = Liabilities + Equity + (Revenue - Expense)
  859. </p><!--l. 336--><p class="indent"> You won&#8217;t actually use this equation while doing your bookkeeping, but it&#8217;s a useful tool for
  860. understanding how the system works.
  861. </p><!--l. 339--><p class="noindent">
  862. </p>
  863. <h5 class="subsubsectionHead"><span class="titlemark">3.1.4 </span> <a
  864. id="x1-210003.1.4"></a>Debits and Credits</h5>
  865. <!--l. 341--><p class="noindent">Traditional paper accounting systems used a two-column form in which all increases went in one column
  866. and all deceases in the other. For asset and expense accounts increases went in the left column and decreases
  867. in the right. For liability and capital accounts decreases went in the left column and increases in the right.
  868. Looking at the accounting equation we see that assets are on the left, so it is logical that asset increases would
  869. go on the left. Libilities, capital, and revenue are on the right so it is logical that their increase would go on
  870. the right. Expenses, however, are on the right, so why do their increases go on the left? Because expenses are
  871. subtracted from the right side of the equation and so expense increases decrease the right side of the
  872. equation.
  873. </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
  874. credits. Neither is "negative".
  875. </p>
  876. <ul class="itemize1">
  877. <li class="itemize">Debits increase assets
  878. </li>
  879. <li class="itemize">Debits increase expense
  880. </li>
  881. <li class="itemize">Credits increase liabilities
  882. </li>
  883. <li class="itemize">Credits increase capital
  884. </li>
  885. <li class="itemize">Credits increase revenue</li></ul>
  886. <!--l. 364--><p class="indent"> Examples:
  887. </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
  888. account. This is correct: your account is money the bank owes you and so is a liability from their
  889. point of view. Your deposit increased this liability and so they will credit it. They will make an
  890. equal debit to their cash account. When you return you will debit your bank deposits account
  891. because you have increased that asset and credit cash on hand because you have decreased that
  892. one.
  893. </p><!--l. 375--><p class="noindent">
  894. </p>
  895. <h5 class="subsubsectionHead"><span class="titlemark">3.1.5 </span> <a
  896. id="x1-220003.1.5"></a>Accrual</h5>
  897. <!--l. 377--><p class="noindent">Early accounting systems were usually run on a cash basis. One generally did not consider money owed to
  898. affect the financial health of a company, so expenses posted when paid as did income.
  899. </p><!--l. 381--><p class="indent"> The problem with this approach is that it becomes very difficult or impossible to truly understand the
  900. exact nature of the financial health of a business. One cannot get the full picture of the financial health of a
  901. business because outstanding debts are not considered. Futhermore, this does not allow for revenue to
  902. be tied to cost effectively, so it becomes difficult to assess how profitable a given activity truly
  903. is.
  904. </p><!--l. 388--><p class="indent"> To solve this problem, accrual-based systems were designed. The basic principle is that income and
  905. expense should be posted as they are incurred, or accrued. This allows one to track income relative to
  906. expense for specific projects or operations, and make better decisions about which activities will help one
  907. maximize profitability.
  908. </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
  909. you have just completed. The customer pays the bill after 30 days. In a cash based system, you would post
  910. the income at the time when the customer pays, while in an accrual system, the income is posted at the time
  911. when the project is completed.
  912. </p><!--l. 400--><p class="noindent">
  913. </p>
  914. <h5 class="subsubsectionHead"><span class="titlemark">3.1.6 </span> <a
  915. id="x1-230003.1.6"></a>References</h5>
  916. <!--l. 402--><p class="noindent"><span class="obeylines-h"><a
  917. 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>
  918. <br class="newline" />Discussion of debits and credits as well as links to other accounting subjects.
  919. <br class="newline" />
  920. </p><!--l. 405--><p class="noindent"><span class="obeylines-h"><a
  921. href="http://www.computer-consulting.com/accttips.htm" class="url" >http://www.computer-consulting.com/accttips.htm</a></span>
  922. <br class="newline" />Discussion of double entry bookkeeping.
  923. <br class="newline" />
  924. </p><!--l. 408--><p class="noindent"><span class="obeylines-h"><a
  925. href="http://www.minnesota.com/~tom/sql-ledger/howtos/" class="url" >http://www.minnesota.com/~tom/sql-ledger/howtos/</a></span>
  926. <br class="newline" />A short glossary, some links, and a FAQ (which makes the "credit=negative number" error). The FAQ focuses
  927. on SQL-Ledger, LedgerSMB&#8217;s ancestor.
  928. <br class="newline" />
  929. </p><!--l. 412--><p class="noindent"><span class="obeylines-h"><a
  930. href="http://bitscafe.com/pub2/etp/sql-ledger-notes#expenses" class="url" >http://bitscafe.com/pub2/etp/sql-ledger-notes#expenses</a></span>
  931. <br class="newline" />Some notes on using SQL-Ledger (LedgerSMB&#8217;s ancestor).
  932. <br class="newline" />
  933. </p><!--l. 415--><p class="noindent"><span class="obeylines-h"><a
  934. href="http://en.wikipedia.org/wiki/List_of_accounting_topics" class="url" >http://en.wikipedia.org/wiki/List_of_accounting_topics</a></span>
  935. <br class="newline" />Wikipedia articles on accounting.
  936. <br class="newline" />
  937. </p><!--l. 418--><p class="noindent"><span class="obeylines-h"><a
  938. 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>
  939. <br class="newline" />Basic accounting tutorial.
  940. <br class="newline" />
  941. </p><!--l. 421--><p class="noindent"><span class="obeylines-h"><a
  942. href="http://www.asset-analysis.com/glossary/glo_index.html" class="url" >http://www.asset-analysis.com/glossary/glo_index.html</a></span>
  943. <br class="newline" />Financial dictionary and glossary.
  944. <br class="newline" />
  945. </p><!--l. 424--><p class="noindent"><span class="obeylines-h"><a
  946. href="http://www.geocities.com/chapleaucree/educational/FinanceHandbook.html" class="url" >http://www.geocities.com/chapleaucree/educational/FinanceHandbook.html</a></span>
  947. <br class="newline" />Financial glossary.
  948. <br class="newline" />
  949. </p><!--l. 427--><p class="noindent"><span class="obeylines-h"><a
  950. href="http://www.quickmba.com/accounting/fin/" class="url" >http://www.quickmba.com/accounting/fin/</a></span>
  951. <br class="newline" />Explanation of fundamentals of accounting, including good discussions of debits and credits and of
  952. double-entry.
  953. </p><!--l. 432--><p class="noindent">
  954. </p>
  955. <h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a
  956. id="x1-240003.2"></a>General Guidelines on Numbering Accounts</h4>
  957. <!--l. 434--><p class="noindent">In general, most drop-down boxes in Ledger-SMB order the accounts by account number. Therefore by
  958. setting appropriate account numbers, one can affect the default values.
  959. </p><!--l. 438--><p class="indent"> A second consideration is to try to keep things under each heading appropriate to that heading.
  960. Thus setting an account number for a bank loan account in the assets category is not generally
  961. advisable.
  962. </p><!--l. 443--><p class="noindent">
  963. </p>
  964. <h4 class="subsectionHead"><span class="titlemark">3.3 </span> <a
  965. id="x1-250003.3"></a>Adding/Modifying Accounts</h4>
  966. <!--l. 445--><p class="noindent">These features are listed under System-&#x003E;Chart of Accounts. One can list the accounts and click on the
  967. account number to modify them or click on the "add account" option to create new accounts.
  968. </p>
  969. <ul class="itemize1">
  970. <li class="itemize">Headings are just broad categories and do not store values themselves, while accounts are used
  971. to store the transactional information.
  972. </li>
  973. <li class="itemize">One cannot have an account that is a summary account (like AR) and also has another function.
  974. </li>
  975. <li class="itemize">GIFI is mostly of interest to Canadian customers but it can be used to create reports of account
  976. hierarchies.</li></ul>
  977. <!--l. 459--><p class="noindent">
  978. </p>
  979. <h4 class="subsectionHead"><span class="titlemark">3.4 </span> <a
  980. id="x1-260003.4"></a>Listing Account Balances and Transactions</h4>
  981. <!--l. 461--><p class="noindent">One can list the account balances via the Reports-&#x003E;Chart of Accounts report. Clicking on the account number
  982. will provide a ledger for that account.
  983. </p><!--l. 466--><p class="noindent">
  984. </p>
  985. <h3 class="sectionHead"><span class="titlemark">4 </span> <a
  986. id="x1-270004"></a>Administration</h3>
  987. <!--l. 468--><p class="noindent">This section covers other (non-Chart of Accounts) aspects to the setup of the Ledger-SMB accounting
  988. package. These are generally accessed in the System submenu.
  989. </p><!--l. 473--><p class="noindent">
  990. </p>
  991. <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a
  992. id="x1-280004.1"></a>Taxes, Defaults, and Preferences</h4>
  993. <!--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
  994. one to install different tax modules and then select which taxes are applied by which programming modules.
  995. The sales tax module has access to everything on the submitted form so it is able to make complex
  996. determinations on what is taxable based on arbitrary criteria.
  997. </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
  998. with the simple module), while the ordering is an integer which allows one to specify a tax run which occurs
  999. on the form after any rules with lower entries in this box. This allows for compounding of sales tax (for
  1000. example, when PST applies to the total and GST as well).
  1001. </p><!--l. 485--><p class="noindent">
  1002. </p>
  1003. <h5 class="subsubsectionHead"><span class="titlemark">4.1.1 </span> <a
  1004. id="x1-290004.1.1"></a>Adding A Sales Tax Account</h5>
  1005. <!--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
  1006. account is a liability&#8211; it represents money owed by the business to the government.
  1007. </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
  1008. the "tax" checkboxes.
  1009. </p><!--l. 494--><p class="indent"> Once this account is created, one can set the tax amount.
  1010. </p><!--l. 497--><p class="noindent">
  1011. </p>
  1012. <h5 class="subsubsectionHead"><span class="titlemark">4.1.2 </span> <a
  1013. id="x1-300004.1.2"></a>Setting a Sales Tax Amount</h5>
  1014. <!--l. 499--><p class="noindent">Go to System-&#x003E;Defaults and the tax account will be listed near the bottom of the page. The rate can be set
  1015. there.
  1016. </p><!--l. 503--><p class="noindent">
  1017. </p>
  1018. <h5 class="subsubsectionHead"><span class="titlemark">4.1.3 </span> <a
  1019. id="x1-310004.1.3"></a>Default Account Setup</h5>
  1020. <!--l. 505--><p class="noindent">These accounts are the default accounts for part creation and foreign exchange tracking.
  1021. </p><!--l. 509--><p class="noindent">
  1022. </p>
  1023. <h5 class="subsubsectionHead"><span class="titlemark">4.1.4 </span> <a
  1024. id="x1-320004.1.4"></a>Currency Setup</h5>
  1025. <!--l. 511--><p class="noindent">The US accounts list this as USD:CAD:EUR. One can add other currencies in here, such as IDR (Indonesian
  1026. Rupiah), etc. Currencies are separated by colons.
  1027. </p><!--l. 516--><p class="noindent">
  1028. </p>
  1029. <h5 class="subsubsectionHead"><span class="titlemark">4.1.5 </span> <a
  1030. id="x1-330004.1.5"></a>Sequence Settings</h5>
  1031. <!--l. 518--><p class="noindent">These sequences are used to generate user identifiers for quotations, invoices, and the like. If an identifier is
  1032. not added, the next number will be used.
  1033. </p><!--l. 522--><p class="indent"> A common application is to set invoices, etc. to start at 1000 in order to hide the number of issued invoices
  1034. from a customer.
  1035. </p><!--l. 525--><p class="indent"> Leading zeros are preserved. Other special values which can be embedded using <span
  1036. class="cmmi-10">&#x003C;</span>?lsmb ?<span
  1037. class="cmmi-10">&#x003E; </span>tags
  1038. include:
  1039. </p><!--l. 528--><p class="indent">
  1040. </p><dl class="description"><dt class="description">
  1041. <span
  1042. class="pplb8t-">DATE</span> </dt><dd
  1043. class="description">expands to the current date
  1044. </dd><dt class="description">
  1045. <span
  1046. class="pplb8t-">YYMMDD</span> </dt><dd
  1047. class="description">expands to a six-digit version of the date. The components of this date can be re-arranged
  1048. in any order, so MMDDYY, DDMMYY, or even just MMYY are all options.
  1049. </dd><dt class="description">
  1050. <span
  1051. class="pplb8t-">NAME</span> </dt><dd
  1052. class="description">expands to the name of the customer or vendor
  1053. </dd><dt class="description">
  1054. <span
  1055. class="pplb8t-">BUSINESS</span> </dt><dd
  1056. class="description">expands to the type of business assigned to the customer or ventor.
  1057. </dd><dt class="description">
  1058. <span
  1059. class="pplb8t-">DESCRIPTION</span> </dt><dd
  1060. class="description">expands to the description of the part. Valid only for parts.
  1061. </dd><dt class="description">
  1062. <span
  1063. class="pplb8t-">ITEM</span> </dt><dd
  1064. class="description">expands to the item field. Valid only for parts.
  1065. </dd><dt class="description">
  1066. <span
  1067. class="pplb8t-">PERISCOPE</span> </dt><dd
  1068. class="description">expands to the partsgroup. Valid only for parts.
  1069. </dd><dt class="description">
  1070. <span
  1071. class="pplb8t-">PHONE</span> </dt><dd
  1072. class="description">expands to the telephoen number for customers and vendors.</dd></dl>
  1073. <!--l. 542--><p class="noindent">
  1074. </p>
  1075. <h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
  1076. id="x1-340004.2"></a>Audit Control</h4>
  1077. <!--l. 544--><p class="noindent">Auditability is a core concern of the architects of any accounting system. Such ensures that any modification
  1078. to the accounting information leaves a trail which can be followed to determine the nature of the change.
  1079. Audits can help ensure that the data in the accounting system is meaningful and accurate, and that no foul
  1080. play (such as embezzlement) is occurring.
  1081. </p><!--l. 552--><p class="noindent">
  1082. </p>
  1083. <h5 class="subsubsectionHead"><span class="titlemark">4.2.1 </span> <a
  1084. id="x1-350004.2.1"></a>Explaining transaction reversal</h5>
  1085. <!--l. 554--><p class="noindent">In paper accounting systems, it was necessary to have a means to authoritatively track corrections of
  1086. mistakes. The means by which this was done was known as "transaction reversal."
  1087. </p><!--l. 558--><p class="indent"> When a mistake would be made, one would then reverse the transaction and then enter it in correctly. For
  1088. example, let us say that an office was renting space for $300 per month. Let us say that they inadvertently
  1089. entered it in as a $200 expense.
  1090. </p><!--l. 563--><p class="indent"> The original transaction would be:
  1091. </p>
  1092. <div class="tabular"><table class="tabular"
  1093. cellspacing="0" cellpadding="0" rules="groups"
  1094. ><colgroup id="TBL-2-1g"><col
  1095. id="TBL-2-1" /></colgroup><colgroup id="TBL-2-2g"><col
  1096. id="TBL-2-2" /></colgroup><colgroup id="TBL-2-3g"><col
  1097. id="TBL-2-3" /></colgroup><tr
  1098. style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1"
  1099. class="td11">Account </td><td style="white-space:nowrap; text-align:right;" id="TBL-2-1-2"
  1100. class="td11">Debit</td><td style="white-space:nowrap; text-align:right;" id="TBL-2-1-3"
  1101. class="td11">Credit</td>
  1102. </tr><tr
  1103. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  1104. style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1"
  1105. class="td11">5760 Rent </td><td style="white-space:nowrap; text-align:right;" id="TBL-2-2-2"
  1106. class="td11"> $200</td><td style="white-space:nowrap; text-align:right;" id="TBL-2-2-3"
  1107. class="td11"> </td>
  1108. </tr><tr
  1109. style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1"
  1110. class="td11">2100 Accounts Payable</td><td style="white-space:nowrap; text-align:right;" id="TBL-2-3-2"
  1111. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-2-3-3"
  1112. class="td11"> $200</td>
  1113. </tr><tr
  1114. style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-1"
  1115. class="td11"> </td> </tr></table>
  1116. </div>
  1117. <!--l. 578--><p class="indent"> The reversal would be:
  1118. </p>
  1119. <div class="tabular"><table class="tabular"
  1120. cellspacing="0" cellpadding="0" rules="groups"
  1121. ><colgroup id="TBL-3-1g"><col
  1122. id="TBL-3-1" /></colgroup><colgroup id="TBL-3-2g"><col
  1123. id="TBL-3-2" /></colgroup><colgroup id="TBL-3-3g"><col
  1124. id="TBL-3-3" /></colgroup><tr
  1125. style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
  1126. class="td11">Account </td><td style="white-space:nowrap; text-align:right;" id="TBL-3-1-2"
  1127. class="td11">Debit</td><td style="white-space:nowrap; text-align:right;" id="TBL-3-1-3"
  1128. class="td11">Credit</td>
  1129. </tr><tr
  1130. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  1131. style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
  1132. class="td11">5760 Rent </td><td style="white-space:nowrap; text-align:right;" id="TBL-3-2-2"
  1133. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-3-2-3"
  1134. class="td11"> $200</td>
  1135. </tr><tr
  1136. style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
  1137. class="td11">2100 Accounts Payable</td><td style="white-space:nowrap; text-align:right;" id="TBL-3-3-2"
  1138. class="td11"> $200</td><td style="white-space:nowrap; text-align:right;" id="TBL-3-3-3"
  1139. class="td11"> </td>
  1140. </tr><tr
  1141. style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
  1142. class="td11"> </td> </tr></table>
  1143. </div>
  1144. <!--l. 593--><p class="indent"> This would be followed by re-entering the rent data with the correct numbers. This was meant to ensure
  1145. that one did not erase data from the accounting books (and as such that erasing data would be a sign of foul
  1146. play).
  1147. </p><!--l. 598--><p class="indent"> Ledger-SMB has a capability to require such reversals if the business deems this to be necessary. When
  1148. this option is enabled, existing transactions cannot be modified and one will need to post reversing
  1149. transactions to void existing transactions before posting corrected ones.
  1150. </p><!--l. 604--><p class="indent"> Most accountants prefer this means to other audit trails because it is well proven and understood by
  1151. them.
  1152. </p><!--l. 608--><p class="noindent">
  1153. </p>
  1154. <h5 class="subsubsectionHead"><span class="titlemark">4.2.2 </span> <a
  1155. id="x1-360004.2.2"></a>Close books option</h5>
  1156. <!--l. 610--><p class="noindent">You cannot alter a transaction that was entered before the closing date.
  1157. </p><!--l. 613--><p class="noindent">
  1158. </p>
  1159. <h5 class="subsubsectionHead"><span class="titlemark">4.2.3 </span> <a
  1160. id="x1-370004.2.3"></a>Audit Trails</h5>
  1161. <!--l. 615--><p class="noindent">This option stores additional information in the database to help auditors trace individual transactions. The
  1162. information stored, however, is limited and it is intended to be supplemental to other auditing
  1163. facilities.
  1164. </p><!--l. 620--><p class="indent"> The information added includes which table stored the record, which employee entered the
  1165. information, which form was used, and what the action was. No direct financial information is
  1166. included.
  1167. </p><!--l. 625--><p class="noindent">
  1168. </p>
  1169. <h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
  1170. id="x1-380004.3"></a>Departments</h4>
  1171. <!--l. 627--><p class="noindent">Departments are logical divisions of a business. They allow for budgets to be prepared for the individual
  1172. department as well as the business as a whole. This allows larger businesses to use Ledger-SMB to meet their
  1173. needs.
  1174. </p><!--l. 633--><p class="noindent">
  1175. </p>
  1176. <h5 class="subsubsectionHead"><span class="titlemark">4.3.1 </span> <a
  1177. id="x1-390004.3.1"></a>Cost v Profit Centers.</h5>
  1178. <!--l. 635--><p class="noindent">In general business units are divided into cost and profit centers. Cost centers are generally regarded as
  1179. business units where the business expects to lose money and profit centers are where they expect to gain
  1180. money. For example, the legal department in most companies is a cost center.
  1181. </p><!--l. 641--><p class="indent"> One of the serious misunderstandings people run up against is that Ledger-SMB tends to more narrowly
  1182. define cost and profit centers than most businesses do. In Ledger-SMB a cost center is any department of the
  1183. business that does not issue AR transactions. Although many businesses may have cost centers (like
  1184. technical support) where customer fees may subsidize the cost of providing the service, in Ledger-SMB, these
  1185. are profit centers.
  1186. </p><!--l. 649--><p class="indent"> Ledger-SMB will not allow cost centers to be associated with AR transactions. So if you want this
  1187. functionality, you must create the department as a profit center.
  1188. </p><!--l. 654--><p class="noindent">
  1189. </p>
  1190. <h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
  1191. id="x1-400004.4"></a>Warehouses</h4>
  1192. <!--l. 656--><p class="noindent">Ledger-SMB has the ability to track inventory by warehouse. Inventory items can be moved between
  1193. warehouses, and shipped from any warehouse where the item is in stock. We will explore this concept more
  1194. later.
  1195. </p><!--l. 661--><p class="noindent">
  1196. </p>
  1197. <h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
  1198. id="x1-410004.5"></a>Languages</h4>
  1199. <!--l. 663--><p class="noindent">Languages allow for goods and services to be translated so that one can maintain offices in different
  1200. countries and allow for different goods and service descriptions to be translated to different languages for
  1201. localization purposes.
  1202. </p><!--l. 669--><p class="noindent">
  1203. </p>
  1204. <h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
  1205. id="x1-420004.6"></a>Types of Businesses</h4>
  1206. <!--l. 671--><p class="noindent">One can create types of businesses and then give them discounts across the board. For example, one might
  1207. give a firm that uses one&#8217;s services as a subcontractor a 10% discount or more.
  1208. </p><!--l. 676--><p class="noindent">
  1209. </p>
  1210. <h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
  1211. id="x1-430004.7"></a>Misc.</h4>
  1212. <!--l. 679--><p class="noindent">
  1213. </p>
  1214. <h5 class="subsubsectionHead"><span class="titlemark">4.7.1 </span> <a
  1215. id="x1-440004.7.1"></a>GIFI</h5>
  1216. <!--l. 681--><p class="noindent">GIFI is a requirement for Canadian customers. This feature allows one to link accounts with
  1217. Canadian tax codes to simplify the reporting process. Some European countries now use a similar
  1218. system.
  1219. </p><!--l. 685--><p class="indent"> People that don&#8217;t otherwise have a use for GIFI can use it to create reports which agregate accounts
  1220. together.
  1221. </p><!--l. 688--><p class="noindent">
  1222. </p>
  1223. <h5 class="subsubsectionHead"><span class="titlemark">4.7.2 </span> <a
  1224. id="x1-450004.7.2"></a>SIC</h5>
  1225. <!--l. 690--><p class="noindent">Standard Industrial Classification is a way of tracking the type of business that a vendor or customer is in.
  1226. For example, an accountant would have an SIC of 8721 while a graphic design firm would have an SIC of
  1227. 7336. The classification is hierarchical so one could use this field for custom reporting and marketing
  1228. purposes.
  1229. </p><!--l. 697--><p class="noindent">
  1230. </p>
  1231. <h5 class="subsubsectionHead"><span class="titlemark">4.7.3 </span> <a
  1232. id="x1-460004.7.3"></a>Overview of Template Editing</h5>
  1233. <!--l. 699--><p class="noindent">The templates for invoices, orders, and the like can be edited from within Ledger-SMB. The submenus within
  1234. the System submenu such as HTML Templates, Text Templates and <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  1235. class="E">E</span>X</span></span> templates provide access to this
  1236. functionality.
  1237. </p><!--l. 705--><p class="noindent">
  1238. </p>
  1239. <h5 class="subsubsectionHead"><span class="titlemark">4.7.4 </span> <a
  1240. id="x1-470004.7.4"></a>Year-end</h5>
  1241. <!--l. 707--><p class="noindent">Although the Year-end functionality in Ledger-SMB is very useful, it does not entirely make the process
  1242. simple and painless. One must still manually enter adjustments prior to closing the books. The extent to
  1243. which these adjustments are necessary for any given business is a matter best discussed with an
  1244. accountant.
  1245. </p><!--l. 713--><p class="indent"> The standard way books are normally closed at the end of the year is by moving all
  1246. adjusted<span class="footnote-mark"><a
  1247. href="LedgerSMB-manual2.html#fn1x0"><sup class="textsuperscript">1</sup></a></span><a
  1248. id="x1-47001f1"></a>
  1249. income and expenses to an equity account usually called "Retained Earnings." Assets and liabilities are not
  1250. moved. Equity drawing/dividend accounts are also moved, but the investment accounts are not. The
  1251. reasoning behind this process is that one wants a permanent record of the amount invested in a business, but
  1252. any dividends ought not to count against their recipients when new investors are brought on
  1253. board.
  1254. </p><!--l. 725--><p class="indent"> Ledger-SMB automatically moves all income and expense into the specified year-end/retained earnings
  1255. account. It does not move the drawing account, and this must be done manually, nor does it automate the
  1256. process of making adjustments.
  1257. </p><!--l. 730--><p class="indent"> Contrary to its name, this function can close the books at any time, though this would likely be of limited
  1258. use.
  1259. </p>
  1260. <h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
  1261. id="x1-480004.8"></a>Options in the ledger-smb.conf</h4>
  1262. <!--l. 736--><p class="noindent">The ledger-smb.conf configures the software by assigning site-wide variables. Most of these should be left
  1263. alone unless one knows what one is doing. However, on some systems some options might need to be
  1264. changed, so all options are presented here for reference:
  1265. </p><!--l. 741--><p class="indent">
  1266. </p><dl class="description"><dt class="description">
  1267. <span
  1268. class="pplb8t-">templates</span> </dt><dd
  1269. class="description">is the directory where the templates are stored.
  1270. </dd><dt class="description">
  1271. <span
  1272. class="pplb8t-">sendmail</span> </dt><dd
  1273. class="description">is the command to use to send a message. It must read the email from standard input.
  1274. </dd><dt class="description">
  1275. <span
  1276. class="pplb8t-">language</span> </dt><dd
  1277. class="description">allows one to set the language for the login screen and admin page.
  1278. </dd><dt class="description">
  1279. <span
  1280. class="pplb8t-">latex</span> </dt><dd
  1281. class="description">tells Ledger-SMB whether <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  1282. class="E">E</span>X</span></span> is installed. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  1283. class="E">E</span>X</span></span> is required for generating Postscript and
  1284. PDF invoices and the like.
  1285. </dd><dt class="description">
  1286. <span
  1287. class="pplb8t-">Environmental variables</span> </dt><dd
  1288. 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
  1289. class="E">E</span>X</span></span>, etc.
  1290. </dd><dt class="description">
  1291. <span
  1292. class="pplb8t-">Printers</span> </dt><dd
  1293. class="description">section can be used to set a hash table of printers for the software. The primary example is
  1294. <br class="newline" /><span
  1295. class="cmr-10">[</span>printers<span
  1296. class="cmr-10">]</span>
  1297. <br class="newline" />Default = lpr
  1298. <br class="newline" />Color = lpr -PEpson
  1299. <br class="newline" />However, this can use any program that can accept print documents (in Postscript) from
  1300. standard input, so there are many more possibilities.</dd></dl>
  1301. <!--l. 761--><p class="noindent">
  1302. </p>
  1303. <h3 class="sectionHead"><span class="titlemark">5 </span> <a
  1304. id="x1-490005"></a>Goods and Services</h3>
  1305. <!--l. 763--><p class="noindent">The Goods and Services module will focus on the definition of goods and services and the related accounting
  1306. concepts.
  1307. </p><!--l. 767--><p class="noindent">
  1308. </p>
  1309. <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
  1310. id="x1-500005.1"></a>Basic Terms</h4>
  1311. <!--l. 769--><p class="noindent">
  1312. </p><dl class="description"><dt class="description">
  1313. <span
  1314. class="pplb8t-">COGS</span> </dt><dd
  1315. class="description">is Cost of Goods Sold. When an item is sold, then the expense of its purchase is accrued as
  1316. attached to the income of the sale.
  1317. </dd><dt class="description">
  1318. <span
  1319. class="pplb8t-">List</span> </dt><dd
  1320. class="description">Price is the recommended retail price.
  1321. </dd><dt class="description">
  1322. <span
  1323. class="pplb8t-">Markup</span> </dt><dd
  1324. class="description">is the percentage increase that is applied to the last cost to get the sell price.
  1325. </dd><dt class="description">
  1326. <span
  1327. class="pplb8t-">ROP</span> </dt><dd
  1328. class="description">is re-order point. Items with fewer in stock than this will show up on short reports.
  1329. </dd><dt class="description">
  1330. <span
  1331. class="pplb8t-">Sell</span> </dt><dd
  1332. class="description">Price is the price at which the item is sold.</dd></dl>
  1333. <!--l. 780--><p class="noindent">
  1334. </p>
  1335. <h4 class="subsectionHead"><span class="titlemark">5.2 </span> <a
  1336. id="x1-510005.2"></a>The Price Matrix</h4>
  1337. <!--l. 782--><p class="noindent">It is possible to set different prices for different groups of customers, or for different customers individually.
  1338. Similarly, one can track different prices from different vendors along with the required lead time for an
  1339. order.
  1340. </p><!--l. 788--><p class="noindent">
  1341. </p>
  1342. <h4 class="subsectionHead"><span class="titlemark">5.3 </span> <a
  1343. id="x1-520005.3"></a>Pricegroups</h4>
  1344. <!--l. 790--><p class="noindent">Pricegroups are used to help determine the discount a given customer may have.
  1345. </p><!--l. 794--><p class="noindent">
  1346. </p>
  1347. <h4 class="subsectionHead"><span class="titlemark">5.4 </span> <a
  1348. id="x1-530005.4"></a>Groups</h4>
  1349. <!--l. 796--><p class="noindent">Groups represent a way of categorizing POS items for a touchscreen environment. It is not fully functional
  1350. yet, but is sufficient that with some stylesheet changes, it could be made to work.
  1351. </p><!--l. 801--><p class="noindent">
  1352. </p>
  1353. <h4 class="subsectionHead"><span class="titlemark">5.5 </span> <a
  1354. id="x1-540005.5"></a>Labor/Overhead</h4>
  1355. <!--l. 803--><p class="noindent">Labor/overhead is usually used for tracking manufacturing expenses. It is not directly billed to a customer. It
  1356. is associated with an expense/Cost of Goods Sold (COGS) account.
  1357. </p><!--l. 808--><p class="noindent">
  1358. </p>
  1359. <h4 class="subsectionHead"><span class="titlemark">5.6 </span> <a
  1360. id="x1-550005.6"></a>Services</h4>
  1361. <!--l. 810--><p class="noindent">Services include any labor that is billed directly to the customer. It is associated with an expense/COGS
  1362. account and an income account. Services can be associated with sales tax.
  1363. </p><!--l. 815--><p class="noindent">
  1364. </p>
  1365. <h5 class="subsubsectionHead"><span class="titlemark">5.6.1 </span> <a
  1366. id="x1-560005.6.1"></a>Shipping and Handling as a Service</h5>
  1367. <!--l. 817--><p class="noindent">One approach to dealing with shipping and handling is to add it as a service. Create a service called
  1368. &#8220;Shipping and Handling&#8221;, with a sell price $1 per unit, and a 0% markup. Bill it as $1 per unit. This allows
  1369. one to add the exact amount of shipping and handling as necessary.
  1370. </p><!--l. 824--><p class="noindent">
  1371. </p>
  1372. <h4 class="subsectionHead"><span class="titlemark">5.7 </span> <a
  1373. id="x1-570005.7"></a>Parts</h4>
  1374. <!--l. 826--><p class="noindent">A part is any single item you might purchase and either might resell or use in manufacturing an assembly. It
  1375. is linked to an expense/COGS account, an income account, and an inventory account. Parts can be associated
  1376. with sales tax.
  1377. </p><!--l. 832--><p class="noindent">
  1378. </p>
  1379. <h4 class="subsectionHead"><span class="titlemark">5.8 </span> <a
  1380. id="x1-580005.8"></a>Assemblies and Manufacturing</h4>
  1381. <!--l. 834--><p class="noindent">Manufacturers order parts but they sell the products of their efforts. Ledger-SMB supports manufacturing
  1382. using the concept of assemblies. An assembly is any product which is manufactured on site. It consists of a
  1383. selection of parts, services, and/or labor and overhead. Assemblies are treated as parts in most other
  1384. regards.
  1385. </p><!--l. 840--><p class="indent"> However, one cannot order assemblies from vendors. One must instead order the components and stock
  1386. them once they are manufactured.
  1387. </p><!--l. 844--><p class="noindent">
  1388. </p>
  1389. <h5 class="subsubsectionHead"><span class="titlemark">5.8.1 </span> <a
  1390. id="x1-590005.8.1"></a>Stocking Assemblies</h5>
  1391. <!--l. 846--><p class="noindent">One stocks assemblies in the Stock Assembly entry on the Goods and Services submenu. When an assembly
  1392. is stocked the inventory is adjusted properly.
  1393. </p><!--l. 850--><p class="indent"> The Check Inventory option will cause Ledger-SMB to refuse to stock an assembly if the inventory
  1394. required to produce the assembly would drop the part below the reorder point.
  1395. </p><!--l. 855--><p class="noindent">
  1396. </p>
  1397. <h4 class="subsectionHead"><span class="titlemark">5.9 </span> <a
  1398. id="x1-600005.9"></a>Reporting</h4>
  1399. <!--l. 858--><p class="noindent">
  1400. </p>
  1401. <h5 class="subsubsectionHead"><span class="titlemark">5.9.1 </span> <a
  1402. id="x1-610005.9.1"></a>All Items and Parts Reports</h5>
  1403. <!--l. 860--><p class="noindent">The All Items report provides a unified view of assemblies, parts, services, and labor for the company, while
  1404. the Parts report confines it to parts.
  1405. </p><!--l. 863--><p class="indent"> Types of reports are:
  1406. </p><!--l. 865--><p class="indent">
  1407. </p><dl class="description"><dt class="description">
  1408. <span
  1409. class="pplb8t-">Active</span> </dt><dd
  1410. class="description">lists all items not marked as obsolete.
  1411. </dd><dt class="description">
  1412. <span
  1413. class="pplb8t-">On</span> </dt><dd
  1414. class="description">Hand lists current inventory .
  1415. </dd><dt class="description">
  1416. <span
  1417. class="pplb8t-">Short</span> </dt><dd
  1418. class="description">Lists all items which are stocked below their ROP.
  1419. </dd><dt class="description">
  1420. <span
  1421. class="pplb8t-">Obsolete</span> </dt><dd
  1422. class="description">Lists all items which are marked as obsolete.
  1423. </dd><dt class="description">
  1424. <span
  1425. class="pplb8t-">Orphaned</span> </dt><dd
  1426. class="description">Lists all items which have never had a transaction associated with them.</dd></dl>
  1427. <!--l. 873--><p class="noindent">One can also list these goods by invoice, order, or quotation.
  1428. </p><!--l. 875--><p class="indent"> For best results, it is a good idea to enter some AR and AP data before running these reports.
  1429. </p><!--l. 879--><p class="noindent">
  1430. </p>
  1431. <h5 class="subsubsectionHead"><span class="titlemark">5.9.2 </span> <a
  1432. id="x1-620005.9.2"></a>Requirements</h5>
  1433. <!--l. 881--><p class="noindent">This report is designed to assist managers determine the quantities of goods to order and/or stock. It
  1434. compares the quantity on hand with the activity in a given time frame and provides a list of goods which
  1435. need to be ordered and the relevant quantity.
  1436. </p><!--l. 887--><p class="noindent">
  1437. </p>
  1438. <h5 class="subsubsectionHead"><span class="titlemark">5.9.3 </span> <a
  1439. id="x1-630005.9.3"></a>Services and Labor</h5>
  1440. <!--l. 889--><p class="noindent">This is similar to the Parts and All Items menu but only supports Active, Obsolete, and Orphaned
  1441. reports.
  1442. </p><!--l. 893--><p class="noindent">
  1443. </p>
  1444. <h5 class="subsubsectionHead"><span class="titlemark">5.9.4 </span> <a
  1445. id="x1-640005.9.4"></a>Assemblies</h5>
  1446. <!--l. 895--><p class="noindent">This is similar to the Parts and All Items reports but it also provides an ability to list individual items in the
  1447. assemblies as well.
  1448. </p><!--l. 898--><p class="indent"> AP Invoices, Purchase Orders, and RFQ&#8217;s are not available on this report.
  1449. </p><!--l. 902--><p class="noindent">
  1450. </p>
  1451. <h5 class="subsubsectionHead"><span class="titlemark">5.9.5 </span> <a
  1452. id="x1-650005.9.5"></a>Groups and Pricegroups</h5>
  1453. <!--l. 904--><p class="noindent">These reports provide a simple interface for locating groups and pricegroups. The report types are similar to
  1454. what they are for services.
  1455. </p><!--l. 908--><p class="noindent">
  1456. </p>
  1457. <h4 class="subsectionHead"><span class="titlemark">5.10 </span> <a
  1458. id="x1-660005.10"></a>Translations</h4>
  1459. <!--l. 910--><p class="noindent">One can add translations so that they show up in the customer&#8217;s native language in the issued
  1460. invoice.
  1461. </p><!--l. 913--><p class="indent"> To issue translations, one must have languages defined. One can then add translations to descriptions and
  1462. part groups.
  1463. </p><!--l. 917--><p class="noindent">
  1464. </p>
  1465. <h4 class="subsectionHead"><span class="titlemark">5.11 </span> <a
  1466. id="x1-670005.11"></a>How Cost of Goods Sold is tracked</h4>
  1467. <!--l. 919--><p class="noindent">Cost of Goods Sold is tracked on a First-In, First-out (FIFO) basis. When a part is purchased, its cost is
  1468. recorded in the database. The cost of the item is then added to the inventory asset account. When the good is
  1469. sold, the cost of the item is moved to the cost of goods sold account.
  1470. </p><!--l. 925--><p class="indent"> This means that one must actually provide invoices for all goods entered at their actual cost. If one enters
  1471. 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
  1472. in more depth after we cover the AP and AR units below.
  1473. </p><!--l. 932--><p class="noindent">
  1474. </p>
  1475. <h3 class="sectionHead"><span class="titlemark">6 </span> <a
  1476. id="x1-680006"></a>AP</h3>
  1477. <!--l. 935--><p class="noindent">
  1478. </p>
  1479. <h4 class="subsectionHead"><span class="titlemark">6.1 </span> <a
  1480. id="x1-690006.1"></a>Basic AP Concepts</h4>
  1481. <!--l. 937--><p class="noindent">The Accounts Payable module tracks all financial commitments that the company makes to other businesses.
  1482. This includes rent, utilities, etc. as well as orders of goods and services.
  1483. </p><!--l. 942--><p class="noindent">
  1484. </p>
  1485. <h4 class="subsectionHead"><span class="titlemark">6.2 </span> <a
  1486. id="x1-700006.2"></a>Vendors</h4>
  1487. <!--l. 944--><p class="noindent">A vendor is any business that the company agrees to pay money to.
  1488. </p><!--l. 946--><p class="indent"> One can enter vendor information under AP-&#x003E;Vendors-&#x003E;Add Vendor. The vendor list can be searched
  1489. under AP-&#x003E;Vendors-&#x003E;Reports-&#x003E;Search.
  1490. </p><!--l. 950--><p class="indent"> Enter start and end-dates for each vendor. This will make searches and drop-down boxes faster when
  1491. some vendors are no longer actively supporting your company.
  1492. </p><!--l. 954--><p class="indent"> A few fields that need explanation are:
  1493. </p><!--l. 956--><p class="indent">
  1494. </p><dl class="description"><dt class="description">
  1495. <span
  1496. class="pplb8t-">BIC</span> </dt><dd
  1497. 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
  1498. customer uses for automated money transfers.
  1499. </dd><dt class="description">
  1500. <span
  1501. class="pplb8t-">IBAN</span> </dt><dd
  1502. class="description">International Bank Account Number is related to the BIC and is used for cross-border
  1503. automated money transfers.
  1504. </dd><dt class="description">
  1505. <span
  1506. class="pplb8t-">Terms</span> </dt><dd
  1507. class="description">is the number of days one has to pay the invoice.
  1508. </dd><dt class="description">
  1509. <span
  1510. class="pplb8t-">Vendor</span> </dt><dd
  1511. class="description">Number is automatically generated.</dd></dl>
  1512. <!--l. 966--><p class="noindent">
  1513. </p>
  1514. <h4 class="subsectionHead"><span class="titlemark">6.3 </span> <a
  1515. id="x1-710006.3"></a>AP Transactions</h4>
  1516. <!--l. 968--><p class="noindent">AP Transactions are generally used for items other than goods and services. Utilities, rent, travel expenses,
  1517. etc. could be entered in as an AP transaction.
  1518. </p><!--l. 972--><p class="indent"> If the item is paid partially or in full when the transaction is entered, one can add payments to the
  1519. payment section.
  1520. </p><!--l. 975--><p class="indent"> All other payments can and should be entered under cash payment (below).
  1521. </p><!--l. 977--><p class="indent"> The PO Number and Order Number fields are generally used to track associations with purchase orders
  1522. sent to vendors, etc. These fields can be helpful for adding misc. expenses to orders for reporting
  1523. purposes.
  1524. </p><!--l. 981--><p class="indent"> The department drop-down box appears when one has created one or more departments. A
  1525. transaction is not required to be associated with a department, but one can use this feature for budget
  1526. tracking.
  1527. </p><!--l. 985--><p class="indent"> With AP Transactions, there is no option for internal notes. All notes will appear on any printed version of
  1528. the transaction.
  1529. </p><!--l. 988--><p class="indent"> Note: Printing a transaction does not post it. No data is committed until the invoice is posted.
  1530. </p><!--l. 992--><p class="noindent">
  1531. </p>
  1532. <h4 class="subsectionHead"><span class="titlemark">6.4 </span> <a
  1533. id="x1-720006.4"></a>AP Invoices</h4>
  1534. <!--l. 994--><p class="noindent">AP Invoices are used to enter in the receipt of goods and services. Goods and services are deemed entered
  1535. into the inventory when they are invoiced.
  1536. </p><!--l. 998--><p class="indent"> This screen is reasonably similar to the AP Transaction Screen, though the part entry section is a bit
  1537. different.
  1538. </p><!--l. 1001--><p class="indent"> The AP Invoice section has a capacity to separate internal notes from notes printed on the invoice. Note,
  1539. however, that since these are received invoices, it is rare that one needs this ability.
  1540. </p><!--l. 1005--><p class="indent"> Note that Ledger-SMB can search for partial part numbers or descriptions.
  1541. </p><!--l. 1007--><p class="indent"> Also if you have a group you can use this to select the part.
  1542. </p><!--l. 1009--><p class="indent"> To remove a line item from an invoice or order, delete the partnumber and click update.
  1543. </p><!--l. 1013--><p class="noindent">
  1544. </p>
  1545. <h5 class="subsubsectionHead"><span class="titlemark">6.4.1 </span> <a
  1546. id="x1-730006.4.1"></a>Correcting an AP Invoice</h5>
  1547. <!--l. 1015--><p class="noindent">If an invoice is entered improperly, the methods used to correct it will vary depending on whether
  1548. transaction reversal is enforced or not. If transaction reversal is not enforced, one can simply correct the
  1549. invoice or transaction and repost. Note, however, that this violates generally accepted accounting
  1550. principles.
  1551. </p><!--l. 1021--><p class="indent"> If transaction reversal is in effect, one needs to create a duplicate invoice with exactly opposite values
  1552. entered. If one part was listed as received, then one should enter a negative one for the quantity. Then one
  1553. 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
  1554. transaction. Once this is posted, one can enter the invoice correctly.
  1555. </p><!--l. 1029--><p class="noindent">
  1556. </p>
  1557. <h4 class="subsectionHead"><span class="titlemark">6.5 </span> <a
  1558. id="x1-740006.5"></a>Cash payment And Check Printing</h4>
  1559. <!--l. 1031--><p class="noindent">It is a bad idea to repost invoices/transactions just to enter a payment. The Cash-&#x003E;Payment window allows
  1560. one to enter payments against AP invoices or transactions.
  1561. </p><!--l. 1035--><p class="indent"> The printing capability can be used to print checks. The default template is NEBS 9085, though you can
  1562. use 9082 as well (as Quickbooks does).
  1563. </p><!--l. 1038--><p class="indent"> The source field is used to store an identifying number of the source document, such as the check
  1564. number. One must select the item to have it paid, and then enter the amount. One can then print a
  1565. check.
  1566. </p><!--l. 1043--><p class="noindent">
  1567. </p>
  1568. <h5 class="subsubsectionHead"><span class="titlemark">6.5.1 </span> <a
  1569. id="x1-750006.5.1"></a>Rapid Payment Entry Screen</h5>
  1570. <!--l. 1045--><p class="noindent">One can also use the rapid payment entry screen to print multiple checks. However, this does not allow you
  1571. to print the multiple checks to the screen as a separate document is created for each check. In this event, one
  1572. must print directly to a printer as postscript.
  1573. </p><!--l. 1051--><p class="noindent">
  1574. </p>
  1575. <h4 class="subsectionHead"><span class="titlemark">6.6 </span> <a
  1576. id="x1-760006.6"></a>Transaction/Invoice Reporting</h4>
  1577. <!--l. 1054--><p class="noindent">
  1578. </p>
  1579. <h5 class="subsubsectionHead"><span class="titlemark">6.6.1 </span> <a
  1580. id="x1-770006.6.1"></a>Transactions Report</h5>
  1581. <!--l. 1056--><p class="noindent">This report is designed to help you locate AP transactions based on various criteria. One can
  1582. search by vendor, invoice number, department, and the like. One can even search by the shipping
  1583. method.
  1584. </p><!--l. 1060--><p class="indent"> The summary button will show what was placed where, while the details button will show all debits and
  1585. credits associated with the transaction.
  1586. </p><!--l. 1063--><p class="indent"> To view the invoice, click on the invoice number. In the detail view, to view the account transactions as a
  1587. whole, click on the account number.
  1588. </p><!--l. 1067--><p class="indent"> Open invoices are ones not fully paid off, while closed invoices are those that have been
  1589. paid.
  1590. </p><!--l. 1071--><p class="noindent">
  1591. </p>
  1592. <h5 class="subsubsectionHead"><span class="titlemark">6.6.2 </span> <a
  1593. id="x1-780006.6.2"></a>Outstanding Report</h5>
  1594. <!--l. 1073--><p class="noindent">The outstanding report is designed to help you locate AP transactions that are not paid yet. The
  1595. ID field is mostly useful for locating the specific database record if a duplicate invoice number
  1596. exists.
  1597. </p><!--l. 1078--><p class="noindent">
  1598. </p>
  1599. <h5 class="subsubsectionHead"><span class="titlemark">6.6.3 </span> <a
  1600. id="x1-790006.6.3"></a>AP Aging Report</h5>
  1601. <!--l. 1080--><p class="noindent">This report can tell you how many invoices are past due and by how much.
  1602. </p><!--l. 1083--><p class="indent"> A summary report just shows vendors while a detail report shows individual invoices.
  1603. </p><!--l. 1087--><p class="noindent">
  1604. </p>
  1605. <h5 class="subsubsectionHead"><span class="titlemark">6.6.4 </span> <a
  1606. id="x1-800006.6.4"></a>Tax Paid and Non-taxable Report</h5>
  1607. <!--l. 1089--><p class="noindent">These reports have known issues. It is better to use the GL reports and filter accordingly.
  1608. </p><!--l. 1092--><p class="noindent">
  1609. </p>
  1610. <h4 class="subsectionHead"><span class="titlemark">6.7 </span> <a
  1611. id="x1-810006.7"></a>Vendor Reporting</h4>
  1612. <!--l. 1095--><p class="noindent">
  1613. </p>
  1614. <h5 class="subsubsectionHead"><span class="titlemark">6.7.1 </span> <a
  1615. id="x1-820006.7.1"></a>Vendor Search</h5>
  1616. <!--l. 1097--><p class="noindent">The Vendor Search screen can be used to locate vendors or AP transactions associated with those
  1617. vendors.
  1618. </p><!--l. 1100--><p class="indent"> The basic types of reports are:
  1619. </p><!--l. 1102--><p class="indent">
  1620. </p><dl class="description"><dt class="description">
  1621. <span
  1622. class="pplb8t-">All</span> </dt><dd
  1623. class="description">Lists all vendors
  1624. </dd><dt class="description">
  1625. <span
  1626. class="pplb8t-">Active</span> </dt><dd
  1627. class="description">Lists those vendors currently active
  1628. </dd><dt class="description">
  1629. <span
  1630. class="pplb8t-">Inactive</span> </dt><dd
  1631. class="description">Lists those vendors who are currently inactive. time frame.
  1632. </dd><dt class="description">
  1633. <span
  1634. class="pplb8t-">Orphaned</span> </dt><dd
  1635. class="description">Lists those vendors who do not have transactions associated with them. These vendors
  1636. can be deleted.</dd></dl>
  1637. <!--l. 1110--><p class="noindent">One can include purchase orders, Requests for Quotations, AP invoices, and AP transactions on this report as
  1638. well if they occur between the from and to dates.
  1639. </p><!--l. 1115--><p class="noindent">
  1640. </p>
  1641. <h5 class="subsubsectionHead"><span class="titlemark">6.7.2 </span> <a
  1642. id="x1-830006.7.2"></a>Vendor History</h5>
  1643. <!--l. 1117--><p class="noindent">This report can be used to obtain information about the past goods and services ordered or received from
  1644. vendors. One can find quantities, partnumber, and sell prices on this report. This facility can be used to
  1645. search RFQ&#8217;s, Purchase Orders, and AP Invoices.
  1646. </p><!--l. 1123--><p class="noindent">
  1647. </p>
  1648. <h3 class="sectionHead"><span class="titlemark">7 </span> <a
  1649. id="x1-840007"></a>AR</h3>
  1650. <!--l. 1126--><p class="noindent">
  1651. </p>
  1652. <h4 class="subsectionHead"><span class="titlemark">7.1 </span> <a
  1653. id="x1-850007.1"></a>Customers</h4>
  1654. <!--l. 1128--><p class="noindent">Customers are entered in using the AR-&#x003E;Customers-&#x003E;Add Customer menu.
  1655. </p><!--l. 1131--><p class="indent"> The salesperson is autopopulated with the current user who is logged in. Otherwise, it looks fairly similar
  1656. to the Vendor input screen. Customers, like vendors can be assigned languages, but it is more important to
  1657. do so because invoices will be printed and sent to them.
  1658. </p><!--l. 1136--><p class="indent"> The credit limit field can be used to assign an amount that one is willing to do for a customer on
  1659. credit.
  1660. </p><!--l. 1140--><p class="noindent">
  1661. </p>
  1662. <h5 class="subsubsectionHead"><span class="titlemark">7.1.1 </span> <a
  1663. id="x1-860007.1.1"></a>Customer Price Matrix</h5>
  1664. <!--l. 1142--><p class="noindent">The price list button can be used to enter specific discounts to the customer, and groups of customers can be
  1665. assigned a pricegroup for the purpose of offering specific discounts on specific parts to the customer. Such
  1666. discounts can be temporary or permanent.
  1667. </p><!--l. 1148--><p class="noindent">
  1668. </p>
  1669. <h4 class="subsectionHead"><span class="titlemark">7.2 </span> <a
  1670. id="x1-870007.2"></a>AR Transactions</h4>
  1671. <!--l. 1150--><p class="noindent">AR Transactions are where one can add moneys owed the business by customers. One can associate these
  1672. transactions with income accounts, and add payments if the item is paid when the invoice is
  1673. issued.
  1674. </p><!--l. 1154--><p class="indent"> The PO number field is used to track the PO that the customer sent. This makes it easier to find items
  1675. when a customer is asking for clarification on a bill, for example.
  1676. </p><!--l. 1159--><p class="noindent">
  1677. </p>
  1678. <h4 class="subsectionHead"><span class="titlemark">7.3 </span> <a
  1679. id="x1-880007.3"></a>AR Invoices</h4>
  1680. <!--l. 1161--><p class="noindent">AR Invoices are designed to provide for the delivery of goods and services to customers. One would
  1681. normally issue these invoices at the time when the everything has been done that is necessary to get paid by
  1682. the customer.
  1683. </p><!--l. 1166--><p class="indent"> As with AP invoices, one can search for matches to partial part numbers and descriptions, and enter
  1684. initial payments at this screen.
  1685. </p><!--l. 1170--><p class="noindent">
  1686. </p>
  1687. <h4 class="subsectionHead"><span class="titlemark">7.4 </span> <a
  1688. id="x1-890007.4"></a>Cash Receipt</h4>
  1689. <!--l. 1172--><p class="noindent">The Cash-&#x003E;Receipt screen allows you to accept prepayments from customers or pay single or multiple
  1690. invoices after they have been posted. One can print a receipt, however the current templates seem to be
  1691. based on check printing templates and so are unsuitable for this purpose. This presents a great opportunity
  1692. for improvement.
  1693. </p><!--l. 1179--><p class="noindent">
  1694. </p>
  1695. <h5 class="subsubsectionHead"><span class="titlemark">7.4.1 </span> <a
  1696. id="x1-900007.4.1"></a>Cash Receipts for multiple customers</h5>
  1697. <!--l. 1181--><p class="noindent">The cash-&#x003E;receipts screen allows you to accept payments on all open customer invoices of all
  1698. customers at once. One could print (directly to a printer only) all receipts to be sent out if this was
  1699. desired.
  1700. </p><!--l. 1187--><p class="noindent">
  1701. </p>
  1702. <h4 class="subsectionHead"><span class="titlemark">7.5 </span> <a
  1703. id="x1-910007.5"></a>AR Transaction Reporting</h4>
  1704. <!--l. 1189--><p class="noindent">The AR Outstanding report is almost identical to the AP Outstanding report and is not covered in any detail
  1705. in this document.
  1706. </p><!--l. 1193--><p class="noindent">
  1707. </p>
  1708. <h5 class="subsubsectionHead"><span class="titlemark">7.5.1 </span> <a
  1709. id="x1-920007.5.1"></a>AR Transactions Report</h5>
  1710. <!--l. 1195--><p class="noindent">This is almost identical to the AP Transactions Report.
  1711. </p><!--l. 1197--><p class="indent"> If a customer&#8217;s PO has been associated with this transaction, one can search under this field as
  1712. well.
  1713. </p><!--l. 1201--><p class="noindent">
  1714. </p>
  1715. <h5 class="subsubsectionHead"><span class="titlemark">7.5.2 </span> <a
  1716. id="x1-930007.5.2"></a>AR Aging Report</h5>
  1717. <!--l. 1203--><p class="noindent">This report is almost identical to the AP Aging report, with the exception that one can print up statements for
  1718. customer accounts that are overdue. One more application is to calculate interest based on balance owed so
  1719. that these can be entered as AR transactions associated with the customer.
  1720. </p><!--l. 1210--><p class="noindent">
  1721. </p>
  1722. <h4 class="subsectionHead"><span class="titlemark">7.6 </span> <a
  1723. id="x1-940007.6"></a>Customer Reporting</h4>
  1724. <!--l. 1212--><p class="noindent">These reports are almost identical to the AP Vendor reports and are not discussed in these notes.
  1725. </p><!--l. 1216--><p class="noindent">
  1726. </p>
  1727. <h3 class="sectionHead"><span class="titlemark">8 </span> <a
  1728. id="x1-950008"></a>Projects</h3>
  1729. <!--l. 1219--><p class="noindent">
  1730. </p>
  1731. <h4 class="subsectionHead"><span class="titlemark">8.1 </span> <a
  1732. id="x1-960008.1"></a>Project Basics</h4>
  1733. <!--l. 1221--><p class="noindent">A project is a logical collection of AR and AP transactions, orders, and the like that allow one to better
  1734. manage specific service or product offerings. Ledger-SMB does not offer comprehensive project management
  1735. capabilities, and projects are only used here as they relate to accounting.
  1736. </p><!--l. 1226--><p class="indent"> One can also add translated descriptions to the project names as well.
  1737. </p><!--l. 1229--><p class="noindent">
  1738. </p>
  1739. <h4 class="subsectionHead"><span class="titlemark">8.2 </span> <a
  1740. id="x1-970008.2"></a>Timecards</h4>
  1741. <!--l. 1231--><p class="noindent">Timecards allow one to track time entered on specific services. These can then be used to generate invoices
  1742. for the time entered.
  1743. </p><!--l. 1234--><p class="indent"> The non-chargeable is the number of hours that are not billed on the invoice.
  1744. </p><!--l. 1237--><p class="indent"> One can then generate invoices based on this information.
  1745. </p><!--l. 1239--><p class="indent"> The project field is not optional.
  1746. </p><!--l. 1242--><p class="noindent">
  1747. </p>
  1748. <h4 class="subsectionHead"><span class="titlemark">8.3 </span> <a
  1749. id="x1-980008.3"></a>Projects and Invoices</h4>
  1750. <!--l. 1244--><p class="noindent">One can select the project id for line items of both AR and AP invoices. These will then be tracked against the
  1751. project itself.
  1752. </p><!--l. 1248--><p class="noindent">
  1753. </p>
  1754. <h4 class="subsectionHead"><span class="titlemark">8.4 </span> <a
  1755. id="x1-990008.4"></a>Reporting</h4>
  1756. <!--l. 1251--><p class="noindent">
  1757. </p>
  1758. <h5 class="subsubsectionHead"><span class="titlemark">8.4.1 </span> <a
  1759. id="x1-1000008.4.1"></a>Timecard Reporting</h5>
  1760. <!--l. 1253--><p class="noindent">The Timecard Report allows one to search for timecards associated with one or more projects. One can then
  1761. use the total time in issuing invoices (this is not automated yet).
  1762. </p><!--l. 1258--><p class="noindent">
  1763. </p>
  1764. <h5 class="subsubsectionHead"><span class="titlemark">8.4.2 </span> <a
  1765. id="x1-1010008.4.2"></a>Project Transaction Reporting</h5>
  1766. <!--l. 1260--><p class="noindent">The Standard or GIFI options can be used to create different reports (for example, for Canadian Tax reporting
  1767. purposes).
  1768. </p><!--l. 1263--><p class="indent"> This report brings up a summary that looks sort of like a chart of accounts. Of one clicks on the account
  1769. numbers, one can see the transactions associated with the project.
  1770. </p><!--l. 1268--><p class="noindent">
  1771. </p>
  1772. <h5 class="subsubsectionHead"><span class="titlemark">8.4.3 </span> <a
  1773. id="x1-1020008.4.3"></a>List of Projects</h5>
  1774. <!--l. 1270--><p class="noindent">This provides a simple way of searching for projects to edit or modify.
  1775. </p><!--l. 1273--><p class="noindent">
  1776. </p>
  1777. <h4 class="subsectionHead"><span class="titlemark">8.5 </span> <a
  1778. id="x1-1030008.5"></a>Possibilities for Using Projects</h4>
  1779. <ul class="itemize1">
  1780. <li class="itemize">One can use them similar to departments for tracking work done for a variety of customers.
  1781. </li>
  1782. <li class="itemize">One can use them for customer-specific projects, such as this training.</li></ul>
  1783. <!--l. 1281--><p class="noindent">
  1784. </p>
  1785. <h3 class="sectionHead"><span class="titlemark">9 </span> <a
  1786. id="x1-1040009"></a>Quotations and Order Management</h3>
  1787. <!--l. 1283--><p class="noindent">This unit will introduce the business processes that Ledger-SMB allows. These processes are designed to
  1788. allow various types of businesses to manage their orders and allow for rudimentary customer
  1789. relationship management processes to be built around this software. In this section, we will
  1790. introduce the work flow options that many businesses may use in their day-to-day use of the
  1791. software.
  1792. </p><!--l. 1291--><p class="noindent">
  1793. </p>
  1794. <h4 class="subsectionHead"><span class="titlemark">9.1 </span> <a
  1795. id="x1-1050009.1"></a>Sales Orders</h4>
  1796. <!--l. 1293--><p class="noindent">Sales orders represent orders from customers that have not been delivered or shipped yet. These orders can
  1797. be for work in the future, for back ordered products, or work in progress. A sales order can be generated
  1798. form an AR invoice or from a quotation automatically.
  1799. </p><!--l. 1299--><p class="noindent">
  1800. </p>
  1801. <h4 class="subsectionHead"><span class="titlemark">9.2 </span> <a
  1802. id="x1-1060009.2"></a>Quotations</h4>
  1803. <!--l. 1301--><p class="noindent">Quotations are offers made to a customer but to which the customer has not committed to the work.
  1804. Quotations can be created from Sales orders or AR Invoice automatically.
  1805. </p><!--l. 1306--><p class="noindent">
  1806. </p>
  1807. <h4 class="subsectionHead"><span class="titlemark">9.3 </span> <a
  1808. id="x1-1070009.3"></a>Shipping</h4>
  1809. <!--l. 1308--><p class="noindent">The Shipping module (Shipping-&#x003E;Shipping) allows one to ship portions or entireties of existing sales orders,
  1810. printing pick lists and packing slips.
  1811. </p><!--l. 1312--><p class="indent"> One can then generate invoices for those parts that were shipped.
  1812. </p><!--l. 1314--><p class="indent"> In general, one will be more likely to use these features if they have multiple warehouses that they ship
  1813. from. More likely most customers will just generate invoices from orders.
  1814. </p><!--l. 1319--><p class="noindent">
  1815. </p>
  1816. <h4 class="subsectionHead"><span class="titlemark">9.4 </span> <a
  1817. id="x1-1080009.4"></a>AR Work Flow</h4>
  1818. <!--l. 1322--><p class="noindent">
  1819. </p>
  1820. <h5 class="subsubsectionHead"><span class="titlemark">9.4.1 </span> <a
  1821. id="x1-1090009.4.1"></a>Service Example</h5>
  1822. <!--l. 1324--><p class="noindent">A customer contacts your firm and asks for a quote on some services. Your company would create a
  1823. quotation for the job and email it to the customer or print it and mail it. Once the customer agrees to pay, one
  1824. creates a sales order from the quotation.
  1825. </p><!--l. 1329--><p class="indent"> When the work is completed, the sales order is converted into a sales invoice and this is presented to the
  1826. customer as a bill.
  1827. </p><!--l. 1332--><p class="indent"> Note that in some cases, this procedure may be shortened. If the customer places an order without
  1828. asking for a quotation and is offered a verbal quote, then one might merely prepare the sales
  1829. order.
  1830. </p>
  1831. <hr class="figure" /><div class="figure"
  1832. ><table class="figure"><tr class="figure"><td class="figure"
  1833. >
  1834. <a
  1835. id="x1-1090011"></a>
  1836. <br /><table class="caption"
  1837. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;1: </td><td
  1838. class="content">Simple AR Service Invoice Workflow Example</td></tr></table><!--tex4ht:label?: x1-1090011 -->
  1839. <!--l. 9--><p class="center"> <img
  1840. src="LedgerSMB-manual0x.png" alt="PICT" />
  1841. </p>
  1842. </td></tr></table></div><hr class="endfigure" />
  1843. <h5 class="subsubsectionHead"><span class="titlemark">9.4.2 </span> <a
  1844. id="x1-1100009.4.2"></a>Single Warehouse Example</h5>
  1845. <!--l. 1350--><p class="noindent">A customer contacts your firm and asks for a quotation for shipping a part. You would create the quotation
  1846. and when you get confirmation, convert it to an order. Once the parts are in place you could go to shipping
  1847. and ship the part.
  1848. </p><!--l. 1355--><p class="indent"> The billing department can then generate the invoice from the sales order based on what merchandise has
  1849. been shipped and mail it to the customer.
  1850. </p><!--l. 1359--><p class="indent"> Note that this requires that you have the part in your inventory.
  1851. </p>
  1852. <hr class="figure" /><div class="figure"
  1853. ><table class="figure"><tr class="figure"><td class="figure"
  1854. >
  1855. <a
  1856. id="x1-1100012"></a>
  1857. <br /><table class="caption"
  1858. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;2: </td><td
  1859. class="content">AR Workflow with Shipping</td></tr></table><!--tex4ht:label?: x1-1100012 -->
  1860. <!--l. 9--><p class="center"> <img
  1861. src="LedgerSMB-manual1x.png" alt="PICT" />
  1862. </p>
  1863. </td></tr></table></div><hr class="endfigure" />
  1864. <h5 class="subsubsectionHead"><span class="titlemark">9.4.3 </span> <a
  1865. id="x1-1110009.4.3"></a>Multiple Warehouse Example</h5>
  1866. <!--l. 1375--><p class="noindent">A customer contacts your firm and asks for a quotation for a number of different parts. You would create a
  1867. quotation and when you get confirmation, convert it to a sales order. When you go to ship the item, you
  1868. would select the warehouse in the drop-down menu, and select the parts to ship. One would repeat with
  1869. other warehouses until the entire order is shipped.
  1870. </p><!--l. 1382--><p class="indent"> Then the billing department would go to the sales order and generate the invoice. It would then be
  1871. mailed to the customer.
  1872. </p>
  1873. <hr class="figure" /><div class="figure"
  1874. ><table class="figure"><tr class="figure"><td class="figure"
  1875. >
  1876. <a
  1877. id="x1-1110013"></a>
  1878. <br /><table class="caption"
  1879. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;3: </td><td
  1880. class="content">Complex AR Workflow with Shipping</td></tr></table><!--tex4ht:label?: x1-1110013 -->
  1881. <!--l. 9--><p class="center"> <img
  1882. src="LedgerSMB-manual2x.png" alt="PICT" />
  1883. </p>
  1884. </td></tr></table></div><hr class="endfigure" />
  1885. <h4 class="subsectionHead"><span class="titlemark">9.5 </span> <a
  1886. id="x1-1120009.5"></a>Requests for Quotation (RFQ)</h4>
  1887. <!--l. 1399--><p class="noindent">A request for quotation would be a formal document one might submit to a vendor to ask for a quote
  1888. on a product or service they might offer. These can be generated from Purchase Orders or AP
  1889. Invoices.
  1890. </p><!--l. 1404--><p class="noindent">
  1891. </p>
  1892. <h4 class="subsectionHead"><span class="titlemark">9.6 </span> <a
  1893. id="x1-1130009.6"></a>Purchase Orders</h4>
  1894. <!--l. 1406--><p class="noindent">A purchase order is a confirmation that is issued to the vendor to order the product or service. Many
  1895. businesses will require a purchase order with certain terms in order to begin work on a product. These can be
  1896. generated from RFQ&#8217;s or AP Invoices.
  1897. </p><!--l. 1412--><p class="noindent">
  1898. </p>
  1899. <h4 class="subsectionHead"><span class="titlemark">9.7 </span> <a
  1900. id="x1-1140009.7"></a>Receiving</h4>
  1901. <!--l. 1414--><p class="noindent">The Shipping-&#x003E;Receiving screen allows you to track the parts received from an existing purchase order. Like
  1902. shipping, it does not post an invoice but tracks the received parts in the order.
  1903. </p><!--l. 1419--><p class="noindent">
  1904. </p>
  1905. <h4 class="subsectionHead"><span class="titlemark">9.8 </span> <a
  1906. id="x1-1150009.8"></a>AP Work Flow</h4>
  1907. <!--l. 1422--><p class="noindent">
  1908. </p>
  1909. <h5 class="subsubsectionHead"><span class="titlemark">9.8.1 </span> <a
  1910. id="x1-1160009.8.1"></a>Bookkeeper entering the received items, order completed in full</h5>
  1911. <!--l. 1424--><p class="noindent">Your company inquires about the price of a given good or service from another firm. You submit an RFQ to
  1912. the vendor, and finding that the price is reasonable, you convert it to an order, adjust the price to what they
  1913. have quoted, and save it. When the goods are delivered you convert the order into an AP invoice and post
  1914. it.
  1915. </p>
  1916. <hr class="figure" /><div class="figure"
  1917. ><table class="figure"><tr class="figure"><td class="figure"
  1918. >
  1919. <a
  1920. id="x1-1160014"></a>
  1921. <br /><table class="caption"
  1922. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;4: </td><td
  1923. class="content">Simple AP Workflow</td></tr></table><!--tex4ht:label?: x1-1160014 -->
  1924. <!--l. 9--><p class="center"> <img
  1925. src="LedgerSMB-manual3x.png" alt="PICT" />
  1926. </p>
  1927. </td></tr></table></div><hr class="endfigure" />
  1928. <h5 class="subsubsectionHead"><span class="titlemark">9.8.2 </span> <a
  1929. id="x1-1170009.8.2"></a>Bookkeeper entering received items, order completed in part</h5>
  1930. <!--l. 1444--><p class="noindent">Your company inquires about the price of a given good or service from another firm, You submit an RFQ to
  1931. the vendor, and finding that the price is acceptable, you convert it into an order, adjusting the price to what
  1932. they have quoted, and save it. When some of the goods are received, you open up the purchase order, enter
  1933. the number of parts received, convert that order into an invoice, and post it. Repeat until all parts are
  1934. received.
  1935. </p>
  1936. <hr class="figure" /><div class="figure"
  1937. ><table class="figure"><tr class="figure"><td class="figure"
  1938. >
  1939. <a
  1940. id="x1-1170015"></a>
  1941. <br /><table class="caption"
  1942. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;5: </td><td
  1943. class="content">AP Workflow with Receiving</td></tr></table><!--tex4ht:label?: x1-1170015 -->
  1944. <!--l. 9--><p class="center"> <img
  1945. src="LedgerSMB-manual4x.png" alt="PICT" />
  1946. </p>
  1947. </td></tr></table></div><hr class="endfigure" />
  1948. <h5 class="subsubsectionHead"><span class="titlemark">9.8.3 </span> <a
  1949. id="x1-1180009.8.3"></a>Receiving staff entering items</h5>
  1950. <!--l. 1466--><p class="noindent">Your company inquires about the price of a given good or service from another firm, You submit an RFQ to
  1951. the vendor, and finding that the price is acceptable, you convert it into an order, adjusting the price to
  1952. what they have quoted, and save it. When some or all of the goods are received, the receiving
  1953. staff goes to Shipping-Receiving, locates the purchase order, and fills in the number of items
  1954. received.
  1955. </p><!--l. 1473--><p class="indent"> The bookkeeper can then determine when all items have been received and post the invoice at that
  1956. time.
  1957. </p>
  1958. <hr class="figure" /><div class="figure"
  1959. ><table class="figure"><tr class="figure"><td class="figure"
  1960. >
  1961. <a
  1962. id="x1-1180016"></a>
  1963. <br /><table class="caption"
  1964. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;6: </td><td
  1965. class="content">Complex AP Workflow</td></tr></table><!--tex4ht:label?: x1-1180016 -->
  1966. <!--l. 9--><p class="center"> <img
  1967. src="LedgerSMB-manual5x.png" alt="PICT" />
  1968. </p>
  1969. </td></tr></table></div><hr class="endfigure" />
  1970. <h4 class="subsectionHead"><span class="titlemark">9.9 </span> <a
  1971. id="x1-1190009.9"></a>Generation and Consolidation</h4>
  1972. <!--l. 1491--><p class="noindent">
  1973. </p>
  1974. <h5 class="subsubsectionHead"><span class="titlemark">9.9.1 </span> <a
  1975. id="x1-1200009.9.1"></a>Generation</h5>
  1976. <!--l. 1493--><p class="noindent">The Generation screen allows you to generate Purchase Orders based on sales orders. One selects the sales
  1977. orders one wants to use, and clicks "Generate Purchase Orders." Then one selects clicks on the parts to order,
  1978. adjusts the quantity if necessary, and clicks "Select Vendor." This process is repeated for every vendor
  1979. required. Then the Generate Orders button is clicked.
  1980. </p><!--l. 1501--><p class="noindent">
  1981. </p>
  1982. <h5 class="subsubsectionHead"><span class="titlemark">9.9.2 </span> <a
  1983. id="x1-1210009.9.2"></a>Consolidation</h5>
  1984. <!--l. 1503--><p class="noindent">One can consolidate sales and/or purchase orders using this screen. For the consolidation to work you must
  1985. have more than one order associated with the relevant customer or vendor.
  1986. </p><!--l. 1508--><p class="noindent">
  1987. </p>
  1988. <h4 class="subsectionHead"><span class="titlemark">9.10 </span> <a
  1989. id="x1-1220009.10"></a>Reporting</h4>
  1990. <!--l. 1510--><p class="noindent">The reporting functionality in the order management is largely limited to the ability to locate purchase
  1991. orders, sales orders, RFQ&#8217;s, and quotations.
  1992. </p><!--l. 1515--><p class="noindent">
  1993. </p>
  1994. <h4 class="subsectionHead"><span class="titlemark">9.11 </span> <a
  1995. id="x1-1230009.11"></a>Shipping Module: Transferring Inventory between Warehouses</h4>
  1996. <!--l. 1517--><p class="noindent">One can transfer inventory between warehouses if necessary by using the Shipping-&#x003E;Transfer Inventory
  1997. screen.
  1998. </p><!--l. 1521--><p class="noindent">
  1999. </p>
  2000. <h3 class="sectionHead"><span class="titlemark">10 </span> <a
  2001. id="x1-12400010"></a>HR</h3>
  2002. <!--l. 1523--><p class="noindent">The HR module is currently limited to tracking employees for and their start and end dates. It
  2003. has very little other functionality. One could build payroll systems that could integrate with it
  2004. however.
  2005. </p><!--l. 1528--><p class="noindent">
  2006. </p>
  2007. <h3 class="sectionHead"><span class="titlemark">11 </span> <a
  2008. id="x1-12500011"></a>POS</h3>
  2009. <!--l. 1530--><p class="noindent">LedgerSMB 1.2 includes a number of components merged from Metatron Technology Consulting&#8217;s SL-POS.
  2010. Although it is still not a perfect solution, it is greatly improved in both workflow and hardware support. It is
  2011. suitable for retail establishments at the moment.
  2012. </p><!--l. 1534--><p class="noindent">
  2013. </p>
  2014. <h4 class="subsectionHead"><span class="titlemark">11.1 </span> <a
  2015. id="x1-12600011.1"></a>Sales Screen</h4>
  2016. <!--l. 1536--><p class="noindent">The sales screen looks very much like a normal invoice entry screen with a few differences.
  2017. </p>
  2018. <ul class="itemize1">
  2019. <li class="itemize">The discount text field is not available, nor is the unit field..
  2020. </li>
  2021. <li class="itemize">The next part number is automatically focused when the data loads for rapid data entry.
  2022. </li>
  2023. <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
  2024. and post.
  2025. </li>
  2026. <li class="itemize">Part Groups appear at the bottom of the screen.
  2027. </li>
  2028. <li class="itemize">Alt-N moves the cursor to the next free payment line.</li></ul>
  2029. <!--l. 1549--><p class="noindent">
  2030. </p>
  2031. <h4 class="subsectionHead"><span class="titlemark">11.2 </span> <a
  2032. id="x1-12700011.2"></a>Possibilities for Data Entry</h4>
  2033. <ul class="itemize1">
  2034. <li class="itemize">Barcode scanners can be used to scan items in as they are being rung in.
  2035. </li>
  2036. <li class="itemize">One could use touch screens, though this would ideally require some custom stylesheets to
  2037. make it efficient.</li></ul>
  2038. <!--l. 1558--><p class="noindent">
  2039. </p>
  2040. <h4 class="subsectionHead"><span class="titlemark">11.3 </span> <a
  2041. id="x1-12800011.3"></a>Hardware Support</h4>
  2042. <!--l. 1560--><p class="noindent">As LedgerSMB is a web-based application, the web browser usually does not allow the page to write to
  2043. arbitrary files. Therefore hardware support for pole displays, etc. is not readily possible from the application
  2044. itself. LedgerSMB gets around this limitation by using an additional set of network sockets from the server to
  2045. the client to control its hardware. This naturally requires that other software is also running on the
  2046. client.
  2047. </p><!--l. 1567--><p class="indent"> Notes for specific types of hardware are as follows:
  2048. </p><!--l. 1569--><p class="indent">
  2049. </p><dl class="description"><dt class="description">
  2050. <span
  2051. class="pplb8t-">Touch</span> </dt><dd
  2052. class="description">screens: The default stylesheet is not really usable from a touchscreen as the items are often
  2053. too small. One would need to modify the stylesheets to ensure that the relevant items would be
  2054. reasonable. Setting down the resolution would also help.
  2055. </dd><dt class="description">
  2056. <span
  2057. class="pplb8t-">Receipt</span> </dt><dd
  2058. class="description">Printers: ESC/POS printers generally work in text mode. Control sequences can be
  2059. embedded in the template as necessary.
  2060. </dd><dt class="description">
  2061. <span
  2062. class="pplb8t-">Pole</span> </dt><dd
  2063. class="description">Displays: Generally supported. Only the Logic Controls PD3000 is supported out of the box,
  2064. but making this work for other models ought to be trivial.
  2065. </dd><dt class="description">
  2066. <span
  2067. class="pplb8t-">Cash</span> </dt><dd
  2068. class="description">Drawers: These should be attached to the printer. The control codes is then specified in the
  2069. pos.conf.pl so that the command is sent to the printer when the open till button is pushed.
  2070. </dd><dt class="description">
  2071. <span
  2072. class="pplb8t-">Barcode</span> </dt><dd
  2073. class="description">Scanners: Most customers use decoded barcode scanners through a keyboard wedge
  2074. interface. This allows them to scan items as if they were typing them on the keyboard.</dd></dl>
  2075. <!--l. 1587--><p class="noindent">
  2076. </p>
  2077. <h4 class="subsectionHead"><span class="titlemark">11.4 </span> <a
  2078. id="x1-12900011.4"></a>Reports</h4>
  2079. <!--l. 1590--><p class="noindent">
  2080. </p>
  2081. <h5 class="subsubsectionHead"><span class="titlemark">11.4.1 </span> <a
  2082. id="x1-13000011.4.1"></a>Open Invoices</h5>
  2083. <!--l. 1592--><p class="noindent">The POS-&#x003E;Open screen allows one to find any POS receipts that are not entirely paid off.
  2084. </p><!--l. 1596--><p class="noindent">
  2085. </p>
  2086. <h5 class="subsubsectionHead"><span class="titlemark">11.4.2 </span> <a
  2087. id="x1-13100011.4.2"></a>Receipts</h5>
  2088. <!--l. 1598--><p class="noindent">The POS-&#x003E;Receipts screen allows one to bring up a basic record of the POS terminals. It is not sufficient for
  2089. closing the till, however, though it may help for reconciliation.
  2090. </p><!--l. 1602--><p class="indent"> The till column is the last component or octet of the terminal&#8217;s IP address. Therefore it is a good idea to
  2091. try to avoid having IP addresses where the last octet is the same.
  2092. </p><!--l. 1606--><p class="indent"> All entries are grouped by date and source in this report.
  2093. </p><!--l. 1609--><p class="noindent">
  2094. </p>
  2095. <h3 class="sectionHead"><span class="titlemark">12 </span> <a
  2096. id="x1-13200012"></a>General Ledger</h3>
  2097. <!--l. 1612--><p class="noindent">
  2098. </p>
  2099. <h4 class="subsectionHead"><span class="titlemark">12.1 </span> <a
  2100. id="x1-13300012.1"></a>GL Basics</h4>
  2101. <!--l. 1614--><p class="noindent">The General Ledger is the heart of Ledger-SMB. Indeed, Ledger-SMB is designed to be as close as possible to
  2102. a software equivalent of a paper-based accounting program (but with no difference between the General
  2103. Ledger and General Journal).
  2104. </p><!--l. 1620--><p class="noindent">
  2105. </p>
  2106. <h5 class="subsubsectionHead"><span class="titlemark">12.1.1 </span> <a
  2107. id="x1-13400012.1.1"></a>Paper-based accounting systems and the GL</h5>
  2108. <!--l. 1622--><p class="noindent">In order to understand the principle of the General Ledger, one must have a basic understanding of the
  2109. general process of bookkeeping using double-entry paper-based accounting systems.
  2110. </p><!--l. 1626--><p class="indent"> Normally when a transaction would be recorded, it would first be recorded in the "General Journal"
  2111. which would contain detailed information about the transaction, notes, etc. Then the entries from the
  2112. General Journal would be transcribed to the General Ledger, where one could keep closer tabs on what was
  2113. going on in each account.
  2114. </p><!--l. 1632--><p class="indent"> In the general journal, all transactions are listed chronologically with whatever commentary is deemed
  2115. necessary, while in the general ledger each account has its own page and transactions are recorded in a
  2116. simple and terse manner. The General Journal is the first place the transaction is recorded and the General
  2117. Ledger is the last.
  2118. </p><!--l. 1638--><p class="indent"> At the end of the accounting period, the GL transactions would be summarized into a trial balance
  2119. and this would be used for creating financial statements and closing the books at the end of the
  2120. year.
  2121. </p><!--l. 1643--><p class="noindent">
  2122. </p>
  2123. <h5 class="subsubsectionHead"><span class="titlemark">12.1.2 </span> <a
  2124. id="x1-13500012.1.2"></a>Double Entry Examples on Paper</h5>
  2125. <!--l. 1645--><p class="noindent">Let us say that John starts his business with an initial investment of $10,000.
  2126. </p><!--l. 1648--><p class="indent"> This is recorded in the General Journal as follows (in this example, suppose it is page 1):
  2127. </p>
  2128. <div class="tabular"><table class="tabular"
  2129. cellspacing="0" cellpadding="0" rules="groups"
  2130. ><colgroup id="TBL-4-1g"><col
  2131. id="TBL-4-1" /></colgroup><colgroup id="TBL-4-2g"><col
  2132. id="TBL-4-2" /></colgroup><colgroup id="TBL-4-3g"><col
  2133. id="TBL-4-3" /></colgroup><colgroup id="TBL-4-4g"><col
  2134. id="TBL-4-4" /></colgroup><colgroup id="TBL-4-5g"><col
  2135. id="TBL-4-5" /></colgroup><tr
  2136. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  2137. style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
  2138. class="td11">Date </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
  2139. class="td11">Accounts and Explanation</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-3"
  2140. class="td11">Ref </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-1-4"
  2141. class="td11"> DEBIT</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-1-5"
  2142. class="td11">CREDIT</td>
  2143. </tr><tr
  2144. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  2145. style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
  2146. class="td11">March 1</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
  2147. class="td11">Checking Account </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-3"
  2148. class="td11">1060</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-2-4"
  2149. class="td11">10000.00</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-2-5"
  2150. class="td11"> </td>
  2151. </tr><tr
  2152. style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
  2153. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2"
  2154. class="td11">John Doe Capital </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-3"
  2155. class="td11">3011</td><td style="white-space:nowrap; text-align:right;" id="TBL-4-3-4"
  2156. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-3-5"
  2157. class="td11">10000.00</td>
  2158. </tr><tr
  2159. style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-1"
  2160. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-2"
  2161. class="td11">John Doe began a business</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-3"
  2162. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-4-4"
  2163. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-4-5"
  2164. class="td11"> </td>
  2165. </tr><tr
  2166. style="vertical-align:baseline;" id="TBL-4-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-1"
  2167. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-2"
  2168. class="td11">with an investment of </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-3"
  2169. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-5-4"
  2170. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-5-5"
  2171. class="td11"> </td>
  2172. </tr><tr
  2173. style="vertical-align:baseline;" id="TBL-4-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-1"
  2174. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-2"
  2175. class="td11">$10000 </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-3"
  2176. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-6-4"
  2177. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-4-6-5"
  2178. class="td11"> </td>
  2179. </tr><tr
  2180. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  2181. style="vertical-align:baseline;" id="TBL-4-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-7-1"
  2182. class="td11"> </td> </tr></table>
  2183. </div>
  2184. <!--l. 1688--><p class="indent"> This would then be transcribed into two pages of the General Ledger. The first page might be the
  2185. Checking Account page:
  2186. </p>
  2187. <div class="tabular"><table class="tabular"
  2188. cellspacing="0" cellpadding="0" rules="groups"
  2189. ><colgroup id="TBL-5-1g"><col
  2190. id="TBL-5-1" /></colgroup><colgroup id="TBL-5-2g"><col
  2191. id="TBL-5-2" /></colgroup><colgroup id="TBL-5-3g"><col
  2192. id="TBL-5-3" /></colgroup><colgroup id="TBL-5-4g"><col
  2193. id="TBL-5-4" /></colgroup><colgroup id="TBL-5-5g"><col
  2194. id="TBL-5-5" /></colgroup><colgroup id="TBL-5-6g"><col
  2195. id="TBL-5-6" /></colgroup><colgroup id="TBL-5-7g"><col
  2196. id="TBL-5-7" /></colgroup><colgroup id="TBL-5-8g"><col
  2197. id="TBL-5-8" /></colgroup><tr
  2198. 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
  2199. style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1"
  2200. class="td11">DATE </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-2"
  2201. class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-3"
  2202. class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-5-1-4"
  2203. class="td11"> DEBITS</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-5"
  2204. class="td11">DATE</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-6"
  2205. class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-7"
  2206. class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-5-1-8"
  2207. class="td11">CREDITS</td>
  2208. </tr><tr
  2209. 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
  2210. style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-1"
  2211. class="td11">March 1</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-2"
  2212. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-3"
  2213. class="td11">J1 </td><td style="white-space:nowrap; text-align:right;" id="TBL-5-2-4"
  2214. class="td11">10000.00</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-5"
  2215. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-6"
  2216. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-7"
  2217. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-5-2-8"
  2218. class="td11"> </td>
  2219. </tr><tr
  2220. 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
  2221. style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-1"
  2222. class="td11"> </td> </tr></table>
  2223. </div>
  2224. <!--l. 1715--><p class="indent"> On the John Doe Capital page, we would add a similar entry:
  2225. </p>
  2226. <div class="tabular"><table class="tabular"
  2227. cellspacing="0" cellpadding="0" rules="groups"
  2228. ><colgroup id="TBL-6-1g"><col
  2229. id="TBL-6-1" /></colgroup><colgroup id="TBL-6-2g"><col
  2230. id="TBL-6-2" /></colgroup><colgroup id="TBL-6-3g"><col
  2231. id="TBL-6-3" /></colgroup><colgroup id="TBL-6-4g"><col
  2232. id="TBL-6-4" /></colgroup><colgroup id="TBL-6-5g"><col
  2233. id="TBL-6-5" /></colgroup><colgroup id="TBL-6-6g"><col
  2234. id="TBL-6-6" /></colgroup><colgroup id="TBL-6-7g"><col
  2235. id="TBL-6-7" /></colgroup><colgroup id="TBL-6-8g"><col
  2236. id="TBL-6-8" /></colgroup><tr
  2237. 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
  2238. style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
  2239. class="td11">DATE</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2"
  2240. class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-3"
  2241. class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-6-1-4"
  2242. class="td11">DEBITS</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-5"
  2243. class="td11">DATE </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-6"
  2244. class="td11">EXPLANATION</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-7"
  2245. class="td11">REF.</td><td style="white-space:nowrap; text-align:right;" id="TBL-6-1-8"
  2246. class="td11">CREDITS</td>
  2247. </tr><tr
  2248. 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
  2249. style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
  2250. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2"
  2251. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-3"
  2252. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-6-2-4"
  2253. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-5"
  2254. class="td11">March 1</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-6"
  2255. class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-7"
  2256. class="td11">J1 </td><td style="white-space:nowrap; text-align:right;" id="TBL-6-2-8"
  2257. class="td11"> 10000.00</td>
  2258. </tr><tr
  2259. 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
  2260. style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
  2261. class="td11"> </td> </tr></table>
  2262. </div>
  2263. <!--l. 1742--><p class="noindent">
  2264. </p>
  2265. <h5 class="subsubsectionHead"><span class="titlemark">12.1.3 </span> <a
  2266. id="x1-13600012.1.3"></a>The GL in Ledger-SMB</h5>
  2267. <!--l. 1744--><p class="noindent">The paper-based accounting procedure works well when one is stuck with paper recording requirements but
  2268. it has one serious deficiency&#8212; all of this transcribing creates an opportunity for errors.
  2269. </p><!--l. 1748--><p class="indent"> Relational databases relieve the need for such transcription as it is possible to store everything
  2270. physically in a way similar to the way a General Journal is used in the paper-based systems and then
  2271. present the same information in ways which are more closely related to the General Ledger
  2272. book.
  2273. </p><!--l. 1754--><p class="indent"> This is the exact way that the General Ledger is used in Ledger-SMB. The actual data is entered and
  2274. stored as if it was a general journal, and then the data can be presented in any number of different
  2275. ways.
  2276. </p><!--l. 1758--><p class="indent"> All modules of Ledger-SMB that involve COA accounts store their data in the General Ledger (it is a little
  2277. more complex than this but this is very close to the actual mechanism).
  2278. </p><!--l. 1763--><p class="noindent">
  2279. </p>
  2280. <h4 class="subsectionHead"><span class="titlemark">12.2 </span> <a
  2281. id="x1-13700012.2"></a>Cash Transfer</h4>
  2282. <!--l. 1765--><p class="noindent">The simplest form of GL entry in Ledger-SMB is the Cash-&#x003E;Transfer screen. This screen shows two
  2283. transaction lines, and fields for reference, department, description, and notes.
  2284. </p><!--l. 1769--><p class="indent"> The field descriptions are as follows:
  2285. </p><!--l. 1771--><p class="indent">
  2286. </p><dl class="description"><dt class="description">
  2287. <span
  2288. class="pplb8t-">Reference</span> </dt><dd
  2289. class="description">refers to the source document for the transfer. One can use transfer sheets, bank receipt
  2290. numbers, etc for this field.
  2291. </dd><dt class="description">
  2292. <span
  2293. class="pplb8t-">Description</span> </dt><dd
  2294. class="description">is optional but really should be filled in. It ought to be a description of the transaction.
  2295. </dd><dt class="description">
  2296. <span
  2297. class="pplb8t-">Notes</span> </dt><dd
  2298. class="description">provide supplemental information for the transaction.
  2299. </dd><dt class="description">
  2300. <span
  2301. class="pplb8t-">FX</span> </dt><dd
  2302. class="description">indicates whether foreign exchange is a factor in this transaction.
  2303. </dd><dt class="description">
  2304. <span
  2305. class="pplb8t-">Debit</span> </dt><dd
  2306. class="description">indicates money going <span
  2307. class="pplb8t-">into </span>the asset account.
  2308. </dd><dt class="description">
  2309. <span
  2310. class="pplb8t-">Credit</span> </dt><dd
  2311. class="description">indicates money coming <span
  2312. class="pplb8t-">out </span>of the asset account.
  2313. </dd><dt class="description">
  2314. <span
  2315. class="pplb8t-">Source</span> </dt><dd
  2316. class="description">is the source document for that portion of the transaction.
  2317. </dd><dt class="description">
  2318. <span
  2319. class="pplb8t-">Memo</span> </dt><dd
  2320. class="description">lists additional information as necessary.
  2321. </dd><dt class="description">
  2322. <span
  2323. class="pplb8t-">Project</span> </dt><dd
  2324. class="description">allows you to assign this line to a project.</dd></dl>
  2325. <!--l. 1784--><p class="noindent">The credit and debit options seem to be the opposite of what one would think of concerning one&#8217;s bank account.
  2326. The reason is that your bank statement is done from the bank&#8217;s point of view. Your bank account balance is
  2327. an asset to you and therefor you show it as having a debit balance, but to the bank it is money they owe you
  2328. and so they show it as having a credit balance.
  2329. </p><!--l. 1791--><p class="indent"> Note that in this screen, when an item is updated, it will reduce the number of lines to those already filled
  2330. in plus an extra line for the new line in the data entry.
  2331. </p><!--l. 1796--><p class="noindent">
  2332. </p>
  2333. <h4 class="subsectionHead"><span class="titlemark">12.3 </span> <a
  2334. id="x1-13800012.3"></a>GL Transactions</h4>
  2335. <!--l. 1798--><p class="noindent">The GL Transaction screen (General Ledger-&#x003E;Add Transaction) is identical to the Cash Transfer screen with
  2336. the exception that it starts with nine lines instead of two. Otherwise, they are identical.
  2337. </p><!--l. 1802--><p class="indent"> Again, one must be careful with debits and credits. Often it is easy to get confused. It is generally worth
  2338. while to go back to the principle that one tracks them with regard to their impact on the equity accounts. So
  2339. expenses are credits because they debit the equity accounts, and income is a debit because it credits the
  2340. retained earning equity account.
  2341. </p><!--l. 1809--><p class="noindent">
  2342. </p>
  2343. <h4 class="subsectionHead"><span class="titlemark">12.4 </span> <a
  2344. id="x1-13900012.4"></a>Payroll as a GL transaction</h4>
  2345. <!--l. 1811--><p class="noindent">Currently payroll must be done as a GL transaction. The attempts to create a payroll system that would ship
  2346. with LSMB have largely stalled.
  2347. </p><!--l. 1814--><p class="indent"> Most customers running their businesses will have an idea of how to do this.
  2348. </p>
  2349. <hr class="figure" /><div class="figure"
  2350. ><table class="figure"><tr class="figure"><td class="figure"
  2351. >
  2352. <a
  2353. id="x1-1390017"></a>
  2354. <br /><table class="caption"
  2355. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;7: </td><td
  2356. class="content">Payroll as a GL Transaction (Purely fictitious numbers)</td></tr></table><!--tex4ht:label?: x1-1390017 -->
  2357. <div class="tabular"><table class="tabular"
  2358. cellspacing="0" cellpadding="0" rules="groups"
  2359. ><colgroup id="TBL-7-1g"><col
  2360. id="TBL-7-1" /></colgroup><colgroup id="TBL-7-2g"><col
  2361. id="TBL-7-2" /></colgroup><colgroup id="TBL-7-3g"><col
  2362. id="TBL-7-3" /></colgroup><tr
  2363. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  2364. style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
  2365. class="td11">Account </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-1-2"
  2366. class="td11">Debit</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-1-3"
  2367. class="td11">Credit</td>
  2368. </tr><tr
  2369. style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
  2370. class="td11">5101 Wages and Salaries </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-2-2"
  2371. class="td11"> 500</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-2-3"
  2372. class="td11"> </td>
  2373. </tr><tr
  2374. style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
  2375. class="td11">2032 Accrued Wages </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-3-2"
  2376. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-3-3"
  2377. class="td11"> 450</td>
  2378. </tr><tr
  2379. style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
  2380. class="td11">2033 Fed. Income Tax wthd</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-4-2"
  2381. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-4-3"
  2382. class="td11"> 30</td>
  2383. </tr><tr
  2384. style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
  2385. class="td11">2034 State Inc. Tax. wthd </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-5-2"
  2386. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-5-3"
  2387. class="td11"> 15</td>
  2388. </tr><tr
  2389. style="vertical-align:baseline;" id="TBL-7-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-1"
  2390. class="td11">2035 Social Security wthd </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-6-2"
  2391. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-6-3"
  2392. class="td11"> 3</td>
  2393. </tr><tr
  2394. style="vertical-align:baseline;" id="TBL-7-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-7-1"
  2395. class="td11">2036 Medicare wthd </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-7-2"
  2396. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-7-3"
  2397. class="td11"> 2</td>
  2398. </tr><tr
  2399. style="vertical-align:baseline;" id="TBL-7-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-8-1"
  2400. class="td11">2032 Accrued Wages </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-8-2"
  2401. class="td11"> 450</td><td style="white-space:nowrap; text-align:right;" id="TBL-7-8-3"
  2402. class="td11"> </td>
  2403. </tr><tr
  2404. style="vertical-align:baseline;" id="TBL-7-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-9-1"
  2405. class="td11">1060 Checking Acct </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-9-2"
  2406. class="td11"> </td><td style="white-space:nowrap; text-align:right;" id="TBL-7-9-3"
  2407. class="td11"> 450</td>
  2408. </tr><tr
  2409. class="hline"><td><hr /></td><td><hr /></td><td><hr /></td></tr><tr
  2410. style="vertical-align:baseline;" id="TBL-7-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-10-1"
  2411. class="td11"> </td> </tr></table>
  2412. </div>
  2413. </td></tr></table></div><hr class="endfigure" />
  2414. <h4 class="subsectionHead"><span class="titlemark">12.5 </span> <a
  2415. id="x1-14000012.5"></a>Reconciliation</h4>
  2416. <!--l. 1861--><p class="noindent">To reconcile an account (say, when one would get a checking account statement), one would
  2417. go to cash/reconciliation, and check off the items that have cleared. One can then attempt to
  2418. determine where any errors lie by comparing the total on the statement with the total that LSMB
  2419. generates.
  2420. </p><!--l. 1867--><p class="indent"> This can be done for other accounts too, such as petty
  2421. cash.<span class="footnote-mark"><a
  2422. href="LedgerSMB-manual3.html#fn2x0"><sup class="textsuperscript">2</sup></a></span><a
  2423. id="x1-140001f2"></a>
  2424. </p>
  2425. <h4 class="subsectionHead"><span class="titlemark">12.6 </span> <a
  2426. id="x1-14100012.6"></a>Reports</h4>
  2427. <!--l. 1876--><p class="noindent">The most flexible report in Ledger-SMB is the GL report because it has access to the entire set of financial
  2428. transactions of a business. Every invoice posted, payment made or received, etc. can be located
  2429. here.
  2430. </p><!--l. 1881--><p class="indent"> The search criteria include:
  2431. </p><!--l. 1883--><p class="indent">
  2432. </p><dl class="description"><dt class="description">
  2433. <span
  2434. class="pplb8t-">Reference</span> </dt><dd
  2435. class="description">is the invoice number, or other reference number associated with the transaction.
  2436. </dd><dt class="description">
  2437. <span
  2438. class="pplb8t-">Source</span> </dt><dd
  2439. class="description">is the field related to the source document number in a payment or other transaction.<span class="footnote-mark"><a
  2440. href="LedgerSMB-manual4.html#fn3x0"><sup class="textsuperscript">3</sup></a></span><a
  2441. id="x1-141001f3"></a>
  2442. </dd><dt class="description">
  2443. <span
  2444. class="pplb8t-">Memo</span> </dt><dd
  2445. class="description">relates to the memo field on a payment.
  2446. </dd><dt class="description">
  2447. <span
  2448. class="pplb8t-">Department</span> </dt><dd
  2449. class="description">can be used to filter results by department.
  2450. </dd><dt class="description">
  2451. <span
  2452. class="pplb8t-">Account</span> </dt><dd
  2453. class="description">Type can be used to filter results by type of account (Asset, Liability, etc.)
  2454. </dd><dt class="description">
  2455. <span
  2456. class="pplb8t-">Description</span> </dt><dd
  2457. class="description">can be used to filter by GL description or by customer/vendor name.</dd></dl>
  2458. <!--l. 1898--><p class="noindent">The actual format of the report looks more like what one would expect in a paper accounting system&#8217;s general
  2459. journal than a general ledger per se. A presentation of the data that is more like the paper general ledger is
  2460. found in the Chart of Accounts report.
  2461. </p><!--l. 1904--><p class="noindent">
  2462. </p>
  2463. <h5 class="subsubsectionHead"><span class="titlemark">12.6.1 </span> <a
  2464. id="x1-14200012.6.1"></a>GL as access to almost everything else</h5>
  2465. <!--l. 1906--><p class="noindent">The GL reports can be used to do all manner of things. One can determine, for example, which AP invoice or
  2466. transaction was paid with a certain check number or which invoice by a specific customer was paid by a
  2467. specific check number.
  2468. </p><!--l. 1912--><p class="noindent">
  2469. </p>
  2470. <h3 class="sectionHead"><span class="titlemark">13 </span> <a
  2471. id="x1-14300013"></a>Recurring Transactions</h3>
  2472. <!--l. 1914--><p class="noindent">Any transaction or invoice may be repeated a number of times in regular intervals. To schedule any GL, AR,
  2473. or AP transaction or invoice, click the schedule button.
  2474. </p><!--l. 1918--><p class="indent"> In general the reference number should be left blank as this will force Ledger-SMB to create a new invoice
  2475. or transaction number for each iteration. The rest of the options are self-explanatory. Note that a blank
  2476. number if iterations will result in no recurrences of the transaction.
  2477. </p><!--l. 1924--><p class="indent"> To process the recurring transactions, click on the Recurring Transactions option on the main menu select
  2478. the ones you want to process and click "Process Transactions."
  2479. </p><!--l. 1929--><p class="noindent">
  2480. </p>
  2481. <h3 class="sectionHead"><span class="titlemark">14 </span> <a
  2482. id="x1-14400014"></a>Financial Statements and Reports</h3>
  2483. <!--l. 1931--><p class="noindent">Financial statements and reports are a very important part of any accounting system. Accountants and
  2484. business people rely on these reports to determine the financial soundness of the business and its prospects
  2485. for the next accounting period.
  2486. </p><!--l. 1937--><p class="noindent">
  2487. </p>
  2488. <h4 class="subsectionHead"><span class="titlemark">14.1 </span> <a
  2489. id="x1-14500014.1"></a>Cash v. Accrual Basis</h4>
  2490. <!--l. 1939--><p class="noindent">Financial statements, such as the Income Statement and Balance Sheet can be prepared either on a cash or
  2491. accrual basis. In cash-basis accounting, the income is deemed earned when the customer pays it, and the
  2492. expenses are deemed incurred when the business pays them.
  2493. </p><!--l. 1944--><p class="indent"> There are a number of problems with cash-basis accounting from a business point of view. The most
  2494. serious is that one can misrepresent the wellbeing of a business by paying a large expense after a deadline.
  2495. Thus cash-basis accounting does not allow one to accurately pair the income with the related expense as
  2496. these are recorded at different times. If one cannot accurately pair the income with the related expense, then
  2497. financial statements cannot be guaranteed to tell one much of anything about the well-being of the
  2498. business.
  2499. </p><!--l. 1953--><p class="indent"> In accrual basis accounting, income is considered earned when the invoice is posted, and
  2500. expenses are considered incurred at the time when the goods or services are delivered to the
  2501. business. This way, one can pair the income made from the sale of a product with the expense
  2502. incurred in bringing that product to sale. This pairing allows for greater confidence in business
  2503. reporting.
  2504. </p><!--l. 1961--><p class="noindent">
  2505. </p>
  2506. <h4 class="subsectionHead"><span class="titlemark">14.2 </span> <a
  2507. id="x1-14600014.2"></a>Viewing the Chart of Accounts and Transactions</h4>
  2508. <!--l. 1963--><p class="noindent">The Reports&#8211;&#x003E;Chart of Accounts will provide the chart of accounts along with current totals in each
  2509. account.
  2510. </p><!--l. 1966--><p class="indent"> If you click on an account number, you will get a screen that allows you to filter out transactions in that
  2511. account by various criteria. One can also include AR/AP, and Subtotal in the report.
  2512. </p><!--l. 1970--><p class="indent"> The report format is similar to that of a paper-based general ledger.
  2513. </p><!--l. 1973--><p class="noindent">
  2514. </p>
  2515. <h4 class="subsectionHead"><span class="titlemark">14.3 </span> <a
  2516. id="x1-14700014.3"></a>Trial Balance</h4>
  2517. <!--l. 1976--><p class="noindent">
  2518. </p>
  2519. <h5 class="subsubsectionHead"><span class="titlemark">14.3.1 </span> <a
  2520. id="x1-14800014.3.1"></a>The Paper-based function of a Trial Balance</h5>
  2521. <!--l. 1978--><p class="noindent">In paper-based accounting systems, the accountant at the end of the year would total up the debits and
  2522. credits in every account and transfer them onto another sheet called the trial balance. The accountant
  2523. would check to determine that the total debits and credits were equal and would then transfer
  2524. this information onto the financial statements. It was called a trial balance because it was the
  2525. main step at which the error-detection capabilities of double-entry accounting systems were
  2526. used.
  2527. </p><!--l. 1988--><p class="noindent">
  2528. </p>
  2529. <h5 class="subsubsectionHead"><span class="titlemark">14.3.2 </span> <a
  2530. id="x1-14900014.3.2"></a>Running the Trial Balance Report</h5>
  2531. <!--l. 1990--><p class="noindent">This report is located under Reports &#8211;&#x003E;Trial Balance. One can filter out items by date, accounting period, or
  2532. department. One can run the report by accounts or using GIFI classifications to group accounts
  2533. together.
  2534. </p><!--l. 1995--><p class="indent"> From this report, you can click on the account number and see all transactions on the trial balance as well
  2535. as whether or not they have been reconciled.
  2536. </p><!--l. 2000--><p class="noindent">
  2537. </p>
  2538. <h5 class="subsubsectionHead"><span class="titlemark">14.3.3 </span> <a
  2539. id="x1-15000014.3.3"></a>What if the Trial Balance doesn&#8217;t Balance?</h5>
  2540. <!--l. 2002--><p class="noindent">If the trial balance does not balance, get technical support immediately. This usually means that transactions
  2541. were not entered properly. Some may have been out of balance, or some may have gone into non-existent
  2542. accounts (believe it or not, Ledger-SMB does not check this latter issue).
  2543. </p><!--l. 2009--><p class="noindent">
  2544. </p>
  2545. <h5 class="subsubsectionHead"><span class="titlemark">14.3.4 </span> <a
  2546. id="x1-15100014.3.4"></a>Trial Balance as a Summary of Account Activity</h5>
  2547. <!--l. 2011--><p class="noindent">The trial balance offers a glance at the total activity in every account. It can provide a useful look at financial
  2548. activity at a glance for the entire business.
  2549. </p><!--l. 2016--><p class="noindent">
  2550. </p>
  2551. <h5 class="subsubsectionHead"><span class="titlemark">14.3.5 </span> <a
  2552. id="x1-15200014.3.5"></a>Trial Balance as a Budget Planning Tool</h5>
  2553. <!--l. 2018--><p class="noindent">By filtering out departments, one can determine what a department earned and spent during a given
  2554. financial interval. This can be used in preparing budgets for the next accounting period.
  2555. </p><!--l. 2023--><p class="noindent">
  2556. </p>
  2557. <h4 class="subsectionHead"><span class="titlemark">14.4 </span> <a
  2558. id="x1-15300014.4"></a>Income Statement</h4>
  2559. <!--l. 2025--><p class="noindent">The Income Statement is another tool that can be used to assist with budgetary planning as well as provide
  2560. information on the financial health of a business.
  2561. </p><!--l. 2029--><p class="indent"> The report is run from Reports&#8211;&#x003E;Income Statement. The report preparation screen shows the following
  2562. fields:
  2563. </p><!--l. 2032--><p class="indent">
  2564. </p><dl class="description"><dt class="description">
  2565. <span
  2566. class="pplb8t-">Department</span> </dt><dd
  2567. class="description">allows you to run reports for individual departments. This is useful for budgetary
  2568. purposes.
  2569. </dd><dt class="description">
  2570. <span
  2571. class="pplb8t-">Project</span> </dt><dd
  2572. class="description">allows you to run reports on individual projects. This can show how profitable a given project
  2573. was during a given time period.
  2574. </dd><dt class="description">
  2575. <span
  2576. class="pplb8t-">From</span> </dt><dd
  2577. class="description">and To allow you to select arbitrary from and to dates.
  2578. </dd><dt class="description">
  2579. <span
  2580. class="pplb8t-">Period</span> </dt><dd
  2581. class="description">allows you to specify a standard accounting period.
  2582. </dd><dt class="description">
  2583. <span
  2584. class="pplb8t-">Compare to</span> </dt><dd
  2585. class="description">fields allow you to run a second report for comparison purposes for a separate range of
  2586. dates or accounting period.
  2587. </dd><dt class="description">
  2588. <span
  2589. class="pplb8t-">Decimalplaces</span> </dt><dd
  2590. class="description">allows you to display numbers to a given precision.
  2591. </dd><dt class="description">
  2592. <span
  2593. class="pplb8t-">Method</span> </dt><dd
  2594. class="description">allows you to select between accrual and cash basis reports.
  2595. </dd><dt class="description">
  2596. <span
  2597. class="pplb8t-">Include</span> </dt><dd
  2598. class="description">in Report provides various options for reporting.
  2599. </dd><dt class="description">
  2600. <span
  2601. class="pplb8t-">Accounts</span> </dt><dd
  2602. class="description">allows you to run GIFI reports instead of the standard ones.</dd></dl>
  2603. <!--l. 2047--><p class="noindent">The report shows all income and expense accounts with activity during the period when the report is run, the
  2604. balances accrued during the period, as well as the total income and expense at the bottom of each section.
  2605. The total expense is subtracted from the total income to provide the net income during the period. If there is
  2606. a loss, it appears in parentheses.
  2607. </p><!--l. 2055--><p class="noindent">
  2608. </p>
  2609. <h5 class="subsubsectionHead"><span class="titlemark">14.4.1 </span> <a
  2610. id="x1-15400014.4.1"></a>Uses of an Income Statement</h5>
  2611. <!--l. 2057--><p class="noindent">The income statement provides a basic snapshot of the overall ability of the business to make money. It is one
  2612. of the basic accounting statements and is required, for example, on many SEC forms for publicly traded
  2613. firms.
  2614. </p><!--l. 2062--><p class="indent"> Additionally, businessmen use the income statement to look at overall trends in the ability of the business
  2615. to make money. One can compare a given month, quarter, or year with a year prior to look for trends so that
  2616. one can make adjustments in order to maximize profit.
  2617. </p><!--l. 2067--><p class="indent"> Finally, these reports can be used to provide a look at each department&#8217;s performance and their
  2618. ability to work within their budget. One can compare a department or project&#8217;s performance to
  2619. a year prior and look for patterns that can indicate problems or opportunities that need to be
  2620. addressed.
  2621. </p><!--l. 2074--><p class="noindent">
  2622. </p>
  2623. <h4 class="subsectionHead"><span class="titlemark">14.5 </span> <a
  2624. id="x1-15500014.5"></a>Balance Sheet</h4>
  2625. <!--l. 2076--><p class="noindent">The balance sheet is the second major accounting statement supported by Ledger-SMB. The balance sheet
  2626. provides a snapshot of the current financial health of the business by comparing assets, liabilities, and
  2627. equity.
  2628. </p><!--l. 2081--><p class="indent"> In essence the balance sheet is a statement of the current state of owner equity. Traditionally, it does not
  2629. track changes in owner equity in the same way the Statement of Owner Equity does.
  2630. </p><!--l. 2085--><p class="indent"> The Balance Sheet report preparation screen is much simpler than the Income Statement screen.
  2631. Balance sheets don&#8217;t apply to projects, but they do apply to departments. Also, unlike an income
  2632. statement, a balance sheet is fixed for a specific date in time. Therefore one does not need to select a
  2633. period.
  2634. </p><!--l. 2091--><p class="indent"> The fields in creating a balance sheet are:
  2635. </p><!--l. 2093--><p class="indent">
  2636. </p><dl class="description"><dt class="description">
  2637. <span
  2638. class="pplb8t-">Department</span> </dt><dd
  2639. class="description">allows you to run separate balance sheets for each department.
  2640. </dd><dt class="description">
  2641. <span
  2642. class="pplb8t-">As</span> </dt><dd
  2643. class="description">at specifies the date. If blank this will be the current date.
  2644. </dd><dt class="description">
  2645. <span
  2646. class="pplb8t-">Compare to</span> </dt><dd
  2647. class="description">specifies the date to compare the balance sheet to.
  2648. </dd><dt class="description">
  2649. <span
  2650. class="pplb8t-">Decimalplaces</span> </dt><dd
  2651. class="description">specifies the number of decimal places to use.
  2652. </dd><dt class="description">
  2653. <span
  2654. class="pplb8t-">Method</span> </dt><dd
  2655. class="description">selects between cash and accrual basis.
  2656. </dd><dt class="description">
  2657. <span
  2658. class="pplb8t-">Include</span> </dt><dd
  2659. class="description">in report allows you to select supplemental information on the report.
  2660. </dd><dt class="description">
  2661. <span
  2662. class="pplb8t-">Accounts</span> </dt><dd
  2663. class="description">allows you to select between standard and GIFI reports.</dd></dl>
  2664. <!--l. 2104--><p class="noindent">The balance sheet lists all asset, liability, and equity accounts with a balance. Each category has a total listed, and
  2665. the total of the equity and liability accounts is also listed.
  2666. </p><!--l. 2108--><p class="indent"> The total assets should be equal to the sum of the totals of the liability and equity accounts.
  2667. </p><!--l. 2112--><p class="noindent">
  2668. </p>
  2669. <h4 class="subsectionHead"><span class="titlemark">14.6 </span> <a
  2670. id="x1-15600014.6"></a>What if the Balance Sheet doesn&#8217;t balance?</h4>
  2671. <!--l. 2114--><p class="noindent">Get technical support immediately, This may indicate that out of balance transactions were entered or that
  2672. transactions did not post properly.
  2673. </p><!--l. 2118--><p class="noindent">
  2674. </p>
  2675. <h4 class="subsectionHead"><span class="titlemark">14.7 </span> <a
  2676. id="x1-15700014.7"></a>No Statement of Owner Equity?</h4>
  2677. <!--l. 2120--><p class="noindent">The Statement of Owner Equity is the one accounting statement that Ledger-SMB does not support.
  2678. However, it can be simulated by running a balance sheet at the end of the time frame in question and
  2679. comparing it to the beginning. One can check this against an income statement for the period in question
  2680. to verify its accuracy. The statement of owner equity is not as commonly used now as it once
  2681. was.
  2682. </p><!--l. 2128--><p class="noindent">
  2683. </p>
  2684. <h3 class="sectionHead"><span class="titlemark">15 </span> <a
  2685. id="x1-15800015"></a>The Template System</h3>
  2686. <!--l. 2130--><p class="noindent">Ledger-SMB allows most documents to be generated according to a template system. This allows financial
  2687. statements, invoices, orders, and the like to be customized to meet the needs of most businesses. Company
  2688. logos can be inserted, the format can be radically altered, one can print letters to be included
  2689. with checks to vendors instead of the checks themselves, and the like. In the end, there is very
  2690. little that cannot be accomplished regarding modification of these documents with the template
  2691. system.
  2692. </p><!--l. 2139--><p class="indent"> One can define different templates for different languages, so that a customer in Spain gets a different
  2693. invoice than a customer in Canada.
  2694. </p><!--l. 2143--><p class="noindent">
  2695. </p>
  2696. <h4 class="subsectionHead"><span class="titlemark">15.1 </span> <a
  2697. id="x1-15900015.1"></a>Text Templates</h4>
  2698. <!--l. 2145--><p class="noindent">The only template that uses a text-only format is the POS receipt. This example provides the simplest way to
  2699. understand the template system.
  2700. </p><!--l. 2149--><p class="indent"> The first two lines are:
  2701. <br class="newline" />&#x003C;%company align=center width=40%&#x003E;
  2702. <br class="newline" />&#x003C;%address align=center width=40%&#x003E;
  2703. <br class="newline" />
  2704. </p><!--l. 2154--><p class="indent"> The first line tells Ledger-SMB to print the company name as passed to it via a variable, centered, with a
  2705. page width of 40 characters. The second line does the same thing with the address.
  2706. </p><!--l. 2158--><p class="indent"> These variables are usually passed to the invoice using form fields (hidden or otherwise) in the
  2707. submitting web page. The printing script, however, can disable some of these fields or add others via
  2708. database lookups and the like.
  2709. </p><!--l. 2163--><p class="indent"> In all types of templates, variable substitution occurs between &#x003C;% and %&#x003E;. One can optionally specify an
  2710. alignment or a width but these are really only useful in text templates.
  2711. </p><!--l. 2168--><p class="noindent">
  2712. </p>
  2713. <h4 class="subsectionHead"><span class="titlemark">15.2 </span> <a
  2714. id="x1-16000015.2"></a>HTML Templates</h4>
  2715. <!--l. 2170--><p class="noindent">The following templates exist in HTML format:
  2716. </p>
  2717. <ul class="itemize1">
  2718. <li class="itemize">Income Statement
  2719. </li>
  2720. <li class="itemize">Balance Sheet
  2721. </li>
  2722. <li class="itemize">Invoice (AR)
  2723. </li>
  2724. <li class="itemize">AR Transaction
  2725. </li>
  2726. <li class="itemize">AP Transaction
  2727. </li>
  2728. <li class="itemize">Packing List
  2729. </li>
  2730. <li class="itemize">Pick List
  2731. </li>
  2732. <li class="itemize">Sales Order
  2733. </li>
  2734. <li class="itemize">Work Order
  2735. </li>
  2736. <li class="itemize">Purchase Order
  2737. </li>
  2738. <li class="itemize">Bin List
  2739. </li>
  2740. <li class="itemize">Statement
  2741. </li>
  2742. <li class="itemize">Quotation
  2743. </li>
  2744. <li class="itemize">RFQ
  2745. </li>
  2746. <li class="itemize">Time Card</li></ul>
  2747. <!--l. 2189--><p class="noindent">These templates can be edited by an HTML editor. However, it is generally recommended that one back up
  2748. templates first. The reason is that some HTML editors will fully re-parse the HTML and save it back without
  2749. what they see as invalid tags. Most editors, however, will save the variable substitution tags because similar
  2750. tags are also used by Microsoft&#8217;s active server pages.
  2751. </p><!--l. 2196--><p class="indent"> Finally, some editors are known to mangle formatting, so many problems can be avoided by ensuring that
  2752. one has a backup of the templates, especially if they have already been customized.
  2753. </p><!--l. 2201--><p class="noindent">
  2754. </p>
  2755. <h4 class="subsectionHead"><span class="titlemark">15.3 </span> <a
  2756. id="x1-16100015.3"></a><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2757. class="E">E</span>X</span></span>&#x00A0;Templates</h4>
  2758. <!--l. 2203--><p class="noindent">The following templates, by default, are available in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2759. class="E">E</span>X</span></span>&#x00A0;:
  2760. </p>
  2761. <ul class="itemize1">
  2762. <li class="itemize">Invoice
  2763. </li>
  2764. <li class="itemize">AR Transaction
  2765. </li>
  2766. <li class="itemize">AP Transaction
  2767. </li>
  2768. <li class="itemize">Packing List
  2769. </li>
  2770. <li class="itemize">Pick List
  2771. </li>
  2772. <li class="itemize">Sales Order
  2773. </li>
  2774. <li class="itemize">Work Order
  2775. </li>
  2776. <li class="itemize">Purchase Order
  2777. </li>
  2778. <li class="itemize">Bin List
  2779. </li>
  2780. <li class="itemize">Statement
  2781. </li>
  2782. <li class="itemize">Check
  2783. </li>
  2784. <li class="itemize">Receipt
  2785. </li>
  2786. <li class="itemize">Quotation
  2787. </li>
  2788. <li class="itemize">RFQ
  2789. </li>
  2790. <li class="itemize">Time Card</li></ul>
  2791. <!--l. 2222--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2792. class="E">E</span>X</span></span>&#x00A0;templates allow one to generate PDF and postscript documents and print directly to a postscript-enabled
  2793. printer or print software (like CUPS).
  2794. </p><!--l. 2226--><p class="indent"> <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2795. class="E">E</span>X</span></span>&#x00A0;templates can be edited using a standard text editor (like vim or emacs), or using a synchronous
  2796. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2797. class="E">E</span>X</span></span>&#x00A0;implementation such as LY X.
  2798. </p><!--l. 2231--><p class="noindent">
  2799. </p>
  2800. <h5 class="subsubsectionHead"><span class="titlemark">15.3.1 </span> <a
  2801. id="x1-16200015.3.1"></a>What is <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2802. class="E">E</span>X</span></span>&#x00A0;?</h5>
  2803. <!--l. 2233--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2804. class="E">E</span>X</span></span>&#x00A0;(pronounced LAY-tech) is an extension on the <span class="TEX">T<span
  2805. class="E">E</span>X</span>&#x00A0;typesetting system. It largely consists of a set of
  2806. macros that allow one to focus on the structure of the document while letting the <span class="TEX">T<span
  2807. class="E">E</span>X</span>&#x00A0;engine do the heavy
  2808. 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
  2809. class="E">E</span>X</span></span>&#x00A0;is used in a large number of
  2810. academic journals (including those of the American Mathematics Association). It is available at <span class="obeylines-h"><a
  2811. href="http://www.tug.org" class="url" >http://www.tug.org</a></span> and is included in most Linux distributions.
  2812. </p><!--l. 2241--><p class="indent"> Like HTML, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2813. class="E">E</span>X</span></span>&#x00A0;uses plain text documents to store the formatting information and then when the
  2814. document is rendered, attempts to fit it onto a page. <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2815. class="E">E</span>X</span></span>&#x00A0;supports the concept of stylesheets, allowing
  2816. one to separate content from format, and this feature is used in many higher-end applications, like journal
  2817. publication.
  2818. </p><!--l. 2248--><p class="indent"> Unlike HTML, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2819. class="E">E</span>X</span></span>&#x00A0;is a complete though simple programming language that allows one to redefine
  2820. internals of the system for formatting purposes.
  2821. </p><!--l. 2252--><p class="indent"> This document is written in <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2822. class="E">E</span>X</span></span>.
  2823. </p><!--l. 2255--><p class="noindent">
  2824. </p>
  2825. <h5 class="subsubsectionHead"><span class="titlemark">15.3.2 </span> <a
  2826. 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
  2827. class="E">E</span>X</span></span>&#x00A0;Templates</h5>
  2828. <!--l. 2257--><p class="noindent">LY X is a synchronous <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2829. class="E">E</span>X</span></span>&#x00A0;editor that runs on Windows, UNIX/Linux, and Mac OS X. It
  2830. requires an installed <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2831. class="E">E</span>X</span></span>-2e implementation and can be obtained at <span class="obeylines-h"><a
  2832. href="http://www.lyx.org" class="url" >http://www.lyx.org</a></span>. Like
  2833. the most common <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2834. class="E">E</span>X</span></span>&#x00A0;implementations, it is open source and is included with most Linux
  2835. distributions.
  2836. </p><!--l. 2263--><p class="noindent">
  2837. </p>
  2838. <h4 class="subsectionHead"><span class="titlemark">15.4 </span> <a
  2839. id="x1-16400015.4"></a>Customizing Logos</h4>
  2840. <!--l. 2265--><p class="noindent"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2841. class="E">E</span>X</span></span>&#x00A0;requires different formats of logos depending on whether the document is going to be
  2842. generated as a PDF or as postscript. Postscript requires an embedded postscript graphic, while PDF
  2843. requires any type of graphic other than embedded postscript. Usually one uses a PNG&#8217;s for
  2844. PDF&#8217;s, though GIF&#8217;s could be used as well. The logo for a <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span
  2845. class="E">E</span>X</span></span>&#x00A0;document resides in the users
  2846. directory.
  2847. </p><!--l. 2272--><p class="indent"> HTML documents can have logos in many different formats. PNG&#8217;s are generally preferred for printing
  2848. reasons. The image can be stored anywhere and merely referenced in the HTML.
  2849. </p><!--l. 2276--><p class="indent"> Note: Always test the an invoice with images to ensure that the rest of the page format is not thrown off
  2850. by it.
  2851. </p><!--l. 2280--><p class="noindent">
  2852. </p>
  2853. <h4 class="subsectionHead"><span class="titlemark">15.5 </span> <a
  2854. id="x1-16500015.5"></a>How are They Stored in the Filesystem?</h4>
  2855. <!--l. 2282--><p class="noindent">The template directory ("templates" in the root Ledger-SMB install directory) contains all the root templates
  2856. used by Ledger-SMB. These follow a naming convention of COAType-templatename.ext where COAType is
  2857. the type of dataset that was created when the user was created, templatename is the name of the template,
  2858. 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
  2859. class="E">E</span>X</span></span>&#x00A0;respectively).
  2860. </p><!--l. 2289--><p class="indent"> Inside this directory are one or more subdirectories where the relevant templates have been copied as
  2861. default language templates for the user. Many users can use the same user directory (which bears the name
  2862. of the Ledger-SMB username). Within this directory are more subdirectories for translated templates, one for
  2863. each language created.
  2864. </p><!--l. 2296--><p class="noindent">
  2865. </p>
  2866. <h4 class="subsectionHead"><span class="titlemark">15.6 </span> <a
  2867. id="x1-16600015.6"></a>Upgrade Issues</h4>
  2868. <!--l. 2298--><p class="noindent">When Ledger-SMB is upgraded, the templates are not replaced. This is designed to prevent the upgrade
  2869. script from overwriting changes made during the course of customizing the templates.
  2870. </p><!--l. 2302--><p class="indent"> Occasionally, however, the data model changes in a way which can cause the templates to stop printing
  2871. certain information. When information that was showing up before an upgrade stops showing up, one can
  2872. either upgrade the templates by copying the source template over the existing one, or one can edit the
  2873. template to make the change.
  2874. </p><!--l. 2308--><p class="noindent">
  2875. </p>
  2876. <h3 class="sectionHead"><span class="titlemark">16 </span> <a
  2877. id="x1-16700016"></a>An Introduction to the CLI</h3>
  2878. <!--l. 2310--><p class="noindent">
  2879. </p>
  2880. <h4 class="subsectionHead"><span class="titlemark">16.1 </span> <a
  2881. id="x1-16800016.1"></a>Conventions</h4>
  2882. <!--l. 2312--><p class="noindent">The command-line API will be referred to as the API.
  2883. </p><!--l. 2314--><p class="noindent">
  2884. </p>
  2885. <h4 class="subsectionHead"><span class="titlemark">16.2 </span> <a
  2886. id="x1-16900016.2"></a>Preliminaries</h4>
  2887. <!--l. 2316--><p class="noindent">Logging into Ledger-SMB (1.2+) updates a row in the users_conf table containing your account configuration
  2888. defaults and other information. The implication for API users of LSMB is that you must login as part of
  2889. running API scripts. For security purposes, it is recommended that scripts prompt for a password rather than
  2890. storing it.
  2891. </p><!--l. 2322--><p class="indent"> All scripts included in the documentation can also be found in the doc/samples directory.
  2892. </p><!--l. 2325--><p class="indent"> Consider a simple example:
  2893. </p><!--l. 2327--><p class="indent"> cd /usr/local/ledger-smb ./ct.pl "login=name&amp;path=bin&amp;password=xxxxx&amp;action=search&amp;db=customer"
  2894. </p><!--l. 2330--><p class="indent"> The cd command moves your terminal session&#8217;s current working directory into the main Ledger-SMB
  2895. directory. Then the Ledger-SMB perl script ct.pl is called with one long line as an argument. The argument is
  2896. really several variable=value pairs separated by ampersands (&amp;). The value for the login variable is the
  2897. username that Ledger-SMB is to use, and the value for the password variable is the plaintext
  2898. password.
  2899. </p><!--l. 2336--><p class="indent"> To build our examples we will use a username of "clarkkent" who has a password of "lOis,lAn3".
  2900. </p><!--l. 2339--><p class="indent"> cd /usr/local/ledger-smb ./ct.pl "login=clarkkent&amp;path=bin&amp;password=lOis,lAn3&amp;action=search&amp;db=customer"
  2901. </p><!--l. 2342--><p class="indent"> If we execute these commands we will get the html for the search form for the customer database. This
  2902. result isn&#8217;t useful in itself, but it shows we are on the right track.
  2903. </p><!--l. 2347--><p class="noindent">
  2904. </p>
  2905. <h4 class="subsectionHead"><span class="titlemark">16.3 </span> <a
  2906. id="x1-17000016.3"></a>First Script: lsmb01-cli-example.sh</h4>
  2907. <!--l. 2349--><p class="noindent">With a working example, we can start to build reproducible routines that we can grow to do some useful
  2908. work.
  2909. </p><!--l. 2352--><p class="indent"> This is a bash script which:
  2910. </p><!--l. 2354--><p class="indent"> 1. sets NOW to the current working directory 2. prompts for and reads your Ledger-SMB login 3. prompts
  2911. for and reads (non-echoing) your Ledger-SMB password 4. changes directory to /usr/local/ledger-smb 5.
  2912. constructs login and logout commands and a transaction command 6. logins into ledger-smb (in a real
  2913. program, output would be checked for success or failure) 7. executes the transaction 8. logs out
  2914. of ledger-smb (although this is not necessary) 9. returns to the original working directory 10.
  2915. exits
  2916. </p><!--l. 2366--><p class="indent"> Running lsmb01-cli-example.sh produces:
  2917. </p><!--l. 2368--><p class="indent"> $ lsmb01-cli-example.sh
  2918. </p><!--l. 2370--><p class="indent"> Ledger-SMB login: clarkkent
  2919. </p><!--l. 2372--><p class="indent"> Ledger-SMB password:
  2920. </p>
  2921. <table
  2922. class="verbatim"><tr class="verbatim"><td
  2923. class="verbatim"><div class="verbatim">
  2924. &#x003C;body&#x003E;
  2925. &#x00A0;<br />
  2926. &#x00A0;<br />&#x003C;form&#x00A0;method=post&#x00A0;action=ct.pl&#x003E;
  2927. &#x00A0;<br />
  2928. &#x00A0;<br />&#x003C;input&#x00A0;type=hidden&#x00A0;name=db&#x00A0;value=customer&#x003E;
  2929. &#x00A0;<br />
  2930. &#x00A0;<br />&#x003C;table&#x00A0;width=100%&#x003E;
  2931. &#x00A0;<br />&#x00A0;&#x00A0;&#x003C;tr&#x003E;
  2932. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x003C;th&#x00A0;class=listtop&#x003E;Search&#x003C;/th&#x003E;
  2933. &#x00A0;<br />.
  2934. &#x00A0;<br />.
  2935. &#x00A0;<br />.
  2936. </div>
  2937. </td></tr></table>
  2938. <!--l. 2387--><p class="nopar">
  2939. </p><!--l. 2389--><p class="indent"> A script like this would work well for simple batch transactions, but bash is not a very friendly language
  2940. for application programming.
  2941. </p><!--l. 2393--><p class="indent"> A nicer solution would be to use a language such as perl to drive the command line API.
  2942. </p><!--l. 2396--><p class="noindent">
  2943. </p>
  2944. <h5 class="subsubsectionHead"><span class="titlemark">16.3.1 </span> <a
  2945. id="x1-17100016.3.1"></a>Script 1 (Bash)</h5>
  2946. <table
  2947. class="verbatim"><tr class="verbatim"><td
  2948. class="verbatim"><div class="verbatim">
  2949. #!/bin/bash
  2950. &#x00A0;<br />#######################################################################
  2951. &#x00A0;<br />#
  2952. &#x00A0;<br />#&#x00A0;lsmb01-cli-example.sh
  2953. &#x00A0;<br />#&#x00A0;Copyright&#x00A0;(C)&#x00A0;2006.&#x00A0;Louis&#x00A0;B.&#x00A0;Moore
  2954. &#x00A0;<br />#
  2955. &#x00A0;<br />#&#x00A0;$Id:&#x00A0;$
  2956. &#x00A0;<br />#
  2957. &#x00A0;<br />#&#x00A0;This&#x00A0;program&#x00A0;is&#x00A0;free&#x00A0;software;&#x00A0;you&#x00A0;can&#x00A0;redistribute&#x00A0;it&#x00A0;and/or&#x00A0;modify
  2958. &#x00A0;<br />#&#x00A0;it&#x00A0;under&#x00A0;the&#x00A0;terms&#x00A0;of&#x00A0;the&#x00A0;GNU&#x00A0;General&#x00A0;Public&#x00A0;License&#x00A0;as&#x00A0;published&#x00A0;by
  2959. &#x00A0;<br />#&#x00A0;the&#x00A0;Free&#x00A0;Software&#x00A0;Foundation;&#x00A0;either&#x00A0;version&#x00A0;2&#x00A0;of&#x00A0;the&#x00A0;License,&#x00A0;or
  2960. &#x00A0;<br />#&#x00A0;(at&#x00A0;your&#x00A0;option)&#x00A0;any&#x00A0;later&#x00A0;version.
  2961. &#x00A0;<br />#
  2962. &#x00A0;<br />#&#x00A0;This&#x00A0;program&#x00A0;is&#x00A0;distributed&#x00A0;in&#x00A0;the&#x00A0;hope&#x00A0;that&#x00A0;it&#x00A0;will&#x00A0;be&#x00A0;useful,
  2963. &#x00A0;<br />#&#x00A0;but&#x00A0;WITHOUT&#x00A0;ANY&#x00A0;WARRANTY;&#x00A0;without&#x00A0;even&#x00A0;the&#x00A0;implied&#x00A0;warranty&#x00A0;of
  2964. &#x00A0;<br />#&#x00A0;MERCHANTABILITY&#x00A0;or&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR&#x00A0;PURPOSE.&#x00A0;&#x00A0;See&#x00A0;the
  2965. &#x00A0;<br />#&#x00A0;GNU&#x00A0;General&#x00A0;Public&#x00A0;License&#x00A0;for&#x00A0;more&#x00A0;details.
  2966. &#x00A0;<br />#&#x00A0;You&#x00A0;should&#x00A0;have&#x00A0;received&#x00A0;a&#x00A0;copy&#x00A0;of&#x00A0;the&#x00A0;GNU&#x00A0;General&#x00A0;Public&#x00A0;License
  2967. &#x00A0;<br />#&#x00A0;along&#x00A0;with&#x00A0;this&#x00A0;program;&#x00A0;if&#x00A0;not,&#x00A0;write&#x00A0;to&#x00A0;the&#x00A0;Free&#x00A0;Software
  2968. &#x00A0;<br />#&#x00A0;Foundation,&#x00A0;Inc.,&#x00A0;675&#x00A0;Mass&#x00A0;Ave,&#x00A0;Cambridge,&#x00A0;MA&#x00A0;02139,&#x00A0;USA.
  2969. &#x00A0;<br />#
  2970. &#x00A0;<br />#######################################################################
  2971. &#x00A0;<br />
  2972. &#x00A0;<br />NOW=&#8216;pwd&#8216;
  2973. &#x00A0;<br />
  2974. &#x00A0;<br />echo&#x00A0;-n&#x00A0;~Ledger-SMB&#x00A0;login:&#x00A0;~
  2975. &#x00A0;<br />read&#x00A0;LSLOGIN
  2976. &#x00A0;<br />echo
  2977. &#x00A0;<br />
  2978. &#x00A0;<br />echo&#x00A0;-n&#x00A0;~Ledger-SMB&#x00A0;password:&#x00A0;~
  2979. &#x00A0;<br />stty&#x00A0;-echo
  2980. &#x00A0;<br />read&#x00A0;LSPWD
  2981. &#x00A0;<br />stty&#x00A0;echo
  2982. &#x00A0;<br />echo
  2983. &#x00A0;<br />
  2984. &#x00A0;<br />ARG=~login=${LSLOGIN}&amp;password=${LSPWD}&amp;path=bin&amp;action=search&amp;db=customer~
  2985. &#x00A0;<br />
  2986. &#x00A0;<br />LGIN=~login=${LSLOGIN}&amp;password=${LSPWD}&amp;path=bin&amp;action=login~
  2987. &#x00A0;<br />LGOT=~login=${LSLOGIN}&amp;password=${LSPWD}&amp;path=bin&amp;action=logout~
  2988. &#x00A0;<br />
  2989. &#x00A0;<br />cd&#x00A0;/usr/local/ledger-smb
  2990. &#x00A0;<br />
  2991. &#x00A0;<br />./login.pl&#x00A0;$LGIN&#x00A0;2&#x003E;&amp;1&#x00A0;&#x00A0;&#x003E;&#x00A0;/dev/null
  2992. &#x00A0;<br />./ct.pl&#x00A0;$ARG
  2993. &#x00A0;<br />./login.pl&#x00A0;$LGOT&#x00A0;2&#x003E;&amp;1&#x00A0;&#x00A0;&#x003E;&#x00A0;/dev/null
  2994. &#x00A0;<br />
  2995. &#x00A0;<br />cd&#x00A0;$NOW
  2996. &#x00A0;<br />
  2997. &#x00A0;<br />exit&#x00A0;0
  2998. </div>
  2999. </td></tr></table>
  3000. <!--l. 2447--><p class="nopar">
  3001. </p><!--l. 2450--><p class="noindent">
  3002. </p>
  3003. <h4 class="subsectionHead"><span class="titlemark">16.4 </span> <a
  3004. id="x1-17200016.4"></a>Second Script: lsmb02-cli-example.pl</h4>
  3005. <!--l. 2452--><p class="noindent">Our second script is written in perl and logs you in but it still uses the API in its simplest form, that is, it
  3006. builds commands and then executes them. This type of script can be used for more complex solutions than
  3007. the simple bash script above, though it is still fairly limited. If your needs require, rather than have the script
  3008. build and then execute the commands it could be written to generate a shell script which is executed by
  3009. hand.
  3010. </p><!--l. 2459--><p class="indent"> This script begins by prompting for your Ledger-SMB login and password. Using the supplied
  3011. values a login command is constructed and passed into the runLScmd subroutine. runLScmd
  3012. changes directory to /usr/local/ledger-smb/ for the length of the subroutine. It formats the
  3013. command and executes it and returns both the output and error information to the caller in a
  3014. scalar.
  3015. </p><!--l. 2465--><p class="indent"> The script checks to see if there was an error in the login, exiting if there was.
  3016. </p><!--l. 2467--><p class="indent"> Next, the script reads some records which are stored in the program following the __END__ token. It
  3017. takes each record in turn, formats it then feeds each transaction through runLScmd and looks at the results
  3018. for a string that signals success.
  3019. </p><!--l. 2471--><p class="indent"> Once all the transactions are processed, runLScmd is called one last time to logout and the script
  3020. exits.
  3021. </p><!--l. 2474--><p class="noindent">
  3022. </p>
  3023. <h5 class="subsubsectionHead"><span class="titlemark">16.4.1 </span> <a
  3024. id="x1-17300016.4.1"></a>Script 2 (Perl)</h5>
  3025. <table
  3026. class="verbatim"><tr class="verbatim"><td
  3027. class="verbatim"><div class="verbatim">
  3028. #!/usr/bin/perl&#x00A0;-w
  3029. &#x00A0;<br />#
  3030. &#x00A0;<br />#&#x00A0;&#x00A0;File:&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;lsmb02-cli-example.pl
  3031. &#x00A0;<br />#&#x00A0;&#x00A0;Environment:&#x00A0;&#x00A0;Ledger-SMB&#x00A0;1.2.0+
  3032. &#x00A0;<br />#&#x00A0;&#x00A0;Author:&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Louis&#x00A0;B.&#x00A0;Moore
  3033. &#x00A0;<br />#
  3034. &#x00A0;<br />#&#x00A0;&#x00A0;Copyright&#x00A0;(C)&#x00A0;&#x00A0;&#x00A0;2006&#x00A0;&#x00A0;Louis&#x00A0;B.&#x00A0;Moore
  3035. &#x00A0;<br />#
  3036. &#x00A0;<br />#&#x00A0;&#x00A0;This&#x00A0;program&#x00A0;is&#x00A0;free&#x00A0;software;&#x00A0;you&#x00A0;can&#x00A0;redistribute&#x00A0;it&#x00A0;and/or
  3037. &#x00A0;<br />#&#x00A0;&#x00A0;modify&#x00A0;it&#x00A0;under&#x00A0;the&#x00A0;terms&#x00A0;of&#x00A0;the&#x00A0;GNU&#x00A0;General&#x00A0;Public&#x00A0;License
  3038. &#x00A0;<br />#&#x00A0;&#x00A0;as&#x00A0;published&#x00A0;by&#x00A0;the&#x00A0;Free&#x00A0;Software&#x00A0;Foundation;&#x00A0;either&#x00A0;version&#x00A0;2
  3039. &#x00A0;<br />#&#x00A0;&#x00A0;of&#x00A0;the&#x00A0;License,&#x00A0;or&#x00A0;(at&#x00A0;your&#x00A0;option)&#x00A0;any&#x00A0;later&#x00A0;version.
  3040. &#x00A0;<br />#
  3041. &#x00A0;<br />#&#x00A0;&#x00A0;This&#x00A0;program&#x00A0;is&#x00A0;distributed&#x00A0;in&#x00A0;the&#x00A0;hope&#x00A0;that&#x00A0;it&#x00A0;will&#x00A0;be&#x00A0;useful,
  3042. &#x00A0;<br />#&#x00A0;&#x00A0;but&#x00A0;WITHOUT&#x00A0;ANY&#x00A0;WARRANTY;&#x00A0;without&#x00A0;even&#x00A0;the&#x00A0;implied&#x00A0;warranty&#x00A0;of
  3043. &#x00A0;<br />#&#x00A0;&#x00A0;MERCHANTABILITY&#x00A0;or&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR&#x00A0;PURPOSE.&#x00A0;&#x00A0;See&#x00A0;the
  3044. &#x00A0;<br />#&#x00A0;&#x00A0;GNU&#x00A0;General&#x00A0;Public&#x00A0;License&#x00A0;for&#x00A0;more&#x00A0;details.
  3045. &#x00A0;<br />#
  3046. &#x00A0;<br />#&#x00A0;&#x00A0;You&#x00A0;should&#x00A0;have&#x00A0;received&#x00A0;a&#x00A0;copy&#x00A0;of&#x00A0;the&#x00A0;GNU&#x00A0;General&#x00A0;Public&#x00A0;License
  3047. &#x00A0;<br />#&#x00A0;&#x00A0;along&#x00A0;with&#x00A0;this&#x00A0;program;&#x00A0;if&#x00A0;not,&#x00A0;write&#x00A0;to&#x00A0;the&#x00A0;Free&#x00A0;Software
  3048. &#x00A0;<br />#&#x00A0;&#x00A0;Foundation,&#x00A0;Inc.,&#x00A0;59&#x00A0;Temple&#x00A0;Place&#x00A0;-&#x00A0;Suite&#x00A0;330,&#x00A0;Boston,&#x00A0;MA&#x00A0;&#x00A0;02111-1307,&#x00A0;USA.
  3049. &#x00A0;<br />#
  3050. &#x00A0;<br />#&#x00A0;&#x00A0;Revision:
  3051. &#x00A0;<br />#&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;$Id$
  3052. &#x00A0;<br />#
  3053. &#x00A0;<br />#
  3054. &#x00A0;<br />
  3055. &#x00A0;<br />use&#x00A0;File::chdir;
  3056. &#x00A0;<br />use&#x00A0;HTML::Entities;
  3057. &#x00A0;<br />
  3058. &#x00A0;<br />
  3059. &#x00A0;<br />print&#x00A0;~\n\nLedger-SMB&#x00A0;login:&#x00A0;~;
  3060. &#x00A0;<br />my&#x00A0;$login&#x00A0;=&#x00A0;&#x003C;STDIN&#x003E;;
  3061. &#x00A0;<br />chomp($login);
  3062. &#x00A0;<br />
  3063. &#x00A0;<br />
  3064. &#x00A0;<br />print&#x00A0;~\nLedger-SMB&#x00A0;password:&#x00A0;~;
  3065. &#x00A0;<br />system(~stty&#x00A0;-echo~);
  3066. &#x00A0;<br />my&#x00A0;$pwd&#x00A0;=&#x00A0;&#x003C;STDIN&#x003E;;
  3067. &#x00A0;<br />system(~stty&#x00A0;echo~);
  3068. &#x00A0;<br />chomp($pwd);
  3069. &#x00A0;<br />print&#x00A0;~\n\n~;
  3070. &#x00A0;<br />
  3071. &#x00A0;<br />$cmd&#x00A0;=&#x00A0;~login=~&#x00A0;.&#x00A0;$login&#x00A0;.&#x00A0;&#8217;&amp;password=&#8217;&#x00A0;.&#x00A0;$pwd&#x00A0;.&#x00A0;&#8217;&amp;path=bin&amp;action=login&#8217;;
  3072. &#x00A0;<br />
  3073. &#x00A0;<br />$signin&#x00A0;=&#x00A0;runLScmd(~./login.pl~,$cmd);
  3074. &#x00A0;<br />
  3075. &#x00A0;<br />if&#x00A0;(&#x00A0;$signin&#x00A0;=~&#x00A0;m/Error:/&#x00A0;)&#x00A0;{
  3076. &#x00A0;<br />
  3077. &#x00A0;<br />print&#x00A0;~\nLogin&#x00A0;error\n~;
  3078. &#x00A0;<br />exit;
  3079. &#x00A0;<br />
  3080. &#x00A0;<br />}
  3081. &#x00A0;<br />
  3082. &#x00A0;<br />
  3083. &#x00A0;<br />while&#x00A0;(&#x003C;main::DATA&#x003E;)&#x00A0;{
  3084. &#x00A0;<br />
  3085. &#x00A0;<br />chomp;
  3086. &#x00A0;<br />@rec&#x00A0;=&#x00A0;split(/\|/);
  3087. &#x00A0;<br />
  3088. &#x00A0;<br />$arg&#x00A0;=&#x00A0;&#8217;path=bin/mozilla&amp;login=&#8217;&#x00A0;.&#x00A0;$login&#x00A0;.&#x00A0;&#8217;&amp;password=&#8217;&#x00A0;.&#x00A0;$pwd&#x00A0;.
  3089. &#x00A0;<br />&#8217;&amp;action=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[0],0,35))&#x00A0;.
  3090. &#x00A0;<br />&#8217;&amp;db=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;$rec[1]&#x00A0;.
  3091. &#x00A0;<br />&#8217;&amp;name=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[2],0,35))&#x00A0;.
  3092. &#x00A0;<br />&#8217;&amp;vendornumber=&#8217;&#x00A0;.&#x00A0;$rec[3]&#x00A0;.
  3093. &#x00A0;<br />&#8217;&amp;address1=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[4],0,35))&#x00A0;.
  3094. &#x00A0;<br />&#8217;&amp;address2=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[5],0,35))&#x00A0;.
  3095. &#x00A0;<br />&#8217;&amp;city=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[6],0,35))&#x00A0;.
  3096. &#x00A0;<br />&#8217;&amp;state=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[7],0,35))&#x00A0;.
  3097. &#x00A0;<br />&#8217;&amp;zipcode=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[8],0,35))&#x00A0;.
  3098. &#x00A0;<br />&#8217;&amp;country=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[9],0,35))&#x00A0;.
  3099. &#x00A0;<br />&#8217;&amp;phone=&#8217;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;.&#x00A0;escape(substr($rec[10],0,20))&#x00A0;.
  3100. &#x00A0;<br />&#8217;&amp;tax_2150=1&#8217;&#x00A0;.
  3101. &#x00A0;<br />&#8217;&amp;taxaccounts=2150&#8217;&#x00A0;.
  3102. &#x00A0;<br />&#8217;&amp;taxincluded=0&#8217;&#x00A0;.
  3103. &#x00A0;<br />&#8217;&amp;terms=0&#8217;;
  3104. &#x00A0;<br />
  3105. &#x00A0;<br />$rc=runLScmd(~./ct.pl~,$arg);
  3106. &#x00A0;<br />
  3107. &#x00A0;<br />if&#x00A0;($rc&#x00A0;=~&#x00A0;m/Vendor&#x00A0;saved!/)&#x00A0;{
  3108. &#x00A0;<br />
  3109. &#x00A0;<br />print&#x00A0;~$rec[2]&#x00A0;SAVED\n~;
  3110. &#x00A0;<br />
  3111. &#x00A0;<br />}&#x00A0;else&#x00A0;{
  3112. &#x00A0;<br />
  3113. &#x00A0;<br />print&#x00A0;~$rec[2]&#x00A0;ERROR\n~;
  3114. &#x00A0;<br />
  3115. &#x00A0;<br />}
  3116. &#x00A0;<br />
  3117. &#x00A0;<br />}
  3118. &#x00A0;<br />
  3119. &#x00A0;<br />
  3120. &#x00A0;<br />$cmd&#x00A0;=&#x00A0;~login=~&#x00A0;.&#x00A0;$login&#x00A0;.&#x00A0;&#8217;&amp;password=&#8217;&#x00A0;.&#x00A0;$pwd&#x00A0;.&#x00A0;&#8217;&amp;path=bin&amp;action=logout&#8217;;
  3121. &#x00A0;<br />
  3122. &#x00A0;<br />$signin&#x00A0;=&#x00A0;runLScmd(~./login.pl~,$cmd);
  3123. &#x00A0;<br />
  3124. &#x00A0;<br />if&#x00A0;(&#x00A0;$signin&#x00A0;=~&#x00A0;m/Error:/&#x00A0;)&#x00A0;{
  3125. &#x00A0;<br />
  3126. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;print&#x00A0;~\nLogout&#x00A0;error\n~;
  3127. &#x00A0;<br />
  3128. &#x00A0;<br />}
  3129. &#x00A0;<br />
  3130. &#x00A0;<br />exit;
  3131. &#x00A0;<br />
  3132. &#x00A0;<br />
  3133. &#x00A0;<br />#*******************************************************
  3134. &#x00A0;<br />#&#x00A0;Subroutines
  3135. &#x00A0;<br />#*******************************************************
  3136. &#x00A0;<br />
  3137. &#x00A0;<br />
  3138. &#x00A0;<br />sub&#x00A0;runLScmd&#x00A0;{
  3139. &#x00A0;<br />
  3140. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$cmd&#x00A0;&#x00A0;=&#x00A0;shift;
  3141. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$args&#x00A0;=&#x00A0;shift;
  3142. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$i&#x00A0;&#x00A0;&#x00A0;&#x00A0;=&#x00A0;0;
  3143. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$results;
  3144. &#x00A0;<br />
  3145. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;local&#x00A0;$CWD&#x00A0;=&#x00A0;~/usr/local/ledger-smb/~;
  3146. &#x00A0;<br />
  3147. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;$cmd&#x00A0;=&#x00A0;$cmd&#x00A0;.&#x00A0;~&#x00A0;\~~&#x00A0;.&#x00A0;$args&#x00A0;.&#x00A0;~\~~;
  3148. &#x00A0;<br />
  3149. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;$results&#x00A0;=&#x00A0;&#8216;$cmd&#x00A0;2&#x003E;&amp;1&#8216;;
  3150. &#x00A0;<br />
  3151. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;return&#x00A0;$results;
  3152. &#x00A0;<br />
  3153. &#x00A0;<br />}
  3154. &#x00A0;<br />
  3155. &#x00A0;<br />sub&#x00A0;escape&#x00A0;{
  3156. &#x00A0;<br />
  3157. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;my&#x00A0;$str&#x00A0;=&#x00A0;shift;
  3158. &#x00A0;<br />
  3159. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;if&#x00A0;($str)&#x00A0;{
  3160. &#x00A0;<br />
  3161. &#x00A0;<br />decode_entities($str);
  3162. &#x00A0;<br />$str&#x00A0;=~&#x00A0;s/([^a-zA-Z0-9_.-])/sprintf(~%%%02x~,&#x00A0;ord($1))/ge;
  3163. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;}
  3164. &#x00A0;<br />
  3165. &#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;return&#x00A0;$str;
  3166. &#x00A0;<br />
  3167. &#x00A0;<br />}
  3168. &#x00A0;<br />
  3169. &#x00A0;<br />
  3170. &#x00A0;<br />#*******************************************************
  3171. &#x00A0;<br />#&#x00A0;Record&#x00A0;Format
  3172. &#x00A0;<br />#*******************************************************
  3173. &#x00A0;<br />#
  3174. &#x00A0;<br />#&#x00A0;action&#x00A0;|&#x00A0;db&#x00A0;|&#x00A0;name&#x00A0;|&#x00A0;vendornumber&#x00A0;|&#x00A0;address1&#x00A0;|&#x00A0;address2&#x00A0;|&#x00A0;city&#x00A0;|&#x00A0;state&#x00A0;|&#x00A0;zipcode&#x00A0;|&#x00A0;country&#x00A0;|&#x00A0;phone
  3175. &#x00A0;<br />#
  3176. &#x00A0;<br />
  3177. &#x00A0;<br />__END__
  3178. &#x00A0;<br />save|vendor|Parts&#x00A0;are&#x00A0;Us|1377|238&#x00A0;Riverview|Suite&#x00A0;11|Cheese&#x00A0;Head|WI|56743|USA|555-123-3322|
  3179. &#x00A0;<br />save|vendor|Widget&#x00A0;Heaven|1378|41&#x00A0;S.&#x00A0;Riparian&#x00A0;Way||Show&#x00A0;Me|MO|39793|USA|555-231-3309|
  3180. &#x00A0;<br />save|vendor|Consolidated&#x00A0;Spackle|1379|1010&#x00A0;Binary&#x00A0;Lane|Dept&#x00A0;1101|Beverly&#x00A0;Hills|CA|90210|USA|555-330-7639&#x00A0;x772|
  3181. &#x00A0;<br />
  3182. &#x00A0;<br />
  3183. </div>
  3184. </td></tr></table>
  3185. <!--l. 2631--><p class="nopar">
  3186. </p>
  3187. <h1 class="partHead"><span class="titlemark">Part&#x00A0;II<br /></span><a
  3188. id="x1-174000II"></a>Technical Overview</h1>
  3189. <h3 class="sectionHead"><span class="titlemark">17 </span> <a
  3190. id="x1-17500017"></a>Basic Architecture</h3>
  3191. <!--l. 2642--><p class="noindent">Ledger-SMB is a web-based Perl program that interfaces with PostgreSQL using the relevant Perl modules.
  3192. The code is well partitioned, and the main operation modules are written in an object oriented
  3193. way.
  3194. </p><!--l. 2647--><p class="noindent">
  3195. </p>
  3196. <h4 class="subsectionHead"><span class="titlemark">17.1 </span> <a
  3197. id="x1-17600017.1"></a>The Software Stack</h4>
  3198. <hr class="figure" /><div class="figure"
  3199. ><table class="figure"><tr class="figure"><td class="figure"
  3200. >
  3201. <a
  3202. id="x1-1760018"></a>
  3203. <!--l. 9--><p class="center"> <img
  3204. src="LedgerSMB-manual6x.png" alt="PICT" />
  3205. <br /></p><table class="caption"
  3206. ><tr style="vertical-align:baseline;" class="caption"><td class="id">Figure&#x00A0;8: </td><td
  3207. class="content">The Ledger-SMB software stack in a Typical Implementation</td></tr></table><!--tex4ht:label?: x1-1760018 -->
  3208. </td></tr></table></div><hr class="endfigure" />
  3209. <!--l. 2658--><p class="indent"> Ledger-SMB runs in a Perl interpreter. I do not currently know if it is possible to run it with Perl2C or
  3210. other language converters to run in other environments. However, except for high-capacity environments,
  3211. Perl is a good language choice for this sort of program.
  3212. </p><!--l. 2663--><p class="indent"> Ledger-SMB used to support DB2 and Oracle as well as PostgreSQL. However, currently some of the
  3213. functionality is implemented using PostgreSQL user-defined functions. These would need to be ported to
  3214. other database managers in order to make the software work on these. It should not be too hard, but the fact
  3215. that it has not been done yet may mean that there is no real demand for running the software under other
  3216. RDBMS&#8217;s.
  3217. </p><!--l. 2670--><p class="indent"> One can substitute other web servers for Apache. Normally Ledger-SMB is run as a CGI program
  3218. but it may be possible to run it in the web server process (note that this may not be entirely
  3219. thread-safe).
  3220. </p><!--l. 2674--><p class="indent"> The operating system can be any that supports a web server and Perl (since PostgreSQL need not run on
  3221. the same system). However, there are a few issues running Ledger-SMB on Windows (most notably in trying
  3222. to get Postscript documents to print properly).
  3223. </p><!--l. 2679--><p class="indent"> On the client side, any web-browser will work. Currently, the layout is different for Lynx (which doesn&#8217;t
  3224. support frames), and the layout is not really useful under eLinks (the replacement for Lynx which does
  3225. support frames). Some functionality requires Javascript to work properly, though the application is usable
  3226. without these features.
  3227. </p>
  3228. <h4 class="subsectionHead"><span class="titlemark">17.2 </span> <a
  3229. id="x1-17700017.2"></a>Capacity Planning</h4>
  3230. <!--l. 2688--><p class="noindent">Some companies may ask how scalable Ledger-SMB is. In general, it is assumed that few companies are
  3231. going to have a need for a high-concurrency accounting system. However, with all the features available in
  3232. Ledger-SMB, the staff that may have access to some of the application may be senior enough to make the
  3233. question worthwhile.
  3234. </p><!--l. 2694--><p class="indent"> This question also becomes more important when companies might look at integrating Ledger-SMB with
  3235. a CRM solution, online store, or other environment. This section looks at a number of the known issues and
  3236. their solutions.
  3237. </p><!--l. 2700--><p class="noindent">
  3238. </p>
  3239. <h5 class="subsubsectionHead"><span class="titlemark">17.2.1 </span> <a
  3240. id="x1-17800017.2.1"></a>Scalability Strategies</h5>
  3241. <!--l. 2702--><p class="noindent">Ledger-SMB is a fairly standard web-based application. However, sometimes the database schema changes
  3242. during upgrades. In these cases, it becomes impossible to use different versions of the software against the
  3243. same database version safely. Ledger-SMB checks the version of the database and if the version is higher than
  3244. the version of the software that is running, will refuse to run.
  3245. </p><!--l. 2709--><p class="indent"> Therefore although one strategy might be to run several front-end web servers with Ledger-SMB, in
  3246. reality this can be a bit of a problem. One solution is to take half of the front-end servers off-line while
  3247. doing the initial upgrade, and then take the other offline to upgrade when these are brought back
  3248. online.
  3249. </p><!--l. 2715--><p class="indent"> The database manager is less scalable in the sense that one cannot just add more database servers and
  3250. expect to carry on as normal. However, aside from the known issues listed below, there are few performance
  3251. issues with it. If complex reports are necessary, these can be moved to a replica database (perhaps using
  3252. Slony-I).
  3253. </p><!--l. 2721--><p class="indent"> If this solution is insufficient for database scalability, one might be able to move staff who do not need
  3254. real-time access to new entries onto a PG-Pool/Slony-I cluster where new transactions are entered on the
  3255. master and other data is looked up on the replica. In certain circumstances, one can also offload a number of
  3256. other queries from the master database in order to minimize the load. Ledger-SMB has very few issues in the
  3257. scalability of the application.
  3258. </p><!--l. 2730--><p class="noindent">
  3259. </p>
  3260. <h5 class="subsubsectionHead"><span class="titlemark">17.2.2 </span> <a
  3261. id="x1-17900017.2.2"></a>Database Maintenance</h5>
  3262. <!--l. 2732--><p class="noindent">PostgreSQL uses a technique called Multi-version Concurrency Control (MVCC) to provide a snapshot of the
  3263. database at the beginning of a statement or transaction (depending on the transaction isolation level). When a
  3264. row is updated, PostgreSQL leaves the old row in the database, and inserts a new version of that row into the
  3265. table. Over time, unless those old rows are removed, performance can degrade as PostgreSQL has to search
  3266. through all the old versions of the row in order to determine which one ought to be the current
  3267. one.
  3268. </p><!--l. 2741--><p class="indent"> Due to the way the SQL statements are executed in Ledger-SMB, most inserts will also create a dead
  3269. row.
  3270. </p><!--l. 2744--><p class="indent"> A second problem occurs in that each transaction is given a transaction id. These id&#8217;s are numbered using
  3271. 32-bit integers. If the transaction id wraps around (prior to 8.1), data from transactions that appear
  3272. (due to the wraparound) to be in the future suddenly becomes inaccessible. This problem was
  3273. corrected in PostgreSQL 8.1, where the database will refuse to accept new transactions if the
  3274. transaction ID gets too close to a wraparound. So while the problem is not as serious in 8.1, the
  3275. application merely becomes inaccessible rather than displaying apparent data loss. Wraparound
  3276. would occur after about a billion transactions between all databases running on that instance of
  3277. PostgreSQL.
  3278. </p><!--l. 2755--><p class="indent"> Prior to 8.1, the main way to prevent both these problems was to run a periodic vacuumdb command
  3279. from cron (UNIX/Linux) or the task scheduler (Windows). In 8.1 or later, autovacuum capabilities are part of
  3280. the back-end and can be configured with the database manager. See the PostgreSQL documentation for
  3281. treatment of these subjects.
  3282. </p><!--l. 2761--><p class="indent"> In general, if performance appears to be slowly degrading, one should try to run vacuumdb -z from the
  3283. shell in order to attempt to reclaim space and provide the planner with accurate information about the size
  3284. and composition of the tables. If this fails, then one can go to other methods of determining the bottleneck
  3285. and what to do about it.
  3286. </p><!--l. 2769--><p class="noindent">
  3287. </p>
  3288. <h5 class="subsubsectionHead"><span class="titlemark">17.2.3 </span> <a
  3289. id="x1-18000017.2.3"></a>Known issues</h5>
  3290. <!--l. 2771--><p class="noindent">The PostgreSQL planner assumes a minimum page size of ten pages for a physically empty table. The
  3291. reasoning behind this choice is that a table could grow rapidly and one could end up with bad database
  3292. performance if the planner assumes a very small table.
  3293. </p><!--l. 2776--><p class="indent"> However, if you end up with joins between a very large table with millions of rows and a physically
  3294. empty table, one can end up with a very bad query plan. In this case, the planner will choose a nested loop
  3295. join and run through this loop for every row in the large table. As a result, performance will suddenly drop
  3296. once the large table becomes too large to effectively do index scans of the join criteria on both tables.
  3297. This problem most often occurs when people have no warehouses, departments, or projects
  3298. defined and are running systems with a large number of transactions (such as a point of sale
  3299. environment).
  3300. </p><!--l. 2786--><p class="indent"> Last time I saw this problem, the server would wait for thirty seconds to display a new point of sale
  3301. screen while the server CPU activity would spike to 100%.
  3302. </p><!--l. 2790--><p class="indent"> One solution is to define one warehouse, department, and project, and then run vacuumdb -z from the
  3303. shell to force the planner to acknowledge these tables as single-row tables. The other option is to go into the
  3304. source code and edit the database queries to omit unused tables.
  3305. </p><!--l. 2796--><p class="noindent">
  3306. </p>
  3307. <h3 class="sectionHead"><span class="titlemark">18 </span> <a
  3308. id="x1-18100018"></a>Customization Possibilities</h3>
  3309. <!--l. 2798--><p class="noindent">Ledger-SMB is designed to be customized relatively easily and rapidly. In general, the source
  3310. code is well written and compartmentalized. This section covers the basic possibilities involving
  3311. customization.
  3312. </p><!--l. 2803--><p class="noindent">
  3313. </p>
  3314. <h4 class="subsectionHead"><span class="titlemark">18.1 </span> <a
  3315. id="x1-18200018.1"></a>Brief Guide to the Source Code</h4>
  3316. <!--l. 2805--><p class="noindent">Ledger-SMB is an application with over 34000 lines of code. While it is not possible to cover the entire
  3317. application here, a brief overview of the source code is in order.
  3318. </p><!--l. 2809--><p class="indent"> In the root of the install directory, one will find a setup.pl program, a number of other .pl programs, and a
  3319. number of directories. The setup.pl program is used to update or install Ledger-SMB. The other .pl programs
  3320. provide a basic set of services for the framework (including authentication) and then pass the work on to the
  3321. data entry screen file in the bin directory.
  3322. </p><!--l. 2816--><p class="indent"> The bin directory contains another directory for each terminal type. The main two offered are lynx and
  3323. mozilla. Lynx would be used for web browsers that do not support frames and is ideal for a text-mode VGA
  3324. terminal. Mozilla is the terminal type used for most other web browsers. The perl files within these
  3325. directories provides the user interface of the software.
  3326. </p><!--l. 2823--><p class="indent"> The css directory in the root install directory contains CSS documents to provide various stylesheets one
  3327. can select for changing various aspects of the look and feel of the application.
  3328. </p><!--l. 2827--><p class="indent"> The locale directory contains translation files that Ledger-SMB uses to translate between different
  3329. languages. One could add translations to these files if necessary.
  3330. </p><!--l. 2831--><p class="indent"> The LSMB directory is where the Perl modules reside that provide the core business logic in Ledger-SMB.
  3331. These modules provide functionality such as form handling, email capabilities, and access to the database
  3332. through its at least partially object oriented API.
  3333. </p><!--l. 2836--><p class="indent"> Finally, the sql directory provides the database schemas and upgrade scripts.
  3334. </p><!--l. 2840--><p class="noindent">
  3335. </p>
  3336. <h4 class="subsectionHead"><span class="titlemark">18.2 </span> <a
  3337. id="x1-18300018.2"></a>Data Entry Screens</h4>
  3338. <!--l. 2842--><p class="noindent">One can customize the data entry screens to optimize work flow, display additional information,
  3339. etc.
  3340. </p><!--l. 2846--><p class="noindent">
  3341. </p>
  3342. <h5 class="subsubsectionHead"><span class="titlemark">18.2.1 </span> <a
  3343. id="x1-18400018.2.1"></a>Examples</h5>
  3344. <!--l. 2848--><p class="noindent">We set up hot keys for payment lines, automatically focused the keyboard on the last partnumber field,
  3345. removed separate print and post buttons to ensure that invoices were always printed and posted together,
  3346. and removed the ability to print to the screen, and even the ability to scan items in when an invoice was
  3347. received (using a portable data terminal) and import this data into Ledger-SMB. Finally we added the ability
  3348. to reconcile the till online in a paperless manner.
  3349. </p><!--l. 2856--><p class="indent"> For another customer, we added the ability to print AR invoices in plain text format and added templates
  3350. (based on the POS sales template) to do this.
  3351. </p><!--l. 2861--><p class="noindent">
  3352. </p>
  3353. <h4 class="subsectionHead"><span class="titlemark">18.3 </span> <a
  3354. id="x1-18500018.3"></a>Extensions</h4>
  3355. <!--l. 2863--><p class="noindent">One can add functionality to the Perl modules in the LSMB directory and often add missing functions
  3356. easily.
  3357. </p><!--l. 2867--><p class="noindent">
  3358. </p>
  3359. <h5 class="subsubsectionHead"><span class="titlemark">18.3.1 </span> <a
  3360. id="x1-18600018.3.1"></a>Examples</h5>
  3361. <!--l. 2869--><p class="noindent">For one customer, we added a module to take data from a portable data terminal collected when inventory
  3362. items were taken and use that to add shrinkage and loss adjustments. We also extended the parts model to
  3363. add a check id flag (for alcohol sales) and added this flag to the user interface.
  3364. </p><!--l. 2875--><p class="indent"> For another customer, we added a complex invoice/packing slip tracking system that allowed one to
  3365. track all the printed documents associated with an order or invoice.
  3366. </p><!--l. 2880--><p class="noindent">
  3367. </p>
  3368. <h4 class="subsectionHead"><span class="titlemark">18.4 </span> <a
  3369. id="x1-18700018.4"></a>Templates</h4>
  3370. <!--l. 2882--><p class="noindent">As noted before templates can be modified or extended, though sometimes this involves extending the user
  3371. interface scripts. Most templates are easy enough to modify.
  3372. </p><!--l. 2887--><p class="noindent">
  3373. </p>
  3374. <h5 class="subsubsectionHead"><span class="titlemark">18.4.1 </span> <a
  3375. id="x1-18800018.4.1"></a>Examples</h5>
  3376. <!--l. 2889--><p class="noindent">For one customer we added text-only invoices for AR and AP transactions/Invoices and an ability to use
  3377. Javascript in them to automatically print them on load.
  3378. </p><!--l. 2894--><p class="noindent">
  3379. </p>
  3380. <h4 class="subsectionHead"><span class="titlemark">18.5 </span> <a
  3381. id="x1-18900018.5"></a>Reports</h4>
  3382. <!--l. 2896--><p class="noindent">The fact that all the data is available within the database manager is a huge advantage of Ledger-SMB over
  3383. Quickbooks and the like. The rapid development of reports allows for one to easily develop reports of any
  3384. sort within Ledger-SMB.
  3385. </p><!--l. 2902--><p class="noindent">
  3386. </p>
  3387. <h5 class="subsubsectionHead"><span class="titlemark">18.5.1 </span> <a
  3388. id="x1-19000018.5.1"></a>Examples</h5>
  3389. <!--l. 2904--><p class="noindent">For one customer, we developed a report of parts sold and received during arbitrary time frames. The report
  3390. allows one to go back and look up the invoices involved.
  3391. </p><!--l. 2909--><p class="noindent">
  3392. </p>
  3393. <h3 class="sectionHead"><span class="titlemark">19 </span> <a
  3394. id="x1-19100019"></a>Integration Possibilities</h3>
  3395. <!--l. 2911--><p class="noindent">An open database system and programming API allows for many types of integration. There are some
  3396. challenges, but in the end, one can integrate a large number of tools.
  3397. </p><!--l. 2916--><p class="noindent">
  3398. </p>
  3399. <h4 class="subsectionHead"><span class="titlemark">19.1 </span> <a
  3400. id="x1-19200019.1"></a>Reporting Tools</h4>
  3401. <!--l. 2918--><p class="noindent">Any reporting tool which can access the PostgreSQL database can be used with Ledger-SMB for custom
  3402. reporting. These can include programs like Microsoft Access and Excel (using the ODBC drivers), PgAccess
  3403. (A PostgreSQL front-end written in TCL/Tk with a similar feel to Access), Rekall, Crystal Reports,
  3404. OpenOffice and more.
  3405. </p><!--l. 2925--><p class="noindent">
  3406. </p>
  3407. <h5 class="subsubsectionHead"><span class="titlemark">19.1.1 </span> <a
  3408. id="x1-19300019.1.1"></a>Examples</h5>
  3409. <!--l. 2927--><p class="noindent">We have created spreadsheets of the summaries of activity by day and used the ODBC driver to import these
  3410. into Excel. Excel can also read HTML tables, so one can use PostgreSQL to create an HTML table of the result
  3411. and save it with a .xls extension so that Windows opens it with Excel. These could then be served via the
  3412. same web server that serves Ledger-SMB.
  3413. </p><!--l. 2935--><p class="noindent">
  3414. </p>
  3415. <h4 class="subsectionHead"><span class="titlemark">19.2 </span> <a
  3416. id="x1-19400019.2"></a>Line of Business Tools on PostgreSQL</h4>
  3417. <!--l. 2937--><p class="noindent">Various line of business tools have been written using PostgreSQL in large part due to the fact that it is far
  3418. more mature than MySQL in areas relating to data integrity enforcement, transactional processing, and the
  3419. like. These tools can be integrated with Ledger-SMB in various ways. One could integrate this program with
  3420. the HERMES CRM framework, for example.
  3421. </p><!--l. 2945--><p class="noindent">
  3422. </p>
  3423. <h5 class="subsubsectionHead"><span class="titlemark">19.2.1 </span> <a
  3424. id="x1-19500019.2.1"></a>Known Issues</h5>