Merge branch 'master' into develop
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 362d8aa..f8cade9 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -4,7 +4,7 @@
 import frappe
 from erpnext.hooks import regional_overrides
 
-__version__ = '9.2.7'
+__version__ = '9.2.8'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index b1618d5..37afed7 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -185,7 +185,7 @@
 				"page_len": page_len
 			}, as_dict=as_dict)
 
-def bom(doctype, txt, searchfield, start, page_len, filters):
+def bom(doctype, txt, searchfield, filters, start=0, page_len=20):
 	conditions = []
 
 	return frappe.db.sql("""select tabBOM.name, tabBOM.item
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index ff0d8f3..fb4e0ba 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -458,4 +458,5 @@
 erpnext.patches.v9_0.copy_old_fees_field_data
 execute:frappe.delete_doc_if_exists("DocType", "Program Fee")
 erpnext.patches.v9_0.set_pos_profile_name
-erpnext.patches.v9_0.remove_non_existing_warehouse_from_stock_settings
\ No newline at end of file
+erpnext.patches.v9_0.remove_non_existing_warehouse_from_stock_settings
+execute:frappe.delete_doc_if_exists("DocType", "Program Fee")
diff --git a/erpnext/patches/v9_0/set_pos_profile_name.py b/erpnext/patches/v9_0/set_pos_profile_name.py
index 3ae3774..1958e2c 100644
--- a/erpnext/patches/v9_0/set_pos_profile_name.py
+++ b/erpnext/patches/v9_0/set_pos_profile_name.py
@@ -11,7 +11,7 @@
 	for pos in frappe.get_all(doctype, filters={'disabled': 0}):
 		doc = frappe.get_doc(doctype, pos.name)
 
-		if not doc.user and doc.pos_profile_name: continue
+		if not doc.user or doc.pos_profile_name: continue
 
 		try:
 			doc.pos_profile_name = doc.user + ' - ' + doc.company
diff --git a/erpnext/schools/doctype/student_applicant/student_applicant.py b/erpnext/schools/doctype/student_applicant/student_applicant.py
index d0db658..6d0957c 100644
--- a/erpnext/schools/doctype/student_applicant/student_applicant.py
+++ b/erpnext/schools/doctype/student_applicant/student_applicant.py
@@ -12,6 +12,7 @@
 	def autoname(self):
 		from frappe.model.naming import set_name_by_naming_series
 		if self.student_admission:
+			naming_series = None
 			if self.program:
 				# set the naming series from the student admission if provided.
 				student_admission = get_student_admission_data(self.student_admission, self.program)
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 844d62b..6a6af3d 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -91,7 +91,7 @@
 		self.validate_barcode()
 		self.cant_change()
 		self.validate_warehouse_for_reorder()
-		self.update_item_desc()
+		self.update_bom_item_desc()
 		self.synced_with_hub = 0
 
 		self.validate_has_variants()
@@ -599,13 +599,27 @@
 					row.label = label
 					row.description = desc
 
-	def update_item_desc(self):
-		if frappe.db.get_value('BOM',self.name, 'description') != self.description:
-			frappe.db.sql("""update `tabBOM` set description = %s where item = %s and docstatus < 2""",(self.description, self.name))
-			frappe.db.sql("""update `tabBOM Item` set description = %s where
-				item_code = %s and docstatus < 2""",(self.description, self.name))
-			frappe.db.sql("""update `tabBOM Explosion Item` set description = %s where
-				item_code = %s and docstatus < 2""",(self.description, self.name))
+	def update_bom_item_desc(self):
+		if self.is_new(): return
+
+		if self.db_get('description') != self.description:
+			frappe.db.sql("""
+				update `tabBOM`
+				set description = %s
+				where item = %s and docstatus < 2
+			""", (self.description, self.name))
+
+			frappe.db.sql("""
+				update `tabBOM Item`
+				set description = %s
+				where item_code = %s and docstatus < 2
+			""", (self.description, self.name))
+
+			frappe.db.sql("""
+				update `tabBOM Explosion Item`
+				set description = %s
+				where item_code = %s and docstatus < 2
+			""", (self.description, self.name))
 
 	def update_template_item(self):
 		"""Set Show in Website for Template Item if True for its Variant"""