Rename fields: initial commit
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 30998e4..deece75 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -109,7 +109,7 @@
 	
 	entries_add: function(doc, cdt, cdn) {
 		var row = wn.model.get_doc(cdt, cdn);
-		this.frm.script_manager.copy_from_first_row("entries", row, ["expense_head", "cost_center"]);
+		this.frm.script_manager.copy_from_first_row("entries", row, ["expense_account", "cost_center"]);
 	}
 });
 
@@ -175,19 +175,19 @@
 	}	
 }
 
-cur_frm.set_query("expense_head", "entries", function(doc) {
+cur_frm.set_query("expense_account", "entries", function(doc) {
 	return{
 		query: "accounts.doctype.purchase_invoice.purchase_invoice.get_expense_account",
 		filters: {'company': doc.company}
 	}
 });
 
-cur_frm.cscript.expense_head = function(doc, cdt, cdn){
+cur_frm.cscript.expense_account = function(doc, cdt, cdn){
 	var d = locals[cdt][cdn];
-	if(d.idx == 1 && d.expense_head){
+	if(d.idx == 1 && d.expense_account){
 		var cl = getchildren('Purchase Invoice Item', doc.name, 'entries', doc.doctype);
 		for(var i = 0; i < cl.length; i++){
-			if(!cl[i].expense_head) cl[i].expense_head = d.expense_head;
+			if(!cl[i].expense_account) cl[i].expense_account = d.expense_account;
 		}
 	}
 	refresh_field('entries');
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 9fc04e6..87efde8 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -201,19 +201,19 @@
 					and self.doc.is_opening == 'No':
 				# in case of auto inventory accounting, against expense account is always
 				# Stock Received But Not Billed for a stock item
-				item.expense_head = stock_not_billed_account
+				item.expense_account = stock_not_billed_account
 				item.cost_center = None
 				
 				if stock_not_billed_account not in against_accounts:
 					against_accounts.append(stock_not_billed_account)
 			
-			elif not item.expense_head:
+			elif not item.expense_account:
 				msgprint(_("Expense account is mandatory for item") + ": " + 
 					(item.item_code or item.item_name), raise_exception=1)
 			
-			elif item.expense_head not in against_accounts:
+			elif item.expense_account not in against_accounts:
 				# if no auto_accounting_for_stock or not a stock item
-				against_accounts.append(item.expense_head)
+				against_accounts.append(item.expense_account)
 				
 		self.doc.against_expense_account = ",".join(against_accounts)
 
@@ -347,7 +347,7 @@
 					
 					gl_entries.append(
 						self.get_gl_dict({
-							"account": item.expense_head,
+							"account": item.expense_account,
 							"against": self.doc.credit_to,
 							"debit": valuation_amt,
 							"remarks": self.doc.remarks or "Accounting Entry for Stock"
@@ -358,7 +358,7 @@
 				# if not a stock item or auto inventory accounting disabled, book the expense
 				gl_entries.append(
 					self.get_gl_dict({
-						"account": item.expense_head,
+						"account": item.expense_account,
 						"against": self.doc.credit_to,
 						"debit": item.amount,
 						"remarks": self.doc.remarks,
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index e276219..9fa7680 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -77,7 +77,7 @@
 		
 		pi = webnotes.bean(copy=test_records[1])
 		pi.doclist[1].item_code = "_Test Non Stock Item"
-		pi.doclist[1].expense_head = "_Test Account Cost for Goods Sold - _TC"
+		pi.doclist[1].expense_account = "_Test Account Cost for Goods Sold - _TC"
 		pi.doclist.pop(2)
 		pi.doclist.pop(3)
 		pi.run_method("calculate_taxes_and_totals")
@@ -235,7 +235,7 @@
 			"amount": 500,
 			"uom": "_Test UOM",
 			"item_tax_rate": json.dumps({"_Test Account Excise Duty - _TC": 10}),
-			"expense_head": "_Test Account Cost for Goods Sold - _TC",
+			"expense_account": "_Test Account Cost for Goods Sold - _TC",
 			"cost_center": "_Test Cost Center - _TC",
 			"conversion_factor": 1.0,
 		
@@ -251,7 +251,7 @@
 			"rate": 150,
 			"amount": 750,
 			"uom": "_Test UOM",
-			"expense_head": "_Test Account Cost for Goods Sold - _TC",
+			"expense_account": "_Test Account Cost for Goods Sold - _TC",
 			"cost_center": "_Test Cost Center - _TC",
 			"conversion_factor": 1.0,
 		},
@@ -373,7 +373,7 @@
 			"qty": 10.0,
 			"import_rate": 50.0,
 			"uom": "_Test UOM",
-			"expense_head": "_Test Account Cost for Goods Sold - _TC",
+			"expense_account": "_Test Account Cost for Goods Sold - _TC",
 			"cost_center": "_Test Cost Center - _TC",
 			"conversion_factor": 1.0,
 		},
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.js b/erpnext/accounts/doctype/sales_invoice/pos.js
index 991dad8..1a4d018 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.js
+++ b/erpnext/accounts/doctype/sales_invoice/pos.js
@@ -252,7 +252,7 @@
 								</div>', 
 							{
 								item_code: obj.name,
-								item_price: format_currency(obj.ref_rate, obj.currency),
+								item_price: format_currency(obj.price_list_rate, obj.currency),
 								item_name: obj.name===obj.item_name ? "" : obj.item_name,
 								item_image: image
 							})).appendTo($wrap);
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index e35d64b..aba7ad8 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -22,9 +22,9 @@
 		args["name"] = "%%%s%%" % item
 
 	return webnotes.conn.sql("""select i.name, i.item_name, i.image, 
-		item_det.ref_rate, item_det.currency 
+		item_det.price_list_rate, item_det.currency 
 		from `tabItem` i LEFT JOIN 
-			(select item_code, ref_rate, currency from 
+			(select item_code, price_list_rate, currency from 
 				`tabItem Price`	where price_list=%s) item_det
 		ON
 			item_det.item_code=i.name
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 2ed9847..a0ef01d 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -47,8 +47,8 @@
 		si.insert()
 		
 		expected_values = {
-			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
-				"base_ref_rate", "basic_rate", "amount"],
+			"keys": ["price_list_rate", "discount_percentage", "export_rate", "export_amount", 
+				"base_price_list_rate", "basic_rate", "amount"],
 			"_Test Item Home Desktop 100": [50, 0, 50, 500, 50, 50, 500],
 			"_Test Item Home Desktop 200": [150, 0, 150, 750, 150, 150, 750],
 		}
@@ -91,14 +91,14 @@
 		si.doc.currency = "USD"
 		si.doc.conversion_rate = 50
 		si.doclist[1].export_rate = 1
-		si.doclist[1].ref_rate = 1
+		si.doclist[1].price_list_rate = 1
 		si.doclist[2].export_rate = 3
-		si.doclist[2].ref_rate = 3
+		si.doclist[2].price_list_rate = 3
 		si.insert()
 		
 		expected_values = {
-			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
-				"base_ref_rate", "basic_rate", "amount"],
+			"keys": ["price_list_rate", "discount_percentage", "export_rate", "export_amount", 
+				"base_price_list_rate", "basic_rate", "amount"],
 			"_Test Item Home Desktop 100": [1, 0, 1, 10, 50, 50, 500],
 			"_Test Item Home Desktop 200": [3, 0, 3, 15, 150, 150, 750],
 		}
@@ -153,8 +153,8 @@
 		si.insert()
 		
 		expected_values = {
-			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
-				"base_ref_rate", "basic_rate", "amount"],
+			"keys": ["price_list_rate", "discount_percentage", "export_rate", "export_amount", 
+				"base_price_list_rate", "basic_rate", "amount"],
 			"_Test Item Home Desktop 100": [62.5, 0, 62.5, 625.0, 50, 50, 465.37],
 			"_Test Item Home Desktop 200": [190.66, 0, 190.66, 953.3, 150, 150, 698.08],
 		}
@@ -248,8 +248,8 @@
 		for i, tax in enumerate(si.doclist.get({"parentfield": "other_charges"})):
 			tax.idx = i+1
 		
-		si.doclist[1].ref_rate = 62.5
-		si.doclist[1].ref_rate = 191
+		si.doclist[1].price_list_rate = 62.5
+		si.doclist[1].price_list_rate = 191
 		for i in [3, 5, 6, 7, 8, 9]:
 			si.doclist[i].included_in_print_rate = 1
 		
@@ -266,8 +266,8 @@
 		si.insert()
 		
 		expected_values = {
-			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
-				"base_ref_rate", "basic_rate", "amount"],
+			"keys": ["price_list_rate", "discount_percentage", "export_rate", "export_amount", 
+				"base_price_list_rate", "basic_rate", "amount"],
 			"_Test Item Home Desktop 100": [62.5, 0, 62.5, 625.0, 50, 50, 499.98],
 			"_Test Item Home Desktop 200": [190.66, 0, 190.66, 953.3, 150, 150, 750],
 		}
@@ -310,17 +310,17 @@
 		si = webnotes.bean(copy=test_records[3])
 		si.doc.currency = "USD"
 		si.doc.conversion_rate = 50
-		si.doclist[1].ref_rate = 55.56
-		si.doclist[1].adj_rate = 10
-		si.doclist[2].ref_rate = 187.5
-		si.doclist[2].adj_rate = 20
+		si.doclist[1].price_list_rate = 55.56
+		si.doclist[1].discount_percentage = 10
+		si.doclist[2].price_list_rate = 187.5
+		si.doclist[2].discount_percentage = 20
 		si.doclist[9].rate = 5000
 		
 		si.insert()
 		
 		expected_values = {
-			"keys": ["ref_rate", "adj_rate", "export_rate", "export_amount", 
-				"base_ref_rate", "basic_rate", "amount"],
+			"keys": ["price_list_rate", "discount_percentage", "export_rate", "export_amount", 
+				"base_price_list_rate", "basic_rate", "amount"],
 			"_Test Item Home Desktop 100": [55.56, 10, 50, 500, 2222.11, 1999.9, 19999.04],
 			"_Test Item Home Desktop 200": [187.5, 20, 150, 750, 7375.66, 5900.53, 29502.66],
 		}
@@ -961,7 +961,7 @@
 			"qty": 1.0,
 			"basic_rate": 500.0,
 			"amount": 500.0, 
-			"ref_rate": 500.0, 
+			"price_list_rate": 500.0, 
 			"export_amount": 500.0, 
 			"income_account": "Sales - _TC",
 			"expense_account": "_Test Account Cost for Goods Sold - _TC",
@@ -1011,7 +1011,7 @@
 			"item_code": "_Test Item Home Desktop 100",
 			"item_name": "_Test Item Home Desktop 100",
 			"qty": 10,
-			"ref_rate": 50,
+			"price_list_rate": 50,
 			"export_rate": 50,
 			"stock_uom": "_Test UOM",
 			"item_tax_rate": json.dumps({"_Test Account Excise Duty - _TC": 10}),
@@ -1025,7 +1025,7 @@
 			"item_code": "_Test Item Home Desktop 200",
 			"item_name": "_Test Item Home Desktop 200",
 			"qty": 5,
-			"ref_rate": 150,
+			"price_list_rate": 150,
 			"export_rate": 150,
 			"stock_uom": "_Test UOM",
 			"income_account": "Sales - _TC",
@@ -1137,7 +1137,7 @@
 			"item_code": "_Test Item Home Desktop 100",
 			"item_name": "_Test Item Home Desktop 100",
 			"qty": 10,
-			"ref_rate": 62.5,
+			"price_list_rate": 62.5,
 			"stock_uom": "_Test UOM",
 			"item_tax_rate": json.dumps({"_Test Account Excise Duty - _TC": 10}),
 			"income_account": "Sales - _TC",
@@ -1150,7 +1150,7 @@
 			"item_code": "_Test Item Home Desktop 200",
 			"item_name": "_Test Item Home Desktop 200",
 			"qty": 5,
-			"ref_rate": 190.66,
+			"price_list_rate": 190.66,
 			"stock_uom": "_Test UOM",
 			"income_account": "Sales - _TC",
 			"cost_center": "_Test Cost Center - _TC",
diff --git a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
index 7d8a358..7f28c4e 100644
--- a/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
+++ b/erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.py
@@ -17,10 +17,10 @@
 	
 	data = []
 	for d in item_list:
-		expense_head = d.expense_head or aii_account_map.get(d.company)
+		expense_account = d.expense_account or aii_account_map.get(d.company)
 		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, 
 			d.supplier_name, d.credit_to, d.project_name, d.company, d.purchase_order, 
-			d.purchase_receipt, expense_head, d.qty, d.rate, d.amount]
+			d.purchase_receipt, expense_account, d.qty, d.rate, d.amount]
 		for tax in tax_accounts:
 			row.append(item_tax.get(d.parent, {}).get(d.item_code, {}).get(tax, 0))
 
@@ -60,7 +60,7 @@
 	return webnotes.conn.sql("""select pi_item.parent, pi.posting_date, pi.credit_to, pi.company, 
 		pi.supplier, pi.remarks, pi_item.item_code, pi_item.item_name, pi_item.item_group, 
 		pi_item.project_name, pi_item.purchase_order, pi_item.purchase_receipt, 
-		pi_item.expense_head, pi_item.qty, pi_item.rate, pi_item.amount, pi.supplier_name
+		pi_item.expense_account, pi_item.qty, pi_item.rate, pi_item.amount, pi.supplier_name
 		from `tabPurchase Invoice` pi, `tabPurchase Invoice Item` pi_item 
 		where pi.name = pi_item.parent and pi.docstatus = 1 %s %s
 		order by pi.posting_date desc, pi_item.item_code desc""" % (conditions, match_conditions), filters, as_dict=1)
diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py
index 9225a08..d191cba 100644
--- a/erpnext/accounts/report/purchase_register/purchase_register.py
+++ b/erpnext/accounts/report/purchase_register/purchase_register.py
@@ -72,9 +72,9 @@
 	expense_accounts = tax_accounts = expense_columns = tax_columns = []
 	
 	if invoice_list:	
-		expense_accounts = webnotes.conn.sql_list("""select distinct expense_head 
-			from `tabPurchase Invoice Item` where docstatus = 1 and ifnull(expense_head, '') != '' 
-			and parent in (%s) order by expense_head""" % 
+		expense_accounts = webnotes.conn.sql_list("""select distinct expense_account 
+			from `tabPurchase Invoice Item` where docstatus = 1 and ifnull(expense_account, '') != '' 
+			and parent in (%s) order by expense_account""" % 
 			', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]))
 		
 		tax_accounts = 	webnotes.conn.sql_list("""select distinct account_head 
@@ -116,14 +116,14 @@
 	
 	
 def get_invoice_expense_map(invoice_list):
-	expense_details = webnotes.conn.sql("""select parent, expense_head, sum(amount) as amount
-		from `tabPurchase Invoice Item` where parent in (%s) group by parent, expense_head""" % 
+	expense_details = webnotes.conn.sql("""select parent, expense_account, sum(amount) as amount
+		from `tabPurchase Invoice Item` where parent in (%s) group by parent, expense_account""" % 
 		', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
 	
 	invoice_expense_map = {}
 	for d in expense_details:
-		invoice_expense_map.setdefault(d.parent, webnotes._dict()).setdefault(d.expense_head, [])
-		invoice_expense_map[d.parent][d.expense_head] = flt(d.amount)
+		invoice_expense_map.setdefault(d.parent, webnotes._dict()).setdefault(d.expense_account, [])
+		invoice_expense_map[d.parent][d.expense_account] = flt(d.amount)
 	
 	return invoice_expense_map
 	
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index 95250ba..aba37f0 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -102,7 +102,7 @@
 					},
 					callback: function(r) {
 						if(!r.exc) {
-							me.frm.script_manager.trigger("import_ref_rate", cdt, cdn);
+							me.frm.script_manager.trigger("price_list_rate", cdt, cdn);
 						}
 					}
 				});
@@ -114,29 +114,29 @@
 		this.get_price_list_currency("Buying");
 	},
 	
-	import_ref_rate: function(doc, cdt, cdn) {
+	price_list_rate: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
-		wn.model.round_floats_in(item, ["import_ref_rate", "discount_rate"]);
+		wn.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
 		
-		item.import_rate = flt(item.import_ref_rate * (1 - item.discount_rate / 100.0),
+		item.import_rate = flt(item.price_list_rate * (1 - item.discount_percentage / 100.0),
 			precision("import_rate", item));
 		
 		this.calculate_taxes_and_totals();
 	},
 	
-	discount_rate: function(doc, cdt, cdn) {
-		this.import_ref_rate(doc, cdt, cdn);
+	discount_percentage: function(doc, cdt, cdn) {
+		this.price_list_rate(doc, cdt, cdn);
 	},
 	
 	import_rate: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
-		wn.model.round_floats_in(item, ["import_rate", "discount_rate"]);
+		wn.model.round_floats_in(item, ["import_rate", "discount_percentage"]);
 		
-		if(item.import_ref_rate) {
-			item.discount_rate = flt((1 - item.import_rate / item.import_ref_rate) * 100.0,
-				precision("discount_rate", item));
+		if(item.price_list_rate) {
+			item.discount_percentage = flt((1 - item.import_rate / item.price_list_rate) * 100.0,
+				precision("discount_percentage", item));
 		} else {
-			item.discount_rate = 0.0;
+			item.discount_percentage = 0.0;
 		}
 		
 		this.calculate_taxes_and_totals();
@@ -235,7 +235,7 @@
 			item.import_amount = flt(item.import_rate * item.qty, precision("import_amount", item));
 			item.item_tax_amount = 0.0;
 			
-			me._set_in_company_currency(item, "import_ref_rate", "purchase_ref_rate");
+			me._set_in_company_currency(item, "price_list_rate", "base_price_list_rate");
 			me._set_in_company_currency(item, "import_rate", "rate");
 			me._set_in_company_currency(item, "import_amount", "amount");
 		});
@@ -414,10 +414,10 @@
 			});
 		};
 		
-		setup_field_label_map(["purchase_rate", "purchase_ref_rate", "amount", "rate"],
+		setup_field_label_map(["purchase_rate", "base_price_list_rate", "amount", "rate"],
 			company_currency, this.fname);
 		
-		setup_field_label_map(["import_rate", "import_ref_rate", "import_amount"],
+		setup_field_label_map(["import_rate", "price_list_rate", "import_amount"],
 			this.frm.doc.currency, this.fname);
 		
 		if(this.frm.fields_dict[this.other_fname]) {
@@ -431,7 +431,7 @@
 		
 		// toggle columns
 		var item_grid = this.frm.fields_dict[this.fname].grid;
-		var fieldnames = $.map(["purchase_rate", "purchase_ref_rate", "amount", "rate"], function(fname) {
+		var fieldnames = $.map(["purchase_rate", "base_price_list_rate", "amount", "rate"], function(fname) {
 			return wn.meta.get_docfield(item_grid.doctype, fname, me.frm.docname) ? fname : null;
 		});
 		
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.py b/erpnext/buying/doctype/purchase_common/purchase_common.py
index 72d86e9..2f96eda 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.py
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.py
@@ -55,19 +55,19 @@
 				last_purchase_details = get_last_purchase_details(d.item_code, doc_name)
 
 				if last_purchase_details:
-					d.purchase_ref_rate = last_purchase_details['purchase_ref_rate'] * (flt(d.conversion_factor) or 1.0)
-					d.discount_rate = last_purchase_details['discount_rate']
+					d.base_price_list_rate = last_purchase_details['base_price_list_rate'] * (flt(d.conversion_factor) or 1.0)
+					d.discount_percentage = last_purchase_details['discount_percentage']
 					d.purchase_rate = last_purchase_details['purchase_rate'] * (flt(d.conversion_factor) or 1.0)
-					d.import_ref_rate = d.purchase_ref_rate / conversion_rate
+					d.price_list_rate = d.base_price_list_rate / conversion_rate
 					d.import_rate = d.purchase_rate / conversion_rate
 				else:
 					# if no last purchase found, reset all values to 0
-					d.purchase_ref_rate = d.purchase_rate = d.import_ref_rate = d.import_rate = d.discount_rate = 0
+					d.base_price_list_rate = d.purchase_rate = d.price_list_rate = d.import_rate = d.discount_percentage = 0
 					
 					item_last_purchase_rate = webnotes.conn.get_value("Item",
 						d.item_code, "last_purchase_rate")
 					if item_last_purchase_rate:
-						d.purchase_ref_rate = d.purchase_rate = d.import_ref_rate \
+						d.base_price_list_rate = d.purchase_rate = d.price_list_rate \
 							= d.import_rate = item_last_purchase_rate
 			
 	def validate_for_items(self, obj):
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 00fb05e..a8b5101 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -91,10 +91,10 @@
 				
 			self.round_floats_in(item)
 
-			if item.discount_rate == 100.0:
+			if item.discount_percentage == 100.0:
 				item.import_rate = 0.0
 			elif not item.import_rate:
-				item.import_rate = flt(item.import_ref_rate * (1.0 - (item.discount_rate / 100.0)),
+				item.import_rate = flt(item.price_list_rate * (1.0 - (item.discount_percentage / 100.0)),
 					self.precision("import_rate", item))
 						
 			item.import_amount = flt(item.import_rate * item.qty,
@@ -102,7 +102,7 @@
 			item.item_tax_amount = 0.0;
 
 			self._set_in_company_currency(item, "import_amount", "amount")
-			self._set_in_company_currency(item, "import_ref_rate", "purchase_ref_rate")
+			self._set_in_company_currency(item, "price_list_rate", "base_price_list_rate")
 			self._set_in_company_currency(item, "import_rate", "rate")
 			
 			
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index a075ad4..feb9e81 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -117,12 +117,12 @@
 					
 				item.basic_rate = flt(item.amount / item.qty, self.precision("basic_rate", item))
 				
-				if item.adj_rate == 100:
-					item.base_ref_rate = item.basic_rate
+				if item.discount_percentage == 100:
+					item.base_price_list_rate = item.basic_rate
 					item.basic_rate = 0.0
 				else:
-					item.base_ref_rate = flt(item.basic_rate / (1 - (item.adj_rate / 100.0)),
-						self.precision("base_ref_rate", item))
+					item.base_price_list_rate = flt(item.basic_rate / (1 - (item.discount_percentage / 100.0)),
+						self.precision("base_price_list_rate", item))
 			
 	def get_current_tax_fraction(self, tax, item_tax_map):
 		"""
@@ -152,16 +152,16 @@
 			for item in self.item_doclist:
 				self.round_floats_in(item)
 
-				if item.adj_rate == 100:
+				if item.discount_percentage == 100:
 					item.export_rate = 0
 				elif not item.export_rate:
-					item.export_rate = flt(item.ref_rate * (1.0 - (item.adj_rate / 100.0)),
+					item.export_rate = flt(item.price_list_rate * (1.0 - (item.discount_percentage / 100.0)),
 						self.precision("export_rate", item))
 
 				item.export_amount = flt(item.export_rate * item.qty,
 					self.precision("export_amount", item))
 
-				self._set_in_company_currency(item, "ref_rate", "base_ref_rate")
+				self._set_in_company_currency(item, "price_list_rate", "base_price_list_rate")
 				self._set_in_company_currency(item, "export_rate", "basic_rate")
 				self._set_in_company_currency(item, "export_amount", "amount")
 
@@ -281,22 +281,22 @@
 		for d in self.doclist.get({"parentfield": self.fname}):
 			discount = flt(webnotes.conn.get_value("Item", d.item_code, "max_discount"))
 			
-			if discount and flt(d.adj_rate) > discount:
+			if discount and flt(d.discount_percentage) > discount:
 				webnotes.throw(_("You cannot give more than ") + cstr(discount) + "% " + 
 					_("discount on Item Code") + ": " + cstr(d.item_code))
 					
 	def get_item_list(self):
 		il = []
 		for d in self.doclist.get({"parentfield": self.fname}):
-			reserved_warehouse = ""
+			warehouse = ""
 			reserved_qty_for_main_item = 0
 			
 			if self.doc.doctype == "Sales Order":
 				if (webnotes.conn.get_value("Item", d.item_code, "is_stock_item") == 'Yes' or 
-					self.has_sales_bom(d.item_code)) and not d.reserved_warehouse:
+					self.has_sales_bom(d.item_code)) and not d.warehouse:
 						webnotes.throw(_("Please enter Reserved Warehouse for item ") + 
 							d.item_code + _(" as it is stock Item or packing item"))
-				reserved_warehouse = d.reserved_warehouse
+				warehouse = d.warehouse
 				if flt(d.qty) > flt(d.delivered_qty):
 					reserved_qty_for_main_item = flt(d.qty) - flt(d.delivered_qty)
 				
@@ -306,7 +306,7 @@
 				
 				already_delivered_qty = self.get_already_delivered_qty(self.doc.name, 
 					d.against_sales_order, d.prevdoc_detail_docname)
-				so_qty, reserved_warehouse = self.get_so_qty_and_warehouse(d.prevdoc_detail_docname)
+				so_qty, warehouse = self.get_so_qty_and_warehouse(d.prevdoc_detail_docname)
 				
 				if already_delivered_qty + d.qty > so_qty:
 					reserved_qty_for_main_item = -(so_qty - already_delivered_qty)
@@ -319,7 +319,7 @@
 						# the packing details table's qty is already multiplied with parent's qty
 						il.append(webnotes._dict({
 							'warehouse': p.warehouse,
-							'reserved_warehouse': reserved_warehouse,
+							'warehouse': warehouse,
 							'item_code': p.item_code,
 							'qty': flt(p.qty),
 							'reserved_qty': (flt(p.qty)/flt(d.qty)) * reserved_qty_for_main_item,
@@ -331,7 +331,7 @@
 			else:
 				il.append(webnotes._dict({
 					'warehouse': d.warehouse,
-					'reserved_warehouse': reserved_warehouse,
+					'warehouse': warehouse,
 					'item_code': d.item_code,
 					'qty': d.qty,
 					'reserved_qty': reserved_qty_for_main_item,
@@ -354,10 +354,10 @@
 		return qty and flt(qty[0][0]) or 0.0
 
 	def get_so_qty_and_warehouse(self, so_detail):
-		so_item = webnotes.conn.sql("""select qty, reserved_warehouse from `tabSales Order Item`
+		so_item = webnotes.conn.sql("""select qty, warehouse from `tabSales Order Item`
 			where name = %s and docstatus = 1""", so_detail, as_dict=1)
 		so_qty = so_item and flt(so_item[0]["qty"]) or 0.0
-		so_warehouse = so_item and so_item[0]["reserved_warehouse"] or ""
+		so_warehouse = so_item and so_item[0]["warehouse"] or ""
 		return so_qty, so_warehouse
 		
 	def check_stop_sales_order(self, ref_fieldname):
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 45e96f7..5ac78bf 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -121,7 +121,7 @@
 				if not self.doc.buying_price_list:
 					webnotes.throw(_("Please select Price List"))
 				rate = webnotes.conn.get_value("Item Price", {"price_list": self.doc.buying_price_list, 
-					"item_code": arg["item_code"]}, "ref_rate") or 0
+					"item_code": arg["item_code"]}, "price_list_rate") or 0
 			elif self.doc.rm_cost_as_per == 'Standard Rate':
 				rate = arg['standard_rate']
 
@@ -415,8 +415,8 @@
 				item.description, 
 				item.stock_uom,
 				item.default_warehouse,
-				item.purchase_account as expense_account,
-				item.cost_center
+				item.expense_account as expense_account,
+				item.buying_cost_center
 			from 
 				`tab%(table)s` bom_item, `tabItem` item 
 			where 
diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
index ac4b0fa..371b02c 100644
--- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
+++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
@@ -108,7 +108,7 @@
 			msgprint(_("Please enter sales order in the above table"))
 			return []
 			
-		items = webnotes.conn.sql("""select distinct parent, item_code, reserved_warehouse,
+		items = webnotes.conn.sql("""select distinct parent, item_code, warehouse,
 			(qty - ifnull(delivered_qty, 0)) as pending_qty
 			from `tabSales Order Item` so_item
 			where parent in (%s) and docstatus = 1 and ifnull(qty, 0) > ifnull(delivered_qty, 0)
@@ -140,7 +140,7 @@
 				from tabItem where name=%s""", p['item_code'])
 			pi = addchild(self.doc, 'pp_details', 'Production Plan Item', self.doclist)
 			pi.sales_order				= p['parent']
-			pi.warehouse				= p['reserved_warehouse']
+			pi.warehouse				= p['warehouse']
 			pi.item_code				= p['item_code']
 			pi.description				= item_details and item_details[0][0] or ''
 			pi.stock_uom				= item_details and item_details[0][1] or ''
diff --git a/erpnext/public/js/feature_setup.js b/erpnext/public/js/feature_setup.js
index f6f32d5..2c560d7 100644
--- a/erpnext/public/js/feature_setup.js
+++ b/erpnext/public/js/feature_setup.js
@@ -31,15 +31,15 @@
 		//'Sales Order': {'fields':['packing_details']}
 	},
 	'fs_discounts': {
-		'Delivery Note': {'delivery_note_details':['adj_rate']},
-		'Quotation': {'quotation_details':['adj_rate']},
-		'Sales Invoice': {'entries':['adj_rate']},
-		'Sales Order': {'sales_order_details':['adj_rate','ref_rate']}
+		'Delivery Note': {'delivery_note_details':['discount_percentage']},
+		'Quotation': {'quotation_details':['discount_percentage']},
+		'Sales Invoice': {'entries':['discount_percentage']},
+		'Sales Order': {'sales_order_details':['discount_percentage','price_list_rate']}
 	},
 	'fs_purchase_discounts': {
-		'Purchase Order': {'po_details':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']},
-		'Purchase Receipt': {'purchase_receipt_details':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']},
-		'Purchase Invoice': {'entries':['purchase_ref_rate', 'discount_rate', 'import_ref_rate']}
+		'Purchase Order': {'po_details':['base_price_list_rate', 'discount_percentage', 'price_list_rate']},
+		'Purchase Receipt': {'purchase_receipt_details':['base_price_list_rate', 'discount_percentage', 'price_list_rate']},
+		'Purchase Invoice': {'entries':['base_price_list_rate', 'discount_percentage', 'price_list_rate']}
 	},
 	'fs_brands': {
 		'Delivery Note': {'delivery_note_details':['brand']},
@@ -114,12 +114,12 @@
 		'Sales Order': {'sales_order_details':['page_break']}
 	},
 	'fs_exports': {
-		'Delivery Note': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'delivery_note_details':['base_ref_rate','amount','basic_rate']},
+		'Delivery Note': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'delivery_note_details':['base_price_list_rate','amount','basic_rate']},
 		'POS Setting': {'fields':['conversion_rate','currency']},
-		'Quotation': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'quotation_details':['base_ref_rate','amount','basic_rate']},
-		'Sales Invoice': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'entries':['base_ref_rate','amount','basic_rate']},
+		'Quotation': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'quotation_details':['base_price_list_rate','amount','basic_rate']},
+		'Sales Invoice': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'entries':['base_price_list_rate','amount','basic_rate']},
 		'Sales BOM': {'fields':['currency']},
-		'Sales Order': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'sales_order_details':['base_ref_rate','amount','basic_rate']}
+		'Sales Order': {'fields':['conversion_rate','currency','grand_total','in_words','rounded_total'],'sales_order_details':['base_price_list_rate','amount','basic_rate']}
 	},
 	
 	'fs_imports': {
@@ -127,18 +127,18 @@
 			'fields': ['conversion_rate', 'currency', 'grand_total',
 		 		'in_words', 'net_total', 'other_charges_added',
 		 		'other_charges_deducted'], 
-			'entries': ['purchase_ref_rate', 'amount','rate']
+			'entries': ['base_price_list_rate', 'amount','rate']
 		},
 		'Purchase Order': {
 			'fields': ['conversion_rate','currency', 'grand_total',
 			'in_words', 'net_total', 'other_charges_added',
 			 'other_charges_deducted'],
-			'po_details': ['purchase_ref_rate', 'amount','purchase_rate']
+			'po_details': ['base_price_list_rate', 'amount','purchase_rate']
 		},
 		'Purchase Receipt': {
 			'fields': ['conversion_rate', 'currency','grand_total', 'in_words',
 			 	'net_total', 'other_charges_added', 'other_charges_deducted'],
-			'purchase_receipt_details': ['purchase_ref_rate','amount','purchase_rate']
+			'purchase_receipt_details': ['base_price_list_rate','amount','purchase_rate']
 		},
 		'Supplier Quotation': {
 			'fields':['conversion_rate','currency']
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index f393945..1402049 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -85,15 +85,15 @@
 		this.get_terms();
 	},
 	
-	reserved_warehouse: function(doc, cdt, cdn) {
+	warehouse: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
-		if(item.item_code && item.reserved_warehouse) {
+		if(item.item_code && item.warehouse) {
 			return this.frm.call({
 				method: "erpnext.selling.utils.get_available_qty",
 				child: item,
 				args: {
 					item_code: item.item_code,
-					warehouse: item.reserved_warehouse,
+					warehouse: item.warehouse,
 				},
 			});
 		}
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 8e7a89d..fc33d6c 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -49,11 +49,11 @@
 		check_list, flag = [], 0
 		chk_dupl_itm = []
 		for d in getlist(self.doclist, 'sales_order_details'):
-			e = [d.item_code, d.description, d.reserved_warehouse, d.prevdoc_docname or '']
+			e = [d.item_code, d.description, d.warehouse, d.prevdoc_docname or '']
 			f = [d.item_code, d.description]
 
 			if webnotes.conn.get_value("Item", d.item_code, "is_stock_item") == 'Yes':
-				if not d.reserved_warehouse:
+				if not d.warehouse:
 					msgprint("""Please enter Reserved Warehouse for item %s 
 						as it is stock Item""" % d.item_code, raise_exception=1)
 				
@@ -71,7 +71,7 @@
 			d.transaction_date = self.doc.transaction_date
 			
 			tot_avail_qty = webnotes.conn.sql("select projected_qty from `tabBin` \
-				where item_code = '%s' and warehouse = '%s'" % (d.item_code,d.reserved_warehouse))
+				where item_code = '%s' and warehouse = '%s'" % (d.item_code,d.warehouse))
 			d.projected_qty = tot_avail_qty and flt(tot_avail_qty[0][0]) or 0
 
 	def validate_sales_mntc_quotation(self):
@@ -130,8 +130,8 @@
 	def validate_warehouse(self):
 		from erpnext.stock.utils import validate_warehouse_company
 		
-		warehouses = list(set([d.reserved_warehouse for d in 
-			self.doclist.get({"doctype": self.tname}) if d.reserved_warehouse]))
+		warehouses = list(set([d.warehouse for d in 
+			self.doclist.get({"doctype": self.tname}) if d.warehouse]))
 				
 		for w in warehouses:
 			validate_warehouse_company(w, self.doc.company)
@@ -235,7 +235,7 @@
 			if webnotes.conn.get_value("Item", d['item_code'], "is_stock_item") == "Yes":
 				args = {
 					"item_code": d['item_code'],
-					"warehouse": d['reserved_warehouse'], 
+					"warehouse": d['warehouse'], 
 					"reserved_qty": flt(update_stock) * flt(d['reserved_qty']),
 					"posting_date": self.doc.transaction_date,
 					"voucher_type": self.doc.doctype,
@@ -270,7 +270,7 @@
 			"doctype": "Material Request Item", 
 			"field_map": {
 				"parent": "sales_order_no", 
-				"reserved_warehouse": "warehouse", 
+				"warehouse": "warehouse", 
 				"stock_uom": "uom"
 			}
 		}
@@ -302,7 +302,7 @@
 				"export_rate": "export_rate", 
 				"name": "prevdoc_detail_docname", 
 				"parent": "against_sales_order", 
-				"reserved_warehouse": "warehouse"
+				"warehouse": "warehouse"
 			},
 			"postprocess": update_item,
 			"condition": lambda doc: doc.delivered_qty < doc.qty
@@ -343,7 +343,7 @@
 			"field_map": {
 				"name": "so_detail", 
 				"parent": "sales_order", 
-				"reserved_warehouse": "warehouse"
+				"warehouse": "warehouse"
 			},
 			"postprocess": update_item,
 			"condition": lambda doc: doc.amount==0 or doc.billed_amt < doc.export_amount
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index 4ee166c..6e0f927 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -106,20 +106,20 @@
 		
 	def test_reserved_qty_for_so(self):
 		# reset bin
-		self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["reserved_warehouse"])
+		self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["warehouse"])
 		
 		# submit
 		so = self.create_so()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 10.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 10.0)
 		
 		# cancel
 		so.cancel()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 0.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 0.0)
 		
 	
 	def test_reserved_qty_for_partial_delivery(self):
 		# reset bin
-		self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["reserved_warehouse"])
+		self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["warehouse"])
 		
 		# submit so
 		so = self.create_so()
@@ -130,25 +130,25 @@
 		# submit dn
 		dn = self.create_dn_against_so(so)
 		
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 5.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 5.0)
 		
 		# stop so
 		so.load_from_db()
 		so.obj.stop_sales_order()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 0.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 0.0)
 		
 		# unstop so
 		so.load_from_db()
 		so.obj.unstop_sales_order()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 5.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 5.0)
 		
 		# cancel dn
 		dn.cancel()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 10.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 10.0)
 		
 	def test_reserved_qty_for_over_delivery(self):
 		# reset bin
-		self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["reserved_warehouse"])
+		self.delete_bin(test_records[0][1]["item_code"], test_records[0][1]["warehouse"])
 		
 		# submit so
 		so = self.create_so()
@@ -161,11 +161,11 @@
 		
 		# submit dn
 		dn = self.create_dn_against_so(so, 15)
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 0.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 0.0)
 
 		# cancel dn
 		dn.cancel()
-		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].reserved_warehouse, 10.0)
+		self.check_reserved_qty(so.doclist[1].item_code, so.doclist[1].warehouse, 10.0)
 		
 	def test_reserved_qty_for_so_with_packing_list(self):
 		from erpnext.selling.doctype.sales_bom.test_sales_bom import test_records as sbom_test_records
@@ -175,24 +175,24 @@
 		test_record[1]["item_code"] = "_Test Sales BOM Item"
 		
 		# reset bin
-		self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["reserved_warehouse"])
-		self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["reserved_warehouse"])
+		self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["warehouse"])
+		self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["warehouse"])
 		
 		# submit
 		so = self.create_so(test_record)
 		
 		
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 50.0)
+			so.doclist[1].warehouse, 50.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 20.0)
+			so.doclist[1].warehouse, 20.0)
 		
 		# cancel
 		so.cancel()
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 0.0)
+			so.doclist[1].warehouse, 0.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 0.0)
+			so.doclist[1].warehouse, 0.0)
 			
 	def test_reserved_qty_for_partial_delivery_with_packing_list(self):
 		from erpnext.selling.doctype.sales_bom.test_sales_bom import test_records as sbom_test_records
@@ -203,8 +203,8 @@
 		test_record[1]["item_code"] = "_Test Sales BOM Item"
 
 		# reset bin
-		self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["reserved_warehouse"])
-		self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["reserved_warehouse"])
+		self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["warehouse"])
+		self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["warehouse"])
 		
 		# submit
 		so = self.create_so(test_record)
@@ -216,33 +216,33 @@
 		dn = self.create_dn_against_so(so)
 		
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 25.0)
+			so.doclist[1].warehouse, 25.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 10.0)
+			so.doclist[1].warehouse, 10.0)
 				
 		# stop so
 		so.load_from_db()
 		so.obj.stop_sales_order()
 		
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 0.0)
+			so.doclist[1].warehouse, 0.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 0.0)
+			so.doclist[1].warehouse, 0.0)
 		
 		# unstop so
 		so.load_from_db()
 		so.obj.unstop_sales_order()
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 25.0)
+			so.doclist[1].warehouse, 25.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 10.0)
+			so.doclist[1].warehouse, 10.0)
 		
 		# cancel dn
 		dn.cancel()
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 50.0)
+			so.doclist[1].warehouse, 50.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 20.0)
+			so.doclist[1].warehouse, 20.0)
 			
 	def test_reserved_qty_for_over_delivery_with_packing_list(self):
 		from erpnext.selling.doctype.sales_bom.test_sales_bom import test_records as sbom_test_records
@@ -252,8 +252,8 @@
 		test_record[1]["item_code"] = "_Test Sales BOM Item"
 
 		# reset bin
-		self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["reserved_warehouse"])
-		self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["reserved_warehouse"])
+		self.delete_bin(sbom_test_records[0][1]["item_code"], test_record[1]["warehouse"])
+		self.delete_bin(sbom_test_records[0][2]["item_code"], test_record[1]["warehouse"])
 		
 		# submit
 		so = self.create_so(test_record)
@@ -268,16 +268,16 @@
 		dn = self.create_dn_against_so(so, 15)
 		
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 0.0)
+			so.doclist[1].warehouse, 0.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 0.0)
+			so.doclist[1].warehouse, 0.0)
 
 		# cancel dn
 		dn.cancel()
 		self.check_reserved_qty(sbom_test_records[0][1]["item_code"], 
-			so.doclist[1].reserved_warehouse, 50.0)
+			so.doclist[1].warehouse, 50.0)
 		self.check_reserved_qty(sbom_test_records[0][2]["item_code"], 
-			so.doclist[1].reserved_warehouse, 20.0)
+			so.doclist[1].warehouse, 20.0)
 
 	def test_warehouse_user(self):
 		webnotes.defaults.add_default("Warehouse", "_Test Warehouse 1 - _TC1", "test@example.com", "Restriction")
@@ -294,7 +294,7 @@
 		so.doc.company = "_Test Company 1"
 		so.doc.conversion_rate = 0.02
 		so.doc.plc_conversion_rate = 0.02
-		so.doclist[1].reserved_warehouse = "_Test Warehouse 2 - _TC1"
+		so.doclist[1].warehouse = "_Test Warehouse 2 - _TC1"
 		self.assertRaises(BeanPermissionError, so.insert)
 
 		webnotes.set_user("test2@example.com")
@@ -336,7 +336,7 @@
 			"basic_rate": 100.0,
 			"export_rate": 100.0,
 			"amount": 1000.0,
-			"reserved_warehouse": "_Test Warehouse - _TC",
+			"warehouse": "_Test Warehouse - _TC",
 		}
 	],	
 ]
\ No newline at end of file
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index bfc1ad1..4ea9cf4 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -151,7 +151,7 @@
 					},
 					callback: function(r) {
 						if(!r.exc) {
-							me.frm.script_manager.trigger("ref_rate", cdt, cdn);
+							me.frm.script_manager.trigger("price_list_rate", cdt, cdn);
 						}
 					}
 				});
@@ -163,34 +163,34 @@
 		this.get_price_list_currency("Selling");
 	},
 	
-	ref_rate: function(doc, cdt, cdn) {
+	price_list_rate: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
-		wn.model.round_floats_in(item, ["ref_rate", "adj_rate"]);
+		wn.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
 		
-		item.export_rate = flt(item.ref_rate * (1 - item.adj_rate / 100.0),
+		item.export_rate = flt(item.price_list_rate * (1 - item.discount_percentage / 100.0),
 			precision("export_rate", item));
 		
 		this.calculate_taxes_and_totals();
 	},
 	
-	adj_rate: function(doc, cdt, cdn) {
+	discount_percentage: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
-		if(!item.ref_rate) {
-			item.adj_rate = 0.0;
+		if(!item.price_list_rate) {
+			item.discount_percentage = 0.0;
 		} else {
-			this.ref_rate(doc, cdt, cdn);
+			this.price_list_rate(doc, cdt, cdn);
 		}
 	},
 	
 	export_rate: function(doc, cdt, cdn) {
 		var item = wn.model.get_doc(cdt, cdn);
-		wn.model.round_floats_in(item, ["export_rate", "ref_rate"]);
+		wn.model.round_floats_in(item, ["export_rate", "price_list_rate"]);
 		
-		if(item.ref_rate) {
-			item.adj_rate = flt((1 - item.export_rate / item.ref_rate) * 100.0,
-				precision("adj_rate", item));
+		if(item.price_list_rate) {
+			item.discount_percentage = flt((1 - item.export_rate / item.price_list_rate) * 100.0,
+				precision("discount_percentage", item));
 		} else {
-			item.adj_rate = 0.0;
+			item.discount_percentage = 0.0;
 		}
 		
 		this.calculate_taxes_and_totals();
@@ -263,7 +263,7 @@
 	},
 	
 	toggle_editable_price_list_rate: function() {
-		var df = wn.meta.get_docfield(this.tname, "ref_rate", this.frm.doc.name);
+		var df = wn.meta.get_docfield(this.tname, "price_list_rate", this.frm.doc.name);
 		var editable_price_list_rate = cint(wn.defaults.get_default("editable_price_list_rate"));
 		
 		if(df && editable_price_list_rate) {
@@ -290,7 +290,7 @@
 				wn.model.round_floats_in(item);
 				item.export_amount = flt(item.export_rate * item.qty, precision("export_amount", item));
 
-				me._set_in_company_currency(item, "ref_rate", "base_ref_rate");
+				me._set_in_company_currency(item, "price_list_rate", "base_price_list_rate");
 				me._set_in_company_currency(item, "export_rate", "basic_rate");
 				me._set_in_company_currency(item, "export_amount", "amount");
 			});
@@ -324,12 +324,12 @@
 
 				item.basic_rate = flt(item.amount / item.qty, precision("basic_rate", item));
 				
-				if(item.adj_rate == 100) {
-					item.base_ref_rate = item.basic_rate;
+				if(item.discount_percentage == 100) {
+					item.base_price_list_rate = item.basic_rate;
 					item.basic_rate = 0.0;
 				} else {
-					item.base_ref_rate = flt(item.basic_rate / (1 - item.adj_rate / 100.0),
-						precision("base_ref_rate", item));
+					item.base_price_list_rate = flt(item.basic_rate / (1 - item.discount_percentage / 100.0),
+						precision("base_price_list_rate", item));
 				}
 			}
 		});
@@ -560,10 +560,10 @@
 			});
 		}
 		
-		setup_field_label_map(["basic_rate", "base_ref_rate", "amount"],
+		setup_field_label_map(["basic_rate", "base_price_list_rate", "amount"],
 			company_currency, this.fname);
 		
-		setup_field_label_map(["export_rate", "ref_rate", "export_amount"],
+		setup_field_label_map(["export_rate", "price_list_rate", "export_amount"],
 			this.frm.doc.currency, this.fname);
 		
 		setup_field_label_map(["tax_amount", "total"], company_currency, "other_charges");
@@ -579,7 +579,7 @@
 			(wn.model.get_doclist(cur_frm.doctype, cur_frm.docname, 
 				{parentfield: "other_charges", included_in_print_rate: 1}).length);
 		
-		$.each(["basic_rate", "base_ref_rate", "amount"], function(i, fname) {
+		$.each(["basic_rate", "base_price_list_rate", "amount"], function(i, fname) {
 			if(wn.meta.get_docfield(item_grid.doctype, fname))
 				item_grid.set_column_disp(fname, show);
 		});
diff --git a/erpnext/setup/doctype/authorization_control/authorization_control.py b/erpnext/setup/doctype/authorization_control/authorization_control.py
index 6df0915..014ca2c 100644
--- a/erpnext/setup/doctype/authorization_control/authorization_control.py
+++ b/erpnext/setup/doctype/authorization_control/authorization_control.py
@@ -89,7 +89,7 @@
 		if based_on == 'Itemwise Discount':
 			if doc_obj:
 				for t in getlist(doc_obj.doclist, doc_obj.fname):
-					self.validate_auth_rule(doctype_name, t.adj_rate, based_on, add_cond, company,t.item_code )
+					self.validate_auth_rule(doctype_name, t.discount_percentage, based_on, add_cond, company,t.item_code )
 		else:
 			self.validate_auth_rule(doctype_name, auth_value, based_on, add_cond, company)
 
@@ -99,12 +99,12 @@
 	def validate_approving_authority(self, doctype_name,company, total, doc_obj = ''):
 		av_dis = 0
 		if doc_obj:
-			ref_rate, basic_rate = 0, 0
+			price_list_rate, basic_rate = 0, 0
 			for d in getlist(doc_obj.doclist, doc_obj.fname):
-				if d.base_ref_rate and d.basic_rate:
-					ref_rate += flt(d.base_ref_rate)
+				if d.base_price_list_rate and d.basic_rate:
+					price_list_rate += flt(d.base_price_list_rate)
 					basic_rate += flt(d.basic_rate)
-			if ref_rate: av_dis = 100 - flt(basic_rate * 100 / ref_rate)
+			if price_list_rate: av_dis = 100 - flt(basic_rate * 100 / price_list_rate)
 
 		final_based_on = ['Grand Total','Average Discount','Customerwise Discount','Itemwise Discount']
 		# Individual User
diff --git a/erpnext/startup/report_data_map.py b/erpnext/startup/report_data_map.py
index b981d55..df1ab34 100644
--- a/erpnext/startup/report_data_map.py
+++ b/erpnext/startup/report_data_map.py
@@ -132,11 +132,10 @@
 	},
 	
 	"Sales Order Item": {
-		"columns": ["item.name as name", "item_code", "(ifnull(qty, 0) - ifnull(delivered_qty, 0)) as qty", 
-			"reserved_warehouse as warehouse"],
+		"columns": ["item.name as name", "item_code", "(ifnull(qty, 0) - ifnull(delivered_qty, 0)) as qty", "warehouse"],
 		"from": "`tabSales Order Item` item, `tabSales Order` main",
 		"conditions": ["item.parent = main.name", "main.docstatus=1", "main.status != 'Stopped'", 
-			"ifnull(reserved_warehouse, '')!=''", "ifnull(qty, 0) > ifnull(delivered_qty, 0)"],
+			"ifnull(warehouse, '')!=''", "ifnull(qty, 0) > ifnull(delivered_qty, 0)"],
 		"links": {
 			"item_code": ["Item", "name"],
 			"warehouse": ["Warehouse", "name"]
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 56329a1..ca2f705 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -135,8 +135,8 @@
 	if (doc.print_without_amount) {
 		dn_fields['currency'].print_hide = 1;
 		dn_item_fields['export_rate'].print_hide = 1;
-		dn_item_fields['adj_rate'].print_hide = 1;
-		dn_item_fields['ref_rate'].print_hide = 1;
+		dn_item_fields['discount_percentage'].print_hide = 1;
+		dn_item_fields['price_list_rate'].print_hide = 1;
 		dn_item_fields['export_amount'].print_hide = 1;
 	} else {
 		if (dn_fields_copy['currency'].print_hide != 1)
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index be0b95f..d7fe06a 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -242,12 +242,12 @@
 	def update_reserved_qty(self, d):
 		if d['reserved_qty'] < 0 :
 			# Reduce reserved qty from reserved warehouse mentioned in so
-			if not d["reserved_warehouse"]:
+			if not d["warehouse"]:
 				webnotes.throw(_("Reserved Warehouse is missing in Sales Order"))
 				
 			args = {
 				"item_code": d['item_code'],
-				"warehouse": d["reserved_warehouse"],
+				"warehouse": d["warehouse"],
 				"voucher_type": self.doc.doctype,
 				"voucher_no": self.doc.name,
 				"reserved_qty": (self.doc.docstatus==1 and 1 or -1)*flt(d['reserved_qty']),
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 1e89dc1..bc29758 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -52,7 +52,7 @@
 
 // Expense Account
 // ---------------------------------
-cur_frm.fields_dict['purchase_account'].get_query = function(doc) {
+cur_frm.fields_dict['expense_account'].get_query = function(doc) {
 	return {
 		filters: {
 			'debit_or_credit': "Debit",
@@ -76,7 +76,7 @@
 
 // Purchase Cost Center
 // -----------------------------
-cur_frm.fields_dict['cost_center'].get_query = function(doc) {
+cur_frm.fields_dict['buying_cost_center'].get_query = function(doc) {
 	return {
 		filters:{ 'group_or_ledger': "Ledger" }
 	}
@@ -85,7 +85,7 @@
 
 // Sales Cost Center
 // -----------------------------
-cur_frm.fields_dict['default_sales_cost_center'].get_query = function(doc) {
+cur_frm.fields_dict['selling_cost_center'].get_query = function(doc) {
 	return {
 		filters:{ 'group_or_ledger': "Ledger" }
 	}
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index b17ec4f..37cd346 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -310,8 +310,8 @@
 	# get last purchase order item details
 	last_purchase_order = webnotes.conn.sql("""\
 		select po.name, po.transaction_date, po.conversion_rate,
-			po_item.conversion_factor, po_item.purchase_ref_rate, 
-			po_item.discount_rate, po_item.purchase_rate
+			po_item.conversion_factor, po_item.base_price_list_rate, 
+			po_item.discount_percentage, po_item.purchase_rate
 		from `tabPurchase Order` po, `tabPurchase Order Item` po_item
 		where po.docstatus = 1 and po_item.item_code = %s and po.name != %s and 
 			po.name = po_item.parent
@@ -321,7 +321,7 @@
 	# get last purchase receipt item details		
 	last_purchase_receipt = webnotes.conn.sql("""\
 		select pr.name, pr.posting_date, pr.posting_time, pr.conversion_rate,
-			pr_item.conversion_factor, pr_item.purchase_ref_rate, pr_item.discount_rate,
+			pr_item.conversion_factor, pr_item.base_price_list_rate, pr_item.discount_percentage,
 			pr_item.purchase_rate
 		from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item
 		where pr.docstatus = 1 and pr_item.item_code = %s and pr.name != %s and
@@ -351,15 +351,15 @@
 	
 	conversion_factor = flt(last_purchase.conversion_factor)
 	out = webnotes._dict({
-		"purchase_ref_rate": flt(last_purchase.purchase_ref_rate) / conversion_factor,
+		"base_price_list_rate": flt(last_purchase.base_price_list_rate) / conversion_factor,
 		"purchase_rate": flt(last_purchase.purchase_rate) / conversion_factor,
-		"discount_rate": flt(last_purchase.discount_rate),
+		"discount_percentage": flt(last_purchase.discount_percentage),
 		"purchase_date": purchase_date
 	})
 
 	conversion_rate = flt(conversion_rate) or 1.0
 	out.update({
-		"import_ref_rate": out.purchase_ref_rate / conversion_rate,
+		"price_list_rate": out.base_price_list_rate / conversion_rate,
 		"import_rate": out.purchase_rate / conversion_rate,
 		"rate": out.purchase_rate
 	})
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index ad25ef8..a230ce1 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -81,7 +81,7 @@
 		"stock_uom": "_Test UOM",
 		"default_income_account": "Sales - _TC",
 		"default_warehouse": "_Test Warehouse - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"selling_cost_center": "_Test Cost Center - _TC",
 	}, {
 		"doctype": "Item Reorder",
@@ -111,7 +111,7 @@
 		"stock_uom": "_Test UOM",
 		"default_income_account": "Sales - _TC",
 		"default_warehouse": "_Test Warehouse - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC"
+		"expense_account": "_Test Account Cost for Goods Sold - _TC"
 	}],	
 	[{
 		"doctype": "Item",
@@ -121,7 +121,7 @@
 		"item_group": "_Test Item Group Desktops",
 		"default_warehouse": "_Test Warehouse - _TC",
 		"default_income_account": "Sales - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"is_stock_item": "Yes",
 		"is_asset_item": "No",
 		"has_batch_no": "No",
@@ -148,7 +148,7 @@
 		"item_group": "_Test Item Group Desktops",
 		"default_warehouse": "_Test Warehouse - _TC",
 		"default_income_account": "Sales - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"is_stock_item": "Yes",
 		"is_asset_item": "No",
 		"has_batch_no": "No",
@@ -169,7 +169,7 @@
 		"description": "_Test Sales BOM Item",
 		"item_group": "_Test Item Group Desktops",
 		"default_income_account": "Sales - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"is_stock_item": "No",
 		"is_asset_item": "No",
 		"has_batch_no": "No",
@@ -191,7 +191,7 @@
 		"is_stock_item": "Yes",
 		"default_warehouse": "_Test Warehouse - _TC",
 		"default_income_account": "Sales - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"is_asset_item": "No",
 		"has_batch_no": "No",
 		"has_serial_no": "No",
@@ -268,7 +268,7 @@
 		"item_group": "_Test Item Group Desktops",
 		"default_warehouse": "_Test Warehouse - _TC",
 		"default_income_account": "Sales - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"is_stock_item": "Yes",
 		"is_asset_item": "No",
 		"has_batch_no": "No",
@@ -291,7 +291,7 @@
 		"is_stock_item": "Yes",
 		"default_warehouse": "_Test Warehouse - _TC",
 		"default_income_account": "Sales - _TC",
-		"purchase_account": "_Test Account Cost for Goods Sold - _TC",
+		"expense_account": "_Test Account Cost for Goods Sold - _TC",
 		"is_asset_item": "No",
 		"has_batch_no": "No",
 		"has_serial_no": "No",
diff --git a/erpnext/stock/doctype/item_price/test_item_price.py b/erpnext/stock/doctype/item_price/test_item_price.py
index bc695ea..ee97fc4 100644
--- a/erpnext/stock/doctype/item_price/test_item_price.py
+++ b/erpnext/stock/doctype/item_price/test_item_price.py
@@ -17,7 +17,7 @@
 			"doctype": "Item Price",
 			"price_list": "_Test Price List",
 			"item_code": "_Test Item",
-			"ref_rate": 100
+			"price_list_rate": 100
 		}
 	]
 ]
\ No newline at end of file
diff --git a/erpnext/stock/doctype/packed_item/packed_item.py b/erpnext/stock/doctype/packed_item/packed_item.py
index ba3cb30..d92b503 100644
--- a/erpnext/stock/doctype/packed_item/packed_item.py
+++ b/erpnext/stock/doctype/packed_item/packed_item.py
@@ -65,7 +65,7 @@
 	parent_items = []
 	for d in obj.doclist.get({"parentfield": item_table_fieldname}):
 		warehouse = (item_table_fieldname == "sales_order_details") \
-			and d.reserved_warehouse or d.warehouse
+			and d.warehouse or d.warehouse
 		if webnotes.conn.get_value("Sales BOM", {"new_item_code": d.item_code}):
 			for i in get_sales_bom_items(d.item_code):
 				update_packing_list_item(obj, i['item_code'], flt(i['qty'])*flt(d.qty), 
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 161a3ad..d841ef3 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -373,7 +373,7 @@
 	def get_item_details(self, arg):
 		arg = json.loads(arg)
 		item = webnotes.conn.sql("""select stock_uom, description, item_name, 
-			purchase_account, cost_center from `tabItem` 
+			expense_account, buying_cost_center from `tabItem` 
 			where name = %s and (ifnull(end_of_life,'')='' or end_of_life ='0000-00-00' 
 			or end_of_life > now())""", (arg.get('item_code')), as_dict = 1)
 		if not item: 
@@ -384,9 +384,9 @@
 			'stock_uom'			  	: item and item[0]['stock_uom'] or '',
 			'description'		  	: item and item[0]['description'] or '',
 			'item_name' 		  	: item and item[0]['item_name'] or '',
-			'expense_account'		: item and item[0]['purchase_account'] or arg.get("expense_account") \
+			'expense_account'		: item and item[0]['expense_account'] or arg.get("expense_account") \
 				or webnotes.conn.get_value("Company", arg.get("company"), "default_expense_account"),
-			'cost_center'			: item and item[0]['cost_center'] or arg.get("cost_center"),
+			'cost_center'			: item and item[0]['buying_cost_center'] or arg.get("cost_center"),
 			'qty'					: 0,
 			'transfer_qty'			: 0,
 			'conversion_factor'		: 1,
@@ -464,7 +464,7 @@
 			# add finished good item to Stock Entry Detail table -- along with bom_no
 			if self.doc.production_order and self.doc.purpose == "Manufacture/Repack":
 				item = webnotes.conn.get_value("Item", pro_obj.doc.production_item, ["item_name", 
-					"description", "stock_uom", "purchase_account", "cost_center"], as_dict=1)
+					"description", "stock_uom", "expense_account", "buying_cost_center"], as_dict=1)
 				self.add_to_stock_entry_detail({
 					cstr(pro_obj.doc.production_item): {
 						"to_warehouse": pro_obj.doc.fg_warehouse,
@@ -473,8 +473,8 @@
 						"item_name": item.item_name,
 						"description": item.description,
 						"stock_uom": item.stock_uom,
-						"expense_account": item.purchase_account,
-						"cost_center": item.cost_center,
+						"expense_account": item.expense_account,
+						"cost_center": item.buying_cost_center,
 					}
 				}, bom_no=pro_obj.doc.bom_no, idx=idx)
 								
@@ -483,7 +483,7 @@
 					self.doc.from_warehouse = ""
 					
 				item = webnotes.conn.sql("""select name, item_name, description, 
-					stock_uom, purchase_account, cost_center from `tabItem` 
+					stock_uom, expense_account, buying_cost_center from `tabItem` 
 					where name=(select item from tabBOM where name=%s)""", 
 					self.doc.bom_no, as_dict=1)
 				self.add_to_stock_entry_detail({
@@ -493,8 +493,8 @@
 						"description": item[0]["description"],
 						"stock_uom": item[0]["stock_uom"],
 						"from_warehouse": "",
-						"expense_account": item[0].purchase_account,
-						"cost_center": item[0].cost_center,
+						"expense_account": item[0].expense_account,
+						"cost_center": item[0].buying_cost_center,
 					}
 				}, bom_no=self.doc.bom_no, idx=idx)
 		
@@ -911,7 +911,7 @@
 				
 			ref_item = ref_item[0]
 			
-			account = ref_item.expense_head
+			account = ref_item.expense_account
 			
 			if account not in children:
 				children.append(account)
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index 4ec6c89..8f1fdb8 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -480,7 +480,7 @@
 		pi.doc.posting_date = pr.doc.posting_date
 		pi.doc.credit_to = "_Test Supplier - _TC"
 		for d in pi.doclist.get({"parentfield": "entries"}):
-			d.expense_head = "_Test Account Cost for Goods Sold - _TC"
+			d.expense_account = "_Test Account Cost for Goods Sold - _TC"
 			d.cost_center = "_Test Cost Center - _TC"
 
 		for d in pi.doclist.get({"parentfield": "other_charges"}):
@@ -583,7 +583,7 @@
 		pi.doc.posting_date = pr.doc.posting_date
 		pi.doc.credit_to = "_Test Supplier - _TC"
 		for d in pi.doclist.get({"parentfield": "entries"}):
-			d.expense_head = "_Test Account Cost for Goods Sold - _TC"
+			d.expense_account = "_Test Account Cost for Goods Sold - _TC"
 			d.cost_center = "_Test Cost Center - _TC"
 		for d in pi.doclist.get({"parentfield": "other_charges"}):
 			d.cost_center = "_Test Cost Center - _TC"
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 7647bbf..3fc3928 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -132,7 +132,7 @@
 			"warehouse": user_default_warehouse or args.warehouse or item.default_warehouse,
 			"income_account": item.default_income_account or args.income_account \
 				or webnotes.conn.get_value("Company", args.company, "default_income_account"),
-			"expense_account": item.purchase_account or args.expense_account \
+			"expense_account": item.expense_account or args.expense_account \
 				or webnotes.conn.get_value("Company", args.company, "default_expense_account"),
 			"cost_center": item.selling_cost_center \
 				if args.transaction_type == "selling" else args.buying_cost_center,
@@ -165,7 +165,7 @@
 		validate_conversion_rate(args, meta)
 
 		price_list_rate = webnotes.conn.get_value("Item Price", 
-			{"price_list": args.price_list, "item_code": args.item_code}, "ref_rate")
+			{"price_list": args.price_list, "item_code": args.item_code}, "price_list_rate")
 			
 		if not price_list_rate: return {}
 		
@@ -223,7 +223,7 @@
 # 			discount = flt(res[0][0])
 # 			break
 # 			
-# 	return {"adj_rate": discount}
+# 	return {"discount_percentage": discount}
 	
 def get_party_item_code(args, item_bean, out):
 	if args.transaction_type == "selling":
diff --git a/erpnext/stock/report/item_prices/item_prices.py b/erpnext/stock/report/item_prices/item_prices.py
index 323277d..7caae59 100644
--- a/erpnext/stock/report/item_prices/item_prices.py
+++ b/erpnext/stock/report/item_prices/item_prices.py
@@ -58,7 +58,7 @@
 	rate = {}
 
 	price_list = webnotes.conn.sql("""select ip.item_code, ip.buying, ip.selling, 
-		concat(ip.price_list, " - ", ip.currency, " ", ip.ref_rate) as price 
+		concat(ip.price_list, " - ", ip.currency, " ", ip.price_list_rate) as price 
 		from `tabItem Price` ip, `tabPrice List` pl 
 		where ip.price_list=pl.name and pl.enabled=1""", as_dict=1)
 
@@ -86,8 +86,8 @@
 							po_item.item_code,
 							po_item.item_name,
 							po.transaction_date as posting_date,
-							po_item.purchase_ref_rate, 
-							po_item.discount_rate, 
+							po_item.base_price_list_rate, 
+							po_item.discount_percentage, 
 							po_item.purchase_rate
 						from `tabPurchase Order` po, `tabPurchase Order Item` po_item
 						where po.name = po_item.parent and po.docstatus = 1)
@@ -96,8 +96,8 @@
 							pr_item.item_code,
 							pr_item.item_name,
 							pr.posting_date,
-							pr_item.purchase_ref_rate,
-							pr_item.discount_rate,
+							pr_item.base_price_list_rate,
+							pr_item.discount_percentage,
 							pr_item.purchase_rate
 						from `tabPurchase Receipt` pr, `tabPurchase Receipt Item` pr_item
 						where pr.name = pr_item.parent and pr.docstatus = 1)
diff --git a/erpnext/utilities/repost_stock.py b/erpnext/utilities/repost_stock.py
index cb0ce10..caf8c8b 100644
--- a/erpnext/utilities/repost_stock.py
+++ b/erpnext/utilities/repost_stock.py
@@ -76,7 +76,7 @@
 				(select qty as dnpi_qty, qty as so_item_qty,
 					ifnull(delivered_qty, 0) as so_item_delivered_qty, parent, name
 				from `tabSales Order Item` so_item
-				where item_code = %s and reserved_warehouse = %s 
+				where item_code = %s and warehouse = %s 
 				and exists(select * from `tabSales Order` so
 					where so.name = so_item.parent and so.docstatus = 1 
 					and so.status != 'Stopped'))