diff --git a/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
index c58607f..409770e 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
+++ b/erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
@@ -5,6 +5,7 @@
 from __future__ import unicode_literals
 import unittest
 import frappe
+from frappe.utils import flt
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt \
 	import set_perpetual_inventory, get_gl_entries, test_records as pr_test_records
 from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
@@ -23,7 +24,7 @@
 			},
 			fieldname=["qty_after_transaction", "stock_value"], as_dict=1)
 
-		self.submit_landed_cost_voucher("Purchase Receipt", pr.name)
+		submit_landed_cost_voucher("Purchase Receipt", pr.name)
 
 		pr_lc_value = frappe.db.get_value("Purchase Receipt Item", {"parent": pr.name}, "landed_cost_voucher_amount")
 		self.assertEquals(pr_lc_value, 25.0)
@@ -75,7 +76,7 @@
 			},
 			fieldname=["qty_after_transaction", "stock_value"], as_dict=1)
 
-		self.submit_landed_cost_voucher("Purchase Invoice", pi.name)
+		submit_landed_cost_voucher("Purchase Invoice", pi.name)
 		
 		pi_lc_value = frappe.db.get_value("Purchase Invoice Item", {"parent": pi.name}, 
 			"landed_cost_voucher_amount")
@@ -121,7 +122,7 @@
 
 		serial_no_rate = frappe.db.get_value("Serial No", "SN001", "purchase_rate")
 
-		self.submit_landed_cost_voucher("Purchase Receipt", pr.name)
+		submit_landed_cost_voucher("Purchase Receipt", pr.name)
 
 		serial_no = frappe.db.get_value("Serial No", "SN001",
 			["warehouse", "purchase_rate"], as_dict=1)
@@ -131,27 +132,37 @@
 
 		set_perpetual_inventory(0)
 
-	def submit_landed_cost_voucher(self, receipt_document_type, receipt_document):
-		ref_doc = frappe.get_doc(receipt_document_type, receipt_document)
-		
-		lcv = frappe.new_doc("Landed Cost Voucher")
-		lcv.company = "_Test Company"
-		lcv.set("purchase_receipts", [{
-			"receipt_document_type": receipt_document_type,
-			"receipt_document": receipt_document,
-			"supplier": ref_doc.supplier,
-			"posting_date": ref_doc.posting_date,
-			"grand_total": ref_doc.base_grand_total
-		}])
-		
-		lcv.set("taxes", [{
-			"description": "Insurance Charges",
-			"account": "_Test Account Insurance Charges - _TC",
-			"amount": 50
-		}])
+def submit_landed_cost_voucher(receipt_document_type, receipt_document):
+	ref_doc = frappe.get_doc(receipt_document_type, receipt_document)
+	
+	lcv = frappe.new_doc("Landed Cost Voucher")
+	lcv.company = "_Test Company"
+	lcv.distribute_charges_based_on = 'Amount'
+	
+	lcv.set("purchase_receipts", [{
+		"receipt_document_type": receipt_document_type,
+		"receipt_document": receipt_document,
+		"supplier": ref_doc.supplier,
+		"posting_date": ref_doc.posting_date,
+		"grand_total": ref_doc.base_grand_total
+	}])
+	
+	lcv.set("taxes", [{
+		"description": "Insurance Charges",
+		"account": "_Test Account Insurance Charges - _TC",
+		"amount": 50
+	}])
 
-		lcv.insert()
-		lcv.submit()
-
+	lcv.insert()
+	
+	distribute_landed_cost_on_items(lcv)
+	
+	lcv.submit()
+		
+def distribute_landed_cost_on_items(lcv):
+	based_on = lcv.distribute_charges_based_on.lower()
+	total = sum([flt(d.get(based_on)) for d in lcv.get("items")])
+	for item in lcv.get("items"):
+		item.applicable_charges = flt(item.get(based_on)) * flt(lcv.total_taxes_and_charges) / flt(total)
 
 test_records = frappe.get_test_records('Landed Cost Voucher')
