diff --git a/docs/docs.user.stock.accounting_for_stock.md b/docs/docs.user.stock.accounting_for_stock.md
index 46a3285..0088105 100644
--- a/docs/docs.user.stock.accounting_for_stock.md
+++ b/docs/docs.user.stock.accounting_for_stock.md
@@ -4,249 +4,39 @@
 }
 ---
 
-The value of available inventory is treated as an Asset in company's Chart of Accounts. Depending on the type of item, it can be treated as Fixed Asset or Current Asset. To prepare Balance Sheet, you should make the accounting entry for those assets. 
+The value of available inventory is treated as an Asset in company's Chart of Accounts. Depending on the type of item, it can be treated as Fixed Asset or Current Asset. To prepare Balance Sheet, you should make the accounting entries for those assets. 
 There are generally two different methods of accounting for inventory:
 
 
-## **Periodic Accounting**
+### **Auto / Perpetual Inventory**
 
-In this method, the system does not create accounting entries automatically for assets, at the time of material puchases or sales.
+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 an accounting period, you buy and receive items of a certain value. This value is marked as an expense in your accounting books. You sell and deliver some of these items. 
+When you buy and receive items, those items are booked as the company’s 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 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.
+
+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.
+
+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.
+
+>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
+
+-
+
+### **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 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.
 
 At the end of an accounting period, the total value of items, that remain to be sold, need to be booked as the company’s assets, often known as stock-in-hand. 
 
 The difference between the value of the items remaining to be sold and the previous period’s 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. 
 
-This complete process is called Periodic Accounting. 
+This complete process is called Periodic Inventory.
 
-This process is usually followed when using a manual system of book keeping. It reduces effort at the cost of accuracy.
-
--
-
-## **Auto / Perpetual Accounting**
-
-When you buy and receive items, those items are booked as the company’s 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 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. 
-
-This process is called Perpetual Accounting.
-
--
-
-### **Steps To Take Before Activation**
-
-1. Setup the following default accounts for each Company 
-	- Stock Received But Not Billed
-	- Stock Adjustment Account
-	- Expenses Included In Valuation
-	- Cost Center
-1. Enter Asset / Expense account for each warehouse depending upon type of warehouse (Stores, Fixed Asset Warehouse etc).
-
->Note: If you are currently using Periodic Accounting and want to switch to Auto / Perpetual Accounting, follow the steps below:
->
->- Follow Step 1
->- To enable Perpetual Accounting, existing stock balances must be synced with relevant account balances. To do that, calculate available stock value and book stock-in-hand/fixed-asset (asset) against cost-of-goods-sold (expense) through Journal Voucher.
->- Create new warehouse for every existing warehouse.
->-  Assign Asset / Expense account while creating warehouse.
->-  Create Stock Entry (Material Transfer) to transfer available stock from existing warehouse to new warehouse
-
--
-
-### **Activation**
-
-Go to Setup > Accounts Settings > check "Make Accounting Entry For Every Stock Entry"
-
-![Activation](img/accounting-for-stock-1.png)
-
--
-
-### **What Will It Do For You?**
-
-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.
-
-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 Purchase Receipt through Landed Cost Wizard.
-
--
-
-### **What Will It Not Do For You?**
-
-It will not affect accounting of existing stock transactions submitted prior to the activation of Perpetual Accounting.
-Auto / Perpetual Accounting totally depends upon the item valuation rate. Hence, you have to be more careful entering valuation rate while making Purchase Receipt, Material Receipt or Manufacturing / Repack
-
--
-
-### **Example**
-
->Consider following Chart of Accounts and Warehouse setup for your company:
-
->#### Chart of Accounts
-
->- Assets (Dr)
->  - Current Assets
->    - Accounts Receivable
->      - Jane Doe
->    - Stock Assets
->      - Stock In Hand
->    - Tax Assets
->      - VAT
->  - Fixed Assets
->    - Office Equipments
->- 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 - Raw Materials
->- Work In Progress - Raw Materials
->- Finished Goods - Finished Goods
->- Fixed Asset Warehouse - Office Equipments
-
-#### **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:
-
-
->	<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>
-	
->**Taxes:**
->
->- Shipping Charges = 100 ; Total and Valuation
->- VAT = 120 ; Total
->- Customs Duty = 150 ; Valuation
-
-**Stock Ledger**
-
-![Activation](img/accounting-for-stock-2.png)
-
-**General Ledger**
-
-![Activation](img/accounting-for-stock-3.png)
-
-
-
---
-
-#### **Purchase Invoice**
-
-
->**Supplier:** East Wind Inc.
-
->**Items:**
-
->- Item = RM0001 ; Warehouse = Stores ; Qty = 10 ; Rate = 200 ; Amount = 2000
->- Item = Desktop ; Warehouse = Fixed Asset Warehouse ; Qty = 5 ; Rate = 100 ; Amount = 500
-
->**Taxes:**
-
->- Shipping Charges = 100 ; Total and Valuation
->- VAT = 120 ; Total
->- Customs Duty = 150 ; Valuation
-
-
-**GL Entry**
-
-<table class="table table-bordered">
-  <thead><tr><th>Account</th><th>Debit</th><th>Credit</th></tr></thead>
-  <tbody>
-  <tr><td>East Wind Inc.</td><td>0</td><td>2500 + 100 + 120 = 2720</td></tr>
-  <tr><td>Stock Received But Not Billed</td><td>2500 + 100 + 150 = 2750</td><td>0</td></tr>
-  <tr><td>Shipping Charges</td><td>100</td><td>0</td></tr>
-  <tr><td>VAT</td><td>120</td><td>0</td></tr>
-  <tr><td>Expenses Included In Valuation</td><td>0</td><td>100 + 150 = 250</td></tr>
-  </tbody>
-</table>
-
---
-
-### Delivery Note
-
-
->**Customer:** Jane Doe
-
->**Items:**
-
->- Item = RM0001 ; Warehouse = Stores ; Qty = 5 ; Rate = 200 ; Amount = 1000 ; Buying Amount = (2200/10)*5 = 1100
-
->**Taxes:**
-
->- VAT = 80
->- Service Tax = 50
-
-**GL Entry**
-
-<table class="table table-bordered">
-  <thead><tr><th>Account</th><th>Debit</th><th>Credit</th></tr></thead>
-  <tbody>
-  <tr><td>Raw Materials</td><td>0</td><td>1100</td></tr>
-  <tr><td>Cost of Goods Sold</td><td>1100</td><td>0</td></tr>
-  </tbody>
-</table>
-
---
-
-### Sales Invoice
-
->**Customer:** Jane Doe
-
->**Items:**
-
->- Item = RM0001 ; Qty = 5 ; Rate = 100 ; Amount = 500
-
->**Taxes:**
-
->- VAT = 80
->- Service Tax = 50
-
-**GL Entry**
-
-Item Valuation Rate for this transaction = 750 / 10 = 75
-
-<table class="table table-bordered">
-  <thead><tr><th>Account</th><th>Debit</th><th>Credit</th></tr></thead>
-  <tbody>
-  <tr><td>Jane Doe</td><td>500 + 80 + 50 = 630</td><td>0</td></tr>
-  <tr><td>VAT</td><td>0</td><td>80</td></tr>
-  <tr><td>Service Tax</td><td>0</td><td>50</td></tr>
-  <tr><td>Sales Account</td><td>0</td><td>500</td></tr>
-  </tbody>
-</table>
-
---
+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)
diff --git a/docs/docs.user.stock.perpetual_inventory.md b/docs/docs.user.stock.perpetual_inventory.md
new file mode 100644
index 0000000..ff8a920
--- /dev/null
+++ b/docs/docs.user.stock.perpetual_inventory.md
@@ -0,0 +1,269 @@
+---
+{
+	"_label": "Perpetual Inventory"
+}
+---
+
+In perpetual accounting, system creates accounting entries for each stock transactions. Hence, stock balance are always remains same as relevant account balance.
+
+## **Activation**
+
+1. Setup the following default accounts for each Company 
+	- Stock Received But Not Billed
+	- Stock Adjustment Account
+	- Expenses Included In Valuation
+	- Cost Center
+	
+2. Go to Setup > Accounts Settings > check "Make Accounting Entry For Every Stock Entry"
+![Activation](img/accounting-for-stock-1.png)
+
+3. Enter Asset / Expense account for each warehouse depending upon type of warehouse (Stores, Fixed Asset Warehouse etc)
+
+
+## **Migration from Periodic Inventory**
+
+Migration from Periodic Inventory is not a one click settings, it involves some speacial 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:
+
+- Follow Activation Step 1 & 2
+- To enable Perpetual Inventory, existing stock balances must be synced with relevant account balances. To do that, calculate available stock value and book stock-in-hand/fixed-asset (asset) against cost-of-goods-sold (expense) through Journal Voucher.
+- Create new warehouse for every existing warehouse.
+- Assign Asset / Expense account while creating warehouse.
+- 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.
+
+-
+
+## **Example**
+
+Consider following Chart of Accounts and Warehouse setup for your company:
+
+#### Chart of Accounts
+
+>- Assets (Dr)
+>  - Current Assets
+>    - Accounts Receivable
+>      - Jane Doe
+>    - Stock Assets
+>      - Stock In Hand
+>    - Tax Assets
+>      - VAT
+>  - Fixed Assets
+>    - Office Equipments
+>- 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 - Stock In Hand
+>- Work In Progress - Stock In Hand
+>- Finished Goods - Stock In Hand
+>- Fixed Asset Warehouse - Office Equipments
+
+### **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:
+
+><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>
+	
+>**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>
+
+**Stock Ledger**
+
+![pr_stock_ledger](img/accounting-for-stock-2.png)
+
+**General Ledger**
+
+![pr_general_ledger](img/accounting-for-stock-3.png)
+
+As stock balance increases through Purchase Receipt, "Stock In Hand" account has been debited and a temporary account "Stock Receipt But Not Billed" account has been 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:
+
+**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).
+
+--
+
+### **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:
+
+>**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>
+	
+>**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>
+
+
+**Stock Ledger**
+
+![dn_stock_ledger](img/accounting-for-stock-5.png)
+
+**General Ledger**
+
+![dn_general_ledger](img/accounting-for-stock-6.png)
+
+As item has delivered from "Stores" warehouse, "Stock In Hand" 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
+
+--
+
+### **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.
+
+**Stock Ledger**
+
+![si_stock_ledger](img/accounting-for-stock-7.png)
+
+**General Ledger**
+
+![si_general_ledger](img/accounting-for-stock-8.png)
+
+Here apart from normal account entries for invoice, "Stock In Hand" and "Cost of Goods Sold" accounts are also affected based on buying cost.
+
+--
+
+### **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>200</td><td>10000</td></tr>
+>	</tbody>
+></table>
+
+**Stock Ledger**
+
+![si_stock_ledger](img/accounting-for-stock-9.png)
+
+**General Ledger**
+
+![si_stock_ledger](img/accounting-for-stock-10.png)
+
+--
+
+### **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>200</td><td>2000</td></tr>
+>	</tbody>
+></table>
+
+**Stock Ledger**
+
+![si_stock_ledger](img/accounting-for-stock-11.png)
+
+**General Ledger**
+
+![si_stock_ledger](img/accounting-for-stock-12.png)
+
+--
+
+### **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>200</td><td>2000</td></tr>
+>	</tbody>
+></table>
+
+**Stock Ledger**
+
+![si_stock_ledger](img/accounting-for-stock-13.png)
+
+**General Ledger**
+
+No General Ledger Entry
\ No newline at end of file
diff --git a/stock/doctype/landed_cost_wizard/landed_cost_wizard.py b/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
index f46c0c2..797b39a 100644
--- a/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
+++ b/stock/doctype/landed_cost_wizard/landed_cost_wizard.py
@@ -15,7 +15,6 @@
 		self.doclist = doclist
 		self.prwise_cost = {}
 		
-		
 	def check_mandatory(self):
 		if not self.doc.from_pr_date or not self.doc.to_pr_date:
 			webnotes.throw(_("Please enter From and To PR Date"))
