diff --git a/.gitignore b/.gitignore
index 0d39ab2..d641ced 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,6 @@
 *.egg-info
 dist/
 erpnext/docs/current
+*.swp
+*.swo
+*~
diff --git a/.swp b/.swp
deleted file mode 100644
index 5a492bd..0000000
--- a/.swp
+++ /dev/null
Binary files differ
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 32f1e01..6c8d7c8 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -5,7 +5,7 @@
 from erpnext.hooks import regional_overrides
 from frappe.utils import getdate
 
-__version__ = '10.0.21'
+__version__ = '10.0.22'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index de0b6f5..26cc598 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -8,6 +8,10 @@
 	setup: function(doc) {
 		this.setup_posting_date_time_check();
 		this._super(doc);
+
+		// formatter for material request item
+		this.frm.set_indicator_formatter('item_code',
+			function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
 	},
 	onload: function() {
 		this._super();
@@ -20,10 +24,6 @@
 		} else {
 			this.frm.set_value("disable_rounded_total", cint(frappe.sys_defaults.disable_rounded_total));
 		}
-
-		// formatter for material request item
-		this.frm.set_indicator_formatter('item_code',
-			function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
 	},
 
 	refresh: function(doc) {
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 65bd07e..29beda0 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -410,6 +410,21 @@
 			group by pref.reference_name""", party_type, as_dict=1):
 			pdc_details.setdefault(pdc.invoice_no, pdc)
 
+	for pdc in frappe.db.sql("""
+		select
+			jea.reference_name as invoice_no, jea.party, jea.party_type,
+			max(je.cheque_date) as pdc_date, sum(ifnull(je.total_amount,0)) as pdc_amount,
+			GROUP_CONCAT(je.cheque_no SEPARATOR ', ') as pdc_ref
+		from
+			`tabJournal Entry` as je inner join `tabJournal Entry Account` as jea
+		on
+			(jea.parent = je.name)
+		where
+			je.docstatus = 0 and je.cheque_date > je.posting_date
+			and jea.party_type = %s
+			group by jea.reference_name""", party_type, as_dict=1):
+			pdc_details.setdefault(pdc.invoice_no, pdc)
+
 	return pdc_details
 
 def get_dn_details(party_type):
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 51cec69..d500081 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -12,7 +12,7 @@
 			'Purchase Invoice': 'Invoice',
 			'Stock Entry': 'Material to Supplier'
 		}
-		
+
 		frm.set_query("reserve_warehouse", "supplied_items", function() {
 			return {
 				filters: {
@@ -21,6 +21,9 @@
 				}
 			}
 		});
+
+		frm.set_indicator_formatter('item_code',
+			function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
 	},
 
 	onload: function(frm) {
@@ -34,9 +37,6 @@
 			frm.toggle_display('get_last_purchase_rate',
 				frm.doc.__onload.disable_fetch_last_purchase_rate);
 		}
-
-		frm.set_indicator_formatter('item_code',
-			function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
 	},
 });
 
diff --git a/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js b/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
index a3a1414..e7a704a 100644
--- a/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
+++ b/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
@@ -4,14 +4,14 @@
 /* global frappe, refresh_field */
 
 frappe.ui.form.on("Supplier Scorecard", {
-
-	onload: function(frm) {
-
+	setup: function(frm) {
 		if (frm.doc.indicator_color !== "")	{
 			frm.set_indicator_formatter("status", function(doc) {
 				return doc.indicator_color.toLowerCase();
 			});
 		}
+	},
+	onload: function(frm) {
 		if (frm.doc.__unsaved == 1)	{
 			loadAllCriteria(frm);
 			loadAllStandings(frm);
diff --git a/erpnext/config/education.py b/erpnext/config/education.py
index 08846a2..e4e77f3 100644
--- a/erpnext/config/education.py
+++ b/erpnext/config/education.py
@@ -21,18 +21,7 @@
 				{
 					"type": "doctype",
 					"name": "Student Group"
-				},
-				{
-					"type": "doctype",
-					"name": "Student Group Creation Tool"
-				},
-				{
-					"type": "report",
-					"is_query_report": True,
-					"name": "Student and Guardian Contact Details",
-					"doctype": "Program Enrollment"
 				}
-
 			]
 		},
 		{
@@ -50,10 +39,6 @@
 				{
 					"type": "doctype",
 					"name": "Program Enrollment"
-				},
-				{
-					"type": "doctype",
-					"name": "Program Enrollment Tool"
 				}
 			]
 		},
@@ -69,10 +54,6 @@
 					"name": "Student Leave Application"
 				},
 				{
-					"type": "doctype",
-					"name": "Student Attendance Tool"
-				},
-				{
 					"type": "report",
 					"is_query_report": True,
 					"name": "Absent Student Report",
@@ -84,21 +65,26 @@
 					"name": "Student Batch-Wise Attendance",
 					"doctype": "Student Attendance"
 				},
-				{
-					"type": "report",
-					"is_query_report": True,
-					"name": "Student Monthly Attendance Sheet",
-					"doctype": "Student Attendance"
-				}
 			]
 		},
 		{
-			"label": _("Schedule"),
+			"label": _("Tools"),
 			"items": [
 				{
 					"type": "doctype",
-					"name": "Course Schedule",
-					"route": "List/Course Schedule/Calendar"
+					"name": "Student Attendance Tool"
+				},
+				{
+					"type": "doctype",
+					"name": "Assessment Result Tool"
+				},
+				{
+					"type": "doctype",
+					"name": "Student Group Creation Tool"
+				},
+				{
+					"type": "doctype",
+					"name": "Program Enrollment Tool"
 				},
 				{
 					"type": "doctype",
@@ -125,15 +111,12 @@
 				{
 					"type": "doctype",
 					"name": "Assessment Criteria"
-				},
-				{
-					"type": "doctype",
-					"name": "Assessment Criteria Group"
-				},
-				{
-					"type": "doctype",
-					"name": "Assessment Result Tool"
-				},
+				}
+			]
+		},
+		{
+			"label": _("Assessment Reports"),
+			"items": [
 				{
 					"type": "report",
 					"is_query_report": True,
@@ -143,10 +126,15 @@
 				{
 					"type": "report",
 					"is_query_report": True,
+					"name": "Final Assessment Grades",
+					"doctype": "Assessment Result"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
 					"name": "Assessment Plan Status",
 					"doctype": "Assessment Plan"
 				},
-
 			]
 		},
 		{
@@ -167,17 +155,25 @@
 				{
 					"type": "doctype",
 					"name": "Fee Category"
-				},
-				{
-					"type": "report",
-					"name": "Student Fee Collection",
-					"doctype": "Fees",
-					"is_query_report": True
 				}
 			]
 		},
 		{
-			"label": _("Setup"),
+			"label": _("Schedule"),
+			"items": [
+				{
+					"type": "doctype",
+					"name": "Course Schedule",
+					"route": "List/Course Schedule/Calendar"
+				},
+				{
+					"type": "doctype",
+					"name": "Course Scheduling Tool"
+				}
+			]
+		},
+		{
+			"label": _("Masters"),
 			"items": [
 				{
 					"type": "doctype",
@@ -194,7 +190,12 @@
 				{
 					"type": "doctype",
 					"name": "Room"
-				},
+				}
+			]
+		},
+		{
+			"label": _("Setup"),
+			"items": [
 				{
 					"type": "doctype",
 					"name": "Student Category"
@@ -221,4 +222,27 @@
 				}
 			]
 		},
+		{
+			"label": _("Other Reports"),
+			"items": [
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Student and Guardian Contact Details",
+					"doctype": "Program Enrollment"
+				},
+				{
+					"type": "report",
+					"is_query_report": True,
+					"name": "Student Monthly Attendance Sheet",
+					"doctype": "Student Attendance"
+				},
+				{
+					"type": "report",
+					"name": "Student Fee Collection",
+					"doctype": "Fees",
+					"is_query_report": True
+				}
+			]
+		}
 	]
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index a64e76f..6b18b82 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -150,13 +150,16 @@
 		if not frappe.db.get_single_value("Selling Settings", "validate_selling_price"):
 			return
 
+		if hasattr(self, "is_return") and self.is_return:
+			return
+
 		for it in self.get("items"):
 			if not it.item_code:
 				continue
 
 			last_purchase_rate, is_stock_item = frappe.db.get_value("Item", it.item_code, ["last_purchase_rate", "is_stock_item"])
 			last_purchase_rate_in_sales_uom = last_purchase_rate / (it.conversion_factor or 1)
-			if flt(it.base_rate) < flt(last_purchase_rate_in_sales_uom) and not self.is_return:
+			if flt(it.base_rate) < flt(last_purchase_rate_in_sales_uom):
 				throw_message(it.item_name, last_purchase_rate_in_sales_uom, "last purchase rate")
 
 			last_valuation_rate = frappe.db.sql("""
@@ -166,7 +169,7 @@
 				""", (it.item_code, it.warehouse))
 			if last_valuation_rate:
 				last_valuation_rate_in_sales_uom = last_valuation_rate[0][0] / (it.conversion_factor or 1)
-				if is_stock_item and flt(it.base_rate) < flt(last_valuation_rate_in_sales_uom) and not self.is_return:
+				if is_stock_item and flt(it.base_rate) < flt(last_valuation_rate_in_sales_uom):
 					throw_message(it.name, last_valuation_rate_in_sales_uom, "valuation rate")
 
 
diff --git a/erpnext/demo/data/drug_list.json b/erpnext/demo/data/drug_list.json
index 51b029c..f34ca57 100644
--- a/erpnext/demo/data/drug_list.json
+++ b/erpnext/demo/data/drug_list.json
@@ -65,7 +65,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -151,7 +150,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -237,7 +235,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -323,7 +320,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -409,7 +405,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -495,7 +490,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -581,7 +575,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -667,7 +660,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -753,7 +745,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -839,7 +830,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -925,7 +915,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1011,7 +1000,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1097,7 +1085,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1183,7 +1170,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1269,7 +1255,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1355,7 +1340,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1441,7 +1425,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1527,7 +1510,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1613,7 +1595,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1699,7 +1680,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1785,7 +1765,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1871,7 +1850,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -1957,7 +1935,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2043,7 +2020,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2129,7 +2105,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2215,7 +2190,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2301,7 +2275,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2387,7 +2360,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2473,7 +2445,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2559,7 +2530,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2645,7 +2615,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2731,7 +2700,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2817,7 +2785,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2903,7 +2870,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -2989,7 +2955,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3075,7 +3040,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3161,7 +3125,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3247,7 +3210,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3333,7 +3295,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3419,7 +3380,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3505,7 +3465,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3591,7 +3550,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3677,7 +3635,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3763,7 +3720,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3849,7 +3805,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -3935,7 +3890,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4021,7 +3975,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4107,7 +4060,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4193,7 +4145,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4279,7 +4230,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4365,7 +4315,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4451,7 +4400,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4537,7 +4485,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4623,7 +4570,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4709,7 +4655,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4795,7 +4740,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4881,7 +4825,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -4967,7 +4910,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -5053,7 +4995,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -5139,7 +5080,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -5225,7 +5165,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -5311,7 +5250,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
@@ -5397,7 +5335,6 @@
   "taxes": [],
   "thumbnail": null,
   "tolerance": 0.0,
-  "total_projected_qty": 0.0,
   "uoms": [
    {
     "conversion_factor": 1.0,
diff --git a/erpnext/docs/user/manual/en/accounts/journal-entry.md b/erpnext/docs/user/manual/en/accounts/journal-entry.md
index 8c9ee4a..c967b34 100644
--- a/erpnext/docs/user/manual/en/accounts/journal-entry.md
+++ b/erpnext/docs/user/manual/en/accounts/journal-entry.md
@@ -7,7 +7,7 @@
 
 To create a Journal Entry go to:
 
-> Accounts > Documents > Journal Entry > New
+> Accounts > Company and Accounts > Journal Entry > New
 
 <img class="screenshot" alt="Journal Entry" src="{{docs_base_url}}/assets/img/accounts/journal-entry.png">
 
diff --git a/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md b/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md
index c309903..3f9a8c9 100644
--- a/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md
+++ b/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md
@@ -13,7 +13,7 @@
 
 Non Serialized items are generally fast moving and low value item, hence doesn't need tracking for each unit. Items like screw, cotton waste, other consumables, stationary products can be categorized as non-serialized.
 
-> Stock Reconciliation option is available for the non serialized Items only. For serialized and batch items, you should create Material Receipt entry in Stock Entry form.
+> Stock Reconciliation option is available for the non serialized Items only. For serialized and batch items, you should create Material Receipt (to increase stock) or Material Issue (to decrease stock) via Stock Entry.
 
 ### Opening Stocks
 
diff --git a/erpnext/education/doctype/fees/fees.json b/erpnext/education/doctype/fees/fees.json
index c4e1f82..971197c 100644
--- a/erpnext/education/doctype/fees/fees.json
+++ b/erpnext/education/doctype/fees/fees.json
@@ -4,7 +4,7 @@
  "allow_import": 1, 
  "allow_rename": 0, 
  "autoname": "naming_series:", 
- "beta": 1, 
+ "beta": 0, 
  "creation": "2015-09-22 16:57:22.143710", 
  "custom": 0, 
  "docstatus": 0, 
@@ -1276,7 +1276,7 @@
  "istable": 0, 
  "max_attachments": 0, 
  "menu_index": 0, 
- "modified": "2017-12-06 05:55:10.502567", 
+ "modified": "2018-02-08 02:12:34.185245", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Fees", 
diff --git a/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
index e153f8c..61976b4 100644
--- a/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
+++ b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
@@ -7,7 +7,7 @@
  "doctype": "Report", 
  "idx": 0, 
  "is_standard": "Yes", 
- "modified": "2017-11-10 19:41:46.641227", 
+ "modified": "2018-02-08 15:11:24.904628", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Course wise Assessment Report", 
@@ -17,7 +17,10 @@
  "report_type": "Script Report", 
  "roles": [
   {
-   "role": "Academics User"
+   "role": "Instructor"
+  }, 
+  {
+   "role": "Education Manager"
   }
  ]
 }
\ No newline at end of file
diff --git a/erpnext/education/report/final_assessment_grades/final_assessment_grades.json b/erpnext/education/report/final_assessment_grades/final_assessment_grades.json
index 1efbb6e..e748efa 100644
--- a/erpnext/education/report/final_assessment_grades/final_assessment_grades.json
+++ b/erpnext/education/report/final_assessment_grades/final_assessment_grades.json
@@ -8,7 +8,7 @@
  "idx": 0, 
  "is_standard": "Yes", 
  "letter_head": "Shishuvan Secondary School", 
- "modified": "2018-01-22 17:04:43.412054", 
+ "modified": "2018-02-08 15:11:35.339434", 
  "modified_by": "Administrator", 
  "module": "Education", 
  "name": "Final Assessment Grades", 
@@ -16,5 +16,12 @@
  "ref_doctype": "Assessment Result", 
  "report_name": "Final Assessment Grades", 
  "report_type": "Script Report", 
- "roles": []
+ "roles": [
+  {
+   "role": "Instructor"
+  }, 
+  {
+   "role": "Education Manager"
+  }
+ ]
 }
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_loan/employee_loan.py b/erpnext/hr/doctype/employee_loan/employee_loan.py
index dadd769..1751835 100644
--- a/erpnext/hr/doctype/employee_loan/employee_loan.py
+++ b/erpnext/hr/doctype/employee_loan/employee_loan.py
@@ -135,7 +135,7 @@
 		return employee_loan.as_dict()
 
 @frappe.whitelist()
-def make_jv_entry(employee_loan, company, employee_loan_account, employee, loan_amount, payment_account):
+def make_jv_entry(employee_loan, company, employee_loan_account, employee, loan_amount, payment_account=None):
 	journal_entry = frappe.new_doc('Journal Entry')
 	journal_entry.voucher_type = 'Bank Entry'
 	journal_entry.user_remark = _('Against Employee Loan: {0}').format(employee_loan)
diff --git a/erpnext/hr/doctype/payroll_entry/payroll_entry.py b/erpnext/hr/doctype/payroll_entry/payroll_entry.py
index 77cece3..2a5b467 100644
--- a/erpnext/hr/doctype/payroll_entry/payroll_entry.py
+++ b/erpnext/hr/doctype/payroll_entry/payroll_entry.py
@@ -252,7 +252,7 @@
 			journal_entry.user_remark = _('Accural Journal Entry for salaries from {0} to {1}')\
 				.format(self.start_date, self.end_date)
 			journal_entry.company = self.company
-			journal_entry.posting_date = nowdate()
+			journal_entry.posting_date = self.posting_date
 
 			accounts = []
 			payable_amount = 0
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js
index 8a86668..bba3e1e 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.js
+++ b/erpnext/manufacturing/doctype/production_order/production_order.js
@@ -79,6 +79,10 @@
 				]
 			}
 		});
+
+		// formatter for production order operation
+		frm.set_indicator_formatter('operation',
+			function(doc) { return (frm.doc.qty==doc.completed_qty) ? "green" : "orange" });
 	},
 	
 	onload: function(frm) {
@@ -94,10 +98,6 @@
 			});
 			erpnext.production_order.set_default_warehouse(frm);
 		}
-
-		// formatter for production order operation
-		frm.set_indicator_formatter('operation',
-			function(doc) { return (frm.doc.qty==doc.completed_qty) ? "green" : "orange" });
 	},
 
 	refresh: function(frm) {
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index 002f03b..7612461 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -10,7 +10,6 @@
 from erpnext.manufacturing.doctype.production_order.production_order \
 	import make_stock_entry, ItemHasVariantError, stop_unstop
 from erpnext.stock.doctype.stock_entry import test_stock_entry
-from erpnext.stock.doctype.item.test_item import get_total_projected_qty
 from erpnext.stock.utils import get_bin
 from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
 
@@ -81,7 +80,7 @@
 		prod_order.set_production_order_operations()
 		prod_order.insert()
 		prod_order.submit()
-		
+
 		d = prod_order.operations[0]
 		d.completed_qty = flt(d.completed_qty)
 
@@ -89,7 +88,7 @@
 		time_sheet_doc = frappe.get_doc('Timesheet', name)
 		self.assertEqual(prod_order.company, time_sheet_doc.company)
 		time_sheet_doc.submit()
-		
+
 
 		self.assertEqual(prod_order.name, time_sheet_doc.production_order)
 		self.assertEqual((prod_order.qty - d.completed_qty),
@@ -108,7 +107,7 @@
 
 		self.assertEqual(prod_order.operations[0].actual_operation_time, 60)
 		self.assertEqual(prod_order.operations[0].actual_operating_cost, 6000)
-		
+
 		time_sheet_doc1 = make_timesheet(prod_order.name, prod_order.company)
 		self.assertEqual(len(time_sheet_doc1.get('time_logs')), 0)
 
@@ -176,28 +175,6 @@
 		self.assertEqual(self.bin1_at_start.projected_qty,
 			cint(bin1_on_cancel.projected_qty))
 
-	def test_projected_qty_for_production_and_sales_order(self):
-		before_production_order = get_bin(self.item, self.warehouse)
-		before_production_order.update_reserved_qty_for_production()
-
-		self.pro_order = make_prod_order_test_record(item="_Test FG Item", qty=2,
-			source_warehouse=self.warehouse)
-
-		after_production_order = get_bin(self.item, self.warehouse)
-
-		sales_order = make_sales_order(item = self.item, qty = 2)
-		after_sales_order = get_bin(self.item, self.warehouse)
-
-		self.assertEqual(cint(before_production_order.reserved_qty_for_production) + 2,
-			cint(after_sales_order.reserved_qty_for_production))
-		self.assertEqual(cint(before_production_order.projected_qty),
-			cint(after_sales_order.projected_qty) + 2)
-
-		total_projected_qty = get_total_projected_qty(self.item)
-
-		item_doc = frappe.get_doc('Item', self.item)
-		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
-
 	def test_reserved_qty_for_production_on_stock_entry(self):
 		test_stock_entry.make_stock_entry(item_code="_Test Item",
 			target= self.warehouse, qty=100, basic_rate=100)
@@ -230,7 +207,7 @@
 			cint(bin1_on_start_production.reserved_qty_for_production))
 		self.assertEqual(cint(bin1_on_end_production.projected_qty),
 			cint(bin1_on_end_production.projected_qty))
-			
+
 	def test_reserved_qty_for_stopped_production(self):
 		test_stock_entry.make_stock_entry(item_code="_Test Item",
 			target= self.warehouse, qty=100, basic_rate=100)
@@ -238,18 +215,18 @@
 			target= self.warehouse, qty=100, basic_rate=100)
 
 		# 	0 0 0
-		
+
 		self.test_reserved_qty_for_production_submit()
-		
+
 		#2 0 -2
 
 		s = frappe.get_doc(make_stock_entry(self.pro_order.name,
 			"Material Transfer for Manufacture", 1))
 
 		s.submit()
-		
+
 		#1 -1 0
-		
+
 		bin1_on_start_production = get_bin(self.item, self.warehouse)
 
 		# reserved_qty_for_producion updated
@@ -259,10 +236,10 @@
 		# projected qty will now be 2 less (becuase of item movement)
 		self.assertEqual(cint(self.bin1_at_start.projected_qty),
 			cint(bin1_on_start_production.projected_qty) + 2)
-			
+
 		# STOP
 		stop_unstop(self.pro_order.name, "Stopped")
-		
+
 		bin1_on_stop_production = get_bin(self.item, self.warehouse)
 
 		# no change in reserved / projected
diff --git a/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py b/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py
index 97af20a..20ee814 100644
--- a/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py
+++ b/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py
@@ -7,22 +7,10 @@
 
 def execute():
 	repost_bin_qty()
-	repost_item_projected_qty()
 
 def repost_bin_qty():
-	for bin in frappe.db.sql(""" select name from `tabBin` 
+	for bin in frappe.db.sql(""" select name from `tabBin`
 		where (actual_qty + ordered_qty + indented_qty + planned_qty- reserved_qty - reserved_qty_for_production) != projected_qty """, as_dict=1):
 		bin_doc = frappe.get_doc('Bin', bin.name)
 		bin_doc.set_projected_qty()
 		bin_doc.db_set("projected_qty", bin_doc.projected_qty, update_modified = False)
-
-def repost_item_projected_qty():
-	for data in frappe.db.sql(""" select 
-			`tabBin`.item_code as item_code,
-			sum(`tabBin`.projected_qty) as projected_qty, 
-			`tabItem`.total_projected_qty as total_projected_qty 
-		from 
-			`tabBin`, `tabItem` 
-		where `tabBin`.item_code = `tabItem`.name 
-		group by `tabBin`.item_code having projected_qty <>  total_projected_qty """, as_dict=1):
-		update_item_projected_qty(data.item_code)
diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py
index 8d339b9..3d94b5c 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.py
+++ b/erpnext/projects/doctype/timesheet/timesheet.py
@@ -156,14 +156,18 @@
 			(self.production_order, operation_id), as_dict=1)[0]
 
 	def update_task_and_project(self):
+		tasks, projects = [], []
+
 		for data in self.time_logs:
-			if data.task:
+			if data.task and data.task not in tasks:
 				task = frappe.get_doc("Task", data.task)
 				task.update_time_and_costing()
 				task.save()
+				tasks.append(data.task)
 
-			elif data.project:
+			elif data.project and data.project not in projects:
 				frappe.get_doc("Project", data.project).update_project()
+				projects.append(data.project)
 
 	def validate_dates(self):
 		for data in self.time_logs:
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 8ae91a4..e8c3262 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -704,7 +704,7 @@
 		}
 
 		if(!this.in_apply_price_list) {
-			this.apply_price_list();
+			this.apply_price_list(null, true);
 		}
 	},
 
@@ -776,7 +776,8 @@
 		this.frm.toggle_reqd("plc_conversion_rate",
 			!!(this.frm.doc.price_list_name && this.frm.doc.price_list_currency));
 
-		if(this.frm.doc_currency!==this.frm.doc.currency) {
+		if(this.frm.doc_currency!==this.frm.doc.currency
+			|| this.frm.doc_currency!==this.frm.doc.price_list_currency) {
 			// reset names only when the currency is different
 
 			var company_currency = this.get_company_currency();
@@ -1056,7 +1057,13 @@
 		if(!price_list_rate_changed) me.calculate_taxes_and_totals();
 	},
 
-	apply_price_list: function(item) {
+	apply_price_list: function(item, reset_plc_conversion) {
+		// We need to reset plc_conversion_rate sometimes because the call to
+		// `erpnext.stock.get_item_details.apply_price_list` is sensitive to its value
+		if (!reset_plc_conversion) {
+			this.frm.set_value("plc_conversion_rate", "");
+		}
+
 		var me = this;
 		var args = this._get_args(item);
 		if (!((args.items && args.items.length) || args.price_list)) {
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index a6133c8..a9eb7db 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -13,6 +13,10 @@
 			'Project': 'Project'
 		}
 		frm.add_fetch('customer', 'tax_id', 'tax_id');
+
+		// formatter for material request item
+		frm.set_indicator_formatter('item_code',
+			function(doc) { return (doc.stock_qty<=doc.delivered_qty) ? "green" : "orange" })
 	},
 	onload: function(frm) {
 		erpnext.queries.setup_queries(frm, "Warehouse", function() {
@@ -28,10 +32,6 @@
 			}
 		});
 
-		// formatter for material request item
-		frm.set_indicator_formatter('item_code',
-			function(doc) { return (doc.stock_qty<=doc.delivered_qty) ? "green" : "orange" })
-
 		erpnext.queries.setup_warehouse_query(frm);
 	},
 
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index f829961..5e5c50d 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -5,7 +5,6 @@
 from frappe.utils import flt, add_days
 import frappe.permissions
 import unittest
-from erpnext.stock.doctype.item.test_item import get_total_projected_qty
 from erpnext.selling.doctype.sales_order.sales_order \
 	import make_material_request, make_delivery_note, make_sales_invoice, WarehouseRequired
 from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
@@ -155,17 +154,9 @@
 		dn = create_dn_against_so(so.name, 15)
 		self.assertEqual(get_reserved_qty(), existing_reserved_qty)
 
-		total_projected_qty = get_total_projected_qty('_Test Item')
-		item_doc_before_cancel = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc_before_cancel.total_projected_qty)
-
 		dn.cancel()
 		self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
 
-		total_projected_qty = get_total_projected_qty('_Test Item')
-		item_doc_after_cancel = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc_after_cancel.total_projected_qty)
-
 	def test_reserved_qty_for_over_delivery_via_sales_invoice(self):
 		make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
 
@@ -183,10 +174,6 @@
 		si.insert()
 		si.submit()
 
-		total_projected_qty = get_total_projected_qty('_Test Item')
-		item_doc = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
-
 		self.assertEqual(get_reserved_qty(), existing_reserved_qty)
 
 		so.load_from_db()
@@ -195,9 +182,6 @@
 
 		si.cancel()
 		self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
-		total_projected_qty = get_total_projected_qty('_Test Item')
-		item_doc = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
 
 		so.load_from_db()
 		self.assertEqual(so.get("items")[0].delivered_qty, 0)
@@ -229,10 +213,6 @@
 		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
 		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"), existing_reserved_qty_item2)
 
-		total_projected_qty = get_total_projected_qty('_Test Item')
-		item_doc = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
-
 		# unclose so
 		so.load_from_db()
 		so.update_status('Draft')
@@ -269,10 +249,6 @@
 
 		dn = create_dn_against_so(so.name, 15)
 
-		total_projected_qty = get_total_projected_qty('_Test Item')
-		item_doc = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
-
 		self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
 		self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
 			existing_reserved_qty_item2)
@@ -495,13 +471,6 @@
 
 		self.assertEquals(abs(flt(reserved_qty)), existing_reserved_qty_for_dn_item)
 
-	def test_total_projected_qty_against_sales_order(self):
-		so = make_sales_order(item = '_Test Item')
-		total_projected_qty = get_total_projected_qty('_Test Item')
-
-		item_doc = frappe.get_doc('Item', '_Test Item')
-		self.assertEqual(total_projected_qty,  item_doc.total_projected_qty)
-
 	def test_reserved_qty_for_closing_so(self):
 		bin = frappe.get_all("Bin", filters={"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"},
 			fields=["reserved_qty"])
@@ -567,12 +536,12 @@
 			"item_list": [{
 				"item_code": "_Test FG Item",
 				"qty": 10,
-				"rate":100	
+				"rate":100
 			},
 			{
 				"item_code": "_Test FG Item",
 				"qty": 20,
-				"rate":200	
+				"rate":200
 			}]
 		})
 
@@ -589,7 +558,7 @@
 			})
 			so_item_name[item.get("sales_order_item")]= item.get("pending_qty")
 		make_production_orders(json.dumps({"items":po_items}), so.name, so.company)
-		
+
 		# Check if Production Orders were raised
 		for item in so_item_name:
 			po_qty = frappe.db.sql("select sum(qty) from `tabProduction Order` where sales_order=%s and sales_order_item=%s", (so.name, item))
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 5ca2618..aa5b3ba 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -118,6 +118,7 @@
 
 	selling_price_list: function() {
 		this.apply_price_list();
+		this.set_dynamic_labels();
 	},
 
 	price_list_rate: function(doc, cdt, cdn) {
diff --git a/erpnext/startup/notifications.py b/erpnext/startup/notifications.py
index b8fce6e..690ccf0 100644
--- a/erpnext/startup/notifications.py
+++ b/erpnext/startup/notifications.py
@@ -11,7 +11,6 @@
 			"Warranty Claim": {"status": "Open"},
 			"Task": {"status": ("in", ("Open", "Overdue"))},
 			"Project": {"status": "Open"},
-			"Item": {"total_projected_qty": ("<", 0)},
 			"Lead": {"status": "Open"},
 			"Contact": {"status": "Open"},
 			"Opportunity": {"status": "Open"},
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index fd34423..430d9fb 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -15,9 +15,6 @@
 		self.validate_mandatory()
 		self.set_projected_qty()
 
-	def on_update(self):
-		update_item_projected_qty(self.item_code)
-
 	def validate_mandatory(self):
 		qf = ['actual_qty', 'reserved_qty', 'ordered_qty', 'indented_qty']
 		for f in qf:
@@ -130,11 +127,5 @@
 		self.set_projected_qty()
 		self.db_set('projected_qty', self.projected_qty)
 
-def update_item_projected_qty(item_code):
-	'''Set total_projected_qty in Item as sum of projected qty in all warehouses'''
-	frappe.db.sql('''update tabItem set
-		total_projected_qty = ifnull((select sum(projected_qty) from tabBin where item_code=%s), 0)
-		where name=%s''', (item_code, item_code))
-
 def on_doctype_update():
 	frappe.db.add_index("Bin", ["item_code", "warehouse"])
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 104eeb8..ea705cb 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -110,7 +110,7 @@
 		const stock_exists = (frm.doc.__onload
 			&& frm.doc.__onload.stock_exists) ? 1 : 0;
 
-		['has_serial_no', 'has_batch_no'].forEach((fieldname) => {
+		['is_stock_item', 'has_serial_no', 'has_batch_no'].forEach((fieldname) => {
 			frm.set_df_property(fieldname, 'read_only', stock_exists);
 		});
 	},
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index f334973..04f9df3 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -178,6 +178,35 @@
    "bold": 0,
    "collapsible": 0,
    "columns": 0,
+   "fieldname": "barcode",
+   "fieldtype": "Data",
+   "hidden": 0,
+   "ignore_user_permissions": 0,
+   "ignore_xss_filter": 0,
+   "in_filter": 0,
+   "in_global_search": 0,
+   "in_list_view": 0,
+   "in_standard_filter": 0,
+   "label": "Barcode",
+   "length": 0,
+   "no_copy": 1,
+   "permlevel": 0,
+   "print_hide": 0,
+   "print_hide_if_no_value": 0,
+   "read_only": 0,
+   "remember_last_selected_value": 0,
+   "report_hide": 0,
+   "reqd": 0,
+   "search_index": 0,
+   "set_only_once": 0,
+   "unique": 0
+  },
+  {
+   "allow_bulk_edit": 0,
+   "allow_on_submit": 0,
+   "bold": 0,
+   "collapsible": 0,
+   "columns": 0,
    "description": "",
    "fieldname": "item_group",
    "fieldtype": "Link",
@@ -357,7 +386,7 @@
    "report_hide": 0,
    "reqd": 0,
    "search_index": 0,
-   "set_only_once": 1,
+   "set_only_once": 0,
    "unique": 0
   },
   {
diff --git a/erpnext/stock/doctype/item/item_list.js b/erpnext/stock/doctype/item/item_list.js
index db53ae9..534b341 100644
--- a/erpnext/stock/doctype/item/item_list.js
+++ b/erpnext/stock/doctype/item/item_list.js
@@ -1,6 +1,6 @@
 frappe.listview_settings['Item'] = {
 	add_fields: ["item_name", "stock_uom", "item_group", "image", "variant_of",
-		"has_variants", "end_of_life", "disabled", "total_projected_qty"],
+		"has_variants", "end_of_life", "disabled"],
 	filters: [["disabled", "=", "0"]],
 
 	get_indicator: function(doc) {
@@ -8,8 +8,6 @@
 			return [__("Disabled"), "grey", "disabled,=,Yes"];
 		} else if (doc.end_of_life && doc.end_of_life < frappe.datetime.get_today()) {
 			return [__("Expired"), "grey", "end_of_life,<,Today"];
-		} else if(doc.total_projected_qty < 0) {
-			return [__("Shortage"), "red", "total_projected_qty,<,0"];
 		} else if (doc.has_variants) {
 			return [__("Template"), "orange", "has_variants,=,Yes"];
 		} else if (doc.variant_of) {
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index fb3182e..7241be3 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -128,7 +128,7 @@
 
 	def test_copy_fields_from_template_to_variants(self):
 		frappe.delete_doc_if_exists("Item", "_Test Variant Item-XL", force=1)
-		
+
 		fields = [{'field_name': 'item_group'}, {'field_name': 'is_stock_item'}]
 		allow_fields = [d.get('field_name') for d in fields]
 		set_item_variant_settings(fields)
@@ -292,12 +292,6 @@
 		variant.item_name = "_Test Variant Item-S"
 		variant.save()
 
-def get_total_projected_qty(item):
-	total_qty = frappe.db.sql(""" select sum(projected_qty) as projected_qty from tabBin
-		where item_code = %(item)s""", {'item': item}, as_dict=1)
-
-	return total_qty[0].projected_qty if total_qty else 0.0
-
 test_records = frappe.get_test_records('Item')
 
 def create_item(item_code, is_stock_item=None):
diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index ed0597c..709c2c7 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -12,6 +12,10 @@
 			'Supplier Quotation': 'Supplier Quotation',
 			'Production Order': 'Production Order'
 		}
+
+		// formatter for material request item
+		frm.set_indicator_formatter('item_code',
+			function(doc) { return (doc.qty<=doc.ordered_qty) ? "green" : "orange" })
 	},
 	onload: function(frm) {
 		// add item, if previous view was item
@@ -19,11 +23,6 @@
 
 		//set schedule_date
 		set_schedule_date(frm);
-
-		// formatter for material request item
-		frm.set_indicator_formatter('item_code',
-			function(doc) { return (doc.qty<=doc.ordered_qty) ? "green" : "orange" }),
-
 		frm.fields_dict["items"].grid.get_field("warehouse").get_query = function(doc, cdt, cdn){
 			return{
 				filters: {'company': doc.company}
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 3b5b4d3..5a884ad 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -10,6 +10,7 @@
 from erpnext.setup.utils import get_exchange_rate
 from frappe.model.meta import get_field_precision
 from erpnext.stock.doctype.batch.batch import get_batch_no
+from erpnext import get_company_currency
 
 from six import string_types
 
@@ -473,8 +474,8 @@
 @frappe.whitelist()
 def get_bin_details(item_code, warehouse):
 	return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
-			["projected_qty", "actual_qty", "ordered_qty"], as_dict=True) \
-			or {"projected_qty": 0, "actual_qty": 0, "ordered_qty": 0}
+			["projected_qty", "actual_qty"], as_dict=True) \
+			or {"projected_qty": 0, "actual_qty": 0}
 
 @frappe.whitelist()
 def get_serial_no_details(item_code, warehouse, stock_qty, serial_no):
@@ -591,11 +592,12 @@
 	price_list_currency = get_price_list_currency(args.price_list)
 	price_list_uom_dependant = get_price_list_uom_dependant(args.price_list)
 	plc_conversion_rate = args.plc_conversion_rate
+	company_currency = get_company_currency(args.company)
 
 	if (not plc_conversion_rate) or (price_list_currency and args.price_list_currency \
 		and price_list_currency != args.price_list_currency):
 			# cksgb 19/09/2016: added args.transaction_date as posting_date argument for get_exchange_rate
-			plc_conversion_rate = get_exchange_rate(price_list_currency, args.currency,
+			plc_conversion_rate = get_exchange_rate(price_list_currency, company_currency,
 				args.transaction_date) or plc_conversion_rate
 
 	return frappe._dict({
diff --git a/erpnext/stock/report/item_variant_details/item_variant_details.py b/erpnext/stock/report/item_variant_details/item_variant_details.py
index 67b6b5f..f1488f8 100644
--- a/erpnext/stock/report/item_variant_details/item_variant_details.py
+++ b/erpnext/stock/report/item_variant_details/item_variant_details.py
@@ -17,7 +17,7 @@
 
 	variant_results = frappe.db.sql("""select name from `tabItem`
 		where variant_of = %s""", item, as_dict=1)
-	variants = ",".join(['"' + variant['name'] + '"' for variant in variant_results])
+	variants = ",".join(['"' + frappe.db.escape(variant['name']) + '"' for variant in variant_results])
 
 	order_count_map = get_open_sales_orders_map(variants)
 	stock_details_map = get_stock_details_map(variants)
