[minor] [docs] docs for perpetual inventory

This commit is contained in:
Nabin Hait 2013-09-18 15:20:44 +05:30
parent 142007a226
commit 9d1d7bafe1
4 changed files with 207 additions and 179 deletions

View File

@ -10,33 +10,33 @@ There are generally two different methods of accounting for inventory:
### **Auto / Perpetual Inventory**
In this process, for each stock transactions system posts relevant accounting entries to sync stock balance and accounting balance. This is the default settings in ERPNext for new accounts.
In this process, for each stock transactions, the system posts relevant accounting entries to sync stock balance and accounting balance. This is the default setting in ERPNext for new accounts.
When you buy and receive items, those items are booked as the companys assets (stock-in-hand / fixed-assets). When you sell and deliver those items, an expense (cost-of-goods-sold) equal to the buying cost of the items is booked. General Ledger entries are made after every stock transaction. This improves accuracy of Balance Sheet and Profit and Loss statement. And the value as per Stock Ledger always remains same with the relevant account balance.
When you buy and receive items, those items are booked as the companys assets (stock-in-hand / fixed-assets). When you sell and deliver those items, an expense (cost-of-goods-sold) equal to the buying cost of the items is booked. General Ledger entries are made after every stock transaction. As a result, the value as per Stock Ledger always remains same with the relevant account balance. This improves accuracy of Balance Sheet and Profit and Loss statement.
To check accounting entries for a particular stock transaction, please check [**examples**](docs.user.stock.perpetual_inventory.html)
#### **Advantages**
It will make it easier for you to maintain accuracy of company's stock-in-hand, fixed-assets and cost-of-goods-sold. Stock balances will always be synced with relevant account balances, so no more periodic manual entry to balance them.
Perpetual Inventory system will make it easier for you to maintain accuracy of company's asset and expense values. Stock balances will always be synced with relevant account balances, so no more periodic manual entry has to be done to balance them.
In case of new back-dated stock transactions or cancellation/amendment of an existing one, all the future Stock Ledger entries and GL Entries will recalculated for all related items.
The same is applicable if any cost is added to submitted Purchase Receipt later through Landed Cost Wizard.
In case of new back-dated stock transactions or cancellation/amendment of an existing transaction, all the future Stock Ledger entries and GL Entries will be recalculated for all items of that transaction.
The same is applicable if any cost is added to the submitted Purchase Receipt, later through the Landed Cost Wizard.
>Note: Perpetual Inventory totally depends upon the item valuation rate. Hence, you have to be more careful entering valuation rate while making any incoming stock transaction like Purchase Receipt, Material Receipt or Manufacturing / Repack
>Note: Perpetual Inventory totally depends upon the item valuation rate. Hence, you have to be more careful entering valuation rate while making any incoming stock transactions like Purchase Receipt, Material Receipt, or Manufacturing / Repack.
-
### **Periodic Inventory**
In this method, accounting entries are manually created periodically to sync stock balance and relevant account balance. The system does not create accounting entries automatically for assets, at the time of material purchases or sales.
In this method, accounting entries are manually created periodically, to sync stock balance and relevant account balance. The system does not create accounting entries automatically for assets, at the time of material purchases or sales.
In an accounting period, when you buy and receive items, an expense is booked in your accounting books. You sell and deliver some of these items.
In an accounting period, when you buy and receive items, an expense is booked in your accounting system. You sell and deliver some of these items.
At the end of an accounting period, the total value of items, that remain to be sold, need to be booked as the companys assets, often known as stock-in-hand.
At the end of an accounting period, the total value of items to be sold, need to be booked as the companys assets, often known as stock-in-hand.
The difference between the value of the items remaining to be sold and the previous periods stock-in-hand can be positive or negative. If positive, this value is removed from expenses (cost-of-goods-sold) and is added to assets (stock-in-hand / fixed-assets). If negative, a reverse entry is passed.
The difference between the value of the items remaining to be sold and the previous periods stock-in-hand value can be positive or negative. If positive, this value is removed from expenses (cost-of-goods-sold) and is added to assets (stock-in-hand / fixed-assets). If negative, a reverse entry is passed.
This complete process is called Periodic Inventory.
If you are an existing user using Periodic Inventory and want to use Perpetual Inventory, check [**Migration From Periodic Inventory**](docs.user.stock.perpetual_inventory.html)
If you are an existing user using Periodic Inventory and want to use Perpetual Inventory, you have to follow some steps to migrate. For details, check [**Migration From Periodic Inventory**](docs.user.stock.perpetual_inventory.html)

View File

@ -4,7 +4,10 @@
}
---
In perpetual accounting, system creates accounting entries for each stock transactions. Hence, stock balance will always remains same as relevant account balance.
In perpetual inventory, system creates accounting entries for each stock transactions, so that stock and account balance will always remain same. The account balance will be posted against their respective account heads for each Warehouse. On saving of a Warehouse, the system will automatically create an account head with the same name as warehouse. As account balance is maintained for each Warehouse, you should create Warehouses, based on the type of items (Current / Fixed Assets) it stores.
At the time of items received in a particular warehouse, the balance of asset account (linked to that warehouse) will be increased. Similarly when you deliver some items from that warehouse, an expense will be booked and the asset account will be reduced, based on the valuation amount of those items.
## **Activation**
@ -14,25 +17,12 @@ In perpetual accounting, system creates accounting entries for each stock transa
- Expenses Included In Valuation
- Cost Center
2. The system will create an account head for each warehouse. Enter "Create Account Under" (account group under which account will be created) in warehouse master, based on type of items it stores (Stores, Fixed Asset Warehouse, etc).
2. In perpetual inventory, the system will maintain seperate account balance for each warehouse under separate account head. To create that account head, enter "Create Account Under" in Warehouse master.
3. Go to Setup > Accounts Settings > check "Make Accounting Entry For Every Stock Movement"
![Activation](img/accounting-for-stock-1.png)
3. Activate Perpetual Inventory
> Setup > Accounts Settings > Make Accounting Entry For Every Stock Movement
## **Migration from Periodic Inventory**
Migration from Periodic Inventory is not a one click settings, it involves some special steps. As Perpetual Inventory always maintain a sync between stock and account balance, it is not possible to enable it with existing Warehouse setup. You have to create a whole new set of Warehouses, each linked to relevant account.
Steps to be followed:
- Nullify current stock-in-hand / fixed-asset account balance through Journal Voucher.
- Create new warehouse for each existing warehouse
- Follow Activation Step 1, 2 & 3
- Create Stock Entry (Material Transfer) to transfer available stock from existing warehouse to new warehouse
>Note: System will not post any accounting entries for existing stock transactions submitted prior to the activation of Perpetual Inventory as those old warehouses will not be linked to account.
-
## **Example**
@ -41,82 +31,82 @@ Consider following Chart of Accounts and Warehouse setup for your company:
#### Chart of Accounts
>- Assets (Dr)
> - Current Assets
> - Accounts Receivable
> - Jane Doe
> - Stock Assets
> - Stores
> - Finished Goods
> - Work In Progress
> - Tax Assets
> - VAT
> - Fixed Assets
> - Fixed Asset Warehouse
>- Liabilities (Cr)
> - Current Liabilities
> - Accounts Payable
> - East Wind Inc.
> - Stock Liabilities
> - Stock Received But Not Billed
> - Tax Liabilities
> - Service Tax
>- Income (Cr)
> - Direct Income
> - Sales Account
>- Expenses (Dr)
> - Direct Expenses
> - Stock Expenses
> - Cost of Goods Sold
> - Expenses Included In Valuation
> - Stock Adjustment
> - Shipping Charges
> - Customs Duty
- Assets (Dr)
- Current Assets
- Accounts Receivable
- Jane Doe
- Stock Assets
- Stores
- Finished Goods
- Work In Progress
- Tax Assets
- VAT
- Fixed Assets
- Fixed Asset Warehouse
- Liabilities (Cr)
- Current Liabilities
- Accounts Payable
- East Wind Inc.
- Stock Liabilities
- Stock Received But Not Billed
- Tax Liabilities
- Service Tax
- Income (Cr)
- Direct Income
- Sales Account
- Expenses (Dr)
- Direct Expenses
- Stock Expenses
- Cost of Goods Sold
- Expenses Included In Valuation
- Stock Adjustment
- Shipping Charges
- Customs Duty
#### Warehouse - Account Configuration
>- Stores
>- Work In Progress
>- Finished Goods
>- Fixed Asset Warehouse
- Stores
- Work In Progress
- Finished Goods
- Fixed Asset Warehouse
### **Purchase Receipt**
>Suppose you have purchased *10 quantity* of item "RM0001" at *$200* and *5 quantity* of item "Desktop" at **$100** from supplier "East Wind Inc". Following are the details of Purchase Receipt:
Suppose you have purchased *10 nos* of item "RM0001" at *$200* and *5 nos* of item "Desktop" at **$100** from supplier "East Wind Inc". Following are the details of Purchase Receipt:
><b>Supplier:</b> East Wind Inc.
<b>Supplier:</b> East Wind Inc.
><b>Items:</b>
><table class="table table-bordered">
> <thead>
> <tr>
> <th>Item</th><th>Warehouse</th><th>Qty</th>
> <th>Rate</th><th>Amount</th><th>Valuation Amount</th>
> </tr>
> </thead>
> <tbody>
> <tr>
> <td>RM0001</td><td>Stores</td><td>10</td><td>200</td><td>2000</td><td>2200</td>
> </tr>
> <tr>
> <td>Desktop</td><td>Fixed Asset Warehouse</td>
> <td>5</td><td>100</td><td>500</td><td>550</td>
> </tr>
> </tbody>
></table>
<b>Items:</b>
<table class="table table-bordered">
<thead>
<tr>
<th>Item</th><th>Warehouse</th><th>Qty</th>
<th>Rate</th><th>Amount</th><th>Valuation Amount</th>
</tr>
</thead>
<tbody>
<tr>
<td>RM0001</td><td>Stores</td><td>10</td><td>200</td><td>2000</td><td>2200</td>
</tr>
<tr>
<td>Desktop</td><td>Fixed Asset Warehouse</td>
<td>5</td><td>100</td><td>500</td><td>550</td>
</tr>
</tbody>
</table>
>**Taxes:**
**Taxes:**
><table class="table table-bordered">
> <thead>
> <tr><th>Account</th><th>Amount</th><th>Category</th></tr>
> </thead>
> <tbody>
> <tr><td>Shipping Charges</td><td>100</td><td>Total and Valuation</td></tr>
> <tr><td>VAT</td><td>120</td><td>Total</td></tr>
> <tr><td>Customs Duty</td><td>150</td><td>Valuation</td></tr>
> </tbody>
></table>
<table class="table table-bordered">
<thead>
<tr><th>Account</th><th>Amount</th><th>Category</th></tr>
</thead>
<tbody>
<tr><td>Shipping Charges</td><td>100</td><td>Total and Valuation</td></tr>
<tr><td>VAT</td><td>120</td><td>Total</td></tr>
<tr><td>Customs Duty</td><td>150</td><td>Valuation</td></tr>
</tbody>
</table>
**Stock Ledger**
@ -126,51 +116,51 @@ Consider following Chart of Accounts and Warehouse setup for your company:
![pr_general_ledger](img/accounting-for-stock-3.png)
As stock balance increases through Purchase Receipt, "Store" and "Fixed Asset Warehouse" accounts have been debited and a temporary account "Stock Receipt But Not Billed" account has been credited, to maintain double entry accounting system.
As stock balance increases through Purchase Receipt, "Store" and "Fixed Asset Warehouse" accounts are debited and a temporary account "Stock Receipt But Not Billed" account is credited, to maintain double entry accounting system.
--
### **Purchase Invoice**
>On receiving Bill from supplier, for the above Purchase Receipt, you will make Purchase Invoice for the same. The general ledger entries are as follows:
On receiving Bill from supplier, for the above Purchase Receipt, you will make Purchase Invoice for the same. The general ledger entries are as follows:
**General Ledger**
![pi_general_ledger](img/accounting-for-stock-4.png)
Here "Stock Received But Not Billed" account has been debited and nullified the effect of Purchase Receipt. "Expenses Included In Valuation" account has been credited which ensures the valuation expense accounts are not booked (debited) twice (in Purchase Invoice and Delivery Note).
Here "Stock Received But Not Billed" account is debited and nullified the effect of Purchase Receipt. "Expenses Included In Valuation" account has been credited which ensures the valuation expense accounts are not booked (debited) twice (in Purchase Invoice and Delivery Note).
--
### **Delivery Note**
>Lets say, you have an order from "Jane Doe" to deliver 5 qty of item "RM0001" at $300. Following is the details of Delivery Note:
Lets say, you have an order from "Jane Doe" to deliver 5 nos of item "RM0001" at $300. Following are the details of Delivery Note:
>**Customer:** Jane Doe
**Customer:** Jane Doe
>**Items:**
><table class="table table-bordered">
> <thead>
> <tr><th>Item</th><th>Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>RM0001</td><td>Stores</td><td>5</td><td>300</td><td>1500</td></tr>
> </tbody>
></table>
**Items:**
<table class="table table-bordered">
<thead>
<tr><th>Item</th><th>Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>RM0001</td><td>Stores</td><td>5</td><td>300</td><td>1500</td></tr>
</tbody>
</table>
>**Taxes:**
**Taxes:**
><table class="table table-bordered">
> <thead>
> <tr><th>Account</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>Service Tax</td><td>150</td></tr>
> <tr><td>VAT</td><td>100</td></tr>
> </tbody>
></table>
<table class="table table-bordered">
<thead>
<tr><th>Account</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>Service Tax</td><td>150</td></tr>
<tr><td>VAT</td><td>100</td></tr>
</tbody>
</table>
**Stock Ledger**
@ -181,15 +171,23 @@ Here "Stock Received But Not Billed" account has been debited and nullified the
![dn_general_ledger](img/accounting-for-stock-6.png)
As item has delivered from "Stores" warehouse, "Stores" account has been credited and equal amount will be debited to the expense account "Cost of Goods Sold". The debit/credit amount is equal to the total buying cost of the selling items. And buying cost is calculated based on valuation method (FIFO / Moving Average) or serial no cost for serialized items.
In this eample, Buying cost of RM0001 = (2200/10)*5 = 1100
As item is delivered from "Stores" warehouse, "Stores" account is credited and equal amount is debited to the expense account "Cost of Goods Sold". The debit/credit amount is equal to the total valuation amount (buying cost) of the selling items. And valuation amount is calculated based on your prefferred valuation method (FIFO / Moving Average) or actual cost of serialized items.
<pre>
<code>
In this example, we have considered valuation method as FIFO.
Valuation Rate = Purchase Rate + Charges Included in Valuation
= 200 + (250 * (2000 / 2500) / 10)
= 220
Total Valuation Amount = 220 * 5
= 1100
</code>
</pre>
--
### **Sales Invoice with Update Stock**
> Suppose you do not want to make Delivery Note against the above order, you can make Sales Invoice directly with "Update Stock" options. The details of the Sales Invoice are same as above Delivery Note.
Lets say, you did not make Delivery Note against the above order and instead you have made Sales Invoice directly, with "Update Stock" options. The details of the Sales Invoice are same as the above Delivery Note.
**Stock Ledger**
@ -199,21 +197,21 @@ In this eample, Buying cost of RM0001 = (2200/10)*5 = 1100
![si_general_ledger](img/accounting-for-stock-8.png)
Here apart from normal account entries for invoice, "Stores" and "Cost of Goods Sold" accounts are also affected based on buying cost.
Here, apart from normal account entries for invoice, "Stores" and "Cost of Goods Sold" accounts are also affected based on the valuation amount.
--
### **Stock Entry (Material Receipt)**
>**Items:**
><table class="table table-bordered">
> <thead>
> <tr><th>Item</th><th>Target Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>RM0001</td><td>Stores</td><td>50</td><td>220</td><td>11000</td></tr>
> </tbody>
></table>
**Items:**
<table class="table table-bordered">
<thead>
<tr><th>Item</th><th>Target Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>RM0001</td><td>Stores</td><td>50</td><td>220</td><td>11000</td></tr>
</tbody>
</table>
**Stock Ledger**
@ -227,15 +225,15 @@ Here apart from normal account entries for invoice, "Stores" and "Cost of Goods
### **Stock Entry (Material Issue)**
>**Items:**
><table class="table table-bordered">
> <thead>
> <tr><th>Item</th><th>Source Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>RM0001</td><td>Stores</td><td>10</td><td>220</td><td>2200</td></tr>
> </tbody>
></table>
**Items:**
<table class="table table-bordered">
<thead>
<tr><th>Item</th><th>Source Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>RM0001</td><td>Stores</td><td>10</td><td>220</td><td>2200</td></tr>
</tbody>
</table>
**Stock Ledger**
@ -249,17 +247,17 @@ Here apart from normal account entries for invoice, "Stores" and "Cost of Goods
### **Stock Entry (Material Transfer)**
>**Items:**
><table class="table table-bordered">
> <thead>
> <tr><th>Item</th><th>Source Warehouse</th><th>Target Warehouse</th>
> <th>Qty</th><th>Rate</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>RM0001</td><td>Stores</td><td>Work In Progress</td>
> <td>10</td><td>220</td><td>2200</td></tr>
> </tbody>
></table>
**Items:**
<table class="table table-bordered">
<thead>
<tr><th>Item</th><th>Source Warehouse</th><th>Target Warehouse</th>
<th>Qty</th><th>Rate</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>RM0001</td><td>Stores</td><td>Work In Progress</td>
<td>10</td><td>220</td><td>2200</td></tr>
</tbody>
</table>
**Stock Ledger**
@ -267,49 +265,49 @@ Here apart from normal account entries for invoice, "Stores" and "Cost of Goods
**General Ledger**
No General Ledger Entry
![mtn_general_ledger](img/accounting-for-stock-14.png)
--
### **Stock Entry (Sales Return - Sales Invoice booked)**
>**Items:**
><table class="table table-bordered">
> <thead>
> <tr><th>Item</th><th>Target Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>RM0001</td><td>Stores</td><td>2</td><td>200</td><td>400</td></tr>
> </tbody>
></table>
**Items:**
<table class="table table-bordered">
<thead>
<tr><th>Item</th><th>Target Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>RM0001</td><td>Stores</td><td>2</td><td>200</td><td>400</td></tr>
</tbody>
</table>
**Stock Ledger**
![sret_stock_ledger](img/accounting-for-stock-14.png)
![sret_stock_ledger](img/accounting-for-stock-15.png)
**General Ledger**
![sret_general_ledger](img/accounting-for-stock-15.png)
![sret_general_ledger](img/accounting-for-stock-16.png)
--
### **Stock Entry (Purchase Return)**
>**Items:**
><table class="table table-bordered">
> <thead>
> <tr><th>Item</th><th>Source Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
> </thead>
> <tbody>
> <tr><td>RM0001</td><td>Stores</td><td>4</td><td>220</td><td>880</td></tr>
> </tbody>
></table>
**Items:**
<table class="table table-bordered">
<thead>
<tr><th>Item</th><th>Source Warehouse</th><th>Qty</th><th>Rate</th><th>Amount</th></tr>
</thead>
<tbody>
<tr><td>RM0001</td><td>Stores</td><td>4</td><td>220</td><td>880</td></tr>
</tbody>
</table>
**Stock Ledger**
![pret_stock_ledger](img/accounting-for-stock-16.png)
![pret_stock_ledger](img/accounting-for-stock-17.png)
**General Ledger**
![pret_general_ledger](img/accounting-for-stock-17.png)
![pret_general_ledger](img/accounting-for-stock-18.png)

View File

@ -0,0 +1,31 @@
---
{
"_label": "Migration from Periodic Inventory"
}
---
Migration from Periodic Inventory is not a one click setting, it involves some special steps. As Perpetual Inventory always maintains a sync between stock and account balance, it is not possible to enable it with existing Warehouse setup. You have to create a whole new set of Warehouses, each linked to relevant account.
Steps:
- Nullify the balance of account heads (stock-in-hand / fixed-asset) which you are using to maintain available stock value, through a Journal Voucher.
- As existing warehouses are linked to stock transactions which does not have corresponding accounting entries, those warehouses can not be used for perpetual inventory. You have to create new warehouses for the future stock transactions which will be linked to their respective accounts. While creating new warehouses, select an account group under which the child account for the warehouse will be created.
- Setup the following default accounts for each Company
- Stock Received But Not Billed
- Stock Adjustment Account
- Expenses Included In Valuation
- Cost Center
- Activate Perpetual Inventory
> Setup > Accounts Settings > Make Accounting Entry For Every Stock Movement
![Activation](img/accounting-for-stock-1.png)
<br><br>
- Create Stock Entry (Material Transfer) to transfer available stock from existing warehouse to new warehouse. As stock will be available in the new warehouse, you should select the new warehouse for all the future transactions.
System will not post any accounting entries for existing stock transactions submitted prior to the activation of Perpetual Inventory as those old warehouses will not be linked to any account. If you create any new transaction or modify/amend existing transactions, with old warehouse, there will be no corresponding accounting entries. You have to manually sync stock and account balance through Journal Voucher.
> Note: If you are already using old Perpetual Inventory system, it will be deactivated automatically. You need to follow the above steps to reactivate it.

View File

@ -18,13 +18,12 @@ To go to Warehouse, click on Stock and go to Warehouse under Masters.
In ERPNext, every different company can have a separate Warehouse. Every Warehouse will belong to a specific company. User can get company wise accurate stock balance. The Warehouses are saved with their respective companys abbreviations. This facilitates in identifying which Warehouse belongs to which company, at a glance.
In ERPNext, every Warehouse must belong to a specific company, to maintain company wise stock balance. The Warehouses are saved with their respective companys abbreviations. This facilitates in identifying which Warehouse belongs to which company, at a glance.
You can include user restrictions for these Warehouses. In case you do not wish a particular user to operate on a particular Warehouse, you can refrain the user from accessing that Warehouse.
### Merge Warehouse
In day to day transactions, if duplicate entries are done by mistake resulting in duplicate Warehouse, these mistakes can be rectified. Duplicate records can be merged into a single Warehouse. Enter the place where you want to keep all the warehouse records. Click on the Merge button. Once this transaction is done, delete the empty Warehouse.
ERPNext system maintains stock balance for every distinct combination of Item and Warehouse. Thus you can get stock balance for any specific Item in a particular Warehouse on any particular date.
In day to day transactions, duplicate entries are done by mistake, resulting in duplicate Warehouses. Duplicate records can be merged into a single Warehouse. Enter the correct Warehouse and click on the Merge button. The system will replace all the links of wrong Warehouse with the correct Warehouse, in all transactions. Also, the available quantity (actual qty, reserved qty, ordered qty etc) of all items in the duplicate warehouse will be transferred to the correct warehouse. Once merging is done, delete the duplicate Warehouse.
> Note: ERPNext system maintains stock balance for every distinct combination of Item and Warehouse. Thus you can get stock balance for any specific Item in a particular Warehouse on any particular date.