diff --git a/erpnext/stock/doctype/landed_cost_item/landed_cost_item.json b/erpnext/stock/doctype/landed_cost_item/landed_cost_item.json
index f761eba..c5887d4 100644
--- a/erpnext/stock/doctype/landed_cost_item/landed_cost_item.json
+++ b/erpnext/stock/doctype/landed_cost_item/landed_cost_item.json
@@ -1,27 +1,18 @@
 {
- "creation": "2013-02-22 01:28:02.000000", 
+ "creation": "2013-02-22 01:28:02", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
   {
-   "fieldname": "account_head", 
+   "fieldname": "item_code", 
    "fieldtype": "Link", 
    "in_list_view": 1, 
-   "label": "Account Head", 
-   "oldfieldname": "account_head", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
+   "label": "Item Code", 
+   "options": "Item", 
    "permlevel": 0, 
+   "read_only": 1, 
    "reqd": 1, 
-   "search_index": 1
-  }, 
-  {
-   "fieldname": "cost_center", 
-   "fieldtype": "Link", 
-   "label": "Cost Center", 
-   "options": "Cost Center", 
-   "permlevel": 0, 
-   "reqd": 1
+   "width": "100px"
   }, 
   {
    "fieldname": "description", 
@@ -32,8 +23,46 @@
    "oldfieldtype": "Data", 
    "permlevel": 0, 
    "print_width": "300px", 
+   "read_only": 1, 
    "reqd": 1, 
-   "width": "300px"
+   "width": "120px"
+  }, 
+  {
+   "fieldname": "purchase_receipt", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Purchase Receipt", 
+   "options": "Purchase Receipt", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "warehouse", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "label": "Warehouse", 
+   "options": "Warehouse", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "col_break2", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "qty", 
+   "fieldtype": "Float", 
+   "label": "Qty", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "rate", 
+   "fieldtype": "Currency", 
+   "label": "Rate", 
+   "permlevel": 0, 
+   "read_only": 1
   }, 
   {
    "fieldname": "amount", 
@@ -44,14 +73,34 @@
    "oldfieldtype": "Currency", 
    "options": "currency", 
    "permlevel": 0, 
+   "read_only": 1, 
    "reqd": 1
+  }, 
+  {
+   "fieldname": "old_valuation_rate", 
+   "fieldtype": "Currency", 
+   "in_list_view": 1, 
+   "label": "Old Valuation Rate", 
+   "permlevel": 0, 
+   "read_only": 1, 
+   "width": ""
+  }, 
+  {
+   "fieldname": "new_valuation_rate", 
+   "fieldtype": "Currency", 
+   "in_list_view": 1, 
+   "label": "New Valuation Rate", 
+   "permlevel": 0, 
+   "read_only": 1, 
+   "width": ""
   }
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2013-12-20 19:23:18.000000", 
+ "modified": "2014-07-11 15:20:53.714633", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Landed Cost Item", 
- "owner": "wasim@webnotestech.com"
+ "owner": "wasim@webnotestech.com", 
+ "permissions": []
 }
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json b/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json
index b50c148..651f288 100644
--- a/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json
+++ b/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json
@@ -1,5 +1,5 @@
 {
- "creation": "2013-02-22 01:28:02.000000", 
+ "creation": "2013-02-22 01:28:02", 
  "docstatus": 0, 
  "doctype": "DocType", 
  "fields": [
@@ -13,14 +13,48 @@
    "options": "Purchase Receipt", 
    "permlevel": 0, 
    "print_width": "220px", 
+   "read_only": 0, 
+   "reqd": 1, 
    "width": "220px"
+  }, 
+  {
+   "fieldname": "supplier", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Supplier", 
+   "options": "Supplier", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "col_break1", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "width": "50%"
+  }, 
+  {
+   "fieldname": "posting_date", 
+   "fieldtype": "Date", 
+   "in_list_view": 1, 
+   "label": "Posting Date", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "fieldname": "grand_total", 
+   "fieldtype": "Currency", 
+   "in_list_view": 1, 
+   "label": "Grand Total", 
+   "permlevel": 0, 
+   "read_only": 1
   }
  ], 
  "idx": 1, 
  "istable": 1, 
- "modified": "2013-12-20 19:23:18.000000", 
+ "modified": "2014-07-11 12:12:08.572263", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Landed Cost Purchase Receipt", 
- "owner": "wasim@webnotestech.com"
+ "owner": "wasim@webnotestech.com", 
+ "permissions": []
 }
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_taxes_and_charges/__init__.py b/erpnext/stock/doctype/landed_cost_taxes_and_charges/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_taxes_and_charges/__init__.py
diff --git a/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
new file mode 100644
index 0000000..d077dbc
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
@@ -0,0 +1,51 @@
+{
+ "creation": "2014-07-11 11:51:00.453717", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "", 
+ "fields": [
+  {
+   "fieldname": "description", 
+   "fieldtype": "Small Text", 
+   "in_list_view": 1, 
+   "label": "Description", 
+   "permlevel": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "col_break3", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "width": "50%"
+  }, 
+  {
+   "fieldname": "account", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Account", 
+   "options": "Account", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "amount", 
+   "fieldtype": "Currency", 
+   "in_list_view": 1, 
+   "label": "Amount", 
+   "permlevel": 0, 
+   "reqd": 1
+  }
+ ], 
+ "istable": 1, 
+ "modified": "2014-07-11 13:00:14.770284", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Landed Cost Taxes and Charges", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [], 
+ "sort_field": "modified", 
+ "sort_order": "DESC"
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.py b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.py
new file mode 100644
index 0000000..2e1f5a3
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.py
@@ -0,0 +1,9 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class LandedCostTaxesandCharges(Document):
+	pass
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_voucher/__init__.py b/erpnext/stock/doctype/landed_cost_voucher/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_voucher/__init__.py
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
new file mode 100644
index 0000000..47ba0e1
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
@@ -0,0 +1,82 @@
+// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+// License: GNU General Public License v3. See license.txt
+
+
+frappe.provide("erpnext.stock");
+frappe.require("assets/erpnext/js/controllers/stock_controller.js");
+
+erpnext.stock.LandedCostVoucher = erpnext.stock.StockController.extend({		
+	setup: function() {
+		var me = this;
+		this.frm.fields_dict.landed_cost_purchase_receipts.grid.get_field('purchase_receipt').get_query = 
+			function() {
+				if(!me.frm.doc.company) msgprint(__("Please enter company first"));
+				return {
+					filters:[
+						['Purchase Receipt', 'docstatus', '=', '1'],
+						['Purchase Receipt', 'company', '=', me.frm.doc.company],
+					]
+				}
+		};
+	
+		this.frm.fields_dict.landed_cost_taxes_and_charges.grid.get_field('account').get_query = function() {
+				if(!me.frm.doc.company) msgprint(__("Please enter company first"));
+				return {
+					filters:[
+						['Account', 'group_or_ledger', '=', 'Ledger'],
+						['Account', 'account_type', 'in', ['Tax', 'Chargeable']],
+						['Account', 'company', '=', me.frm.doc.company]
+					]
+				}
+		};
+		
+		this.frm.add_fetch("purchase_receipt", "supplier", "supplier");
+		this.frm.add_fetch("purchase_receipt", "posting_date", "posting_date");
+		this.frm.add_fetch("purchase_receipt", "grand_total", "grand_total");
+		
+	}, 
+	
+	get_items_from_purchase_receipts: function() {
+		var me = this;
+		if(!this.frm.doc.landed_cost_purchase_receipts.length) {
+			msgprint(__("Please enter Purchase Receipt first"));
+		} else {
+			return this.frm.call({
+				doc: me.frm.doc,
+				method: "get_items_from_purchase_receipts"
+			});
+		}
+	}, 
+	
+	amount: function() {
+		this.set_total_taxes_and_charges();
+		this.set_new_valuation_rate();
+	},
+	
+	set_total_taxes_and_charges: function() {
+		total_taxes_and_charges = 0.0;
+		$.each(this.frm.doc.landed_cost_taxes_and_charges, function(i, d) {
+			total_taxes_and_charges += flt(d.amount)
+		});
+		cur_frm.set_value("total_taxes_and_charges", total_taxes_and_charges);
+	},
+	
+	set_new_valuation_rate: function() {
+		var me = this;
+		if(this.frm.doc.landed_cost_taxes_and_charges.length) {
+			var total_item_cost = 0.0;
+			$.each(this.frm.doc.landed_cost_items, function(i, d) {
+				total_item_cost += flt(d.amount)
+			});
+			
+			$.each(this.frm.doc.landed_cost_items, function(i, item) {
+				var charges_for_item = flt(item.amount) *  flt(me.frm.doc.total_taxes_and_charges) / flt(total_item_cost)
+				item.new_valuation_rate = flt(item.old_valuation_rate) + charges_for_item
+			});
+			refresh_field("landed_cost_items");
+		}
+	}
+	
+});
+
+cur_frm.script_manager.make(erpnext.stock.LandedCostVoucher);
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
new file mode 100644
index 0000000..11425c2
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
@@ -0,0 +1,97 @@
+{
+ "allow_import": 0, 
+ "autoname": "LCV.####", 
+ "creation": "2014-07-11 11:33:42.547339", 
+ "docstatus": 0, 
+ "doctype": "DocType", 
+ "document_type": "Transaction", 
+ "fields": [
+  {
+   "fieldname": "company", 
+   "fieldtype": "Link", 
+   "in_list_view": 1, 
+   "label": "Company", 
+   "options": "Company", 
+   "permlevel": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "landed_cost_purchase_receipts", 
+   "fieldtype": "Table", 
+   "label": "Purchase Receipts", 
+   "options": "Landed Cost Purchase Receipt", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "get_items_from_purchase_receipts", 
+   "fieldtype": "Button", 
+   "label": "Get Items From Purchase Receipts", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "landed_cost_items", 
+   "fieldtype": "Table", 
+   "label": "Purchase Receipt Items", 
+   "no_copy": 1, 
+   "options": "Landed Cost Item", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "fieldname": "landed_cost_taxes_and_charges", 
+   "fieldtype": "Table", 
+   "label": "Taxes and Charges", 
+   "options": "Landed Cost Taxes and Charges", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "total_taxes_and_charges", 
+   "fieldtype": "Currency", 
+   "label": "Total Taxes and Charges", 
+   "permlevel": 0, 
+   "read_only": 1, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "landed_cost_help", 
+   "fieldtype": "HTML", 
+   "label": "Landed Cost Help", 
+   "options": "", 
+   "permlevel": 0
+  }, 
+  {
+   "fieldname": "amended_from", 
+   "fieldtype": "Link", 
+   "label": "Amended From", 
+   "no_copy": 1, 
+   "options": "Landed Cost Voucher", 
+   "permlevel": 0, 
+   "print_hide": 1, 
+   "read_only": 1
+  }
+ ], 
+ "is_submittable": 1, 
+ "modified": "2014-07-11 15:34:51.306164", 
+ "modified_by": "Administrator", 
+ "module": "Stock", 
+ "name": "Landed Cost Voucher", 
+ "name_case": "", 
+ "owner": "Administrator", 
+ "permissions": [
+  {
+   "amend": 1, 
+   "cancel": 1, 
+   "create": 1, 
+   "delete": 1, 
+   "export": 1, 
+   "permlevel": 0, 
+   "read": 1, 
+   "report": 1, 
+   "role": "Material Manager", 
+   "submit": 1, 
+   "write": 1
+  }
+ ], 
+ "sort_field": "modified", 
+ "sort_order": "DESC"
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
new file mode 100644
index 0000000..7ebdb0b
--- /dev/null
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
@@ -0,0 +1,83 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+from frappe.utils import flt
+from frappe.model.document import Document
+
+class LandedCostVoucher(Document):
+	def get_items_from_purchase_receipts(self):
+		self.set("landed_cost_items", [])
+		for pr in self.get("landed_cost_purchase_receipts"):
+			pr_items = frappe.db.sql("""select item_code, description, qty, rate, amount, valuation_rate, warehouse
+				from `tabPurchase Receipt Item` where parent = %s""", pr.purchase_receipt, as_dict=True)
+			for d in pr_items:
+				item = self.append("landed_cost_items")
+				item.item_code = d.item_code
+				item.description = d.description
+				item.qty = d.qty
+				item.rate = d.rate
+				item.amount = d.amount
+				item.old_valuation_rate = d.valuation_rate
+				item.purchase_receipt = pr.purchase_receipt
+				item.warehouse = d.warehouse
+				
+		if self.total_taxes_and_charges:
+			self.set_new_valuation_rate()
+		
+	def validate(self):
+		self.check_mandatory()
+		self.validate_purchase_receipts()
+		self.set_total_taxes_and_charges()
+		if not self.get("landed_cost_items"):
+			self.get_items_from_purchase_receipts()
+		else:
+			self.set_new_valuation_rate()
+		
+	def check_mandatory(self):
+		if not self.get("landed_cost_purchase_receipts"):
+			frappe.throw(_("Please enter Purchase Receipts"))
+			
+		if not self.get("landed_cost_taxes_and_charges"):
+			frappe.throw(_("Please enter Taxes and Charges"))
+			
+	def validate_purchase_receipts(self):
+		purchase_receipts = []
+		for d in self.get("landed_cost_purchase_receipts"):
+			if frappe.db.get_value("Purchase Receipt", d.purchase_receipt, "docstatus") != 1:
+				frappe.throw(_("Purchase Receipt must be submitted"))
+			else:
+				purchase_receipts.append(d.purchase_receipt)
+				
+		for item in self.get("landed_cost_items"):
+			if not item.purchase_receipt:
+				frappe.throw(_("Item must be added using 'Get Items from Purchase Receipts' button"))
+			elif item.purchase_receipt not in purchase_receipts:
+				frappe.throw(_("Item Row {0}: Purchase Reciept {1} does not exist in above 'Purchase Receipts' table")
+					.format(item.idx, item.purchase_receipt))
+	
+	def set_total_taxes_and_charges(self):
+		total_taxes_and_charges = 0.0
+		for d in self.get("landed_cost_taxes_and_charges"):
+			total_taxes_and_charges += flt(d.amount)
+			
+		self.total_taxes_and_charges = total_taxes_and_charges
+		
+	def set_new_valuation_rate(self):
+		total_item_cost = sum([flt(d.amount) for d in self.get("landed_cost_items")])
+		
+		for item in self.get("landed_cost_items"):
+			charges_for_item = flt(item.amount) *  flt(self.total_taxes_and_charges) / flt(total_item_cost)
+			item.new_valuation_rate = flt(item.old_valuation_rate) + charges_for_item
+		
+	def on_submit(self):
+		self.make_stock_ledger_entries()
+		self.make_gl_entries()
+		
+	def make_stock_ledger_entries(self):
+		pass
+		
+	def make_gl_entries(self):
+		pass
\ No newline at end of file
