<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.ledger123.com/docs/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>SQL-Ledger User and Developer Docs</title>
        <description></description>
        <link>http://www.ledger123.com/docs/</link>
        <lastBuildDate>Tue, 07 Sep 2010 15:08:22 +0000</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://www.ledger123.com/docs/lib/images/favicon.ico</url>
            <title>SQL-Ledger User and Developer Docs</title>
            <link>http://www.ledger123.com/docs/</link>
        </image>
        <item>
            <title>ap</title>
            <link>http://www.ledger123.com/docs/doku.php?id=ap&amp;rev=1251981020&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;vendors&quot; id=&quot;vendors&quot;&gt;Vendors&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You need to add at least one vendor before creating invoices. Use &lt;strong&gt;Vendors–Add Vendor&lt;/strong&gt; to add new vendors. 
&lt;/p&gt;

&lt;p&gt;
To change existing vendors, first you list them using &lt;strong&gt;Vendors–Reports–Search&lt;/strong&gt;. Vendors are listed with hyperlinks to edit each vendor.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=ap&amp;amp;media=vendor.png&quot; class=&quot;media&quot; title=&quot;vendor.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=vendor.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Vendors&quot; [1-293] --&gt;
&lt;h1&gt;&lt;a name=&quot;ap_transactions&quot; id=&quot;ap_transactions&quot;&gt;AP Transactions&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;AP–Add Transaction&lt;/strong&gt; menu adds a new AP Transaction. AP transactions allow you to record your sales in correct GL accounts without creating an invoice.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=ap&amp;amp;media=aptrans.png&quot; class=&quot;media&quot; title=&quot;aptrans.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=aptrans.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;AP Transactions&quot; [294-497] --&gt;
&lt;h1&gt;&lt;a name=&quot;invoices&quot; id=&quot;invoices&quot;&gt;Invoices&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Vendor invoices are created using &lt;strong&gt;AP–Vendor Invoice&lt;/strong&gt; menu. The only mandatory columns are &lt;em&gt;Vendor&lt;/em&gt; and &lt;em&gt;Invoice Date&lt;/em&gt;. Rest of the columns can be left blank.
&lt;/p&gt;

&lt;p&gt;
Once you enter an item (part, service) and click &amp;#039;Update&amp;#039;, a new line opens. This way you can enter any number of items (parts, services etc.) in the detail portion of the invoice. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=ap&amp;amp;media=apinvoice.png&quot; class=&quot;media&quot; title=&quot;apinvoice.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=apinvoice.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Invoices&quot; [498-891] --&gt;
&lt;h1&gt;&lt;a name=&quot;payments&quot; id=&quot;payments&quot;&gt;Payments&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You can record payments from vendor while creating invoices or afterward using &lt;strong&gt;Cash–Payment&lt;/strong&gt; menu option.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=ap&amp;amp;media=payment.png&quot; class=&quot;media&quot; title=&quot;payment.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=payment.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Payments&quot; [892-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 12:30:20 +0000</pubDate>
        </item>
        <item>
            <title>api</title>
            <link>http://www.ledger123.com/docs/doku.php?id=api&amp;rev=1273147510&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 06 May 2010 12:05:10 +0000</pubDate>
        </item>
        <item>
            <title>ar</title>
            <link>http://www.ledger123.com/docs/doku.php?id=ar&amp;rev=1243776197&amp;do=diff</link>
            <description></description>
            <pubDate>Sun, 31 May 2009 13:23:17 +0000</pubDate>
        </item>
        <item>
            <title>assemblies_and_manufacturing</title>
            <link>http://www.ledger123.com/docs/doku.php?id=assemblies_and_manufacturing&amp;rev=1251984829&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;using_assembly_items&quot; id=&quot;using_assembly_items&quot;&gt;Using Assembly Items&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
An assembly is composed of components which are individual parts in the inventory or other sub-assemblies. Assemblies in MyLedger allow you to do manage your manufacturing process.
&lt;/p&gt;

&lt;p&gt;
Work flow for using assemblies:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Define assemblies. &lt;em&gt;Goods &amp;amp; Services–Add Assembly&lt;/em&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Build assemblies. &lt;em&gt;Goods &amp;amp; Services–Stock Assembly&lt;/em&gt;. Individual parts are removed and assemblies are added to the stock inventory.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sell assembly items like any other item.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Please note that you cannot buy parts defined as assemblies.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Using Assembly Items&quot; [1-555] --&gt;
&lt;h2&gt;&lt;a name=&quot;define_assemblies&quot; id=&quot;define_assemblies&quot;&gt;1. Define Assemblies&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
As assembly is just like any other inventory item in your sql-ledger with the additional information about its components. You define new assemblies using &lt;strong&gt;Goods and Services–Add Assembly&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=assembly1.jpg&quot; class=&quot;media&quot; title=&quot;assembly1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=assembly1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Define Assemblies&quot; [556-803] --&gt;
&lt;h2&gt;&lt;a name=&quot;stock_assembly&quot; id=&quot;stock_assembly&quot;&gt;2. Stock Assembly&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

This option reduces the quantities of the components and increases the onhand quantity of the assemblies. COGS is not recorded at this point.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=stock1.jpg&quot; class=&quot;media&quot; title=&quot;stock1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=stock1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=stock2.jpg&quot; class=&quot;media&quot; title=&quot;stock2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=stock2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
COGS for the assembly is recorded from individual components when you sell the assembly. FIFO allocation also occurs at the time of sale. (Rows are inserted in invoice table for component parts with assemblyitem=TRUE)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Stock Assembly&quot; [804-1232] --&gt;
&lt;h2&gt;&lt;a name=&quot;reports&quot; id=&quot;reports&quot;&gt;3. Reports&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;More Reports–Goods and Services–Stock Assembly&lt;/strong&gt; gives you a list of your &lt;em&gt;Stock Assembly&lt;/em&gt; actions. This report lists the parts taken out of assembly as well as assemblies built.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=stock5.jpg&quot; class=&quot;media&quot; title=&quot;stock5.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=stock5.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Goods and Services–Assemblies&lt;/strong&gt; gives you list of all or selected assemblies with their components:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=stock3.jpg&quot; class=&quot;media&quot; title=&quot;stock3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=stock3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Goods and Servers–Components&lt;/strong&gt; gives you a list order by partnumber and the assembly in which it is used.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=stock4.jpg&quot; class=&quot;media&quot; title=&quot;stock4.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=stock4.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Work Order&lt;/strong&gt; You can print work order for a sales orders. Work order lists all component parts required to fullfil a given order of assembly items.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=assemblies_and_manufacturing&amp;amp;media=workorder1.jpg&quot; class=&quot;media&quot; title=&quot;workorder1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=workorder1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Reports&quot; [1233-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 13:33:49 +0000</pubDate>
        </item>
        <item>
            <title>audit_control</title>
            <link>http://www.ledger123.com/docs/doku.php?id=audit_control&amp;rev=1251990066&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;audit_control&quot; id=&quot;audit_control&quot;&gt;Audit Control&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

You can use &lt;strong&gt;System–Audit Control&lt;/strong&gt; menu to enforce transaction control and log user activities.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=audit_control&amp;amp;media=auditcontrol.jpg&quot; class=&quot;media&quot; title=&quot;auditcontrol.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=auditcontrol.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Enforce transaction reversal for all dates&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
You can check this option to prevent any change to any transaction. You can however add a reverse transaction to correct some mistake. This option is highly recommended.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Close Books up to&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
When you close books upto a certain date, system does not allow changing any transaction prior to this date. Please note that this is not a year end process.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Activate Audit trail&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
All user activity (adding, changing, deleting transactions) is logged. You can view this log using &lt;code&gt;&amp;#039;Others–Audit Trial&lt;/code&gt;&amp;#039; report.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Remove Audit trail up to&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
You can use this option to remove audit trail from database up to a certain date. Useful to make your backups small.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <pubDate>Thu, 03 Sep 2009 15:01:06 +0000</pubDate>
        </item>
        <item>
            <title>backup_and_restore</title>
            <link>http://www.ledger123.com/docs/doku.php?id=backup_and_restore&amp;rev=1270801595&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;backup&quot; id=&quot;backup&quot;&gt;Backup&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

To backup all your sql-ledger data, follow these steps:
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;1. Database.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Use the &amp;#039;System–Backup&amp;#039; menu option to backup your database.
&lt;/p&gt;

&lt;p&gt;
You can also use pg_dump to backup your db from your linux console:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; pg_dump -U sql-ledger your-db-name | gzip -c &amp;gt; your-db-name.sql.gz&lt;/pre&gt;

&lt;p&gt;

&lt;strong&gt;2. Users&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Backup sql-ledger/users/ folder. This folder contains information (access rights, password etc.) of all logins.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; cd /usr/local/sql-ledger/
 tar -czvf users.tar.gz users/&lt;/pre&gt;

&lt;p&gt;

&lt;strong&gt;3. Templates&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Backup sql-ledger/templates/yourtemplates/ folder. This folder contains any customized invoice/orders etc. templates which you may have customized using the System–Templates menu option.

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; cd /usr/local/sql-ledger/templates/
 tar -czvf your-templates.tar.gz your-templates/&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Backup&quot; [1-785] --&gt;
&lt;h1&gt;&lt;a name=&quot;restore&quot; id=&quot;restore&quot;&gt;Restore&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
To restore your data on the same server or a new server, follow these steps.
&lt;/p&gt;

&lt;p&gt;
1. If you are restoring your backup on the same server, you will need to delete your existing database before creating the new one. Follow this step with care.

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; dropdb -U sql-ledger your-db-name
 &lt;/pre&gt;

&lt;p&gt;
2. Create a new database, uncompress your backup and restore

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; createdb -U sql-ledger -E SQL_ASCII your-db-name
 gunzip your-db-name.sql.gz
 psql -U sql-ledger your-db-name &amp;lt; your-db-name.sql&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Note: Above code creates database with &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;_&lt;acronym title=&quot;American Standard Code for Information Interchange&quot;&gt;ASCII&lt;/acronym&gt; encoding. You might need to change it to something like UTF8 according to your database backup encoding.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

3. Copy users.tar.gz to sql-ledger folder and uncompress with &lt;code&gt;tar -xzvf users.tar.gz&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
4. Copy your-templates.tar.gz to sql-ledger/templates folder and uncompress with &lt;code&gt;tar -xzvf your-templates.tar.gz&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Restore&quot; [786-1653] --&gt;
&lt;h1&gt;&lt;a name=&quot;tips&quot; id=&quot;tips&quot;&gt;Tips&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
1. The above postgresql commands assume you have a database user/role named sql-ledger. If you don&amp;#039;t have this user, use either &amp;#039;postgres&amp;#039; (for most Linux systems) or &amp;#039;pgsql&amp;#039; (for FreeBSD port) instead of &amp;#039;sql-ledger&amp;#039;.
&lt;/p&gt;

&lt;p&gt;
2. It is usually more important to backup your postgres database with contains all your customers/vendors/transactions. You can always recreate users and edit templates in a new installation if you forget to backup these.
&lt;/p&gt;

&lt;p&gt;
3. You might need to edit your users through admin.pl if the new database name is different from the old one or the database connection information (host, user, password) is different.
&lt;/p&gt;

&lt;p&gt;
4. For simplicity sake, there is no harm in backing up entire sql-ledger folder instead of individually backing up users and templates folders. Make sure you don&amp;#039;t have redundant database backups in users folder otherwise your backup may be quite large. You will still need to backup your database separately.

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Tips&quot; [1654-] --&gt;</description>
            <pubDate>Fri, 09 Apr 2010 08:26:35 +0000</pubDate>
        </item>
        <item>
            <title>basics_of_double_entry_accounting</title>
            <link>http://www.ledger123.com/docs/doku.php?id=basics_of_double_entry_accounting&amp;rev=1267960955&amp;do=diff</link>
            <description></description>
            <pubDate>Sun, 07 Mar 2010 11:22:35 +0000</pubDate>
        </item>
        <item>
            <title>cost_of_goods_sold</title>
            <link>http://www.ledger123.com/docs/doku.php?id=cost_of_goods_sold&amp;rev=1251986502&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;cost_of_goods_sold&quot; id=&quot;cost_of_goods_sold&quot;&gt;Cost of goods sold&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Cost of Goods Sold (COGS) is the purchase price of the goods you just sold. Your sales minus the COGS is your gross profit.
&lt;/p&gt;

&lt;p&gt;
COGS is an important accounting information. Correct COGS gives you a clear picture of the profitability of your products.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Tip:&lt;/strong&gt; To view the debit and credit accounting transactions for any sale or purchase invoice, enter the invoice number on &lt;strong&gt;General Ledger–Reports&lt;/strong&gt; screen and click &lt;em&gt;Continue&lt;/em&gt; button.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Cost of goods sold&quot; [1-474] --&gt;
&lt;h2&gt;&lt;a name=&quot;sale_invoices_and_cogs&quot; id=&quot;sale_invoices_and_cogs&quot;&gt;1. Sale invoices and COGS&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Let us make it clear with an example:
&lt;/p&gt;

&lt;p&gt;
1. You purchase 10 iPhones for $400 each. 

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Debit: Inventory $4000&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Credit: AP $4000&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

2. A customer comes in and purchases 2 of these at $500 each.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Debit: AR $1000&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Credit: Sales $1000&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Debit: COGS $800&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Credit: Inventory $800&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

So your gross profit is $200.
&lt;/p&gt;

&lt;p&gt;
MyLedger posts COGS automatically with each sale invoice. It calculates COGS on First-In First-Out (FIFO) basis. This means is that if you purchase 5 more iPhones at $430 each, MyLedger will keep calculating COGS @ $400 each until all 10 iPhones of first purchase transaction are depleted. Afterward it will calculate COGS @ $430.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Sale invoices and COGS&quot; [475-1176] --&gt;
&lt;h2&gt;&lt;a name=&quot;sales_before_purchases&quot; id=&quot;sales_before_purchases&quot;&gt;2. Sales before purchases&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

MyLedger allows you to sell goods without purchasing these in advance. This is a common practice in many businesses where you have received the goods but do not have the vendor invoice. 
&lt;/p&gt;

&lt;p&gt;
This results in negative stock quantity on &lt;em&gt;Goods &amp;amp; Services–Reports–All Items&lt;/em&gt; report. No COGS is posted for such transactions at the time of sale. Later when you record purchases, COGS is automatically recorded for these oversold items.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Sales before purchases&quot; [1177-1647] --&gt;
&lt;h2&gt;&lt;a name=&quot;editing_sale_invoices&quot; id=&quot;editing_sale_invoices&quot;&gt;3. Editing Sale Invoices&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

When you edit and repost an already posted sale invoice, COGS goes out of sync and incorrect accounting entries are posted. This causes incorrect income statement.
&lt;/p&gt;

&lt;p&gt;
To confirm this, display your income statement and write down the COGS amount. Now open and repost any past sales invoice. Compare the new COGS in income statement with the old one.
&lt;/p&gt;

&lt;p&gt;
Ideally you should never edit an invoice. Instead post a reversal of the invoice (using a credit invoice) and create a new invoice. Check the box &lt;em&gt;Enforce transaction reversal for all dates&lt;/em&gt; on &lt;strong&gt;System–Audit Control&lt;/strong&gt; screen.
&lt;/p&gt;

&lt;p&gt;
If you do need to edit invoices, you can correct COGS transactions by running the re-posting of invoices through menu &lt;strong&gt;System–Repost COGS&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Editing Sale Invoices&quot; [1648-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 14:01:42 +0000</pubDate>
        </item>
        <item>
            <title>currencies</title>
            <link>http://www.ledger123.com/docs/doku.php?id=currencies&amp;rev=1251989187&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;multi-currency_transactions&quot; id=&quot;multi-currency_transactions&quot;&gt;Multi-currency transactions&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

You can use multiple currencies with MyLedger.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Multi-currency transactions&quot; [1-91] --&gt;
&lt;h2&gt;&lt;a name=&quot;defining_currencies&quot; id=&quot;defining_currencies&quot;&gt;1. Defining Currencies&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=currencies&amp;amp;media=curr1.jpg&quot; class=&quot;media&quot; title=&quot;curr1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=curr1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Defining Currencies&quot; [92-145] --&gt;
&lt;h2&gt;&lt;a name=&quot;buying_and_selling_in_foreign_currencies&quot; id=&quot;buying_and_selling_in_foreign_currencies&quot;&gt;2. Buying and selling in foreign currencies&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Invoice
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=currencies&amp;amp;media=curr2.jpg&quot; class=&quot;media&quot; title=&quot;curr2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=curr2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Payment
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Buying and selling in foreign currencies&quot; [146-237] --&gt;
&lt;h2&gt;&lt;a name=&quot;reports&quot; id=&quot;reports&quot;&gt;3. Reports&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=currencies&amp;amp;media=curr3.jpg&quot; class=&quot;media&quot; title=&quot;curr3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=curr3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Reports&quot; [238-278] --&gt;
&lt;h2&gt;&lt;a name=&quot;exchange_rate_differences&quot; id=&quot;exchange_rate_differences&quot;&gt;4. Exchange rate differences&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;4. Exchange rate differences&quot; [279-321] --&gt;
&lt;h2&gt;&lt;a name=&quot;funds_transfers_between_foreign_currencies&quot; id=&quot;funds_transfers_between_foreign_currencies&quot;&gt;5. Funds transfers between foreign currencies&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Let us say the exchange rate is 1 GBP = 2.0289 (or reverse 1 USD = 0.4929 GBP)
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=currencies&amp;amp;media=curr4.jpg&quot; class=&quot;media&quot; title=&quot;curr4.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=curr4.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=currencies&amp;amp;media=curr5.jpg&quot; class=&quot;media&quot; title=&quot;curr5.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=curr5.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;5. Funds transfers between foreign currencies&quot; [322-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 14:46:27 +0000</pubDate>
        </item>
        <item>
            <title>customization</title>
            <link>http://www.ledger123.com/docs/doku.php?id=customization&amp;rev=1264220520&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;customization&quot; id=&quot;customization&quot;&gt;Customization&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger can be customized in three ways:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Customization&quot; [1-74] --&gt;
&lt;h2&gt;&lt;a name=&quot;custom_xxpl_files&quot; id=&quot;custom_xxpl_files&quot;&gt;1. custom_xx.pl files&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You can create your own functions or override any existing function by creating custom scripts in &lt;em&gt;custom_xx.pl&lt;/em&gt; files and putting them in &lt;em&gt;bin/mozilla&lt;/em&gt; folder. 
&lt;/p&gt;

&lt;p&gt;
For example, to add new functions to gl.pl file, add these functions to custom_gl.pl file and put this file into bin/mozilla/ folder. This file will be automatically loaded by sql-ledger before running any functions in gl.pl files.
&lt;/p&gt;

&lt;p&gt;
Once your new functions are there, you can call them using your own custom menu. Custom menu entries are put in &lt;em&gt;custom_menu.ini&lt;/em&gt; and follow the same syntax as that of &lt;em&gt;menu.ini&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
This method of extending the sql-ledger is upgrade-safe and is the recommended way.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. custom_xx.pl files&quot; [75-779] --&gt;
&lt;h2&gt;&lt;a name=&quot;custom_modules&quot; id=&quot;custom_modules&quot;&gt;2. Custom Modules&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You can build your own modules. To write a module, you need to create at least three files:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Module back-end code which will reside in ./sql-ledger/SL/MyModule.pm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Module front-end code which will reside in ./sql-ledger/bin/mozilla/mymodule.pl&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gateway script in ./sql-ledger. (You just need to make a copy of an existing one. For example &lt;em&gt;cp gl.pl mymodule.pl&lt;/em&gt; in ./sql-ledger/ folder.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

This method is also upgrade safe.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Custom Modules&quot; [780-1245] --&gt;
&lt;h2&gt;&lt;a name=&quot;modify_the_source_code&quot; id=&quot;modify_the_source_code&quot;&gt;3. Modify the source code&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Sometimes there is a need to directly alter the sql-ledger source code for particular needs. We have, for example, modified few reports (GL Transactions, All Items) in this way. Your changes, however, will be overwritten when you upgrade to new version and you will need to port these changes again to the new version.
&lt;/p&gt;

&lt;p&gt;
A bit discipline and an SCM software like GIT can help manage such changes or patches with easy. We, at ledger123.com, use GIT to track and manage such changes across newer versions of sql-ledger.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Modify the source code&quot; [1246-] --&gt;</description>
            <pubDate>Sat, 23 Jan 2010 04:22:00 +0000</pubDate>
        </item>
        <item>
            <title>data_export_backup</title>
            <link>http://www.ledger123.com/docs/doku.php?id=data_export_backup&amp;rev=1251981471&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;data_export&quot; id=&quot;data_export&quot;&gt;Data export&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Data export&quot; [1-27] --&gt;
&lt;h1&gt;&lt;a name=&quot;data_backup&quot; id=&quot;data_backup&quot;&gt;Data backup&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

You can backup your data directly through sql-ledger. There are two ways to get your backup using the &lt;code&gt;&amp;#039;System–Backup&lt;/code&gt;&amp;#039; menu.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;System–Backup–Send by Email&lt;/strong&gt;. Backup is sent to your email address through email. You can add or change this email address through &lt;strong&gt;Preferences&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;System–Backup–Save to File&lt;/strong&gt;. When you click this menu option your browser will display the save file dialog and you can save backup file on your computer.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_export_backup&amp;amp;media=backup.jpg&quot; class=&quot;media&quot; title=&quot;backup.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=backup.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Data backup&quot; [28-526] --&gt;
&lt;h1&gt;&lt;a name=&quot;automated_backups&quot; id=&quot;automated_backups&quot;&gt;Automated backups&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
MyLedger is hosted on servers with &lt;acronym title=&quot;Redundant Array of Inexpensive Disks&quot;&gt;RAID&lt;/acronym&gt; storage. You are protected from hard disk crash. We also perform an automated off-site database backup every 24 hours to ensure that your data is safe.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Automated backups&quot; [527-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 12:37:51 +0000</pubDate>
        </item>
        <item>
            <title>data_import</title>
            <link>http://www.ledger123.com/docs/doku.php?id=data_import&amp;rev=1251856019&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;data_import&quot; id=&quot;data_import&quot;&gt;Data Import&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Sometimes you need to import your sales data into sql-ledger which was produced elsewhere. 
&lt;/p&gt;

&lt;p&gt;
You might have a web store where you download your daily sales in CSV format and want to import it into Sql-Ledger. Or you are just moving to sql-ledger from your legacy accounting software and want to move all existing data from old software to sql-ledger.
&lt;/p&gt;

&lt;p&gt;
Following sections provide detailed steps for importing CSV text files.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#sale_invoices&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;Sale Invoices&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#receipts_and_payments&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;Receipts and Payments&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#transactions&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;Transactions&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#general_ledger&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;General Ledger&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#customers_and_vendors&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;Customers and Vendors&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#parts&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;Parts&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=data_import#chart_of_accounts&quot; class=&quot;wikilink1&quot; title=&quot;data_import&quot;&gt;Chart of Accounts&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Data Import&quot; [1-812] --&gt;
&lt;h1&gt;&lt;a name=&quot;sale_invoices&quot; id=&quot;sale_invoices&quot;&gt;Sale invoices&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Sales invoices can be imported from text files.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Sale invoices&quot; [813-890] --&gt;
&lt;h2&gt;&lt;a name=&quot;format_your_data&quot; id=&quot;format_your_data&quot;&gt;1. Format your data&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

For list of additional data columns that can be imported see step 4. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
invnumber,transdate,duedate,customernumber,curr,invoicedescription,partnumber,qty,sellprice,employeenumber,AR,department,warehouse
A100,10/12/2008,10/30/2008,AE001,GBP,Invoice description comes here,B001,10,102,E-001,1100,HARDWARE,LONDON
A100,10/12/2008,10/30/2008,AE001,GBP,Invoice description comes here,F003,6,69,E-001,1100,HARDWARE,LONDON
A101,10/12/2008,10/31/2008,CP002,GBP,Test description,F003,2,32,E-002,1100,SERVICES,PARIS
A102,10/13/2008,11/1/2008,ER003,GBP,Sale of goods,T007,6,12,E-003,1100,SERVICES,LONDON
A103,10/14/2008,11/2/2008,SP007,GBP,Sale,K001,12,32,E-004,1100,HARDWARE,PARIS
&lt;/pre&gt;

&lt;p&gt;
(The last column AR is accounts receivable account number which is 1100 in UK chart of accounts)
&lt;/p&gt;

&lt;p&gt;
If your data contains invoices with more than one part, repeat the row with same invoice header information and change the part number and price information. Sql-ledger will import all these rows as a single invoice. (See invoice number A100 above)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Format your data&quot; [891-1956] --&gt;
&lt;h2&gt;&lt;a name=&quot;upload_and_preview&quot; id=&quot;upload_and_preview&quot;&gt;2. Upload and preview&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Using &lt;strong&gt;Import–Sales Invoices&lt;/strong&gt; menu option, upload this file into Sql-Ledger. You will be shown what will be imported before actual import is done. At this point you can check and uncheck the invoices to be imported.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_invoices.jpg&quot; class=&quot;media&quot; title=&quot;import_invoices.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_invoices.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Upload and preview&quot; [1957-2238] --&gt;
&lt;h2&gt;&lt;a name=&quot;confirm_data_import&quot; id=&quot;confirm_data_import&quot;&gt;3. Confirm data import&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

When you click the &lt;em&gt;Import Sales Invoices&lt;/em&gt; button, invoices will be imported. You will be show which invoices were imported successfully.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_invoices2.jpg&quot; class=&quot;media&quot; title=&quot;import_invoices2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_invoices2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Confirm data import&quot; [2239-2444] --&gt;
&lt;h2&gt;&lt;a name=&quot;additional_data_which_can_be_imported&quot; id=&quot;additional_data_which_can_be_imported&quot;&gt;4. Additional data which can be imported&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

The sample csv file provided above contains only the most commonly used columns. Here is the complete list.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; transdate &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; invnumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; customernumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; curr &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; duedate &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; employeenumber&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ordnumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; quonumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; datepaid &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; shippingpoint &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; shipvia &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; waybill &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; terms &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; notes &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; intnotes &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; language_code &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ponumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; cashdiscount &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; discountterms &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; partnumber&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; description &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sellprice &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; discount &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; qty &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; unit &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; serialnumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; projectnumber &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; deliverydate &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AR &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; taxincluded&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;4. Additional data which can be imported&quot; [2445-3055] --&gt;
&lt;h1&gt;&lt;a name=&quot;receipts_and_payments&quot; id=&quot;receipts_and_payments&quot;&gt;Receipts and Payments&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You can import payments and match them to invoices using &lt;code&gt;&amp;#039;Import–Payments&lt;/code&gt;&amp;#039;. Following points should be kept in mind.

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Payments are matched first on Invoice DCN column and then, if no match is found, on payment amount.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Both AR and AP invoices are matched with payments.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The amount matched is calculated as debit minus credit.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Follow these steps:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Receipts and Payments&quot; [3056-3455] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_1&quot; id=&quot;step_1&quot;&gt;Step 1&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Create or format the data in a CSV file with structure similar to the given below. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
datepaid,memo,debit,credit,dcn
2008/11/03,&amp;quot;payment ref 2121&amp;quot;,,38.76,
2008/10/04,&amp;quot;cash payment&amp;quot;,,527.5,
2008/10/10,&amp;quot;CC Receipt&amp;quot;,,243.08,
2009/11/01,&amp;quot;Payment matched by DCN&amp;quot;,,1401.72,1122
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 1&quot; [3456-3762] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_2&quot; id=&quot;step_2&quot;&gt;Step 2&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Import script will read the CSV file and match the payments to AR or AP invoices first on DCN Number and then on invoice due amount, if needed.
&lt;/p&gt;

&lt;p&gt;
In this example, one AP invoice is matched on amount and the other one is matched on DCN number. The other two are AR invoices which are matched on amount.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_payments2.png&quot; class=&quot;media&quot; title=&quot;import_payments2.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_payments2.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 2&quot; [3763-4111] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_3&quot; id=&quot;step_3&quot;&gt;Step 3&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Once you click &lt;code&gt;Import Payments&lt;/code&gt;, payments are imported and applied to the matched invoices.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_payments3.png&quot; class=&quot;media&quot; title=&quot;import_payments3.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_payments3.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 3&quot; [4112-4254] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_4&quot; id=&quot;step_4&quot;&gt;Step 4&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
For advanced users: You can easily change the script to match the payments on other invoice columns like invoice number. The procedures to modify are &amp;#039;sub payments&amp;#039; in &amp;#039;SL/IM.pm&amp;#039; and &amp;#039;sub im_payment&amp;#039; in &amp;#039;bin/mozilla/im.pl&amp;#039;.
&lt;/p&gt;

&lt;p&gt;
To match payments only to AR (or AP) invoices, change the UNION queries in SL/IM.pm to select invoices from AR or AP only as required.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 4&quot; [4255-4634] --&gt;
&lt;h1&gt;&lt;a name=&quot;transactions&quot; id=&quot;transactions&quot;&gt;Transactions&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You can import AR and AP transactions.
&lt;/p&gt;

&lt;p&gt;
For AR Transactions, format your data using the following sample:

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
invnumber,customernumber,transdate,amount,description,notes,source,memo
00003,AE001,10-11-07,2030,&amp;quot;desc1&amp;quot;,&amp;quot;notes1&amp;quot;,&amp;quot;source1&amp;quot;,&amp;quot;memo1&amp;quot;
00004,CP002,07-12-07,3213,&amp;quot;desc1&amp;quot;,&amp;quot;notes2&amp;quot;,&amp;quot;source2&amp;quot;,&amp;quot;memo2&amp;quot;
00005,SP007,09-12-07,-200,&amp;quot;desc1&amp;quot;,&amp;quot;notes3&amp;quot;,&amp;quot;source3&amp;quot;,&amp;quot;memo3&amp;quot;
&lt;/pre&gt;

&lt;p&gt;
For AP transactions, format your data using the following example:

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
invnumber,vendornumber,transdate,amount,description,notes,source,memo
00003,CB001,10-10-08,2030,&amp;quot;desc1&amp;quot;,&amp;quot;notes1&amp;quot;,&amp;quot;source1&amp;quot;,&amp;quot;memo1&amp;quot;
00004,ES002,10-12-08,3213,&amp;quot;desc2&amp;quot;,&amp;quot;notes2&amp;quot;,&amp;quot;source2&amp;quot;,&amp;quot;memo2&amp;quot;
00005,SA003,12-12-08,-200,&amp;quot;desc3&amp;quot;,&amp;quot;notes3&amp;quot;,&amp;quot;source3&amp;quot;,&amp;quot;memo3&amp;quot;
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Transactions&quot; [4635-5375] --&gt;
&lt;h1&gt;&lt;a name=&quot;general_ledger&quot; id=&quot;general_ledger&quot;&gt;General Ledger&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

We have enhanced the sql-ledger import script to add the general ledger import. This feature will help you to move your data from most of the accounting software to sql-ledger in few easy steps:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;General Ledger&quot; [5376-5601] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_11&quot; id=&quot;step_11&quot;&gt;Step 1&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Format your journal data according to the layout show below.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
reference,transdate,description,notes,accno,debit,credit,source,memo
GL001,01-20-2008,&amp;quot;Paid for training,support&amp;quot;,Next session in 2009,8203,124,0,23211,new hiring 
GL001,01-20-2008,&amp;quot;Paid for training,support&amp;quot;,Next session in 2009,1230,0,124,23211,new hiring
GL002,10-19-2008,&amp;quot;Overdue pymt for inv 11,12,13&amp;quot;,,1230,204,0,&amp;quot;11,12,13&amp;quot;,
GL002,10-19-2008,&amp;quot;Overdue pymt for inv 11,12,13&amp;quot;,,1102,0,204,&amp;quot;11,12,13&amp;quot;,
GL003,11-20-2008,Invalid transaction for testing,This account is not in chart,00121,0,255,source2,memo2
&lt;/pre&gt;

&lt;p&gt;
Keep in mind that:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Import script creates one GL transaction for each unique &amp;#039;reference&amp;#039; number. There can be  any number of lines (rows) in each transaction.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Account must exist in chart of accounts&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Debits and credits must be equal before the CSV file can be imported.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 1&quot; [5602-6489] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_21&quot; id=&quot;step_21&quot;&gt;Step 2&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Using &lt;code&gt;&amp;#039;Imports–GL Transaction&lt;/code&gt;&amp;#039; load the CSV file into sql-ledger. Import script will show the rows which contain valid account number and can be imported.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=gl_import2.jpg&quot; class=&quot;media&quot; title=&quot;gl_import2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=gl_import2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 2&quot; [6490-6692] --&gt;
&lt;h2&gt;&lt;a name=&quot;step_31&quot; id=&quot;step_31&quot;&gt;Step 3&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Click &lt;code&gt;Import GL&lt;/code&gt; to finish the import script. Transactions successfully imported will be show on the next page.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=gl_import3.jpg&quot; class=&quot;media&quot; title=&quot;gl_import3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=gl_import3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Step 3&quot; [6693-6850] --&gt;
&lt;h1&gt;&lt;a name=&quot;customers_and_vendors&quot; id=&quot;customers_and_vendors&quot;&gt;Customers and Vendors&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Customer and Vendor import is similar (except the number column which is customernumber or vendornumber).
&lt;/p&gt;

&lt;p&gt;
Prepare your data file using the sample text provided below. (Change customernumber to vendornumber for vendor import)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
customernumber,name,firstname,lastname,contacttitle,phone,fax,email,notes,address1,address2,city,state,zipcode,country
001,Ledger123,Armaghan,Saqib,Consultant,,,saqib@ledger123.com,&amp;quot;These are, just, sample notes&amp;quot;,,,London,,&amp;quot;AA7 8BB&amp;quot;,UK
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Customers and Vendors&quot; [6851-7365] --&gt;
&lt;h1&gt;&lt;a name=&quot;parts&quot; id=&quot;parts&quot;&gt;Parts&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Format your data according to following sample:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
partnumber,description,unit,partsgroup,listprice,sellprice,lastcost,rop,bin,image,drawing,notes
B002,&amp;quot;Brush Set&amp;quot;,NOS,brush,9.99,9.99,7,150,TOP,noimage,brush.jpg,notes about brush set
D010,&amp;quot;Deluxe Hand Saw&amp;quot;,NOS,SAW,17.99,17.99,16,50,TOP,saw.jpg,nodrawing,notes about hand saw
D011,&amp;quot;Digger Hand Trencher&amp;quot;,NOS,Picks &amp;amp; Hatchets,18.99,18.99,15,200,TOP,,nodrawing,notes about hand saw
&lt;/pre&gt;

&lt;p&gt;
System assigns a unique &lt;code&gt;parts_id&lt;/code&gt; to each part imported or group created. Duplicates are not allowed and duplicate check is done on &lt;code&gt;partnumber&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
To start the import process, click &lt;code&gt;&amp;#039;Data Import–Parts&lt;/code&gt;&amp;#039; in the menu. Following page will be displayed. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_parts1.jpg&quot; class=&quot;media&quot; title=&quot;import_parts1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_parts1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Click &lt;code&gt;&amp;#039;Browse&lt;/code&gt;&amp;#039; to select your CSV file, mark the taxes applicable and select the account links (Defaults are enough most of the time) Click &lt;code&gt;&amp;#039;Continue&lt;/code&gt;&amp;#039; when done. You will be presented with the following screen. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_parts2.jpg&quot; class=&quot;media&quot; title=&quot;import_parts2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_parts2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
On this screen you can mark the parts to be imported by checking or un-checking the checkbox on each line.
&lt;/p&gt;

&lt;p&gt;
Please note:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The parts which are already in the system (based on partnumber) will not imported. (You will not see a check box with them)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Parts groups which are new will be added. These are marked by a &lt;code&gt;&amp;#039;+&lt;/code&gt;&amp;#039; sign after group name.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Click &lt;code&gt;&amp;#039;Import Parts&lt;/code&gt;&amp;#039;. Your CSV file will be processed and parts will be imported. Any new groups will also be added. You will see an output like the following:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_parts3.jpg&quot; class=&quot;media&quot; title=&quot;import_parts3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_parts3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Parts&quot; [7366-8903] --&gt;
&lt;h1&gt;&lt;a name=&quot;vendor_price_list&quot; id=&quot;vendor_price_list&quot;&gt;Vendor Price List&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Format your vendors price list according to the sample CSV data below:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
partnumber,vendornumber,vendorpartnumber,lastcost,curr,leadtime
B001,CB001,V-CB001,10,GBP,15
B002,ES002,,14,GBP,45
M004,SA003,,21,GBP,30
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Click &lt;code&gt;&amp;#039;Data Import–Parts Vendors&lt;/code&gt;&amp;#039;, specify the file with the &lt;code&gt;&amp;#039;Browse&lt;/code&gt;&amp;#039; button and click &lt;code&gt;&amp;#039;Import Parts Vendors&lt;/code&gt;&amp;#039; button.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Following page will be displayed. Here you can un-check the rows which you do not want to import. Rows with invalid vendor number or partnumber will not have the checkbox.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_partsvendors.jpg&quot; class=&quot;media&quot; title=&quot;import_partsvendors.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_partsvendors.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Vendor Price List&quot; [8904-9505] --&gt;
&lt;h1&gt;&lt;a name=&quot;customer_price_list&quot; id=&quot;customer_price_list&quot;&gt;Customer Price List&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Format your customer price list according to the sample CSV data below.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
partnumber,customernumber,pricegroup,pricebreak,sellprice,validfrom,validto,curr
B001,AE001,PG1,10,11,03-01-2008,,GBP
B002,BP011,,20,12,,03-01-2009,GBP
M004,CP002,,15,20,03-01-2008,03-05-2008,GBP
D08,CP002,test,25,25,,,GBP
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Click &lt;code&gt;&amp;#039;Data Import–Parts Customers&lt;/code&gt;&amp;#039;, specify the file with the &lt;code&gt;&amp;#039;Browse&lt;/code&gt;&amp;#039; button and click &lt;code&gt;&amp;#039;Import Parts Customers&lt;/code&gt;&amp;#039; button.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Following page will be displayed. Here you can un-check the rows which you do not want to import. Rows with invalid customer number or partnumber will not have the checkbox.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=data_import&amp;amp;media=import_partscustomers.jpg&quot; class=&quot;media&quot; title=&quot;import_partscustomers.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=import_partscustomers.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Customer Price List&quot; [9506-10207] --&gt;
&lt;h1&gt;&lt;a name=&quot;chart_of_accounts&quot; id=&quot;chart_of_accounts&quot;&gt;Chart of accounts&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prepare your chart of accounts in your spreadsheet software according to the sample given below.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upload the chart csv file using &amp;#039;Import–Chart&amp;#039; menu option.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Check/uncheck the accounts to be imported and click continue to import the selected accounts.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
accno,description,charttype,category,link
1000,&amp;quot;CURRENT ASSETS&amp;quot;,H,A,
1060,&amp;quot;Checking Account&amp;quot;,A,A,AR_paid:AP_paid
1065,&amp;quot;Petty Cash&amp;quot;,A,A,AR_paid:AP_paid
1200,&amp;quot;Accounts Receivables&amp;quot;,A,A,AR
1205,&amp;quot;Allowance for doubtful accounts&amp;quot;,A,A,
1500,&amp;quot;INVENTORY ASSETS&amp;quot;,H,A,
1520,&amp;quot;Inventory / General&amp;quot;,A,A,IC
1530,&amp;quot;Inventory / Aftermarket Parts&amp;quot;,A,A,IC
1800,&amp;quot;CAPITAL ASSETS&amp;quot;,H,A,
1820,&amp;quot;Office Furniture &amp;amp; Equipment&amp;quot;,A,A,
1825,&amp;quot;Accum. Amort. -Furn. &amp;amp; Equip.&amp;quot;,A,A,
1840,Vehicle,A,A,
1845,&amp;quot;Accum. Amort. -Vehicle&amp;quot;,A,A,
2000,&amp;quot;CURRENT LIABILITIES&amp;quot;,H,L,
2100,&amp;quot;Accounts Payable&amp;quot;,A,L,AP
2160,&amp;quot;Corporate Taxes Payable&amp;quot;,A,L,
2190,&amp;quot;Federal Income Tax Payable&amp;quot;,A,L,
2210,&amp;quot;Workers Comp Payable&amp;quot;,A,L,
2220,&amp;quot;Vacation Pay Payable&amp;quot;,A,L,
2250,&amp;quot;Pension Plan Payable&amp;quot;,A,L,
2260,&amp;quot;Employment Insurance Payable&amp;quot;,A,L,
2280,&amp;quot;Payroll Taxes Payable&amp;quot;,A,L,
2310,&amp;quot;VAT (10%)&amp;quot;,A,L,AR_tax:AP_tax:IC_taxpart:IC_taxservice
2320,&amp;quot;VAT (14%)&amp;quot;,A,L,AR_tax:AP_tax:IC_taxpart:IC_taxservice
2330,&amp;quot;VAT (30%)&amp;quot;,A,L,AR_tax:AP_tax:IC_taxpart:IC_taxservice
2600,&amp;quot;LONG TERM LIABILITIES&amp;quot;,H,L,
2620,&amp;quot;Bank Loans&amp;quot;,A,L,
2680,&amp;quot;Loans from Shareholders&amp;quot;,A,L,AP_paid
3300,&amp;quot;SHARE CAPITAL&amp;quot;,H,Q,
3350,&amp;quot;Common Shares&amp;quot;,A,Q,
4000,&amp;quot;SALES REVENUE&amp;quot;,H,I,
4020,&amp;quot;Sales / General&amp;quot;,A,I,AR_amount:IC_sale
4030,&amp;quot;Sales / Aftermarket Parts&amp;quot;,A,I,AR_amount:IC_sale
4300,&amp;quot;CONSULTING REVENUE&amp;quot;,H,I,
4320,Consulting,A,I,AR_amount:IC_income
4400,&amp;quot;OTHER REVENUE&amp;quot;,H,I,
4430,&amp;quot;Shipping &amp;amp; Handling&amp;quot;,A,I,IC_income
4440,Interest,A,I,
4450,&amp;quot;Foreign Exchange Gain&amp;quot;,A,I,
5000,&amp;quot;COST OF GOODS SOLD&amp;quot;,H,E,
5010,Purchases,A,E,AP_amount:IC_expense
5020,&amp;quot;COGS / General&amp;quot;,A,E,AP_amount:IC_cogs
5030,&amp;quot;COGS / Aftermarket Parts&amp;quot;,A,E,AP_amount:IC_cogs
5100,Freight,A,E,AP_amount:IC_expense
5400,&amp;quot;PAYROLL EXPENSES&amp;quot;,H,E,
5410,&amp;quot;Wages &amp;amp; Salaries&amp;quot;,A,E,
5420,&amp;quot;Employment Insurance Expense&amp;quot;,A,E,
5430,&amp;quot;Pension Plan Expense&amp;quot;,A,E,
5440,&amp;quot;Workers Comp Expense&amp;quot;,A,E,
5470,&amp;quot;Employee Benefits&amp;quot;,A,E,
5600,&amp;quot;GENERAL &amp;amp; ADMINISTRATIVE EXPENSES&amp;quot;,H,E,
5610,&amp;quot;Accounting &amp;amp; Legal&amp;quot;,A,E,AP_amount
5615,&amp;quot;Advertising &amp;amp; Promotions&amp;quot;,A,E,AP_amount
5620,&amp;quot;Bad Debts&amp;quot;,A,E,
5650,&amp;quot;Capital Cost Allowance Expense&amp;quot;,A,E,
5660,&amp;quot;Amortization Expense&amp;quot;,A,E,
5680,&amp;quot;Income Taxes&amp;quot;,A,E,
5685,Insurance,A,E,AP_amount
5690,&amp;quot;Interest &amp;amp; Bank Charges&amp;quot;,A,E,
5700,&amp;quot;Office Supplies&amp;quot;,A,E,AP_amount
5760,Rent,A,E,AP_amount
5765,&amp;quot;Repair &amp;amp; Maintenance&amp;quot;,A,E,AP_amount
5780,Telephone,A,E,AP_amount
5785,&amp;quot;Travel &amp;amp; Entertainment&amp;quot;,A,E,
5790,Utilities,A,E,AP_amount
5795,Registrations,A,E,AP_amount
5800,Licenses,A,E,AP_amount
5810,&amp;quot;Foreign Exchange Loss&amp;quot;,A,E,
&lt;/pre&gt;

&lt;p&gt;
Optionally as a safety measure, you can double check the correctness of your final csv file by opening it in a text editor like notepad or wordpad.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Chart of accounts&quot; [10208-] --&gt;</description>
            <pubDate>Wed, 02 Sep 2009 01:46:59 +0000</pubDate>
        </item>
        <item>
            <title>db_schema</title>
            <link>http://www.ledger123.com/docs/doku.php?id=db_schema&amp;rev=1265804849&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;database_schema_for_sql-ledger&quot; id=&quot;database_schema_for_sql-ledger&quot;&gt;Database Schema for SQL-Ledger&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Updated to version &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger 2.8.28&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

This schema description will introduce you to sql-ledger underlying database tables and will enable you to create your custom reports using &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; or import data using CSV import features of Postgresql. Please see &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=sql_queries&quot; class=&quot;wikilink1&quot; title=&quot;sql_queries&quot;&gt;sql queries&lt;/a&gt; for examples of &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; using this schema.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Database Schema for SQL-Ledger&quot; [1-355] --&gt;
&lt;h2&gt;&lt;a name=&quot;general_comments_on_schema&quot; id=&quot;general_comments_on_schema&quot;&gt;1. General comments on schema&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
1. Most tables have a primary key column named &lt;em&gt;id&lt;/em&gt;. This key is appears as &lt;em&gt;tablename_id&lt;/em&gt; as foreign key in other tables. For example &lt;em&gt;customer_id&lt;/em&gt; column in tables is foreign key referring to &lt;em&gt;id&lt;/em&gt; column in customer table. This &lt;em&gt;id&lt;/em&gt; column gets unique sequence number from database sequence also named &lt;em&gt;id&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;

2. Contrary to what new users might think &lt;em&gt;customernumber&lt;/em&gt;, &lt;em&gt;vendornumber&lt;/em&gt;, &lt;em&gt;partnumber&lt;/em&gt;, &lt;em&gt;invnumber&lt;/em&gt; etc. are not primary keys in customer, vendor, parts, ar/ap tables. These columns can also have duplicate values. You can prevent duplicate values by creating UNIQUE indexes on these columns. As mentioned above, in all tables, primary key is the column named &lt;em&gt;id&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. General comments on schema&quot; [356-1100] --&gt;
&lt;h2&gt;&lt;a name=&quot;list_of_tables&quot; id=&quot;list_of_tables&quot;&gt;2. List of tables&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; acc_trans&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Debit/credit records for all financial tranactions are stored in this table. trans_id is the foreign key in this table which refers to id in ar, ap, gl tables.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; address&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ap&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Purchase invoices and AP transctions header information goes into this table. invoice column contains true for invoices and false for AP transactions.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; ar&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Sales invoices and AR transactions header information goes into this table. invoice column contains true for invoices and false for AP transactions.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; assembly&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Stores assembly components for a given assembly. id is id for the given assembly from parts table. parts_id is id for a assembly component from parts table.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; audittrail&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
If you have activated the audittrial in System→Audit Control menu option, a row contain the username and transaction reference is inserted into this table for each transaction addition, deletion or editing activity. This table can grow very large on busy systems. You can also remove past audittrial record using System→Audit Control menu option. There are no reports in the system which show data from this table.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; bank&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; br&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; business&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Type of business. This table is used to group customers. You can also specify the discount percent applicable to that particular group of customers.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; cargo&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; chart&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
This table contains Chart of accounts.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; contact&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; curr&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; customer&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Customer master record.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; customertax&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Customer-tax information is stored in this table. One row for each customer/tax combination.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; defaults&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
System defaults

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; department&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Departments

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; dpt_trans&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Department transactions. One row for each transcation/deparmetn which contains a department reference.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; employee&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row for each user/employee.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; exchangerate&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Exchange rate for a particular date is added to this table if you use foreign currency on a transaction and there is no exchange rate in this table for that transcation date. A maximum of two rates are added to this table for a given date. One for buy and one for sell.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; gifi&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
General Index for Financial Information or GIFI allows you to create an alternate chart of accounts which can be linked to main chart of accounts through the GIFI column on Add Account form. Financial reports can be generated by accno or gifi_accno. You can also consider it an alternate method of group the accounts on chart.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; gl&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Contains one row for each general ledger transaction.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; inventory&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Inventory movement is recorded in this table when you use Ship or Receive options on &amp;#039;&amp;#039;Shipping&amp;#039; module.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; invoice&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Invoice detail lines for sales and purchase invoices go into this table. Qty is -ve for purchase invoices and +ve for sale invoices (unless you change sign when entering invoices for recording returns).

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; jcitems&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; language&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row per language defined. These languages are used to translate the parts descriptions into another language to print on invoices etc. Actual translations are stored in translation table.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; makemodel&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
This table can contain one or more rows for any particular part. Make and model information is entered on Add Part screen. This information can be used to further classify or group the parts. For example you can specify which models use a particular part. You can filter on make/model on parts on Parts report.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; oe&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
This tables records header information for four type of transactions; Sales Order, Purchase Order, Quotation and Request for Quotations. vendor_id is NULL if this is a Sales Order or Quotation. customer_id is NULL If this is a Purchase Order or RFQ. Boolean column quotation further differentiates between an Order and a Quotation.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; orderitems&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Detail lines for Orders and Quotations go into this table.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; parts&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Contains master records of parts, services, assembly, labour/overhead. inventory_accno_id is NULL for service items.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; partscustomer&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Per customer pricing for a part is stored in this table. This information is stored from Add Part form. Multiple prices with different quantity breaks can be entered for one customer.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; partsgroup&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Parts groups allow you to group your parts, services etc according to any criteria.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; partstax&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row for each part/tax combination which is specified on Add Part screen.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; partsvendor&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Per vendor cost for a part as well as lead time and vendor part number are stored in this table. This information is updated through Add Part form.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; payment&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; paymentmethod&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; pricegroup&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row per price group. Price group can be specified on the customer screen to group one or more customers to specific parts prices. You specify prices for parts group on Add Part screen.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; project&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row per project. Project can be linked to sale, purchase or general ledger transaction detail lines. You can run reports filter them on projects.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; recurring&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Whenever you schedule a transaction, its id and other information for is stored in this table.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; recurringemail&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row for each tranaction/formtype combination to be mailed when a recurrening transaction is created and marked to email one or more forms upon generation.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; recurringprint&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Same as recurringemail but for printing of forms.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; semaphore&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; shipto&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row is added to this table when you create Ship To address in customer or vendor form. trans_id is the customer or vendor id for which shipto address has been created. A row is also added when you specify different shipto on invoice. In this case trans_id is the id of that transaction.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sic&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Standard industry codes. Used to group customers.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; status&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tax&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row for each tax defined. Tax are defined by marking them Tax on Add Account form.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; translation&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row for each description translated to a language defined in language table.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; trf&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; vendor&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Contains master records for each vendor.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; vendortax&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Taxes applicable to each vendor are defined in this table. One row for each vendor/tax combination.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; vr&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; warehouse&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One row for each warehouse defined.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; yearend&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
You you run System→Yearend process, a journal transaction is generated in the gl table (with detail lines in acc_trans). id for the transaction along with the date is stored in this table. (one row per year end).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. List of tables&quot; [1101-7349] --&gt;
&lt;h2&gt;&lt;a name=&quot;list_of_sequences&quot; id=&quot;list_of_sequences&quot;&gt;3. List of sequences&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; id&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; addressid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; assemblyid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; contactid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; inventoryid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; invoiceid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; jcitemsid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; orderitemsid&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. List of sequences&quot; [7350-] --&gt;</description>
            <pubDate>Wed, 10 Feb 2010 12:27:29 +0000</pubDate>
        </item>
        <item>
            <title>defaults</title>
            <link>http://www.ledger123.com/docs/doku.php?id=defaults&amp;rev=1251981230&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;document_numbers_and_system_defaults&quot; id=&quot;document_numbers_and_system_defaults&quot;&gt;Document Numbers and System Defaults&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;strong&gt;System–Defaults&lt;/strong&gt; menu allows you to setup your company, address and related information in MyLedger. Document numbering is also controlled by system defaults.
&lt;/p&gt;

&lt;p&gt;
We setup defaults for document numbers as shown on the following screen shot. You can change these to your liking or organizational needs. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=defaults&amp;amp;media=defaults.jpg&quot; class=&quot;media&quot; title=&quot;defaults.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=defaults.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <pubDate>Thu, 03 Sep 2009 12:33:50 +0000</pubDate>
        </item>
        <item>
            <title>departments</title>
            <link>http://www.ledger123.com/docs/doku.php?id=departments&amp;rev=1241165796&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;departments&quot; id=&quot;departments&quot;&gt;Departments&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Departments are optional and can be used to classify transactions according to a department code.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Departments&quot; [1-126] --&gt;
&lt;h1&gt;&lt;a name=&quot;managing_departments&quot; id=&quot;managing_departments&quot;&gt;1. Managing Departments&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Departments can be added, changed or deleted using &lt;code&gt;&amp;#039;System–Departments&lt;/code&gt;&amp;#039; menu option.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=departments&amp;amp;media=departments1.jpg&quot; class=&quot;media&quot; title=&quot;departments1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=departments1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger departments can be mapped to the various departments (sales, purchase etc.), branches (London, Oxford etc.) or product divisions (Product 1, Product2 etc.) within your organization. 
&lt;/p&gt;

&lt;p&gt;
Departments can be marked as &lt;code&gt;&amp;#039;Cost Center&lt;/code&gt;&amp;#039; or &lt;code&gt;&amp;#039;Profit Center&lt;/code&gt;&amp;#039;. Cost center departments appear only in purchasing module. Profit center departments appear both in purchasing and sales modules.
&lt;/p&gt;

&lt;p&gt;
You can also change &lt;code&gt;&amp;#039;Department&lt;/code&gt;&amp;#039; to anything you like (eg.Branch) using the sql-ledger language customization feature. Note: Departments lookup does not appear on transaction forms unless you define at least one department from System→Departments menu option.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Managing Departments&quot; [127-941] --&gt;
&lt;h1&gt;&lt;a name=&quot;default_department&quot; id=&quot;default_department&quot;&gt;2. Default Department&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

You can define a default default for users through sql-ledger administrative interface.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=departments&amp;amp;media=warehouse1a.jpg&quot; class=&quot;media&quot; title=&quot;warehouse1a.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=warehouse1a.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
You can also restrict the user to view and make transactions to his department only by setting his role to &lt;code&gt;User&lt;/code&gt;. Users with role &lt;code&gt;Administrator, Manager, Supervisor&lt;/code&gt; always have access to all departments.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Default Department&quot; [942-1302] --&gt;
&lt;h1&gt;&lt;a name=&quot;using_departments&quot; id=&quot;using_departments&quot;&gt;3. Using Departments&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Once departments are defined you can specify them in your invoices, orders, quotations and other transactions.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=departments&amp;amp;media=departments2.jpg&quot; class=&quot;media&quot; title=&quot;departments2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=departments2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Using Departments&quot; [1303-1473] --&gt;
&lt;h1&gt;&lt;a name=&quot;reports&quot; id=&quot;reports&quot;&gt;4. Reports&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Reports allow you to view all or department specific transactions.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=departments&amp;amp;media=departments3.jpg&quot; class=&quot;media&quot; title=&quot;departments3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=departments3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Income Statement and Balance sheet can also be compared and displayed by department.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=departments&amp;amp;media=departments4.jpg&quot; class=&quot;media&quot; title=&quot;departments4.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=departments4.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;4. Reports&quot; [1474-] --&gt;</description>
            <pubDate>Fri, 01 May 2009 08:16:36 +0000</pubDate>
        </item>
        <item>
            <title>diff_patch_tools</title>
            <link>http://www.ledger123.com/docs/doku.php?id=diff_patch_tools&amp;rev=1264221189&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;diff_and_patch_tools&quot; id=&quot;diff_and_patch_tools&quot;&gt;Diff and Patch Tools&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Unix &lt;em&gt;diff&lt;/em&gt; and &lt;em&gt;patch&lt;/em&gt; tools allow you to manage your custom changes easily across newer versions of sql-ledger. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Diff and Patch Tools&quot; [1-156] --&gt;
&lt;h2&gt;&lt;a name=&quot;identifying_what_is_changed_in_new_version&quot; id=&quot;identifying_what_is_changed_in_new_version&quot;&gt;1. Identifying what is changed in new version&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Let us say that we have two versions of sql-ledger in folders &lt;code&gt;sql-ledger-2.8.13&lt;/code&gt; and &lt;code&gt;sql-ledger-2.8.14&lt;/code&gt;. We try to find what has been changes in 2.8.14.

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Files changes&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
  freebsd# diff -r -q sql-ledger-2.8.13 sql-ledger-2.8.14

Files sql-ledger-2.8.13/SL/Form.pm and sql-ledger-2.8.14/SL/Form.pm differ
Files sql-ledger-2.8.13/SL/IC.pm and sql-ledger-2.8.14/SL/IC.pm differ
Files sql-ledger-2.8.13/SL/IR.pm and sql-ledger-2.8.14/SL/IR.pm differ
Files sql-ledger-2.8.13/SL/IS.pm and sql-ledger-2.8.14/SL/IS.pm differ
Files sql-ledger-2.8.13/SL/OE.pm and sql-ledger-2.8.14/SL/OE.pm differ
Files sql-ledger-2.8.13/SL/RP.pm and sql-ledger-2.8.14/SL/RP.pm differ
Files sql-ledger-2.8.13/VERSION and sql-ledger-2.8.14/VERSION differ
Files sql-ledger-2.8.13/bin/lynx/arapprn.pl and sql-ledger-2.8.14/bin/lynx/arapprn.pl differ
...
...
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Code changes&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
  freebsd# diff -r -u sql-ledger-2.8.13 sql-ledger-2.8.14

diff -r -u sql-ledger-2.8.13/SL/Form.pm sql-ledger-2.8.14/SL/Form.pm
--- sql-ledger-2.8.13/SL/Form.pm        2008-02-17 17:57:39.000000000 +0000
+++ sql-ledger-2.8.14/SL/Form.pm        2008-03-19 14:54:21.000000000 +0000
@@ -78,7 +78,7 @@

   $self-&amp;gt;{menubar} = 1 if $self-&amp;gt;{path} =~ /lynx/i;

-  $self-&amp;gt;{version} = &amp;quot;2.8.13&amp;quot;;
+  $self-&amp;gt;{version} = &amp;quot;2.8.14&amp;quot;;
   $self-&amp;gt;{dbversion} = &amp;quot;2.8.8&amp;quot;;

   bless $self, $type;
@@ -2330,7 +2330,7 @@

   # remove expired locks
   $query = qq|DELETE FROM semaphore
-              WHERE expires &amp;lt; $expires|;
+              WHERE expires &amp;lt; &amp;#039;$expires&amp;#039;|;
   $dbh-&amp;gt;do($query) || $self-&amp;gt;dberror($query);
...
...
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Identifying what is changed in new version&quot; [157-1804] --&gt;
&lt;h2&gt;&lt;a name=&quot;preparing_and_applying_patch&quot; id=&quot;preparing_and_applying_patch&quot;&gt;2. Preparing and Applying Patch&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prepare a file containing changes in new version&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
freebsd# diff -r -u sql-ledger-2.8.13 sql-ledger-2.8.14 &amp;gt; changes2814.diff
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Now changes2814.diff will contain all the changes made in new version. You can apply these changes to old version to bring it update to new version with a single command:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
freebsd# patch -p0 -r sql-ledger-2.8.13 &amp;lt; changes2814.diff

Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r -u sql-ledger-2.8.13/SL/Form.pm sql-ledger-2.8.14/SL/Form.pm
|--- sql-ledger-2.8.13/SL/Form.pm       2008-02-17 17:57:39.000000000 +0000
|+++ sql-ledger-2.8.14/SL/Form.pm       2008-03-19 14:54:21.000000000 +0000
--------------------------
Patching file sql-ledger-2.8.13/SL/Form.pm using Plan A...
Hunk #1 succeeded at 78.
Hunk #2 succeeded at 2330.
Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -r -u sql-ledger-2.8.13/SL/IC.pm sql-ledger-2.8.14/SL/IC.pm
|--- sql-ledger-2.8.13/SL/IC.pm 2007-12-28 23:55:33.000000000 +0000
|+++ sql-ledger-2.8.14/SL/IC.pm 2008-03-05 20:02:07.000000000 +0000
--------------------------
Patching file sql-ledger-2.8.13/SL/IC.pm using Plan A...
Hunk #1 succeeded at 199.
...
...
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Now both sql-ledger-2.8.13 and sql-ledger-2.8.14 contain 100% exact code. Let us see what happens when we run diff on these two folders&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
freebsd# diff -r -u sql-ledger-2.8.13 sql-ledger-2.8.14

Only in sql-ledger-2.8.13/SL: Form.pm.orig
Only in sql-ledger-2.8.13/SL: IC.pm.orig
Only in sql-ledger-2.8.13/SL: IR.pm.orig
...
...
&lt;/pre&gt;

&lt;p&gt;
Form.pm.orig (and other .orig files) is the file which was created by patch command and contains the file contents before applying the patch. These files can be deleted safely.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Preparing and Applying Patch&quot; [1805-3671] --&gt;
&lt;h2&gt;&lt;a name=&quot;upgrading_your_custom_sql-ledger&quot; id=&quot;upgrading_your_custom_sql-ledger&quot;&gt;3. Upgrading Your Custom Sql-Ledger&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Let us say we have our custom sql-ledger which is a modified copy of sql-ledger-2.8.13 and resides in folder &lt;code&gt;&amp;#039;ourledger-2.8.13&lt;/code&gt;&amp;#039;. Our goal is to bring all changes in 2.8.14 to our custom version. Here are the steps:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prepare the patch for differences in 2.8.13 and 2.8.14 as described above.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Make sure that your changes in &lt;code&gt;&amp;#039;ourledger-2.8.13&lt;/code&gt;&amp;#039; do not conflict with original author&amp;#039;s changes in 2.8.14. You can do this by reviewing changes in &lt;code&gt;&amp;#039;changes-2814.diff&lt;/code&gt;&amp;#039;. See notes below&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Apply the patch to &lt;code&gt;&amp;#039;ourledger-2.8.13&lt;/code&gt;&amp;#039;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code&quot;&gt;
freebsd# patch -p0 -r ourledger-2.8.13 &amp;lt; changes2814.diff
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Upgrading Your Custom Sql-Ledger&quot; [3672-4339] --&gt;
&lt;h2&gt;&lt;a name=&quot;notes&quot; id=&quot;notes&quot;&gt;4. Notes&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Here are few points to keep in mind:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Your patch will apply cleanly even if lines have been added or deleted from the SL/Form.pm provided that your changes do not conflict with the changes of the original author.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; If your changes conflict with the original author changes, you need to manually adjust the code by discarding some of your changes or discarding the original author changes. For this purpose, you can make adjustments directly in changes2814.diff&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; If you do not want to apply a particular change by the orignal author, you can delete the relevant &lt;em&gt;hunks&lt;/em&gt; from changes-2814.diff before applying it to your version of sql-ledger&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;4. Notes&quot; [4340-] --&gt;</description>
            <pubDate>Sat, 23 Jan 2010 04:33:09 +0000</pubDate>
        </item>
        <item>
            <title>enhanced_sql-ledger</title>
            <link>http://www.ledger123.com/docs/doku.php?id=enhanced_sql-ledger&amp;rev=1272684619&amp;do=diff</link>
            <description></description>
            <pubDate>Sat, 01 May 2010 03:30:19 +0000</pubDate>
        </item>
        <item>
            <title>enhancements</title>
            <link>http://www.ledger123.com/docs/doku.php?id=enhancements&amp;rev=1272683069&amp;do=diff</link>
            <description></description>
            <pubDate>Sat, 01 May 2010 03:04:29 +0000</pubDate>
        </item>
        <item>
            <title>faq</title>
            <link>http://www.ledger123.com/docs/doku.php?id=faq&amp;rev=1251989816&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;frequently_asked_questions&quot; id=&quot;frequently_asked_questions&quot;&gt;Frequently Asked Questions&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Frequently Asked Questions&quot; [1-42] --&gt;
&lt;h2&gt;&lt;a name=&quot;account_management&quot; id=&quot;account_management&quot;&gt;Account management&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Account management&quot; [43-73] --&gt;
&lt;h3&gt;&lt;a name=&quot;how_do_i_cancel_my_account&quot; id=&quot;how_do_i_cancel_my_account&quot;&gt;How do I cancel my account?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Send an &lt;a href=&quot;mailto:&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&amp;#x3f;&amp;#x73;&amp;#x75;&amp;#x62;&amp;#x6a;&amp;#x65;&amp;#x63;&amp;#x74;&amp;#x3d;&amp;#x43;&amp;#x61;&amp;#x6e;&amp;#x63;&amp;#x65;&amp;#x6c;&amp;#x20;&amp;#x6d;&amp;#x79;&amp;#x20;&amp;#x61;&amp;#x63;&amp;#x63;&amp;#x6f;&amp;#x75;&amp;#x6e;&amp;#x74;&quot; class=&quot;mail JSnocheck&quot; title=&quot;&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&amp;#x3f;&amp;#x73;&amp;#x75;&amp;#x62;&amp;#x6a;&amp;#x65;&amp;#x63;&amp;#x74;&amp;#x3d;&amp;#x43;&amp;#x61;&amp;#x6e;&amp;#x63;&amp;#x65;&amp;#x6c;&amp;#x20;&amp;#x6d;&amp;#x79;&amp;#x20;&amp;#x61;&amp;#x63;&amp;#x63;&amp;#x6f;&amp;#x75;&amp;#x6e;&amp;#x74;&quot;&gt;email with subject &amp;#039;Cancel my account&amp;#039;&lt;/a&gt; to support@ledger123.com at least one day before your next billing date. 
&lt;/p&gt;

&lt;p&gt;
If you cancel within first month of joining us, your entire hosting fee is refunded.
&lt;/p&gt;

&lt;p&gt;
After first month, if you cancel any time during the month, you are charged for the whole month.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;How do I cancel my account?&quot; [74-470] --&gt;
&lt;h3&gt;&lt;a name=&quot;do_you_provide_phone_support&quot; id=&quot;do_you_provide_phone_support&quot;&gt;Do you provide phone support?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

No. not at this time.
&lt;/p&gt;

&lt;p&gt;
To provide best possible support through email, we use &lt;a href=&quot;http://www.bestpractical.com/rt/&quot; class=&quot;urlextern&quot; title=&quot;http://www.bestpractical.com/rt/&quot;  rel=&quot;nofollow&quot;&gt;RT&lt;/a&gt;. All your requests are assigned a number and resolved as soon as possible.
&lt;/p&gt;

&lt;p&gt;
This helps us keep our prices low and keep us focused on enhancing our services.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Do you provide phone support?&quot; [471-787] --&gt;
&lt;h2&gt;&lt;a name=&quot;hosting_service&quot; id=&quot;hosting_service&quot;&gt;Hosting service&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Hosting service&quot; [788-816] --&gt;
&lt;h3&gt;&lt;a name=&quot;i_want_xxxx_feature_will_you_add_it&quot; id=&quot;i_want_xxxx_feature_will_you_add_it&quot;&gt;I want xxxx feature. Will you add it?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

We are always working hard to enhance the application and hosting features. We would love to hear from you but we can&amp;#039;t promise it will be added. Your request will be added to the features queue. If there is enough demand for this feature, it will get implemented.
&lt;/p&gt;

&lt;p&gt;
You can, however, always sponsor a new feature by paying for it and get it added on priority basis. Contact sales@ledger123.com.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;I want xxxx feature. Will you add it?&quot; [817-1261] --&gt;
&lt;h3&gt;&lt;a name=&quot;where_are_your_servers_located&quot; id=&quot;where_are_your_servers_located&quot;&gt;Where are your servers located?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

We host our servers at &lt;a href=&quot;http://joyent.com&quot; class=&quot;urlextern&quot; title=&quot;http://joyent.com&quot;  rel=&quot;nofollow&quot;&gt;joyent.com&lt;/a&gt; and &lt;a href=&quot;http://slicehost.com&quot; class=&quot;urlextern&quot; title=&quot;http://slicehost.com&quot;  rel=&quot;nofollow&quot;&gt;slicehost.com&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Where are your servers located?&quot; [1262-1407] --&gt;
&lt;h3&gt;&lt;a name=&quot;can_i_download_my_data_if_i_don_t_want_to_use_your_service_anymore&quot; id=&quot;can_i_download_my_data_if_i_don_t_want_to_use_your_service_anymore&quot;&gt;Can I download my data if I don&amp;#039;t want to use your service anymore?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

You can download your data backup using System–Backup menu. Backup file is in text format and intended for import in postgresql database. With minor changes it can be imported in any database software.
&lt;/p&gt;

&lt;p&gt;
We are also planning other formats (csv, html) but currently there is no release date has been decided.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Can I download my data if I don't want to use your service anymore?&quot; [1408-1795] --&gt;
&lt;h3&gt;&lt;a name=&quot;can_i_import_data_from_my_old_accounting_software&quot; id=&quot;can_i_import_data_from_my_old_accounting_software&quot;&gt;Can I import data from my old accounting software?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Yes, we offer CSV import for all type of transactions. You need to export data from your old accounting software in CSV format. You can then format it and import it into your hosted account.
&lt;/p&gt;

&lt;p&gt;
See this wiki for details.
&lt;/p&gt;

&lt;p&gt;
If you are having difficulty, open a support ticket.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Can I import data from my old accounting software?&quot; [1796-2131] --&gt;
&lt;h3&gt;&lt;a name=&quot;what_are_the_limitations_of_free_edition&quot; id=&quot;what_are_the_limitations_of_free_edition&quot;&gt;What are the limitations of free edition?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
We have recently removed all limitations of the free hosting plan. The only limitation now is that only a single user can access the free edition.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;What are the limitations of free edition?&quot; [2132-2333] --&gt;
&lt;h3&gt;&lt;a name=&quot;can_i_switch_back_to_my_locally_hosted_sql_ledger&quot; id=&quot;can_i_switch_back_to_my_locally_hosted_sql_ledger&quot;&gt;Can I switch back to my locally hosted sql ledger?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Yes, you can. With every customization or feature, we make sure it does not break backward compatibility with the official sql ledger release.
&lt;/p&gt;

&lt;p&gt;
Download backup of your data and restore it in your local installation. Your all data and reports will be fully functional and accurate. The only downside is that features added by us will not be available.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Can I switch back to my locally hosted sql ledger?&quot; [2334-2749] --&gt;
&lt;h3&gt;&lt;a name=&quot;do_you_offer_custom_forms_reports_modules_development_for_my_local_hosting&quot; id=&quot;do_you_offer_custom_forms_reports_modules_development_for_my_local_hosting&quot;&gt;Do you offer custom forms/reports/modules development for my local hosting?&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Yes. We do offer custom sql-ledger development. Contact sales@ledger123.com with your requirements.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Do you offer custom forms/reports/modules development for my local hosting?&quot; [2750-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 14:56:56 +0000</pubDate>
        </item>
        <item>
            <title>forms</title>
            <link>http://www.ledger123.com/docs/doku.php?id=forms&amp;rev=1251985553&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;forms_and_templates&quot; id=&quot;forms_and_templates&quot;&gt;Forms and Templates&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Print forms for invoices, orders, quotations and financial reports can be customized by you by editing form templates. There are three type of templates:
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Type 1: &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; Templates&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt; templates are easier to modify because it of wide spread knowledge of html. Only basic html knowledge is required to edit html templates.
&lt;/p&gt;

&lt;p&gt;
Attach:templates1.jpg
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Type 2: Latex Templates&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Latex templates are bit complex to understand and modify but offer complete control over printed invoice, order or quotation forms. See below for basic introduction to latex.
&lt;/p&gt;

&lt;p&gt;
Attach:templates3.jpg
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Type 3: Text Templates. Used only with Point-of-Sale interface&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Text templates are used only for Point-of-Sale receipts printing. These templates allow you to print on 40 character receipt printers.
&lt;/p&gt;

&lt;p&gt;
Attach:templates4.jpg
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Forms and Templates&quot; [1-841] --&gt;
&lt;h2&gt;&lt;a name=&quot;editing_templates&quot; id=&quot;editing_templates&quot;&gt;1. Editing Templates&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Templates can be edit through sql-ledger. When you click on a template, it is displayed with &lt;code&gt;&amp;#039;Edit&lt;/code&gt;&amp;#039; button at the end of the template. Clicking the &lt;code&gt;&amp;#039;Edit&lt;/code&gt;&amp;#039; button will open the template in a text box where it can be edited and saved.
&lt;/p&gt;

&lt;p&gt;
Attach:templates2.jpg
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Editing Templates&quot; [842-1139] --&gt;
&lt;h2&gt;&lt;a name=&quot;template_variables&quot; id=&quot;template_variables&quot;&gt;2. Template Variables&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Sql-ledger replaces actual data into templates using variables which we call template variables. Template variables are enclosed within &amp;lt;% and %&amp;gt;.
&lt;/p&gt;

&lt;p&gt;
Here are some template variables to give you an idea of these:

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
&amp;lt;%name%&amp;gt;
&amp;lt;%address1%&amp;gt;
&amp;lt;%address2%&amp;gt;
&amp;lt;%city%&amp;gt;
&amp;lt;%state%&amp;gt;
&amp;lt;%zipcode%&amp;gt;
&amp;lt;%country%&amp;gt;
&amp;lt;%contact%&amp;gt;

&amp;lt;%invnumber%&amp;gt;
&amp;lt;%invdate%&amp;gt;
&amp;lt;%duedate%&amp;gt;
&amp;lt;%ordnumber%&amp;gt;
&amp;lt;%employee%&amp;gt;
&amp;lt;%shippingpoint%&amp;gt;
&amp;lt;%shipvia%&amp;gt;

&amp;lt;%runningnumber%&amp;gt;
&amp;lt;%number%&amp;gt;
&amp;lt;%description%&amp;gt;
&amp;lt;%deliverydate%&amp;gt;
&amp;lt;%qty%&amp;gt;
&amp;lt;%unit%&amp;gt;
&amp;lt;%sellprice%&amp;gt;
&amp;lt;%discountrate%&amp;gt;
&amp;lt;%linetotal%&amp;gt;

&lt;/pre&gt;

&lt;p&gt;

The best way to view all these template variables and understand their usage is by going through existing templates.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Template Variables&quot; [1140-1833] --&gt;
&lt;h2&gt;&lt;a name=&quot;template_control_structure&quot; id=&quot;template_control_structure&quot;&gt;3. Template Control Structure&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Template processing engine in sql-ledger allows simple if statement and loops. Example of these are described below:
&lt;/p&gt;

&lt;p&gt;
* &lt;code&gt;&amp;#039;if&lt;/code&gt;&amp;#039; conditions to print a column data conditionally:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
          &amp;lt;%if contact%&amp;gt;
          &amp;lt;br&amp;gt;&amp;lt;%contact%&amp;gt;
          &amp;lt;br&amp;gt;
          &amp;lt;%end contact%&amp;gt;

          &amp;lt;%if taxincluded%&amp;gt;
          &amp;lt;th colspan=7 align=right&amp;gt;Total&amp;lt;/th&amp;gt;
          &amp;lt;td colspan=2 align=right&amp;gt;&amp;lt;%invtotal%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;%end taxincluded%&amp;gt;

          &amp;lt;%if not taxincluded%&amp;gt;
          &amp;lt;th colspan=7 align=right&amp;gt;Subtotal&amp;lt;/th&amp;gt;
          &amp;lt;td colspan=2 align=right&amp;gt;&amp;lt;%subtotal%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;%end taxincluded%&amp;gt;

        &amp;lt;%if paid%&amp;gt;
        &amp;lt;tr&amp;gt;
          &amp;lt;th colspan=7 align=right&amp;gt;Paid&amp;lt;/th&amp;gt;
          &amp;lt;td colspan=2 align=right&amp;gt;- &amp;lt;%paid%&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;/tr&amp;gt;
        &amp;lt;%end paid%&amp;gt;
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;&amp;#039;for&lt;/code&gt;&amp;#039; loop to print all lines on an invoice:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
        &amp;lt;%foreach number%&amp;gt;
        &amp;lt;tr valign=top&amp;gt;
          &amp;lt;td align=right&amp;gt;&amp;lt;%runningnumber%&amp;gt;.&amp;lt;/td&amp;gt;
          &amp;lt;td&amp;gt;&amp;lt;%number%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td&amp;gt;&amp;lt;%description%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td&amp;gt;&amp;lt;%deliverydate%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td align=right&amp;gt;&amp;lt;%qty%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td&amp;gt;&amp;lt;%unit%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td align=right&amp;gt;&amp;lt;%sellprice%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td align=right&amp;gt;&amp;lt;%discountrate%&amp;gt;&amp;lt;/td&amp;gt;
          &amp;lt;td align=right&amp;gt;&amp;lt;%linetotal%&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;/tr&amp;gt;
        &amp;lt;%end number%&amp;gt;

        &amp;lt;%foreach tax%&amp;gt;
        &amp;lt;tr&amp;gt;
          &amp;lt;th colspan=7 align=right&amp;gt;&amp;lt;%taxdescription%&amp;gt; on &amp;lt;%taxbase%&amp;gt; @ &amp;lt;%taxrate%&amp;gt; %&amp;lt;/th&amp;gt;
          &amp;lt;td colspan=2 align=right&amp;gt;&amp;lt;%tax%&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;/tr&amp;gt;
        &amp;lt;%end tax%&amp;gt;
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Template Control Structure&quot; [1834-3386] --&gt;
&lt;h2&gt;&lt;a name=&quot;an_introduction_to_latex&quot; id=&quot;an_introduction_to_latex&quot;&gt;4. An Introduction to Latex&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Latex is a complete collection of software tools to create high quaility print documents. Latex templates are used in &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger to create high quality print forms like invoices, purhcase orders etc.
&lt;/p&gt;

&lt;p&gt;
Latex is included with Redhat distributions (rpm -qa | grep tetex). For FreeBSD, you can install the teTex port from /usr/ports/print/teTeX.
&lt;/p&gt;

&lt;p&gt;
Latex migh seem overwhelming to a new comer but it is really a simple toolkit to use for customizing the &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger templates. In this very short introduction of Latex, we shall go through the basic document format and its use in &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; Hello world! &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
1. Create a text file (hello.tex) in your home folder with following text:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
    \documentclass[a4paper,11pt]{article}
    \begin{document}
    Hello world!
    \end{document}
&lt;/pre&gt;

&lt;p&gt;
2. Compile this tex file into dvi file and use xdvi to view it:

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
    latex hello.tex
    xdvi hello.dvi
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;You can also convert it to pdf:&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
    pdflatex hello.tex
    xpdf hello.pdf
&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt; Structure of a Latex Document &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Latex commands start with a backslash (\). Parameters can follow the command. Optional parameters are enclosed in [] while mandatory ones are enclosed in {}. {} can also be used to terminated a command mixed within some text (to make it easier to understand the command for the compiler). Special characters in latex (#, $, %, ^, &amp;amp;, _, {, }, ~) are escaped with \ except for the \ character itself (because &lt;br/&gt;
is used to break a line). To use literal backslash (\) use can use special command $\backslash$.
&lt;/p&gt;

&lt;p&gt;
Single line comments start with % while multi-line comments can be enclosed between \begin{comment} and \end{comment} structure.
&lt;/p&gt;

&lt;p&gt;
Every latex document starts with \documentclass with parameters ([a4paper,11pt]{article}) following it 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;4. An Introduction to Latex&quot; [3387-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 13:45:53 +0000</pubDate>
        </item>
        <item>
            <title>getting_started</title>
            <link>http://www.ledger123.com/docs/doku.php?id=getting_started&amp;rev=1251993930&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;initial_setup&quot; id=&quot;initial_setup&quot;&gt;Initial Setup&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

We install a sample chart of accounts when your hosting is created. Following steps will ensure smooth sailing with your hosted sql-ledger.

&lt;/p&gt;
&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;#&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Initial step&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Menu Option&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Change your initial password.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Preferences&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Review the install chart of accounts. Modify if required.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System__Chart_of_Accounts&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Review tax definitions. Modify if required&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Taxes&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Specify your company name and address which will be printed on forms.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Defaults&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Review document numbering defaults. Modify if required.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Defaults&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Upload your logo in PNS and EPS format. Logo is printed on invoices/orders/quotations forms and displayed on login screen and dashboard.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Upload Logo&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;7&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Create one or more customers.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Customers–Add Customer&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;8&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Create one or more vendors.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Vendors–Add Vendor&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Create groups, parts and services.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Goods &amp;amp; Services&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;10&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Enter beginning balances&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;see below&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;11&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Add one or more users who can login and work on your hosted sql-ledger.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Users (optional)&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Create warehouses if you maintain inventory at multiple warehouses.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Warehouses&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Create departments if you track income/expenses by departments.&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;System–Departments&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;

Once you have defined the above things you are ready for your day to day usage.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Initial Setup&quot; [1-1295] --&gt;
&lt;h1&gt;&lt;a name=&quot;beginning_balances&quot; id=&quot;beginning_balances&quot;&gt;Beginning balances&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

To enter beginning balances for different accounting entities follow these steps:

&lt;/p&gt;
&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Entity&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Transaction to establish beginning balance&lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Customers&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;AR–Add Transaction&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Vendors&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;AP–Add Transaction&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Chart of accounts&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;General Ledger–Add Transaction&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Parts&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;AP–Vendor Invoice&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;

Notes:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; For parts beginning balances, you can add a new vendor named &amp;#039;Beginning Balance&amp;#039; and add an invoice for this vendor with quantity and cost of parts in the price column.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Beginning balances&quot; [1296-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 16:05:30 +0000</pubDate>
        </item>
        <item>
            <title>goods_and_services</title>
            <link>http://www.ledger123.com/docs/doku.php?id=goods_and_services&amp;rev=1251980549&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;goods_services&quot; id=&quot;goods_services&quot;&gt;Goods &amp;amp; Services&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Goods and Services menu allows you to define goods and services that you purchase and sell as part of running your business.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Goods &amp; Services&quot; [1-157] --&gt;
&lt;h2&gt;&lt;a name=&quot;parts&quot; id=&quot;parts&quot;&gt;Parts&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Parts are tangible items you keep in your stock. You purchase them from your vendors and sell them to your customers for profit.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=goods_and_services&amp;amp;media=parts1.jpg&quot; class=&quot;media&quot; title=&quot;parts1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=parts1.jpg&quot; class=&quot;media&quot; title=&quot;Attach:parts1.jpg&quot; alt=&quot;Attach:parts1.jpg&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Parts&quot; [158-341] --&gt;
&lt;h2&gt;&lt;a name=&quot;services&quot; id=&quot;services&quot;&gt;Services&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Services are those items for which you do not track onhand quantities.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=goods_and_services&amp;amp;media=services1.jpg&quot; class=&quot;media&quot; title=&quot;services1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=services1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Services&quot; [342-456] --&gt;
&lt;h2&gt;&lt;a name=&quot;labor_overhead&quot; id=&quot;labor_overhead&quot;&gt;Labor/Overhead&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=goods_and_services&amp;amp;media=labour1.jpg&quot; class=&quot;media&quot; title=&quot;labour1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=labour1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Labor/Overhead&quot; [457-503] --&gt;
&lt;h2&gt;&lt;a name=&quot;groups&quot; id=&quot;groups&quot;&gt;Groups&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Groups are used to group togather the parts and services. You can filter parts and services reports by selecting a group on search screens.
&lt;/p&gt;

&lt;p&gt;
Groups have another useful functionality. When you check the POS button box during group add or change, they appear as buttons on POS (point-of-sale) screens making it easier to select items within each group.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=goods_and_services&amp;amp;media=group1.jpg&quot; class=&quot;media&quot; title=&quot;group1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=group1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Groups&quot; [504-893] --&gt;
&lt;h2&gt;&lt;a name=&quot;price_groups&quot; id=&quot;price_groups&quot;&gt;Price groups&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
MyLedger has very flexiable pricing mechanism. For example:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You can define customer specific prices for each part.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You can define quantity breaks. (If someone buys 10 units instead of 1, he/she can automatically gets lower price.)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; And you can specify start and end dates to offer a special price during, for example, Christmas season.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Price groups take this concept further and allow you to define &amp;#039;groups&amp;#039; of special prices. Let us say you sell to distributor, dealer and end-user. Each of these groups of customers gets tiered discount/price.
&lt;/p&gt;

&lt;p&gt;
There are three steps to use price groups:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create three price groups; distributor, dealer and enduser. (Goods &amp;amp; Services-Add Pricegroup)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Define item prices for these price groups. To do this, open the item for editing and select the price group and set the price according to the price group tier. Leave the customer column blank. Repeat this for all items. (Clicking &amp;#039;Update&amp;#039; will allow you to set prices for multiple pricegroups for a single item.)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Open the customer record for editing and set the applicable price group for that customer.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=goods_and_services&amp;amp;media=pricegroup1.jpg&quot; class=&quot;media&quot; title=&quot;pricegroup1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=pricegroup1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Price groups&quot; [894-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 12:22:29 +0000</pubDate>
        </item>
        <item>
            <title>graphs</title>
            <link>http://www.ledger123.com/docs/doku.php?id=graphs&amp;rev=1273147510&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 06 May 2010 12:05:10 +0000</pubDate>
        </item>
        <item>
            <title>installation</title>
            <link>http://www.ledger123.com/docs/doku.php?id=installation&amp;rev=1273147510&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 06 May 2010 12:05:10 +0000</pubDate>
        </item>
        <item>
            <title>ledgercart</title>
            <link>http://www.ledger123.com/docs/doku.php?id=ledgercart&amp;rev=1277622897&amp;do=diff</link>
            <description></description>
            <pubDate>Sun, 27 Jun 2010 07:14:57 +0000</pubDate>
        </item>
        <item>
            <title>new_forms</title>
            <link>http://www.ledger123.com/docs/doku.php?id=new_forms&amp;rev=1264227358&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;new_forms&quot; id=&quot;new_forms&quot;&gt;New forms&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
You can easily build your own data entry forms and reports and integrate seamlessly into sql-ledger. We provide sample code on this page which makes it much easier for you. The code contains comments which will help you to adapt it for your own tables.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;New forms&quot; [1-277] --&gt;
&lt;h2&gt;&lt;a name=&quot;screen_shots&quot; id=&quot;screen_shots&quot;&gt;1. Screen Shots&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Here are screen shots from &lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=sampleform.perl&quot; class=&quot;media mediafile mf_perl&quot; title=&quot;sampleform.perl&quot;&gt;sampleform.pl&lt;/a&gt; installed and running.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=new_forms&amp;amp;media=sampleform1.jpg&quot; class=&quot;media&quot; title=&quot;sampleform1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=sampleform1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=new_forms&amp;amp;media=sampleform2.jpg&quot; class=&quot;media&quot; title=&quot;sampleform2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=sampleform2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Screen Shots&quot; [278-438] --&gt;
&lt;h2&gt;&lt;a name=&quot;installation&quot; id=&quot;installation&quot;&gt;2. Installation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

This sample form is minimal &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; code required to build and integrate a new data entry form into sql-ledger. This sample form allows you to add, change, delete and search data in the given database table.
&lt;/p&gt;

&lt;p&gt;
Steps to install the sample form:
&lt;/p&gt;

&lt;p&gt;
1. Download the sampleform.perl  and rename it to sampleform.pl
&lt;/p&gt;

&lt;p&gt;
2. Create the new table in your dataset by running this sql statement through phppgadmin, pgadmin or psql.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
CREATE TABLE production (
	id		INTEGER DEFAULT NEXTVAL(&amp;#039;id&amp;#039;),
	reference	TEXT,
	transdate	DATE DEFAULT current_date,
	parts_id	INTEGER,
	description	TEXT,
	qty		FLOAT,
	cost		FLOAT,
	notes		TEXT,
	employee_id	INTEGER
);
&lt;/pre&gt;

&lt;p&gt;
3. Copy this script to your ../sql-ledger/bin/mozilla/ folder.
&lt;/p&gt;

&lt;p&gt;
4. Create a gateway script in  ../sql-ledger/ folder by copying any existing gateway script. For example; &lt;em&gt;cp gl.pl sampleform.pl&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
5. Edit your custom_menu.ini and add the following lines:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
[Sample Form]

[Sample Form--Add]
module=sampleform.pl
action=add

[Sample Form--Reports]
module=sampleform.pl
action=search
&lt;/pre&gt;

&lt;p&gt;
6. Optionally run &lt;em&gt;perl locale.pl&lt;/em&gt; in your language folder if you are not using the default English language.
&lt;/p&gt;

&lt;p&gt;
You are done.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Installation&quot; [439-1643] --&gt;
&lt;h2&gt;&lt;a name=&quot;tips_to_build_forms_on_your_own_data_tables&quot; id=&quot;tips_to_build_forms_on_your_own_data_tables&quot;&gt;3. Tips to build forms on your own data tables.&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; There should be a column with auto-generated values in your database table. It should be named id. Some thing like id INTEGER DEFAULT NEXTVAL(&amp;#039;id&amp;#039;) in your table definition will accomplish this.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You can copy/rename sampleform.pl (form1.pl, form2.pl, assets.pl etc.) to create any number of forms.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

We can also build a custom form for you with all sql-ledger features and integration. For details send email to sales@ledger123.com.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Tips to build forms on your own data tables.&quot; [1644-] --&gt;</description>
            <pubDate>Sat, 23 Jan 2010 06:15:58 +0000</pubDate>
        </item>
        <item>
            <title>new_reports</title>
            <link>http://www.ledger123.com/docs/doku.php?id=new_reports&amp;rev=1264228187&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;new_reports&quot; id=&quot;new_reports&quot;&gt;New Reports&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

With our script &lt;em&gt;customreports.pl&lt;/em&gt; and some knowledge of sql-ledger database, you can create custom reports without much effort and which are integrated directly into sql-ledger. 
&lt;/p&gt;

&lt;p&gt;
customreports.pl is minimal &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; code required to build and integrate a custom report into sql-ledger.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;New Reports&quot; [1-314] --&gt;
&lt;h2&gt;&lt;a name=&quot;installation&quot; id=&quot;installation&quot;&gt;1. Installation&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

1. Download &lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=customreports.perl&quot; class=&quot;media mediafile mf_perl&quot; title=&quot;customreports.perl&quot;&gt;customreports.perl&lt;/a&gt;, rename to &lt;em&gt;customreports.pl&lt;/em&gt; and copy to ./sql-ledger/bin/mozilla/ folder.
&lt;/p&gt;

&lt;p&gt;
2. Create a gateway script in  ./sql-ledger/ folder by copying any existing gateway script. For example:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
$ cp gl.pl customreports.pl
&lt;/pre&gt;

&lt;p&gt;
3. Create or edit your custom_menu.ini and add the following lines:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
  [Custom Reports]
  [Custom Reports--Customer List]
  module=customreports.pl
  action=customer_search
&lt;/pre&gt;

&lt;p&gt;
4. Optionally run &amp;#039;perl locale.pl&amp;#039; in your language folder if you are not using the default English language.
&lt;/p&gt;

&lt;p&gt;
You are done.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Installation&quot; [315-942] --&gt;
&lt;h2&gt;&lt;a name=&quot;some_details&quot; id=&quot;some_details&quot;&gt;2. Some Details&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

This sample report consists of two procedures, &amp;#039;customer_search&amp;#039; and &amp;#039;customer_report&amp;#039;. 
&lt;/p&gt;

&lt;p&gt;
&lt;em&gt;customer_search&lt;/em&gt; displays a basic criteria form and when the user clicks the &lt;code&gt;Continue&lt;/code&gt; button, &lt;em&gt;customer_report&lt;/em&gt; displays the data.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Some Details&quot; [943-1202] --&gt;
&lt;h2&gt;&lt;a name=&quot;more_reports&quot; id=&quot;more_reports&quot;&gt;3. More Reports&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Once you have installed this sample report, you can modify it to suite your own needs. To modify this report, you need some knowledge of &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;. See &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=sql_queries&quot; class=&quot;wikilink1&quot; title=&quot;sql_queries&quot;&gt;sql queries&lt;/a&gt; for some sample sql statements you can use to build new reports.
&lt;/p&gt;

&lt;p&gt;
To create more reports, just copy these two procedures (customer_search, customer_report) within the same .pl file and rename them accordingly. Put your &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; statement and make other changes. A working report should be ready within 5-15 minutes. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Too difficult for you?&lt;/strong&gt; We can build a custom report based on customreports.pl. Email us at sales@ledger123.com for details.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. More Reports&quot; [1203-] --&gt;</description>
            <pubDate>Sat, 23 Jan 2010 06:29:47 +0000</pubDate>
        </item>
        <item>
            <title>pos</title>
            <link>http://www.ledger123.com/docs/doku.php?id=pos&amp;rev=1243830438&amp;do=diff</link>
            <description></description>
            <pubDate>Mon, 01 Jun 2009 04:27:18 +0000</pubDate>
        </item>
        <item>
            <title>postgresql</title>
            <link>http://www.ledger123.com/docs/doku.php?id=postgresql&amp;rev=1273147508&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 06 May 2010 12:05:08 +0000</pubDate>
        </item>
        <item>
            <title>printing</title>
            <link>http://www.ledger123.com/docs/doku.php?id=printing&amp;rev=1268750943&amp;do=diff</link>
            <description></description>
            <pubDate>Tue, 16 Mar 2010 14:49:03 +0000</pubDate>
        </item>
        <item>
            <title>projects_and_time_cards</title>
            <link>http://www.ledger123.com/docs/doku.php?id=projects_and_time_cards&amp;rev=1251989358&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;projects&quot; id=&quot;projects&quot;&gt;Projects&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Projects are optional and can be used for following things:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Track income and expenses to specific projects using invoices and general ledger transactions.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter time card data.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

Notes: Projects lookup appears on transactions forms only if you have created at least one project.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Projects&quot; [1-312] --&gt;
&lt;h2&gt;&lt;a name=&quot;managing_projects&quot; id=&quot;managing_projects&quot;&gt;1. Managing Projects&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
You can add or change projects through &lt;strong&gt;Projects&lt;/strong&gt; menu.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=projects_and_time_cards&amp;amp;media=project1.jpg&quot; class=&quot;media&quot; title=&quot;project1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=project1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Managing Projects&quot; [313-424] --&gt;
&lt;h2&gt;&lt;a name=&quot;using_projects&quot; id=&quot;using_projects&quot;&gt;2. Using Projects&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Once you have defined projects, you can use them in sales and purchase invoices.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=projects_and_time_cards&amp;amp;media=project2.jpg&quot; class=&quot;media&quot; title=&quot;project2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=project2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Using Projects&quot; [425-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 14:49:18 +0000</pubDate>
        </item>
        <item>
            <title>purchase_and_sales_orders</title>
            <link>http://www.ledger123.com/docs/doku.php?id=purchase_and_sales_orders&amp;rev=1267964142&amp;do=diff</link>
            <description></description>
            <pubDate>Sun, 07 Mar 2010 12:15:42 +0000</pubDate>
        </item>
        <item>
            <title>recurring</title>
            <link>http://www.ledger123.com/docs/doku.php?id=recurring&amp;rev=1251984936&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;recurring_transactions&quot; id=&quot;recurring_transactions&quot;&gt;Recurring Transactions&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Recurring Transactions allow you to auto-generate pre-defined invoices, transactions and orders. 
&lt;/p&gt;

&lt;p&gt;
This feature can be used for the following:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Recurring billing to a customer (For rent, web hosting, school fee, installment etc.)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Recurring billing from your vendor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Monthly orders to your vendors or from your customers.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Monthly payroll posting using GL Recurring Transactions.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Month-end adjustments and allocations.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Recurring Transactions&quot; [1-475] --&gt;
&lt;h2&gt;&lt;a name=&quot;scheduling&quot; id=&quot;scheduling&quot;&gt;1. Scheduling&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

To generate the next number for a given transaction, leave the &lt;code&gt;Next Number&lt;/code&gt; blank.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=recurring&amp;amp;media=recurring1.jpg&quot; class=&quot;media&quot; title=&quot;recurring1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=recurring1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=recurring&amp;amp;media=recurring2.jpg&quot; class=&quot;media&quot; title=&quot;recurring2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=recurring2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Scheduling&quot; [476-634] --&gt;
&lt;h2&gt;&lt;a name=&quot;generating&quot; id=&quot;generating&quot;&gt;2. Generating&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

When recurring transactions are due you are reminded when you login to sql-ledger. With a single click you can generate all recurring transactions, print or email invoices and orders.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=recurring&amp;amp;media=recurring3.jpg&quot; class=&quot;media&quot; title=&quot;recurring3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=recurring3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Generating&quot; [635-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 13:35:36 +0000</pubDate>
        </item>
        <item>
            <title>repgen_intro</title>
            <link>http://www.ledger123.com/docs/doku.php?id=repgen_intro&amp;rev=1265812946&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;what_is_report_generator&quot; id=&quot;what_is_report_generator&quot;&gt;What is report generator?&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Generates &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; code for a given &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; SELECT query based on sql-ledger tables. Generated &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; code contains all standard sql-ledger report features plus a few more. Drop this code in a pl file in your sql-ledger folder, add a menu option and start using the report.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;What is report generator?&quot; [1-305] --&gt;
&lt;h1&gt;&lt;a name=&quot;how_it_works&quot; id=&quot;how_it_works&quot;&gt;How it works?&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;step_1input_report_name_report_title_and_sql_query_at_codegenledger123com&quot; id=&quot;step_1input_report_name_report_title_and_sql_query_at_codegenledger123com&quot;&gt;Step 1: Input report name, report title and SQL query at codegen.ledger123.com&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=repgen_intro&amp;amp;media=repgen1.png&quot; class=&quot;media&quot; title=&quot;repgen1.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=repgen1.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;step_2download_the_generated_script_and_add_it_to_bin_mozilla_custom_rppl&quot; id=&quot;step_2download_the_generated_script_and_add_it_to_bin_mozilla_custom_rppl&quot;&gt;Step 2: Download the generated script and add it to bin/mozilla/custom_rp.pl&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=repgen_intro&amp;amp;media=repgen2.png&quot; class=&quot;media&quot; title=&quot;repgen2.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=repgen2.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;step_3add_report_to_menu&quot; id=&quot;step_3add_report_to_menu&quot;&gt;Step 3: Add report to menu&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;
[Sales Report]
module=rp.pl
action=sales_search
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;step_4run_the_newly_generated_report&quot; id=&quot;step_4run_the_newly_generated_report&quot;&gt;Step 4: Run the newly generated report&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=repgen_intro&amp;amp;media=repgen3.png&quot; class=&quot;media&quot; title=&quot;repgen3.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=repgen3.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=repgen_intro&amp;amp;media=repgen4.png&quot; class=&quot;media&quot; title=&quot;repgen4.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=repgen4.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;How it works?&quot; [306-730] --&gt;
&lt;h1&gt;&lt;a name=&quot;features_of_generated_report&quot; id=&quot;features_of_generated_report&quot;&gt;Features of generated report&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Select/de-select columns to include in report.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Totals/subtotals for numeric columns.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Grouping on the sorted column with subtotals. (optional)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Summary / detail reports (optional)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Range (from/to) search on numbers and date columns.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Search boolean columns with Y/N.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Drop down fields on search screen for if any of the these columns is found in query: customer, vendor, parts, groups, accounts, employees, salesperson, currency.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CSV,TSV,&lt;acronym title=&quot;Extensible Markup Language&quot;&gt;XML&lt;/acronym&gt; export of report data.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Complete foreign language/locale support. (All sql-ledger languages are supported)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Save displayed report definition (search conditions, selected columns, grouping etc.) and recall with a single click.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Features of generated report&quot; [731-1475] --&gt;
&lt;h1&gt;&lt;a name=&quot;under_the_hood&quot; id=&quot;under_the_hood&quot;&gt;Under the hood&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

At the heart of this report generator is an extensive data dictionary containing information about sql-ledger tables, columns data types, standard labels, sizes, relationships etc. The code generation script takes columns names from the input query and using the data dictionary generates a complete &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; report script.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Under the hood&quot; [1476-1826] --&gt;
&lt;h1&gt;&lt;a name=&quot;free_demo_trial&quot; id=&quot;free_demo_trial&quot;&gt;Free demo/trial&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

To make sure this service meets your reporting requirements we offer free demo. Just &lt;a href=&quot;mailto:&amp;#x6d;&amp;#x61;&amp;#x69;&amp;#x6c;&amp;#x74;&amp;#x6f;&amp;#x3a;&amp;#x72;&amp;#x65;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x64;&amp;#x65;&amp;#x6d;&amp;#x6f;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot; class=&quot;mail JSnocheck&quot; title=&quot;&amp;#x6d;&amp;#x61;&amp;#x69;&amp;#x6c;&amp;#x74;&amp;#x6f;&amp;#x3a;&amp;#x72;&amp;#x65;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x64;&amp;#x65;&amp;#x6d;&amp;#x6f;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot;&gt;send us&lt;/a&gt; report description or &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; query. We shall build the report for you to make sure you get what you are expecting.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Free demo/trial&quot; [1827-2099] --&gt;
&lt;h1&gt;&lt;a name=&quot;tips_limitations&quot; id=&quot;tips_limitations&quot;&gt;Tips/Limitations&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To add a hard-coded WHERE clause, edit the generated script and replace the line “WHERE 1 = 1” with your hard coded clause.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To add GROUP BY/HAVING clauses, edit your SELECT query in the generated report.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; UNION queries are not supported directly. Work around is to generate the report with one part of union query and then add the complete query by editing the generated code.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; If you want to add a column on search screen but not in SELECT list, here is the trick:&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Generate your report with the column in SELECT list.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Edit the generated code and remove the column name from query SELECT list and &lt;strong&gt;@columns&lt;/strong&gt; array.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Tips/Limitations&quot; [2100-2774] --&gt;
&lt;h1&gt;&lt;a name=&quot;frequently_asked_questions&quot; id=&quot;frequently_asked_questions&quot;&gt;Frequently asked questions&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;strong&gt;Q: I don&amp;#039;t know &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;. Do you provide any help?&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
A: You can do one of two things:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Find a &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=sql_queries&quot; class=&quot;wikilink1&quot; title=&quot;sql_queries&quot;&gt;pre-written query from this page&lt;/a&gt; and add/remove &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=tables_columns&quot; class=&quot;wikilink1&quot; title=&quot;tables_columns&quot;&gt;columns&lt;/a&gt; according to your requirements.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Email us your requirement at &lt;a href=&quot;mailto:&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot; class=&quot;mail JSnocheck&quot; title=&quot;&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot;&gt;&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&lt;/a&gt;, we shall write query for you and send it you.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

&lt;strong&gt;Q: I know &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt; but not familiar with sql-ledger tables and relationships? Is there any help.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
A: Here is brief &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=db_schema&quot; class=&quot;wikilink1&quot; title=&quot;db_schema&quot;&gt;introduction of sql-ledger schema&lt;/a&gt; as well as &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=tables_columns&quot; class=&quot;wikilink1&quot; title=&quot;tables_columns&quot;&gt;list of all tables and columns&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Q: Do you offer money back gurrantee?&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
A: No. We offer free trial/demo for any number of reports so that you can make sure that this service fulfills your expectations before placing your order.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Q: I am trying to write a query to get the information I want but it seems that it is not possible with &lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;. What should I do.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
A: 
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;mailto:&amp;#x6d;&amp;#x61;&amp;#x69;&amp;#x6c;&amp;#x74;&amp;#x6f;&amp;#x3a;&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot; class=&quot;mail JSnocheck&quot; title=&quot;&amp;#x6d;&amp;#x61;&amp;#x69;&amp;#x6c;&amp;#x74;&amp;#x6f;&amp;#x3a;&amp;#x73;&amp;#x75;&amp;#x70;&amp;#x70;&amp;#x6f;&amp;#x72;&amp;#x74;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot;&gt;Let us know&lt;/a&gt; your requirements. We may write a query for you.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; If you know &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; generate a report on your main query and modify the generated &lt;acronym title=&quot;Practical Extraction and Report Language&quot;&gt;Perl&lt;/acronym&gt; code.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; As as last resort you may need our custom report development service. &lt;a href=&quot;mailto:&amp;#x73;&amp;#x61;&amp;#x6c;&amp;#x65;&amp;#x73;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot; class=&quot;mail JSnocheck&quot; title=&quot;&amp;#x73;&amp;#x61;&amp;#x6c;&amp;#x65;&amp;#x73;&amp;#x40;&amp;#x6c;&amp;#x65;&amp;#x64;&amp;#x67;&amp;#x65;&amp;#x72;&amp;#x31;&amp;#x32;&amp;#x33;&amp;#x2e;&amp;#x63;&amp;#x6f;&amp;#x6d;&quot;&gt;Email for details&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Frequently asked questions&quot; [2775-] --&gt;</description>
            <pubDate>Wed, 10 Feb 2010 14:42:26 +0000</pubDate>
        </item>
        <item>
            <title>shipping_module</title>
            <link>http://www.ledger123.com/docs/doku.php?id=shipping_module&amp;rev=1251990001&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;shipping_module&quot; id=&quot;shipping_module&quot;&gt;Shipping Module&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Shipping module allows you to ship from and receive to warehouses from your orders. Here is the work flow to use the shipping module. 

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create a sales or purchase order.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ship/Receive this order from/to a warehouses.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Open the order and create invoice from it.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

See also the documentation of &lt;a href=&quot;http://www.ledger123.com/docs/doku.php?id=purchase_and_sales_orders&quot; class=&quot;wikilink1&quot; title=&quot;purchase_and_sales_orders&quot;&gt;orders entry module&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Shipping module serves the same purpose as putting the quantity in &lt;em&gt;Ship&lt;/em&gt; or &lt;em&gt;Recd&lt;/em&gt; column of a sales order or a purchase order but allows a different warehouse to be specified and maintain inventory quantities at warehouses. 
&lt;/p&gt;

&lt;p&gt;
Following paragraphs discuss the correct work flow to use the shipping module for purchases and sales. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Shipping Module&quot; [1-722] --&gt;
&lt;h2&gt;&lt;a name=&quot;purchases&quot; id=&quot;purchases&quot;&gt;1. Purchases&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create purchase orders for the inventory you want to purchase. If you do not specify a warehouse with order, you can receive the order to any warehouse.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Receive inventory using &lt;strong&gt;Shipping–Receive&lt;/strong&gt; menu option. Select the desired warehouse during this process.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create AP/Vendor invoice by opening the purchase order which has been received in the above step and clicking the &lt;em&gt;Purchase Invoice&lt;/em&gt; button. Do not make any change to partnumber or quantity. Just click the &lt;em&gt;Post&lt;/em&gt; button.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Note: When you create invoice from a partially received order, SL closes that order and creates a new one with the remaining order quantities but with same order number.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;1. Purchases&quot; [723-1418] --&gt;
&lt;h2&gt;&lt;a name=&quot;sales&quot; id=&quot;sales&quot;&gt;2. Sales&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create a sales order for the inventory you want to sell. If you do not specify a warehouse with order, you can ship the order from any warehouse.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ship the order using &lt;strong&gt;Shipping–Ship&lt;/strong&gt;. Shipping warehouse cannot be changed if you have specified one on the order.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create AR/Customer invoice by opening the sales order which has been shipped in the above step and clicking the &lt;em&gt;Sale Invoice&lt;/em&gt; button. Do not make any change to partnumber or quantity. Just click the &lt;em&gt;Post&lt;/em&gt; button.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Note: When you create from a partially received order, SL closes that order and creates a new one with the remaining order quantities but with same order number.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;2. Sales&quot; [1419-2098] --&gt;
&lt;h2&gt;&lt;a name=&quot;reports&quot; id=&quot;reports&quot;&gt;3. Reports&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Inventory onhand at warehouses: &lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Goods &amp;amp; Services–All Items&lt;/strong&gt; report. Check the &amp;#039;Warehouse&amp;#039; checkbox on search screen.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Warehouses–Reports–Onhand&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Inventory receive/ship activity&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Warehouses–Reports–Activity&lt;/strong&gt; report.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;3. Reports&quot; [2099-2378] --&gt;
&lt;h2&gt;&lt;a name=&quot;precautions&quot; id=&quot;precautions&quot;&gt;4. Precautions&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Do not do any of the following things when using the shipping module. It will make your inventory records incorrect.

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Creating any new sale or purchase invoices directly (that is, without going through the order/ship/receive steps)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Editing any existing invoices.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Receiving purchase orders directly by putting the qty received in &lt;em&gt;Recd&lt;/em&gt; column.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Shipping sales orders directly by putting the qty shipped in &lt;em&gt;Ship&lt;/em&gt; column.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;4. Precautions&quot; [2379-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 15:00:01 +0000</pubDate>
        </item>
        <item>
            <title>sql_queries</title>
            <link>http://www.ledger123.com/docs/doku.php?id=sql_queries&amp;rev=1268494834&amp;do=diff</link>
            <description></description>
            <pubDate>Sat, 13 Mar 2010 15:40:34 +0000</pubDate>
        </item>
        <item>
            <title>start</title>
            <link>http://www.ledger123.com/docs/doku.php?id=start&amp;rev=1277624072&amp;do=diff</link>
            <description></description>
            <pubDate>Sun, 27 Jun 2010 07:34:32 +0000</pubDate>
        </item>
        <item>
            <title>tables_columns</title>
            <link>http://www.ledger123.com/docs/doku.php?id=tables_columns&amp;rev=1273147509&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 06 May 2010 12:05:09 +0000</pubDate>
        </item>
        <item>
            <title>taxes</title>
            <link>http://www.ledger123.com/docs/doku.php?id=taxes&amp;rev=1273147509&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 06 May 2010 12:05:09 +0000</pubDate>
        </item>
        <item>
            <title>tips_n_tricks</title>
            <link>http://www.ledger123.com/docs/doku.php?id=tips_n_tricks&amp;rev=1264231344&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;tips_and_tricks&quot; id=&quot;tips_and_tricks&quot;&gt;Tips and Tricks&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Tips and Tricks&quot; [1-31] --&gt;
&lt;h2&gt;&lt;a name=&quot;making_warehouse_column_mandatory&quot; id=&quot;making_warehouse_column_mandatory&quot;&gt;Making warehouse column mandatory&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You have defined warehouses and want to make warehouse column on invoices mandatory so that users don&amp;#039;t forget to specify a warehouse. Just add the following line in the update procedure (sub update) in bin/mozilla/is.pl and bin/mozilla/ir.pl

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; $form-&amp;gt;isblank(&amp;#039;warehouse&amp;#039;, $locale-&amp;gt;text(&amp;#039;Warehouse cannot be blank&amp;#039;));&lt;/pre&gt;

&lt;p&gt;

You can use this function to make any column mandatory on any form. Just lookup for “sub update” or “sub save” in the required perl file and put an appropriate isblank line. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Making warehouse column mandatory&quot; [32-575] --&gt;
&lt;h2&gt;&lt;a name=&quot;renumbering_customer_numbers&quot; id=&quot;renumbering_customer_numbers&quot;&gt;Renumbering customer numbers&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You can renumber customers with the following code snippet. This code snippet calls sql-ledger &lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; to do the renumbering. Set the required initial number in system defaults.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
1;

sub renumber {
   $form-&amp;gt;header;
   my $dbh = $form-&amp;gt;dbconnect(\%myconfig);
   my $query = qq|SELECT id, name FROM customer ORDER BY name|;
   my $sth = $dbh-&amp;gt;prepare($query);
   $sth-&amp;gt;execute or $form-&amp;gt;dberror($query);
   my $updatequery = qq|UPDATE customer SET customernumber = ? WHERE id = ?|;
   my $updatesth = $dbh-&amp;gt;prepare($updatequery);
   while ($ref = $sth-&amp;gt;fetchrow_hashref(NAME_lc)){
        $form-&amp;gt;{customernumber} = $form-&amp;gt;update_defaults($myconfig, &amp;quot;customernumber&amp;quot;, $dbh);
        $updatesth-&amp;gt;execute($form-&amp;gt;{customernumber}, $ref-&amp;gt;{id});
        print qq|$form-&amp;gt;{customernumber} assigned to $ref-&amp;gt;{name}&amp;lt;br&amp;gt;|;

   }
   $dbh-&amp;gt;disconnect;

}

&lt;/pre&gt;

&lt;p&gt;
Installation:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Put the above code in bin/mozilla/custom_ct.pl&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Add following lines to custom_menu.ini. This option will appear in menu. Click to renumber the customers. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;code&quot;&gt;
[Renumber Customers]]
module=ct.pl
action=renumber
&lt;/pre&gt;

&lt;p&gt;
With minor change you can use it to renumber parts, invoices, gl transactions etc. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Renumbering customer numbers&quot; [576-1808] --&gt;
&lt;h2&gt;&lt;a name=&quot;make_salesperson_readonly_for_non-admins_on_pos_interface&quot; id=&quot;make_salesperson_readonly_for_non-admins_on_pos_interface&quot;&gt;Make Salesperson readonly for non-admins on POS Interface&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Following small patch will restrict the user to the default salesperson on POS interface if his/her role is not &amp;#039;administrator&amp;#039;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
[sqlledger@home ~/public_html]$ svn diff
Index: bin/mozilla/pos.pl
===================================================================
--- bin/mozilla/pos.pl  (revision 49)
+++ bin/mozilla/pos.pl  (working copy)
@@ -181,6 +181,14 @@
              &amp;lt;/tr&amp;gt;
 | if $form-&amp;gt;{selectemployee};

+   ($employeename) = split(/--/, $form-&amp;gt;{employee});
+   $employee = qq|
+             &amp;lt;tr&amp;gt;
+               &amp;lt;th align=right nowrap&amp;gt;|.$locale-&amp;gt;text(&amp;#039;Salesperson&amp;#039;).qq|&amp;lt;/th&amp;gt;
+               &amp;lt;td colspan=3&amp;gt;$employeename&amp;lt;/td&amp;gt;
+               &amp;lt;input type=hidden name=employee value=&amp;quot;$form-&amp;gt;{employee}&amp;quot;&amp;gt;
+             &amp;lt;/tr&amp;gt;
+| if $myconfig{role} ne &amp;#039;admin&amp;#039;;

   if (($rows = $form-&amp;gt;numtextrows($form-&amp;gt;{description}, 60, 5)) &amp;gt; 1) {
     $description = qq|&amp;lt;textarea name=&amp;quot;description&amp;quot; rows=$rows cols=60 wrap=soft&amp;gt;$form-&amp;gt;{description}&amp;lt;/textarea&amp;gt;|;
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Make Salesperson readonly for non-admins on POS Interface&quot; [1809-2849] --&gt;
&lt;h2&gt;&lt;a name=&quot;advance_payments&quot; id=&quot;advance_payments&quot;&gt;Advance payments&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Usually you apply your cash payments (or receipts) to specific invoices.
&lt;/p&gt;

&lt;p&gt;
Sometimes the customer pays an advance and there is no outstanding invoice. Using Cash–Receipt menu option, you can simply post the payment to the customer without applying it to an invoice.
&lt;/p&gt;

&lt;p&gt;
When the invoice comes in from customer, you record the invoice in the normal way.
&lt;/p&gt;

&lt;p&gt;
To adjust the advance, goto Cash–Receipt menu option and select the customer. You will be shown with the outstanding advance and the unpaid invoice from the customer. Check both transactions and click &amp;#039;Post&amp;#039; button. The advance payment will be adjusted against the new invoice. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Advance payments&quot; [2850-3511] --&gt;
&lt;h2&gt;&lt;a name=&quot;stock_adjustment&quot; id=&quot;stock_adjustment&quot;&gt;Stock adjustment&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Use vendor invoice to with +ve qauntity (to increase) or -ve quantity (to decrease) to adjust your stock level. Use 0 for sell price.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Or you can use a sales or purchase order and fill in a quantity in the “Ship” column. &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Stock adjustment&quot; [3512-3771] --&gt;
&lt;h2&gt;&lt;a name=&quot;sales_return_adjustment&quot; id=&quot;sales_return_adjustment&quot;&gt;Sales return adjustment&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You record returns from customer using AR–Credit Invoice and AR-Credit Note. There are two possibilities now:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You adjust the credit amount to other invoices of the customer. The process is same as adjusting the advance against the customer invoices.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You give the cash back to the customer.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Sales return adjustment&quot; [3772-4109] --&gt;
&lt;h2&gt;&lt;a name=&quot;user_preferences&quot; id=&quot;user_preferences&quot;&gt;User preferences&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Use user_io.pl and put variables there. You can then utilize these variables anywhere you like.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;User preferences&quot; [4110-] --&gt;</description>
            <pubDate>Sat, 23 Jan 2010 07:22:24 +0000</pubDate>
        </item>
        <item>
            <title>upgrade</title>
            <link>http://www.ledger123.com/docs/doku.php?id=upgrade&amp;rev=1264069146&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;upgrades&quot; id=&quot;upgrades&quot;&gt;Upgrades&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Note: Hosted customers are always upgraded to latest releases.
&lt;/p&gt;

&lt;p&gt;
New sql-ledger releases come out with passage of time. It is easy to upgrade to new versions. Here is how you can do it.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Important&lt;/strong&gt;: Backup your dataset and your sql-ledger installation folder. This will allow you to restore and try again if any thing goes wrong during upgrade.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Upgrades&quot; [1-372] --&gt;
&lt;h2&gt;&lt;a name=&quot;method_1&quot; id=&quot;method_1&quot;&gt;Method 1&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Download and untar the latest sql-ledger-x.xx.tar.gz over your existing installation. 
&lt;/p&gt;

&lt;p&gt;
This should be all you need to upgrade if there is not schema change. If there is some schema change (tables or columns added in new version), these changes will be applied once your first login after upgrade.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Method 1&quot; [373-693] --&gt;
&lt;h2&gt;&lt;a name=&quot;method_2&quot; id=&quot;method_2&quot;&gt;Method 2&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Move to your sql-ledger installation folder&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
cd /usr/local/sql-ledger/
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Download and run latest setup.pl:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
   wget http://sql-ledger.org/source/setup.pl
   perl setup.pl
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;setup.pl will lookup the latest version and will offer something like following:&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
(u)pgrade to 2.8.11

(i)nstall 2.8.11 (from Internet)

(d)ownload 2.8.11 (no installation)
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Type &amp;#039;u&amp;#039; to upgrade your installation.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Method 2&quot; [694-1155] --&gt;
&lt;h2&gt;&lt;a name=&quot;failed_upgrades&quot; id=&quot;failed_upgrades&quot;&gt;Failed upgrades&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Sometimes dataset upgrade fails with an error message when you login after application upgrade. System is locked down. The best course of action in this case is:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Remove the &lt;code&gt;nologin&lt;/code&gt; file from users folder to unlock the system.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Restore your previous backup and try again by rectifying the error encountered.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

You probably might need to manually upgrade your dataset by running the appropriate Pg-upgrade* scripts from sql folder.

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Failed upgrades&quot; [1156-] --&gt;</description>
            <pubDate>Thu, 21 Jan 2010 10:19:06 +0000</pubDate>
        </item>
        <item>
            <title>usage_guide</title>
            <link>http://www.ledger123.com/docs/doku.php?id=usage_guide&amp;rev=1251980031&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;usage_guidelines&quot; id=&quot;usage_guidelines&quot;&gt;Usage Guidelines&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;acronym title=&quot;Structured Query Language&quot;&gt;SQL&lt;/acronym&gt;-Ledger is a browser-based application. Anybody familiar with internet browsing should feel at home using sql-ledger.
&lt;/p&gt;

&lt;p&gt;
All Sql-Ledger user-interface elements (menu, forms, reports) are displayed using standard &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt;. You can use any modern browser to run the application. Firefox is recommended.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Usage Guidelines&quot; [1-331] --&gt;
&lt;h2&gt;&lt;a name=&quot;main_menu&quot; id=&quot;main_menu&quot;&gt;Main menu&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Sql-ledger menu is displayed in left frame. Menu items can be collapsed into sub menus or individual menu items by clicking them.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=menu.jpg&quot; class=&quot;media&quot; title=&quot;menu.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=menu.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Main menu&quot; [332-501] --&gt;
&lt;h2&gt;&lt;a name=&quot;update_button&quot; id=&quot;update_button&quot;&gt;Update button&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Lookup information (customer/vendor address) and calculations (invoices subtotals etc) are not automatically updated on a form after a change. You need to click the Update button to do these.
&lt;/p&gt;

&lt;p&gt;
Update button does not store anything into database. It just looks up appropriate missing information, does any pending calculations, and adds one more line on multi-line forms like invoices and orders.
&lt;/p&gt;

&lt;p&gt;
It is safe to click Update button as many times as you like. You can also trigger update action by pressing &amp;#039;Enter&amp;#039; key in any text field.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=update_button.jpg&quot; class=&quot;media&quot; title=&quot;update_button.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=update_button.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Update button&quot; [502-1090] --&gt;
&lt;h2&gt;&lt;a name=&quot;adding_changing_and_deleting_records&quot; id=&quot;adding_changing_and_deleting_records&quot;&gt;Adding, changing and deleting records&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You can add a new transaction (order, invoice etc.) or a master record (part, customer, vendor etc.) directly through the module menu.
&lt;/p&gt;

&lt;p&gt;
To change or delete a transaction or master record, you use the Reports menu option in the sub menu. Once you display the report by clicking the Continue button, you can use the hyper links on report to change or delete the record.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Example&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
For example to add a new sale invoice, you click AR–Sale Invoice. To change or delete an existing invoice, you click AR–Reports–Transactions. A selection form is displayed where you can specify date range and include/exclude columns.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=edittrans1.jpg&quot; class=&quot;media&quot; title=&quot;edittrans1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=edittrans1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
When you click Continue, all existing invoices are displayed. Now you can open any existing invoice by clicking invoice number hyper link.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=edittrans2.jpg&quot; class=&quot;media&quot; title=&quot;edittrans2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=edittrans2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Adding, changing and deleting records&quot; [1091-1945] --&gt;
&lt;h2&gt;&lt;a name=&quot;customers_and_vendors_lookup&quot; id=&quot;customers_and_vendors_lookup&quot;&gt;Customers and vendors lookup&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

There are two ways customer / vendor can be selected on an invoice (or order, quotation).
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Method 1&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
By default customer and vendors are displayed as drop down menus on invoices, orders and quotations.&lt;a href=&quot;http://example.com&quot; class=&quot;urlextern&quot; title=&quot;http://example.com&quot;  rel=&quot;nofollow&quot;&gt;External Link&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=cvlookup1.jpg&quot; class=&quot;media&quot; title=&quot;cvlookup1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=cvlookup1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Method 2&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
If you have a large number of customers and/or vendors, it is more convenient to select customer by typing its number or name. To do so, goto Preferences and change Dropdown Limit to 0. Now invoice form will allow you to enter customer number or part of customer name to select it.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=cvlookup2.jpg&quot; class=&quot;media&quot; title=&quot;cvlookup2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=cvlookup2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Customers and vendors lookup&quot; [1946-2569] --&gt;
&lt;h2&gt;&lt;a name=&quot;parts_lookup&quot; id=&quot;parts_lookup&quot;&gt;Parts Lookup&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

There are three possible ways you can lookup a part on an invoice, order or quotation.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Method 1: Specify Part Number&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
You can lookup a part by its number.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=partslookup1.jpg&quot; class=&quot;media&quot; title=&quot;partslookup1.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=partslookup1.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
If you enter partial number, all parts matching this number will be displayed. 
&lt;/p&gt;

&lt;p&gt;
You can select the required part and click Continue to return back to invoice screen.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=partslookup1a.jpg&quot; class=&quot;media&quot; title=&quot;partslookup1a.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=partslookup1a.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Method 2: Specify Part Description (Name)&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
You can enter complete or partial part description. If there are more than one part descriptions which match, these will be displayed.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=partslookup2.jpg&quot; class=&quot;media&quot; title=&quot;partslookup2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=partslookup2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=partslookup2a.jpg&quot; class=&quot;media&quot; title=&quot;partslookup2a.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=partslookup2a.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Method 3: Specify Group to List Items in the Group&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=partslookup3.jpg&quot; class=&quot;media&quot; title=&quot;partslookup3.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=partslookup3.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=partslookup3a.jpg&quot; class=&quot;media&quot; title=&quot;partslookup3a.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=partslookup3a.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Parts Lookup&quot; [2570-3310] --&gt;
&lt;h2&gt;&lt;a name=&quot;departments_warehouses_and_projects&quot; id=&quot;departments_warehouses_and_projects&quot;&gt;Departments, warehouses and projects&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

You can classify your transactions by specifying department, warehouse or project during transaction entry. More details on using these features can be found else where on this wiki.
&lt;/p&gt;

&lt;p&gt;
The important thing to note is that you need to define at lease one department, warehouse or project before the respective drop down list will appear on transaction forms.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Departments, warehouses and projects&quot; [3311-3717] --&gt;
&lt;h2&gt;&lt;a name=&quot;item_notes_serial_numbers_delivery_date_packaging_information_on_invoice_lines&quot; id=&quot;item_notes_serial_numbers_delivery_date_packaging_information_on_invoice_lines&quot;&gt;Item notes, serial numbers, delivery date, packaging information on invoice lines&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

By defaults line items on invoices show most commonly used columns.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=lineitems2.jpg&quot; class=&quot;media&quot; title=&quot;lineitems2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=lineitems2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
If you want to enter more information against each line item, check the box next to Description heading on line items. Now when you enter an item code and update, you will see additional columns for delivery date, item notes, serial number, project, packaging, net weight, gross weight and volume.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=usage_guide&amp;amp;media=lineitems.jpg&quot; class=&quot;media&quot; title=&quot;lineitems.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=lineitems.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Item notes, serial numbers, delivery date, packaging information on invoice lines&quot; [3718-] --&gt;</description>
            <pubDate>Thu, 03 Sep 2009 12:13:51 +0000</pubDate>
        </item>
        <item>
            <title>users</title>
            <link>http://www.ledger123.com/docs/doku.php?id=users&amp;rev=1251980245&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;user_management&quot; id=&quot;user_management&quot;&gt;User Management&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
User management is done through &lt;strong&gt;System–Users&lt;/strong&gt; menu. Only admins can access this menu.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=users&amp;amp;media=user1.png&quot; class=&quot;media&quot; title=&quot;user1.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=user1.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Please keep the following points in mind:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; New users are added by clicking the &lt;em&gt;Add User&lt;/em&gt; button.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Existing users can be edited by clicking the login name which will open the edit user screen as show below.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Access control: You can enable or disable menu options on the add/change users screen. Un-checking a menu option will hide it from that user&amp;#039;s login.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Users with role &lt;strong&gt;admin&lt;/strong&gt; can access this user management screen.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Users with role &lt;strong&gt;user&lt;/strong&gt; are restricted to their default departments.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=users&amp;amp;media=user2.png&quot; class=&quot;media&quot; title=&quot;user2.png&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=user2.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
</description>
            <pubDate>Thu, 03 Sep 2009 12:17:25 +0000</pubDate>
        </item>
        <item>
            <title>virtual_appliances</title>
            <link>http://www.ledger123.com/docs/doku.php?id=virtual_appliances&amp;rev=1264218792&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;virtual_appliances&quot; id=&quot;virtual_appliances&quot;&gt;Virtual Appliances&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Virtual appliances allows you to run sql-ledger and ledgersmb without any installation headaches on your Windows or Linux machines. These appliances are great for testing and learning.
&lt;/p&gt;

&lt;p&gt;
With ever-increasing computer hardware capabilities, virtual appliances seem to be the future of distributing and deploying servers.
&lt;/p&gt;

&lt;p&gt;
We also offer &lt;a href=&quot;http://www.ledger123.com/signup/&quot; class=&quot;urlextern&quot; title=&quot;http://www.ledger123.com/signup/&quot;  rel=&quot;nofollow&quot;&gt;free sql-ledger hosting&lt;/a&gt; which can help you evaluate sql-ledger and use it for a small business.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Virtual Appliances&quot; [1-502] --&gt;
&lt;h2&gt;&lt;a name=&quot;download_and_run&quot; id=&quot;download_and_run&quot;&gt;Download and Run&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Two appliances are available:&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://download.ledger123.com/FreeBSD-basic-0.10.tar.bz2&quot; class=&quot;urlextern&quot; title=&quot;http://download.ledger123.com/FreeBSD-basic-0.10.tar.bz2&quot;  rel=&quot;nofollow&quot;&gt;http://download.ledger123.com/FreeBSD-basic-0.10.tar.bz2&lt;/a&gt; (138 &lt;acronym title=&quot;Megabyte&quot;&gt;MB&lt;/acronym&gt;, 15-Aug-2008)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://download.ledger123.com/Ledger123-ubuntu810-jeos-0.20.tar.bz2&quot; class=&quot;urlextern&quot; title=&quot;http://download.ledger123.com/Ledger123-ubuntu810-jeos-0.20.tar.bz2&quot;  rel=&quot;nofollow&quot;&gt;http://download.ledger123.com/Ledger123-ubuntu810-jeos-0.20.tar.bz2&lt;/a&gt; (351 &lt;acronym title=&quot;Megabyte&quot;&gt;MB&lt;/acronym&gt;, 15-Jan-2009)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Decompress. Use &lt;a href=&quot;http://www.7-zip.org/download.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.7-zip.org/download.html&quot;  rel=&quot;nofollow&quot;&gt;7zip&lt;/a&gt; to decompress the bz2 file on windows.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Download the free VMware player available at &lt;a href=&quot;http://www.vmware.com/player&quot; class=&quot;urlextern&quot; title=&quot;http://www.vmware.com/player&quot;  rel=&quot;nofollow&quot;&gt;http://www.vmware.com/player&lt;/a&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Open the virtual machine from within the VMware player.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Download and Run&quot; [503-994] --&gt;
&lt;h2&gt;&lt;a name=&quot;freebsd&quot; id=&quot;freebsd&quot;&gt;FreeBSD&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Point your browser to &lt;a href=&quot;http://appliance.ip.address/sql-ledger/admin.pl&quot; class=&quot;urlextern&quot; title=&quot;http://appliance.ip.address/sql-ledger/admin.pl&quot;  rel=&quot;nofollow&quot;&gt;http://appliance.ip.address/sql-ledger/admin.pl&lt;/a&gt; and create datasets. (see below on how to determine the IP address)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Postgres user is &amp;#039;pgsql&amp;#039; without any password. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; phpPgAdmin can be accessed at &lt;a href=&quot;http://appliance.ip.address/phppgadmin/&quot; class=&quot;urlextern&quot; title=&quot;http://appliance.ip.address/phppgadmin/&quot;  rel=&quot;nofollow&quot;&gt;http://appliance.ip.address/phppgadmin/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;FreeBSD&quot; [995-1285] --&gt;
&lt;h2&gt;&lt;a name=&quot;ubuntu_jeos&quot; id=&quot;ubuntu_jeos&quot;&gt;Ubuntu Jeos&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Point your browser to &lt;a href=&quot;http://appliance.ip.address/index.html&quot; class=&quot;urlextern&quot; title=&quot;http://appliance.ip.address/index.html&quot;  rel=&quot;nofollow&quot;&gt;http://appliance.ip.address/index.html&lt;/a&gt;. This page contains links to the installed software.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Postgres user is &amp;#039;postgres&amp;#039; without any password.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Ubuntu Jeos&quot; [1286-1484] --&gt;
&lt;h2&gt;&lt;a name=&quot;appliance_ip_address&quot; id=&quot;appliance_ip_address&quot;&gt;Appliance IP Address&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
There are two ways to find the IP address of your appliance:

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Power the appliance using vmplayer and watch the boot process to see the IP address assigned to the appliance. It will be something like 192.168.128.208 or 172.16.186.136 etc.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Logon to the appliance console. User is root and password is ledger123. Issue &lt;em&gt;ifconfig&lt;/em&gt; to display the all IP addresses. Find one which starts from 192 or 172.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;

Note: Password is &lt;em&gt;ledger123&lt;/em&gt; everywhere.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Appliance IP Address&quot; [1485-1973] --&gt;
&lt;h2&gt;&lt;a name=&quot;support&quot; id=&quot;support&quot;&gt;Support&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Support is available. Visit &lt;a href=&quot;http://www.ledger123.com/order&quot; class=&quot;urlextern&quot; title=&quot;http://www.ledger123.com/order&quot;  rel=&quot;nofollow&quot;&gt;http://www.ledger123.com/order&lt;/a&gt; for details.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- SECTION &quot;Support&quot; [1974-] --&gt;</description>
            <pubDate>Sat, 23 Jan 2010 03:53:12 +0000</pubDate>
        </item>
        <item>
            <title>vouchers</title>
            <link>http://www.ledger123.com/docs/doku.php?id=vouchers&amp;rev=1251989487&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;vouchers&quot; id=&quot;vouchers&quot;&gt;Vouchers&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Few notes:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Vouchers allow you to add transactions (GL, AP, payments) without posting these to the general ledger. These transactions are grouped in batches.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; A batch may represent group of transactions added on a particular day or at a particular branch etc. It depends upon you.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Once batches have been added, some one else (probably with higher authority) can inspect the batches and post them.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Transaction entry into vouchers is exactly the same as doing it otherwise with the only difference of batch information before making the actual transaction.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
            <pubDate>Thu, 03 Sep 2009 14:51:27 +0000</pubDate>
        </item>
        <item>
            <title>warehouses</title>
            <link>http://www.ledger123.com/docs/doku.php?id=warehouses&amp;rev=1268502063&amp;do=diff</link>
            <description></description>
            <pubDate>Sat, 13 Mar 2010 17:41:03 +0000</pubDate>
        </item>
        <item>
            <title>workflow</title>
            <link>http://www.ledger123.com/docs/doku.php?id=workflow&amp;rev=1244125312&amp;do=diff</link>
            <description></description>
            <pubDate>Thu, 04 Jun 2009 14:21:52 +0000</pubDate>
        </item>
        <item>
            <title>yearend</title>
            <link>http://www.ledger123.com/docs/doku.php?id=yearend&amp;rev=1251984032&amp;do=diff</link>
            <description>


&lt;h1&gt;&lt;a name=&quot;year_end&quot; id=&quot;year_end&quot;&gt;Year End&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;strong&gt;System–Yearend&lt;/strong&gt; menu does the period closing in MyLedger. It creates a GL transaction which clears the income accounts and posts the difference (which is income or loss) to the specified retained earnings account.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=yearend&amp;amp;media=yearend.jpg&quot; class=&quot;media&quot; title=&quot;yearend.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=yearend.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Please note:

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Year-end process can be run daily, weekly, monthly, quarterly or yearly.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The year-end GL transaction is not included in the income statement which covers period containing a closing transactions.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The year-end GL transaction can be viewed through GL reports and edited or deleted as required.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;

&lt;a href=&quot;http://www.ledger123.com/docs/lib/exe/detail.php?id=yearend&amp;amp;media=yearend2.jpg&quot; class=&quot;media&quot; title=&quot;yearend2.jpg&quot;&gt;&lt;img src=&quot;http://www.ledger123.com/docs/lib/exe/fetch.php?media=yearend2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <pubDate>Thu, 03 Sep 2009 13:20:32 +0000</pubDate>
        </item>
    </channel>
</rss>
