Merge branch 'develop'
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 884d464..7ef9960 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1 +1 @@
-__version__ = '4.20.1'
+__version__ = '4.20.2'
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 6f90675..13b3303 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -4,7 +4,7 @@
 app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
 app_icon = "icon-th"
 app_color = "#e74c3c"
-app_version = "4.20.1"
+app_version = "4.20.2"
 
 error_report_email = "support@erpnext.com"
 
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 604ac11..5b0f7e9 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -51,12 +51,12 @@
 					frappe.throw(_("Reserved warehouse required for stock item {0}").format(d.item_code))
 
 				if e in check_list:
-					frappe.throw(_("Item {0} has been entered twice").format(d.item_code))
+					frappe.msgprint(_("Item {0} has been entered twice").format(d.item_code))
 				else:
 					check_list.append(e)
 			else:
 				if f in chk_dupl_itm:
-					frappe.throw(_("Item {0} has been entered twice").format(d.item_code))
+					frappe.msgprint(_("Item {0} has been entered twice").format(d.item_code))
 				else:
 					chk_dupl_itm.append(f)
 
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 96dee3d..a2c670e 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -231,8 +231,8 @@
 		if(!row.t_warehouse) row.t_warehouse = this.frm.doc.to_warehouse;
 	},
 
-	source_mandatory: ["Material Issue", "Material Transfer", "Purchase Return"],
-	target_mandatory: ["Material Receipt", "Material Transfer", "Sales Return"],
+	source_mandatory: ["Material Issue", "Material Transfer", "Purchase Return", "Subcontract"],
+	target_mandatory: ["Material Receipt", "Material Transfer", "Sales Return", "Subcontract"],
 
 	from_warehouse: function(doc) {
 		var me = this;
@@ -462,4 +462,4 @@
 	return { query: "erpnext.controllers.queries.supplier_query" }
 }
 cur_frm.add_fetch('production_order', 'total_fixed_cost', 'total_fixed_cost');
-cur_frm.add_fetch('bom_no', 'total_fixed_cost', 'total_fixed_cost');
\ No newline at end of file
+cur_frm.add_fetch('bom_no', 'total_fixed_cost', 'total_fixed_cost');
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
index e16017d..11ecd29 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.py
@@ -27,6 +27,7 @@
 					mntc_date = self.mntc_date
 					service_person = d.service_person
 					work_done = d.work_done
+					status = "Open"
 					if self.completion_status == 'Fully Completed':
 						status = 'Closed'
 					elif self.completion_status == 'Partially Completed':
diff --git a/erpnext/templates/print_formats/includes/item_grid.html b/erpnext/templates/print_formats/includes/item_grid.html
index 1d09f73..7e1d1a6 100644
--- a/erpnext/templates/print_formats/includes/item_grid.html
+++ b/erpnext/templates/print_formats/includes/item_grid.html
@@ -9,9 +9,13 @@
 		<tr>
 			<th style="width: 3%">{{ _("Sr") }}</th>
 			<th style="width: 57%">{{ _("Item") }}</th>
-			<th style="width: 10%;" class="text-right">{{ _("Qty") }}</th>
-			{% if not hide_rate -%}<th style="width: 15%;" class="text-right">{{ _("Rate") }}</th>{%- endif %}
-			{% if not hide_amount -%}<th style="width: 15%;" class="text-right">{{ _("Amount") }}</th>{%- endif %}
+			<th style="width: 10%;" class="text-right">{{ _(data[0].meta.get_label("qty")) }}</th>
+			{% if not hide_rate -%}
+				<th style="width: 15%;" class="text-right">{{ _(data[0].meta.get_label("rate")) }}</th>
+			{%- endif %}
+			{% if not hide_amount -%}
+				<th style="width: 15%;" class="text-right">{{ _(data[0].meta.get_label("amount")) }}</th>
+			{%- endif %}
 		</tr>
 		{%- for row in data -%}
 		<tr>
diff --git a/setup.py b/setup.py
index f093f55..4e650c8 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 import os
 
-version = "4.20.1"
+version = "4.20.2"
 
 with open("requirements.txt", "r") as f:
 	install_requires = f.readlines()