diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 7ec8430..4f53d0d 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
 from __future__ import unicode_literals
 import frappe
 
-__version__ = '7.2.20'
+__version__ = '7.2.21'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index c4ba9e7..1d1b4e2 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -178,6 +178,9 @@
 			for item in self.get("items"):
 				item.rm_supp_cost = 0.0
 
+		if self.is_subcontracted == "No" and self.get("supplied_items"):
+			self.set('supplied_items', [])
+
 	def update_raw_materials_supplied(self, item, raw_material_table):
 		bom_items = self.get_items_from_bom(item.item_code, item.bom)
 		raw_materials_cost = 0
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index b997dfc..6563dfb 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -363,4 +363,5 @@
 erpnext.patches.v7_2.update_doctype_status
 erpnext.patches.v7_2.update_salary_slips
 erpnext.patches.v7_2.set_null_value_to_fields
-erpnext.patches.v7_2.update_abbr_in_salary_slips
\ No newline at end of file
+erpnext.patches.v7_2.update_abbr_in_salary_slips
+erpnext.patches.v7_2.empty_supplied_items_for_non_subcontracted
\ No newline at end of file
diff --git a/erpnext/patches/v7_2/empty_supplied_items_for_non_subcontracted.py b/erpnext/patches/v7_2/empty_supplied_items_for_non_subcontracted.py
new file mode 100644
index 0000000..ec6f8af
--- /dev/null
+++ b/erpnext/patches/v7_2/empty_supplied_items_for_non_subcontracted.py
@@ -0,0 +1,14 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	for doctype in ["Purchase Order", "Purchase Invoice", "Purchase Receipt"]:
+		child_table = 'Purchase Receipt Item Supplied' if doctype != 'Purchase Order' else 'Purchase Order Item Supplied'
+		for data in frappe.db.sql(""" select distinct `tab{doctype}`.name from `tab{doctype}` , `tab{child_table}`
+			where `tab{doctype}`.name = `tab{child_table}`.parent and `tab{doctype}`.docstatus != 2
+			and `tab{doctype}`.is_subcontracted = 'No' """.format(doctype = doctype, child_table = child_table), as_dict=1):
+			frappe.db.sql(""" delete from `tab{child_table}` 
+				where parent = %s and parenttype = %s""".format(child_table= child_table), (data.name, doctype))
\ No newline at end of file
diff --git a/erpnext/schools/doctype/assessment/assessment.py b/erpnext/schools/doctype/assessment/assessment.py
index 003b427..5088336 100644
--- a/erpnext/schools/doctype/assessment/assessment.py
+++ b/erpnext/schools/doctype/assessment/assessment.py
@@ -34,7 +34,7 @@
 			validate_overlap_for(self, "Assessment", "student_group")
 		
 		validate_overlap_for(self, "Assessment", "room")
-		validate_overlap_for(self, "Assessment", "supervisor", self.instructor)
+		validate_overlap_for(self, "Assessment", "supervisor", self.supervisor)
 
 
 def get_assessment_list(doctype, txt, filters, limit_start, limit_page_length=20):
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 1f793d1..985bd4f 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -4,6 +4,13 @@
 frappe.provide("erpnext.item");
 
 frappe.ui.form.on("Item", {
+	setup: function(frm) {
+		frm.add_fetch('attribute', 'numeric_values', 'numeric_values');
+		frm.add_fetch('attribute', 'from_range', 'from_range');
+		frm.add_fetch('attribute', 'to_range', 'to_range');
+		frm.add_fetch('attribute', 'increment', 'increment');
+		frm.add_fetch('tax_type', 'tax_rate', 'tax_rate');
+	},
 	onload: function(frm) {
 		erpnext.item.setup_queries(frm);
 		if (frm.doc.variant_of){
@@ -16,7 +23,6 @@
 	},
 
 	refresh: function(frm) {
-
 		if(frm.doc.is_stock_item) {
 			frm.add_custom_button(__("Balance"), function() {
 				frappe.route_options = {
@@ -54,9 +60,9 @@
 			}, __("View"));
 
 			frm.add_custom_button(__("Variant"), function() {
-				erpnext.item.make_variant()
+				erpnext.item.make_variant(frm);
 			}, __("Make"));
-			cur_frm.page.set_inner_btn_group_as_primary(__("Make"));
+			frm.page.set_inner_btn_group_as_primary(__("Make"));
 		}
 		if (frm.doc.variant_of) {
 			frm.set_intro(__("This Item is a Variant of {0} (Template). Attributes will be copied over from the template unless 'No Copy' is set", [frm.doc.variant_of]), true);
@@ -79,6 +85,17 @@
 
 		frm.toggle_enable("is_fixed_asset", (frm.doc.__islocal || (!frm.doc.is_stock_item &&
 			((frm.doc.__onload && frm.doc.__onload.asset_exists) ? false : true))));
+
+		frm.add_custom_button(__('Duplicate'), function() {
+			var new_item = frappe.model.copy_doc(frm.doc);
+			if(new_item.item_name===new_item.item_code) {
+				new_item.item_name = null;
+			}
+			if(new_item.description===new_item.description) {
+				new_item.description = null;
+			}
+			frappe.set_route('Form', 'Item', new_item.name);
+		});
 	},
 
 	validate: function(frm){
@@ -88,13 +105,13 @@
 	image: function(frm) {
 		refresh_field("image_view");
 	},
-	
+
 	is_fixed_asset: function(frm) {
 		if (frm.doc.is_fixed_asset) {
 			frm.set_value("is_stock_item", 0);
 		}
 	},
-	
+
 	page_name: frappe.utils.warn_page_name_change,
 
 	item_code: function(frm) {
@@ -191,15 +208,15 @@
 
 		frm.fields_dict.reorder_levels.grid.get_field("warehouse").get_query = function(doc, cdt, cdn) {
 			var d = locals[cdt][cdn];
-			
+
 			var filters = {
 				"is_group": 0
 			}
-			
+
 			if (d.parent_warehouse) {
 				filters.extend({"parent_warehouse": d.warehouse_group})
 			}
-			
+
 			return {
 				filters: filters
 			}
@@ -212,7 +229,8 @@
 			return;
 
 		frappe.require('assets/js/item-dashboard.min.js', function() {
-			var section = frm.dashboard.add_section('<h5 style="margin-top: 0px;"><a href="#stock-balance">Stock Levels</a></h5>');
+			var section = frm.dashboard.add_section('<h5 style="margin-top: 0px;">\
+				<a href="#stock-balance">Stock Levels</a></h5>');
 			erpnext.item.item_dashboard = new erpnext.stock.ItemDashboard({
 				parent: section,
 				item_code: frm.doc.name
@@ -234,12 +252,12 @@
 		}
 	},
 
-	make_variant: function(doc) {
+	make_variant: function(frm) {
 		var fields = []
 
-		for(var i=0;i< cur_frm.doc.attributes.length;i++){
+		for(var i=0;i< frm.doc.attributes.length;i++){
 			var fieldtype, desc;
-			var row = cur_frm.doc.attributes[i];
+			var row = frm.doc.attributes[i];
 			if (row.numeric_values){
 				fieldtype = "Float";
 				desc = "Min Value: "+ row.from_range +" , Max Value: "+ row.to_range +", in Increments of: "+ row.increment
@@ -268,7 +286,7 @@
 			frappe.call({
 				method:"erpnext.controllers.item_variant.get_variant",
 				args: {
-					"template": cur_frm.doc.name,
+					"template": frm.doc.name,
 					"args": d.get_values()
 				},
 				callback: function(r) {
@@ -290,7 +308,7 @@
 						frappe.call({
 							method:"erpnext.controllers.item_variant.create_variant",
 							args: {
-								"item": cur_frm.doc.name,
+								"item": frm.doc.name,
 								"args": d.get_values()
 							},
 							callback: function(r) {
@@ -358,10 +376,3 @@
 		frm.fields_dict.attributes.grid.toggle_enable("attribute_value", !frm.doc.variant_of);
 	}
 });
-
-
-cur_frm.add_fetch('attribute', 'numeric_values', 'numeric_values');
-cur_frm.add_fetch('attribute', 'from_range', 'from_range');
-cur_frm.add_fetch('attribute', 'to_range', 'to_range');
-cur_frm.add_fetch('attribute', 'increment', 'increment');
-cur_frm.add_fetch('tax_type', 'tax_rate', 'tax_rate');
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index 6dfe76e..60f6fdf 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -87,7 +87,7 @@
    "in_standard_filter": 0, 
    "label": "Item Code", 
    "length": 0, 
-   "no_copy": 1, 
+   "no_copy": 0, 
    "oldfieldname": "item_code", 
    "oldfieldtype": "Data", 
    "permlevel": 0, 
@@ -134,7 +134,7 @@
   }, 
   {
    "allow_on_submit": 0, 
-   "bold": 0, 
+   "bold": 1, 
    "collapsible": 0, 
    "columns": 0, 
    "fieldname": "item_name", 
@@ -156,7 +156,7 @@
    "read_only": 0, 
    "remember_last_selected_value": 0, 
    "report_hide": 0, 
-   "reqd": 1, 
+   "reqd": 0, 
    "search_index": 1, 
    "set_only_once": 0, 
    "unique": 0
@@ -2713,7 +2713,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 1, 
- "modified": "2017-01-18 17:43:20.262925", 
+ "modified": "2017-02-17 04:00:38.825621", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Item", 
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index f9938ab..0f0205b 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -63,6 +63,9 @@
 	def validate(self):
 		super(Item, self).validate()
 
+		if not self.item_name:
+			self.item_name = self.item_code
+
 		if not self.description:
 			self.description = self.item_name
 
@@ -470,12 +473,12 @@
 	def check_if_linked_document_exists(self, key):
 		linked_doctypes = ["Delivery Note Item", "Sales Invoice Item", "Purchase Receipt Item",
 			"Purchase Invoice Item", "Stock Entry Detail", "Stock Reconciliation Item"]
-			
-		# For "Is Stock Item", following doctypes is important 
+
+		# For "Is Stock Item", following doctypes is important
 		# because reserved_qty, ordered_qty and requested_qty updated from these doctypes
 		if key == "is_stock_item":
 			linked_doctypes += ["Sales Order Item", "Purchase Order Item", "Material Request Item"]
-			
+
 		for doctype in linked_doctypes:
 			if frappe.db.get_value(doctype, filters={"item_code": self.name, "docstatus": 1}) or \
 				frappe.db.get_value("Production Order",
diff --git a/erpnext/stock/doctype/item_price/item_price.json b/erpnext/stock/doctype/item_price/item_price.json
index 5f08262..0685c80 100644
--- a/erpnext/stock/doctype/item_price/item_price.json
+++ b/erpnext/stock/doctype/item_price/item_price.json
@@ -74,6 +74,33 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "column_break_3", 
+   "fieldtype": "Column Break", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "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_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "fieldname": "buying", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -153,6 +180,34 @@
   }, 
   {
    "allow_on_submit": 0, 
+   "bold": 1, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "fieldname": "currency", 
+   "fieldtype": "Link", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_list_view": 1, 
+   "in_standard_filter": 0, 
+   "label": "Currency", 
+   "length": 0, 
+   "no_copy": 0, 
+   "options": "Currency", 
+   "permlevel": 0, 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 1, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_on_submit": 0, 
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
@@ -216,34 +271,6 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "currency", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Currency", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Currency", 
-   "permlevel": 0, 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
    "fieldname": "col_br_1", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -318,61 +345,6 @@
    "search_index": 0, 
    "set_only_once": 0, 
    "unique": 0
-  }, 
-  {
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "section_break_12", 
-   "fieldtype": "Section Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "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_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "bulk_import_help", 
-   "fieldtype": "HTML", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Bulk Import Help", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "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
   }
  ], 
  "hide_heading": 0, 
@@ -386,7 +358,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-12-15 14:52:09.842544", 
+ "modified": "2017-02-17 04:24:30.453863", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Item Price", 
@@ -435,7 +407,7 @@
    "write": 1
   }
  ], 
- "quick_entry": 0, 
+ "quick_entry": 1, 
  "read_only": 0, 
  "read_only_onload": 0, 
  "sort_order": "ASC", 
diff --git a/erpnext/utilities/__init__.py b/erpnext/utilities/__init__.py
index bba21e6..b94061c 100644
--- a/erpnext/utilities/__init__.py
+++ b/erpnext/utilities/__init__.py
@@ -1,6 +1,7 @@
 ## temp utility
 
 import frappe
+from erpnext.utilities.activation import get_level
 
 def update_doctypes():
 	for d in frappe.db.sql("""select df.parent, df.fieldname
@@ -29,5 +30,6 @@
 
 	return {
 		'company': company,
-		'domain': domain
+		'domain': domain,
+		'activation': get_level()
 	}
diff --git a/erpnext/utilities/activation.py b/erpnext/utilities/activation.py
new file mode 100644
index 0000000..563f71e
--- /dev/null
+++ b/erpnext/utilities/activation.py
@@ -0,0 +1,36 @@
+import frappe
+
+def get_level():
+	activation_level = 0
+	if frappe.db.get_single_value('System Settings', 'setup_complete'):
+		activation_level = 1
+
+	if frappe.db.count('Item') > 5:
+		activation_level += 1
+
+	if frappe.db.count('Customer') > 5:
+		activation_level += 1
+
+	if frappe.db.count('Sales Order') > 2:
+		activation_level += 1
+
+	if frappe.db.count('Purchase Order') > 2:
+		activation_level += 1
+
+	if frappe.db.count('Employee') > 3:
+		activation_level += 1
+
+	if frappe.db.count('Payment Entry') > 2:
+		activation_level += 1
+
+	if frappe.db.count('Communication', dict(communication_medium='Email')) > 10:
+		activation_level += 1
+
+	if frappe.db.count('User') > 5:
+		activation_level += 1
+
+	# recent login
+	if frappe.db.sql('select name from tabUser where last_login > date_sub(now(), interval 2 day) limit 1'):
+		activation_level += 1
+
+	return activation_level
\ No newline at end of file
