validation for stock and nonstock items in purchase cycle
diff --git a/manufacturing/doctype/bom/bom.py b/manufacturing/doctype/bom/bom.py
index 1408a3a..5f42f4d 100644
--- a/manufacturing/doctype/bom/bom.py
+++ b/manufacturing/doctype/bom/bom.py
@@ -89,7 +89,7 @@
 				"qty": item.qty	})
 			
 			for r in ret:
-				if not item.fields[r]:
+				if not item.fields.get(r):
 					item.fields[r] = ret[r]
 		
 	def get_bom_material_detail(self, args=None):
@@ -117,7 +117,7 @@
 
 	def get_rm_rate(self, arg):
 		"""	Get raw material rate as per selected method, if bom exists takes bom cost """
-
+		rate = 0
 		if arg['bom_no']:
 			rate = self.get_bom_unitcost(arg['bom_no'])
 		elif arg and (arg['is_purchase_item'] == 'Yes' or arg['is_sub_contracted_item'] == 'Yes'):