diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 6a02706..3e4522c 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -69,7 +69,7 @@
 
 		}
 	},
-	
+
 	supplier: function() {
 		var me = this;
 		if(this.frm.updating_party_details)
@@ -152,7 +152,7 @@
 	return {
 		query: "erpnext.controllers.queries.item_query",
 		filters:{
-			'is_purchase_item': 'Yes'
+			'is_purchase_item': 1
 		}
 	}
 }
@@ -232,4 +232,3 @@
 	else
 		cur_frm.pformat.print_heading = __("Purchase Invoice");
 }
-
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 006470f..cc77394 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -80,7 +80,7 @@
 	def check_active_purchase_items(self):
 		for d in self.get('items'):
 			if d.item_code:		# extra condn coz item_code is not mandatory in PV
-				if frappe.db.get_value("Item", d.item_code, "is_purchase_item") != 'Yes':
+				if frappe.db.get_value("Item", d.item_code, "is_purchase_item") != 1:
 					msgprint(_("Item {0} is not Purchase Item").format(d.item_code), raise_exception=True)
 
 	def check_conversion_rate(self):
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index 2c5bb12..e81eec9 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -11,9 +11,9 @@
 	args = {"price_list": price_list}
 
 	if sales_or_purchase == "Sales":
-		condition = "i.is_sales_item='Yes'"
+		condition = "i.is_sales_item=1"
 	else:
-		condition = "i.is_purchase_item='Yes'"
+		condition = "i.is_purchase_item=1"
 
 	if item:
 		# search serial no
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 5a9ccea..12e199f 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -85,7 +85,7 @@
 			self.update_prevdoc_status()
 			self.update_billing_status_for_zero_amount_refdoc("Sales Order")
 			self.check_credit_limit()
-			
+
 		# this sequence because outstanding may get -ve
 		self.make_gl_entries()
 
@@ -102,15 +102,15 @@
 			self.update_stock_ledger()
 
 		self.check_stop_sales_order("sales_order")
-		
+
 		from erpnext.accounts.utils import remove_against_link_from_jv
 		remove_against_link_from_jv(self.doctype, self.name, "against_invoice")
-		
+
 		if not self.is_return:
 			self.update_status_updater_args()
 			self.update_prevdoc_status()
 			self.update_billing_status_for_zero_amount_refdoc("Sales Order")
-			
+
 		self.validate_c_form_on_cancel()
 
 		self.make_gl_entries_on_cancel()
@@ -248,12 +248,10 @@
 	def validate_fixed_asset_account(self):
 		"""Validate Fixed Asset and whether Income Account Entered Exists"""
 		for d in self.get('items'):
-			item = frappe.db.sql("""select name,is_asset_item,is_sales_item from `tabItem`
-				where name = %s""", d.item_code)
-			acc = frappe.db.sql("""select account_type from `tabAccount`
-				where name = %s and docstatus != 2""", d.income_account)
-			if item and item[0][1] == 'Yes' and acc and acc[0][0] != 'Fixed Asset':
-				msgprint(_("Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item").format(acc[0][0], d.item_code), raise_exception=True)
+			is_asset_item = frappe.db.get_value("Item", d.item_code, "is_asset_item")
+			account_type = frappe.db.get_value("Account", d.income_account, "account_type")
+			if is_asset_item == 1 and account_type != 'Fixed Asset':
+				msgprint(_("Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item").format(d.income_account, d.item_code), raise_exception=True)
 
 	def validate_with_previous_doc(self):
 		super(SalesInvoice, self).validate_with_previous_doc({
@@ -271,7 +269,7 @@
 
 		if cint(frappe.db.get_single_value('Selling Settings', 'maintain_same_sales_rate')):
 			self.validate_rate_with_reference_doc([
-				["Sales Order", "sales_order", "so_detail"], 
+				["Sales Order", "sales_order", "so_detail"],
 				["Delivery Note", "delivery_note", "dn_detail"]
 			])
 
@@ -296,7 +294,7 @@
 		for i in dic:
 			if frappe.db.get_value('Selling Settings', None, dic[i]) == 'Yes':
 				for d in self.get('items'):
-					if frappe.db.get_value('Item', d.item_code, 'is_stock_item') == 'Yes' \
+					if frappe.db.get_value('Item', d.item_code, 'is_stock_item') == 1 \
 						and not d.get(i.lower().replace(' ','_')):
 						msgprint(_("{0} is mandatory for Item {1}").format(i,d.item_code), raise_exception=1)
 
@@ -426,11 +424,13 @@
 	def update_stock_ledger(self):
 		sl_entries = []
 		for d in self.get_item_list():
-			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == "Yes" and d.warehouse:
+			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 1 \
+				and d.warehouse:
 				incoming_rate = 0
 				if cint(self.is_return) and self.return_against and self.docstatus==1:
-					incoming_rate = self.get_incoming_rate_for_sales_return(d.item_code, self.return_against)
-					
+					incoming_rate = self.get_incoming_rate_for_sales_return(d.item_code,
+						self.return_against)
+
 				sl_entries.append(self.get_sl_entries(d, {
 					"actual_qty": -1*flt(d.qty),
 					"stock_uom": frappe.db.get_value("Item", d.item_code, "stock_uom"),
@@ -664,4 +664,4 @@
 @frappe.whitelist()
 def make_sales_return(source_name, target_doc=None):
 	from erpnext.controllers.sales_and_purchase_return import make_return_doc
-	return make_return_doc("Sales Invoice", source_name, target_doc)
\ No newline at end of file
+	return make_return_doc("Sales Invoice", source_name, target_doc)
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 75c353d..36d1676 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -215,7 +215,7 @@
 		if self.filters.to_date:
 			conditions += " and posting_date <= %(to_date)s"
 
-		self.si_list = frappe.db.sql("""select item.parenttype, item.parent, 
+		self.si_list = frappe.db.sql("""select item.parenttype, item.parent,
 				si.posting_date, si.posting_time, si.project_name, si.update_stock,
 				si.customer, si.customer_group, si.territory,
 				item.item_code, item.item_name, item.description, item.warehouse,
@@ -257,4 +257,4 @@
 
 	def load_non_stock_items(self):
 		self.non_stock_items = frappe.db.sql_list("""select name from tabItem
-			where ifnull(is_stock_item, 'No')='No'""")
+			where is_stock_item=0""")
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.js b/erpnext/buying/doctype/purchase_common/purchase_common.js
index 19ad9ab..7693e08 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.js
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.js
@@ -44,12 +44,12 @@
 			if(me.frm.doc.is_subcontracted == "Yes") {
 				 return{
 					query: "erpnext.controllers.queries.item_query",
-					filters:{ 'is_sub_contracted_item': 'Yes' }
+					filters:{ 'is_sub_contracted_item': 1 }
 				}
 			} else {
 				return{
 					query: "erpnext.controllers.queries.item_query",
-					filters: { 'is_purchase_item': 'Yes' }
+					filters: { 'is_purchase_item': 1 }
 				}
 			}
 		});
diff --git a/erpnext/buying/doctype/purchase_common/purchase_common.py b/erpnext/buying/doctype/purchase_common/purchase_common.py
index 1bf6f8f..7c55d59 100644
--- a/erpnext/buying/doctype/purchase_common/purchase_common.py
+++ b/erpnext/buying/doctype/purchase_common/purchase_common.py
@@ -56,24 +56,25 @@
 					d.set(x, f_lst[x])
 
 			item = frappe.db.sql("""select is_stock_item, is_purchase_item,
-				is_sub_contracted_item, end_of_life from `tabItem` where name=%s""", d.item_code)
+				is_sub_contracted_item, end_of_life from `tabItem` where name=%s""",
+				d.item_code, as_dict=1)[0]
 
 			from erpnext.stock.doctype.item.item import validate_end_of_life
-			validate_end_of_life(d.item_code, item[0][3])
+			validate_end_of_life(d.item_code, item.end_of_life)
 
 			# validate stock item
-			if item[0][0]=='Yes' and d.qty and not d.warehouse:
+			if item.is_stock_item==1 and d.qty and not d.warehouse:
 				frappe.throw(_("Warehouse is mandatory for stock Item {0} in row {1}").format(d.item_code, d.idx))
 
 			# validate purchase item
 			if not (obj.doctype=="Material Request" and getattr(obj, "material_request_type", None)=="Material Transfer"):
-				if item[0][1] != 'Yes' and item[0][2] != 'Yes':
+				if item.is_purchase_item != 1 and item.is_sub_contracted_item != 1:
 					frappe.throw(_("{0} must be a Purchased or Sub-Contracted Item in row {1}").format(d.item_code, d.idx))
 
 			items.append(cstr(d.item_code))
 		if items and len(items) != len(set(items)):
 			frappe.msgprint(_("Warning: Same item has been entered multiple times."))
-			
+
 
 	def check_for_stopped_status(self, doctype, docname):
 		stopped = frappe.db.sql("""select name from `tab%s` where name = %s and
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index 220dff2..6756e47 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -153,7 +153,7 @@
 		item_wh_list = []
 		for d in self.get("items"):
 			if (not po_item_rows or d.name in po_item_rows) and [d.item_code, d.warehouse] not in item_wh_list \
-					and frappe.db.get_value("Item", d.item_code, "is_stock_item") == "Yes" and d.warehouse:
+					and frappe.db.get_value("Item", d.item_code, "is_stock_item") and d.warehouse:
 				item_wh_list.append([d.item_code, d.warehouse])
 
 		for item_code, warehouse in item_wh_list:
diff --git a/erpnext/change_log/current/item_cleanup.md b/erpnext/change_log/current/item_cleanup.md
new file mode 100644
index 0000000..c2f1e91
--- /dev/null
+++ b/erpnext/change_log/current/item_cleanup.md
@@ -0,0 +1,2 @@
+- **Item** form cleanups: "Yes" / "No" type fields changed to checkboxes.<br>
+	**Warning**: This could break your 3rd party integrations with Item, if any.
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 55e9e3d..1623f3f 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -307,7 +307,7 @@
 		item_codes = list(set(item.item_code for item in self.get("items")))
 		if item_codes:
 			stock_items = [r[0] for r in frappe.db.sql("""select name
-				from `tabItem` where name in (%s) and is_stock_item='Yes'""" % \
+				from `tabItem` where name in (%s) and is_stock_item=1""" % \
 				(", ".join((["%s"]*len(item_codes))),), item_codes)]
 
 		return stock_items
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 0b60473..7fd8feb 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -238,8 +238,8 @@
 			t2.rate, t2.stock_uom, t2.name, t2.description
 			from `tabBOM` t1, `tabBOM Item` t2, tabItem t3
 			where t2.parent = t1.name and t1.item = %s
-			and t1.docstatus = 1 and t1.is_active = 1 and t1.name = %s 
-			and t2.item_code = t3.name and ifnull(t3.is_stock_item, 'No') = 'Yes'""", (item_code, bom), as_dict=1)
+			and t1.docstatus = 1 and t1.is_active = 1 and t1.name = %s
+			and t2.item_code = t3.name and t3.is_stock_item = 1""", (item_code, bom), as_dict=1)
 
 		if not bom_items:
 			msgprint(_("Specified BOM {0} does not exist for Item {1}").format(bom, item_code), raise_exception=1)
@@ -254,7 +254,7 @@
 				self.get("items")))
 			if item_codes:
 				self._sub_contracted_items = [r[0] for r in frappe.db.sql("""select name
-					from `tabItem` where name in (%s) and is_sub_contracted_item='Yes'""" % \
+					from `tabItem` where name in (%s) and is_sub_contracted_item=1""" % \
 					(", ".join((["%s"]*len(item_codes))),), item_codes)]
 
 		return self._sub_contracted_items
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 5ad0a25..9a0aedf 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -248,7 +248,7 @@
 			item = frappe.db.sql("""select docstatus, is_sales_item,
 				is_service_item, income_account from tabItem where name = %s""",
 				d.item_code, as_dict=True)[0]
-			if item.is_sales_item == 'No' and item.is_service_item == 'No':
+			if item.is_sales_item == 0 and item.is_service_item == 0:
 				frappe.throw(_("Item {0} must be Sales or Service Item in {1}").format(d.item_code, d.idx))
 			if getattr(d, "income_account", None) and not item.income_account:
 				frappe.db.set_value("Item", d.item_code, "income_account",
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 19440e2..a47314b 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -212,7 +212,7 @@
 		item_codes = list(set([d.item_code for d in self.get("items")]))
 		if item_codes:
 			serialized_items = frappe.db.sql_list("""select name from `tabItem`
-				where has_serial_no='Yes' and name in ({})""".format(", ".join(["%s"]*len(item_codes))),
+				where has_serial_no=1 and name in ({})""".format(", ".join(["%s"]*len(item_codes))),
 				tuple(item_codes))
 
 		return serialized_items
diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js
index 6fc2589..6156dcf 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.js
+++ b/erpnext/crm/doctype/opportunity/opportunity.js
@@ -48,7 +48,7 @@
 			return {
 				query: "erpnext.controllers.queries.item_query",
 				filters: me.frm.doc.enquiry_type === "Maintenance" ?
-					{"is_service_item": "Yes"} : {"is_sales_item": "Yes"}
+					{"is_service_item": 1} : {"is_sales_item":1}
 			};
 		});
 
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
index 4201e67..cf48381 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
@@ -24,7 +24,7 @@
 	def publish_selling_items(self):
 		"""Set `publish_in_hub`=1 for all Sales Items"""
 		for item in frappe.get_all("Item", fields=["name"],
-			filters={"is_sales_item": "Yes", "publish_in_hub": "0"}):
+			filters={"is_sales_item": 1, "publish_in_hub": "0"}):
 			frappe.db.set_value("Item", item.name, "publish_in_hub", 1)
 
 	def register(self):
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 5a3bbcd..9aab96d 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -107,7 +107,7 @@
 		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'):
+		elif arg and (arg['is_purchase_item'] == 1 or arg['is_sub_contracted_item'] == 1):
 			if self.rm_cost_as_per == 'Valuation Rate':
 				rate = self.get_valuation_rate(arg)
 			elif self.rm_cost_as_per == 'Last Purchase Rate':
@@ -385,14 +385,14 @@
 				and bom_item.docstatus < 2
 				and bom_item.parent = %(bom)s
 				and item.name = bom_item.item_code
-				and ifnull(item.is_stock_item, 'No') = 'Yes'
+				and is_stock_item = 1
 				{conditions}
 				group by item_code, stock_uom"""
 
 	if fetch_exploded:
 		query = query.format(table="BOM Explosion Item",
-			conditions="""and ifnull(item.is_pro_applicable, 'No') = 'No'
-				and ifnull(item.is_sub_contracted_item, 'No') = 'No' """)
+			conditions="""and item.is_pro_applicable = 0
+				and item.is_sub_contracted_item = 0 """)
 		items = frappe.db.sql(query, { "qty": qty,	"bom": bom }, as_dict=True)
 	else:
 		query = query.format(table="BOM Item", conditions="")
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js
index d366377..60b4918 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.js
+++ b/erpnext/manufacturing/doctype/production_order/production_order.js
@@ -191,11 +191,10 @@
 		method: "set_production_order_operations"
 		});
 	},
-	
+
 	qty: function() {
 		frappe.ui.form.trigger("Production Order", 'bom_no')
 	},
-	
 	show_time_logs: function(doc, cdt, cdn) {
 		var child = locals[cdt][cdn]
 		frappe.route_options = {"operation_id": child.name};
@@ -250,8 +249,8 @@
 cur_frm.fields_dict['production_item'].get_query = function(doc) {
 	return {
 		filters:[
-			['Item', 'is_pro_applicable', '=', 'Yes'],
-			['Item', 'has_variants', '=', 'No'],
+			['Item', 'is_pro_applicable', '=', 1],
+			['Item', 'has_variants', '=', 0]
 			['Item', 'end_of_life', '>=', frappe.datetime.nowdate()]
 		]
 	}
@@ -264,7 +263,3 @@
 		]
 	}
 }
-
-
-
-
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py
index 13cc523..b79f8b6 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/production_order.py
@@ -94,7 +94,7 @@
 			(self.sales_order, self.production_item))[0][0]
 		# total qty in SO
 		so_qty = flt(so_item_qty) + flt(dnpi_qty)
-		
+
 		allowance_percentage = flt(frappe.db.get_single_value("Manufacturing Settings", "over_production_allowance_percentage"))
 		if total_qty > so_qty + (allowance_percentage/100 * so_qty):
 			frappe.throw(_("Cannot produce more Item {0} than Sales Order quantity {1}").format(self.production_item,
@@ -320,14 +320,14 @@
 	def delete_time_logs(self):
 		for time_log in frappe.get_all("Time Log", ["name"], {"production_order": self.name}):
 			frappe.delete_doc("Time Log", time_log.name)
-	
+
 	def validate_production_item(self):
-		if frappe.db.get_value("Item", self.production_item, "is_pro_applicable")=='No':
+		if not frappe.db.get_value("Item", self.production_item, "is_pro_applicable"):
 			frappe.throw(_("Item is not allowed to have Production Order."), ProductionNotApplicableError)
-		
+
 		if frappe.db.get_value("Item", self.production_item, "has_variants"):
 			frappe.throw(_("Production Order cannot be raised against a Item Template"), ItemHasVariantError)
-		
+
 		validate_end_of_life(self.production_item)
 
 @frappe.whitelist()
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index b91b2e1..ddcc8c7 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -126,7 +126,7 @@
 			"docstatus": 0
 		})
 		self.assertRaises(OverProductionLoggedError, time_log2.save)
-		
+
 	def test_planned_operating_cost(self):
 		prod_order = make_prod_order_test_record(item="_Test FG Item 2",
 			planned_start_date="2014-11-25 00:00:00", qty=1, do_not_save=True)
@@ -135,20 +135,20 @@
 		prod_order.qty = 2
 		prod_order.set_production_order_operations()
 		self.assertEqual(prod_order.planned_operating_cost, cost*2)
-		
+
 	def test_production_item(self):
-		frappe.db.set_value("Item", "_Test FG Item", "is_pro_applicable", "No")
+		frappe.db.set_value("Item", "_Test FG Item", "is_pro_applicable", 0)
 
 		prod_order = make_prod_order_test_record(item="_Test FG Item", qty=1, do_not_save=True)
 		self.assertRaises(ProductionNotApplicableError, prod_order.save)
-		
-		frappe.db.set_value("Item", "_Test FG Item", "is_pro_applicable", "Yes")
+
+		frappe.db.set_value("Item", "_Test FG Item", "is_pro_applicable", 1)
 		frappe.db.set_value("Item", "_Test FG Item", "end_of_life", "2000-1-1")
-		
+
 		self.assertRaises(frappe.ValidationError, prod_order.save)
-		
+
 		frappe.db.set_value("Item", "_Test FG Item", "end_of_life", None)
-		
+
 		prod_order = make_prod_order_test_record(item="_Test Variant Item", qty=1, do_not_save=True)
 		self.assertRaises(ItemHasVariantError, prod_order.save)
 
diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js
index f3b918d..212acaa 100644
--- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js
+++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js
@@ -52,7 +52,7 @@
 
 cur_frm.fields_dict['items'].grid.get_field('item_code').get_query = function(doc) {
  	return erpnext.queries.item({
-		'is_pro_applicable': 'Yes'
+		'is_pro_applicable': 1
 	});
 }
 
diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
index 271abac..c4cebb8 100644
--- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
+++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py
@@ -61,13 +61,13 @@
 				and so.company = %s
 				and ifnull(so_item.qty, 0) > ifnull(so_item.delivered_qty, 0) %s
 				and (exists (select name from `tabItem` item where item.name=so_item.item_code
-					and (ifnull(item.is_pro_applicable, 'No') = 'Yes'
-						or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s)
+					and (item.is_pro_applicable = 1
+						or item.is_sub_contracted_item = 1 %s)
 					or exists (select name from `tabPacked Item` pi
 						where pi.parent = so.name and pi.parent_item = so_item.item_code
 							and exists (select name from `tabItem` item where item.name=pi.item_code
-								and (ifnull(item.is_pro_applicable, 'No') = 'Yes'
-									or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s)))
+								and (item.is_pro_applicable = 1
+									or item.is_sub_contracted_item = 1) %s)))
 			""" % ('%s', so_filter, item_filter, item_filter), self.company, as_dict=1)
 
 		self.add_so_in_table(open_so)
@@ -108,8 +108,8 @@
 			from `tabSales Order Item` so_item
 			where parent in (%s) and docstatus = 1 and ifnull(qty, 0) > ifnull(delivered_qty, 0)
 			and exists (select * from `tabItem` item where item.name=so_item.item_code
-				and (ifnull(item.is_pro_applicable, 'No') = 'Yes'
-					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes')) %s""" % \
+				and (item.is_pro_applicable = 1
+					or item.is_sub_contracted_item = 1)) %s""" % \
 			(", ".join(["%s"] * len(so_list)), item_condition), tuple(so_list), as_dict=1)
 
 		if self.fg_item:
@@ -123,8 +123,8 @@
 			and pi.parent_item = so_item.item_code
 			and so_item.parent in (%s) and ifnull(so_item.qty, 0) > ifnull(so_item.delivered_qty, 0)
 			and exists (select * from `tabItem` item where item.name=pi.item_code
-				and (ifnull(item.is_pro_applicable, 'No') = 'Yes'
-					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes')) %s""" % \
+				and (item.is_pro_applicable = 1
+					or item.is_sub_contracted_item = 1)) %s""" % \
 			(", ".join(["%s"] * len(so_list)), item_condition), tuple(so_list), as_dict=1)
 
 		return items + packed_items
@@ -178,7 +178,7 @@
 		for d in self.get("items"):
 			if d.bom_no:
 				bom_dict.setdefault(d.bom_no, []).append([d.sales_order, flt(d.planned_qty)])
-				if frappe.db.get_value("Item", d.item_code, "is_pro_applicable") == "Yes":
+				if frappe.db.get_value("Item", d.item_code, "is_pro_applicable"):
 					item_dict[(d.item_code, d.sales_order, d.warehouse)] = {
 						"production_item"	: d.item_code,
 						"sales_order"		: d.sales_order,
@@ -239,10 +239,10 @@
 					ifnull(sum(ifnull(fb.qty, 0)/ifnull(bom.quantity, 1)), 0) as qty,
 					fb.description, fb.stock_uom, it.min_order_qty
 					from `tabBOM Explosion Item` fb, `tabBOM` bom, `tabItem` it
-					where bom.name = fb.parent and it.name = fb.item_code 
-					and ifnull(it.is_pro_applicable, 'No') = 'No'
-					and ifnull(it.is_sub_contracted_item, 'No') = 'No'
-					and ifnull(it.is_stock_item, 'No') = 'Yes'
+					where bom.name = fb.parent and it.name = fb.item_code
+					and is_pro_applicable = 0
+					and is_sub_contracted_item = 0
+					and is_stock_item = 1
 					and fb.docstatus<2 and bom.name=%s
 					group by item_code, stock_uom""", bom, as_dict=1):
 						bom_wise_item_details.setdefault(d.item_code, d)
@@ -255,7 +255,7 @@
 					from `tabBOM Item` bom_item, `tabBOM` bom, tabItem item
 					where bom.name = bom_item.parent and bom.name = %s and bom_item.docstatus < 2
 					and bom_item.item_code = item.name
-					and ifnull(item.is_stock_item, 'No') = 'Yes'
+					and item.is_stock_item = 1
 					group by item_code""", bom, as_dict=1):
 						bom_wise_item_details.setdefault(d.item_code, d)
 
@@ -350,7 +350,7 @@
 
 	def insert_purchase_request(self):
 		items_to_be_requested = self.get_requested_items()
-		
+
 		purchase_request_list = []
 		if items_to_be_requested:
 			for item in items_to_be_requested:
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 7629123..648d5b7 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -24,6 +24,9 @@
 execute:frappe.reload_doc('support', 'doctype', 'newsletter') # 2014-01-31
 execute:frappe.reload_doc('hr', 'doctype', 'employee') # 2014-02-03
 execute:frappe.db.sql("update tabPage set module='Core' where name='Setup'")
+
+# inserted this patch here since Item types are being changed
+erpnext.patches.v5_2.change_item_selects_to_checks
 erpnext.patches.v4_0.fields_to_be_renamed
 erpnext.patches.v4_0.rename_sitemap_to_route
 erpnext.patches.v4_0.fix_contact_address
@@ -176,4 +179,4 @@
 execute:frappe.rename_doc("DocType", "Salary Manager", "Process Payroll", force=True)
 erpnext.patches.v5_1.rename_roles
 erpnext.patches.v5_1.default_bom
-execute:frappe.delete_doc("DocType", "Party Type")
\ No newline at end of file
+execute:frappe.delete_doc("DocType", "Party Type")
diff --git a/erpnext/patches/v4_2/set_item_has_batch.py b/erpnext/patches/v4_2/set_item_has_batch.py
index 740efc8..7e52d2d 100644
--- a/erpnext/patches/v4_2/set_item_has_batch.py
+++ b/erpnext/patches/v4_2/set_item_has_batch.py
@@ -5,61 +5,61 @@
 import frappe
 
 def execute():
-	frappe.db.sql("update tabItem set has_batch_no = 'No' where ifnull(has_batch_no, '') = ''")
-	frappe.db.sql("update tabItem set has_serial_no = 'No' where ifnull(has_serial_no, '') = ''")
-	
-	item_list = frappe.db.sql("""select name, has_batch_no, has_serial_no from tabItem 
-		where ifnull(is_stock_item, 'No') = 'Yes'""", as_dict=1)
-		
+	frappe.db.sql("update tabItem set has_batch_no = 0 where ifnull(has_batch_no, '') = ''")
+	frappe.db.sql("update tabItem set has_serial_no = 0 where ifnull(has_serial_no, '') = ''")
+
+	item_list = frappe.db.sql("""select name, has_batch_no, has_serial_no from tabItem
+		where is_stock_item = 1""", as_dict=1)
+
 	sle_count = get_sle_count()
 	sle_with_batch = get_sle_with_batch()
 	sle_with_serial = get_sle_with_serial()
-	
+
 	batch_items = get_items_with_batch()
 	serialized_items = get_items_with_serial()
-		
-	for d in item_list:	
-		if d.has_batch_no == 'Yes':
+
+	for d in item_list:
+		if d.has_batch_no == 1:
 			if d.name not in batch_items and sle_count.get(d.name) and sle_count.get(d.name) != sle_with_batch.get(d.name):
-					frappe.db.set_value("Item", d.name, "has_batch_no", "No")
+					frappe.db.set_value("Item", d.name, "has_batch_no", 0)
 		else:
 			if d.name in batch_items or (sle_count.get(d.name) and sle_count.get(d.name) == sle_with_batch.get(d.name)):
-				frappe.db.set_value("Item", d.name, "has_batch_no", "Yes")
-		
-		if d.has_serial_no == 'Yes':
+				frappe.db.set_value("Item", d.name, "has_batch_no", 1)
+
+		if d.has_serial_no == 1:
 			if d.name not in serialized_items and sle_count.get(d.name) and sle_count.get(d.name) != sle_with_serial.get(d.name):
-				frappe.db.set_value("Item", d.name, "has_serial_no", "No")
+				frappe.db.set_value("Item", d.name, "has_serial_no", 0)
 		else:
 			if d.name in serialized_items or (sle_count.get(d.name) and sle_count.get(d.name) == sle_with_serial.get(d.name)):
-				frappe.db.set_value("Item", d.name, "has_serial_no", "Yes")
-		
-				
+				frappe.db.set_value("Item", d.name, "has_serial_no", 1)
+
+
 def get_sle_count():
 	sle_count = {}
 	for d in frappe.db.sql("""select item_code, count(name) as cnt from `tabStock Ledger Entry` group by item_code""", as_dict=1):
 		sle_count.setdefault(d.item_code, d.cnt)
-		
+
 	return sle_count
-	
+
 def get_sle_with_batch():
 	sle_with_batch = {}
-	for d in frappe.db.sql("""select item_code, count(name) as cnt from `tabStock Ledger Entry` 
+	for d in frappe.db.sql("""select item_code, count(name) as cnt from `tabStock Ledger Entry`
 		where ifnull(batch_no, '') != '' group by item_code""", as_dict=1):
 			sle_with_batch.setdefault(d.item_code, d.cnt)
-		
+
 	return sle_with_batch
-	
+
 
 def get_sle_with_serial():
 	sle_with_serial = {}
-	for d in frappe.db.sql("""select item_code, count(name) as cnt from `tabStock Ledger Entry` 
+	for d in frappe.db.sql("""select item_code, count(name) as cnt from `tabStock Ledger Entry`
 		where ifnull(serial_no, '') != '' group by item_code""", as_dict=1):
 			sle_with_serial.setdefault(d.item_code, d.cnt)
-	
+
 	return sle_with_serial
-	
+
 def get_items_with_batch():
 	return frappe.db.sql_list("select item from tabBatch")
-	
+
 def get_items_with_serial():
-	return frappe.db.sql_list("select item_code from `tabSerial No`")
\ No newline at end of file
+	return frappe.db.sql_list("select item_code from `tabSerial No`")
diff --git a/erpnext/patches/v5_2/__init__.py b/erpnext/patches/v5_2/__init__.py
new file mode 100644
index 0000000..baffc48
--- /dev/null
+++ b/erpnext/patches/v5_2/__init__.py
@@ -0,0 +1 @@
+from __future__ import unicode_literals
diff --git a/erpnext/patches/v5_2/change_item_selects_to_checks.py b/erpnext/patches/v5_2/change_item_selects_to_checks.py
new file mode 100644
index 0000000..25d596b
--- /dev/null
+++ b/erpnext/patches/v5_2/change_item_selects_to_checks.py
@@ -0,0 +1,21 @@
+from __future__ import unicode_literals
+
+import frappe
+
+def execute():
+	fields = ("is_stock_item", "is_asset_item", "has_batch_no", "has_serial_no",
+		"is_purchase_item", "is_sales_item", "is_service_item", "inspection_required",
+		"is_pro_applicable", "is_sub_contracted_item")
+
+
+	# convert to 1 or 0
+	update_str = ", ".join(["`{0}`=if(`{0}`='Yes',1,0)".format(f) for f in fields])
+	frappe.db.sql("update tabItem set {0}".format(update_str))
+
+	frappe.db.commit()
+
+	# alter fields to int
+	for f in fields:
+		frappe.db.sql("alter table tabItem change {0} {0} int(1) default '0'".format(f, f))
+
+	frappe.reload_doctype("Item")
diff --git a/erpnext/selling/doctype/installation_note/installation_note.py b/erpnext/selling/doctype/installation_note/installation_note.py
index 662a8f7..e2e7ee6 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.py
+++ b/erpnext/selling/doctype/installation_note/installation_note.py
@@ -39,10 +39,10 @@
 		check_active_sales_items(self)
 
 	def is_serial_no_added(self, item_code, serial_no):
-		ar_required = frappe.db.get_value("Item", item_code, "has_serial_no")
-		if ar_required == 'Yes' and not serial_no:
+		has_serial_no = frappe.db.get_value("Item", item_code, "has_serial_no")
+		if has_serial_no == 1 and not serial_no:
 			frappe.throw(_("Serial No is mandatory for Item {0}").format(item_code))
-		elif ar_required != 'Yes' and cstr(serial_no).strip():
+		elif has_serial_no != 1 and cstr(serial_no).strip():
 			frappe.throw(_("Item {0} is not a serialized Item").format(item_code))
 
 	def is_serial_no_exist(self, item_code, serial_no):
@@ -69,7 +69,7 @@
 				frappe.throw(_("Serial No {0} does not belong to Delivery Note {1}").format(sr, prevdoc_docname))
 
 	def validate_serial_no(self):
-		cur_s_no, prevdoc_s_no, sr_list = [], [], []
+		prevdoc_s_no, sr_list = [], []
 		for d in self.get('items'):
 			self.is_serial_no_added(d.item_code, d.serial_no)
 			if d.serial_no:
diff --git a/erpnext/selling/doctype/product_bundle/product_bundle.py b/erpnext/selling/doctype/product_bundle/product_bundle.py
index 796b4b4..8c95a45 100644
--- a/erpnext/selling/doctype/product_bundle/product_bundle.py
+++ b/erpnext/selling/doctype/product_bundle/product_bundle.py
@@ -21,7 +21,7 @@
 	def validate_main_item(self):
 		"""main item must have Is Stock Item as No and Is Sales Item as Yes"""
 		if not frappe.db.sql("""select name from tabItem where name=%s and
-			ifnull(is_stock_item,'')='No' and ifnull(is_sales_item,'')='Yes'""", self.new_item_code):
+			is_stock_item = 0 and is_sales_item = 1""", self.new_item_code):
 			frappe.throw(_("Parent Item {0} must be not Stock Item and must be a Sales Item").format(self.new_item_code))
 
 	def get_item_details(self, name):
@@ -36,7 +36,7 @@
 	from erpnext.controllers.queries import get_match_cond
 
 	return frappe.db.sql("""select name, item_name, description from tabItem
-		where is_stock_item="No" and is_sales_item="Yes"
+		where is_stock_item=0 and is_sales_item=1
 		and name not in (select name from `tabProduct Bundle`) and %s like %s
 		%s limit %s, %s""" % (searchfield, "%s",
 		get_match_cond(doctype),"%s", "%s"),
diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py
index 6ce34e0..5a98e08 100644
--- a/erpnext/selling/doctype/quotation/quotation.py
+++ b/erpnext/selling/doctype/quotation/quotation.py
@@ -28,17 +28,11 @@
 
 		if self.order_type in ['Maintenance', 'Service']:
 			for d in self.get('items'):
-				is_service_item = frappe.db.sql("select is_service_item from `tabItem` where name=%s", d.item_code)
-				is_service_item = is_service_item and is_service_item[0][0] or 'No'
-
-				if is_service_item == 'No':
+				if not frappe.db.get_value("Item", d.item_code, "is_service_item"):
 					frappe.throw(_("Item {0} must be Service Item").format(d.item_code))
 		else:
 			for d in self.get('items'):
-				is_sales_item = frappe.db.sql("select is_sales_item from `tabItem` where name=%s", d.item_code)
-				is_sales_item = is_sales_item and is_sales_item[0][0] or 'No'
-
-				if is_sales_item == 'No':
+				if not frappe.db.get_value("Item", d.item_code, "is_sales_item"):
 					frappe.throw(_("Item {0} must be Sales Item").format(d.item_code))
 
 	def validate_quotation_to(self):
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index d45fbba..b92e934 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -39,7 +39,7 @@
 		for d in self.get('items'):
 			check_list.append(cstr(d.item_code))
 
-			if (frappe.db.get_value("Item", d.item_code, "is_stock_item") == 'Yes' or
+			if (frappe.db.get_value("Item", d.item_code, "is_stock_item")==1 or
 				self.has_product_bundle(d.item_code)) and not d.warehouse:
 					frappe.throw(_("Reserved warehouse required for stock item {0}").format(d.item_code))
 
@@ -217,7 +217,7 @@
 	def update_stock_ledger(self, update_stock):
 		from erpnext.stock.utils import update_bin
 		for d in self.get_item_list():
-			if frappe.db.get_value("Item", d['item_code'], "is_stock_item") == "Yes":
+			if frappe.db.get_value("Item", d['item_code'], "is_stock_item")==1:
 				args = {
 					"item_code": d['item_code'],
 					"warehouse": d['reserved_warehouse'],
@@ -258,14 +258,14 @@
 
 	def before_recurring(self):
 		super(SalesOrder, self).before_recurring()
-		
+
 		for field in ("delivery_status", "per_delivered", "billing_status", "per_billed"):
 			self.set(field, None)
 
 		for d in self.get("items"):
 			for field in ("delivered_qty", "billed_amt", "planned_qty", "prevdoc_docname"):
 				d.set(field, None)
-			
+
 
 @frappe.whitelist()
 def make_material_request(source_name, target_doc=None):
@@ -273,9 +273,9 @@
 		doc.material_request_type = "Purchase"
 
 	so = frappe.get_doc("Sales Order", source_name)
-	
+
 	item_table = "Packed Item" if so.packed_items else "Sales Order Item"
-	
+
 	doc = get_mapped_doc("Sales Order", source_name, {
 		"Sales Order": {
 			"doctype": "Material Request",
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index e8d8fd5..5404947 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -57,8 +57,8 @@
 				return {
 					query: "erpnext.controllers.queries.item_query",
 					filters: (me.frm.doc.order_type === "Maintenance" ?
-						{'is_service_item': 'Yes'}:
-						{'is_sales_item': 'Yes'	})
+						{'is_service_item': 1}:
+						{'is_sales_item': 1	})
 				}
 			});
 		}
diff --git a/erpnext/setup/page/setup_wizard/sample_data.py b/erpnext/setup/page/setup_wizard/sample_data.py
index d9f8343..b90cceb 100644
--- a/erpnext/setup/page/setup_wizard/sample_data.py
+++ b/erpnext/setup/page/setup_wizard/sample_data.py
@@ -11,8 +11,8 @@
 	"""Create a few opportunities, quotes, material requests, issues, todos, projects
 	to help the user get started"""
 
-	selling_items = frappe.get_all("Item", filters = {"is_sales_item": "Yes"})
-	buying_items = frappe.get_all("Item", filters = {"is_sales_item": "No"})
+	selling_items = frappe.get_all("Item", filters = {"is_sales_item": 1})
+	buying_items = frappe.get_all("Item", filters = {"is_sales_item": 0})
 
 	if selling_items:
 		for i in range(3):
@@ -37,7 +37,7 @@
 
 	add_random_children(b, "items", rows=len(selling_items), randomize = {
 		"qty": (1, 5),
-		"item_code": ("Item", {"is_sales_item": "Yes"})
+		"item_code": ("Item", {"is_sales_item": 1})
 	}, unique="item_code")
 
 	b.insert(ignore_permissions=True)
@@ -54,7 +54,7 @@
 
 	add_random_children(qtn, "items", rows=len(selling_items), randomize = {
 		"qty": (1, 5),
-		"item_code": ("Item", {"is_sales_item": "Yes"})
+		"item_code": ("Item", {"is_sales_item": 1})
 	}, unique="item_code")
 
 	qtn.insert(ignore_permissions=True)
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index e8c7699..2734172 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -368,10 +368,10 @@
 					"item_code": item,
 					"item_name": item,
 					"description": item,
-					"is_sales_item": "Yes" if is_sales_item else "No",
-					"is_purchase_item": "Yes" if is_purchase_item else "No",
+					"is_sales_item": 1 if is_sales_item else 0,
+					"is_purchase_item": 1 if is_purchase_item else 0,
 					"show_in_website": 1,
-					"is_stock_item": is_stock_item and "Yes" or "No",
+					"is_stock_item": is_stock_item and 1 or 0,
 					"item_group": item_group,
 					"stock_uom": args.get("item_uom_" + str(i)),
 					"default_warehouse": default_warehouse
diff --git a/erpnext/stock/doctype/batch/batch.js b/erpnext/stock/doctype/batch/batch.js
index d0d532e..2cfdb63 100644
--- a/erpnext/stock/doctype/batch/batch.js
+++ b/erpnext/stock/doctype/batch/batch.js
@@ -5,8 +5,8 @@
 	return {
 		query: "erpnext.controllers.queries.item_query",
 		filters:{
-			'is_stock_item': 'Yes',
-			'has_batch_no': 'Yes'	
+			'is_stock_item': 1,
+			'has_batch_no': 1
 		}
-	}	
+	}
 }
diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py
index abc6fb3..157b094 100644
--- a/erpnext/stock/doctype/batch/batch.py
+++ b/erpnext/stock/doctype/batch/batch.py
@@ -7,10 +7,10 @@
 from frappe.model.document import Document
 
 class Batch(Document):
-	
+
 	def validate(self):
 		self.item_has_batch_enabled()
 
 	def item_has_batch_enabled(self):
-		if frappe.db.get_value("Item",self.item,"has_batch_no") =='No':
+		if frappe.db.get_value("Item",self.item,"has_batch_no") == 0:
 			frappe.throw(_("The selected item cannot have Batch"))
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index e305882..bf7505b 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -108,7 +108,7 @@
 		if not self.installation_status: self.installation_status = 'Not Installed'
 
 	def validate_with_previous_doc(self):
-		for fn in (("Sales Order", "against_sales_order", "so_detail"), 
+		for fn in (("Sales Order", "against_sales_order", "so_detail"),
 				("Sales Invoice", "against_sales_invoice", "si_detail")):
 			if filter(None, [getattr(d, fn[1], None) for d in self.get("items")]):
 				super(DeliveryNote, self).validate_with_previous_doc({
@@ -118,9 +118,9 @@
 							["currency", "="]],
 					},
 				})
-				
+
 		if cint(frappe.db.get_single_value('Selling Settings', 'maintain_same_sales_rate')):
-			self.validate_rate_with_reference_doc([["Sales Order", "sales_order", "so_detail"], 
+			self.validate_rate_with_reference_doc([["Sales Order", "sales_order", "so_detail"],
 				["Sales Invoice", "sales_invoice", "si_detail"]])
 
 	def validate_proj_cust(self):
@@ -138,7 +138,7 @@
 			e = [d.item_code, d.description, d.warehouse, d.against_sales_order or d.against_sales_invoice, d.batch_no or '']
 			f = [d.item_code, d.description, d.against_sales_order or d.against_sales_invoice]
 
-			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 'Yes':
+			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 1:
 				if e in check_list:
 					msgprint(_("Note: Item {0} entered multiple times").format(d.item_code))
 				else:
@@ -151,7 +151,7 @@
 
 	def validate_warehouse(self):
 		for d in self.get_item_list():
-			if frappe.db.get_value("Item", d['item_code'], "is_stock_item") == "Yes":
+			if frappe.db.get_value("Item", d['item_code'], "is_stock_item") == 1:
 				if not d['warehouse']:
 					frappe.throw(_("Warehouse required for stock Item {0}").format(d["item_code"]))
 
@@ -247,7 +247,7 @@
 	def update_stock_ledger(self):
 		sl_entries = []
 		for d in self.get_item_list():
-			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == "Yes" \
+			if frappe.db.get_value("Item", d.item_code, "is_stock_item") == 1 \
 					and d.warehouse and flt(d['qty']):
 				self.update_reserved_qty(d)
 				
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 3bd5657..35455b4 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -43,7 +43,7 @@
 
 		erpnext.item.edit_prices_button(frm);
 
-		if (!frm.doc.__islocal && frm.doc.is_stock_item == 'Yes') {
+		if (!frm.doc.__islocal && frm.doc.is_stock_item) {
 			frm.toggle_enable(['has_serial_no', 'is_stock_item', 'valuation_method', 'has_batch_no'],
 				(frm.doc.__onload && frm.doc.__onload.sle_exists=="exists") ? false : true);
 		}
@@ -80,11 +80,11 @@
 			method: "copy_specification_from_item_group"
 		});
 	},
-	
+
 	is_stock_item: function(frm) {
 		erpnext.item.toggle_reqd(frm);
 	},
-	
+
 	manage_variants: function(frm) {
 		if (cur_frm.doc.__unsaved==1) {
 			frappe.throw(__("You have unsaved changes. Please save."))
@@ -168,7 +168,7 @@
 	},
 
 	toggle_reqd: function(frm) {
-		frm.toggle_reqd("default_warehouse", frm.doc.is_stock_item==="Yes");
+		frm.toggle_reqd("default_warehouse", frm.doc.is_stock_item);
 	},
 
 	make_dashboard: function(frm) {
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index 1012cda..b0bc85a 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -28,7 +28,7 @@
    "read_only": 0
   }, 
   {
-   "description": "Item will be saved by this name in the data base.", 
+   "description": "", 
    "fieldname": "item_code", 
    "fieldtype": "Data", 
    "in_filter": 0, 
@@ -80,7 +80,7 @@
    "reqd": 1
   }, 
   {
-   "description": "Unit of measurement of this item (e.g. Kg, Unit, No, Pair).", 
+   "description": "", 
    "fieldname": "stock_uom", 
    "fieldtype": "Link", 
    "ignore_user_permissions": 1, 
@@ -114,17 +114,6 @@
    "read_only": 0
   }, 
   {
-   "default": "2099-12-31", 
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "end_of_life", 
-   "fieldtype": "Date", 
-   "label": "End of Life", 
-   "oldfieldname": "end_of_life", 
-   "oldfieldtype": "Date", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
    "fieldname": "column_break0", 
    "fieldtype": "Column Break", 
    "permlevel": 0, 
@@ -167,10 +156,232 @@
    "search_index": 0
   }, 
   {
+   "fieldname": "inventory", 
+   "fieldtype": "Section Break", 
+   "label": "Inventory", 
+   "oldfieldtype": "Section Break", 
+   "options": "icon-truck", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "default": "1", 
+   "description": "", 
+   "fieldname": "is_stock_item", 
+   "fieldtype": "Check", 
+   "label": "Maintain Stock", 
+   "oldfieldname": "is_stock_item", 
+   "oldfieldtype": "Select", 
+   "options": "", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "default": "", 
+   "depends_on": "eval:doc.is_stock_item", 
+   "fieldname": "has_batch_no", 
+   "fieldtype": "Check", 
+   "label": "Has Batch No", 
+   "oldfieldname": "has_batch_no", 
+   "oldfieldtype": "Select", 
+   "options": "", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "default": "", 
+   "depends_on": "eval:doc.is_stock_item", 
+   "description": "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.", 
+   "fieldname": "has_serial_no", 
+   "fieldtype": "Check", 
+   "in_filter": 1, 
+   "label": "Has Serial No", 
+   "oldfieldname": "has_serial_no", 
+   "oldfieldtype": "Select", 
+   "options": "", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "depends_on": "has_serial_no", 
+   "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.", 
+   "fieldname": "serial_no_series", 
+   "fieldtype": "Data", 
+   "label": "Serial Number Series", 
+   "no_copy": 0, 
+   "permlevel": 0
+  }, 
+  {
+   "default": "", 
+   "depends_on": "eval:doc.is_stock_item", 
+   "description": "", 
+   "fieldname": "is_asset_item", 
+   "fieldtype": "Check", 
+   "label": "Is Fixed Asset Item", 
+   "oldfieldname": "is_asset_item", 
+   "oldfieldtype": "Select", 
+   "options": "", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "depends_on": "is_stock_item", 
+   "fieldname": "column_break1", 
+   "fieldtype": "Column Break", 
+   "oldfieldtype": "Column Break", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "width": "50%"
+  }, 
+  {
+   "depends_on": "", 
+   "description": "", 
+   "fieldname": "default_warehouse", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Warehouse", 
+   "oldfieldname": "default_warehouse", 
+   "oldfieldtype": "Link", 
+   "options": "Warehouse", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "is_stock_item", 
+   "description": "", 
+   "fieldname": "tolerance", 
+   "fieldtype": "Float", 
+   "label": "Allow over delivery or receipt upto this percent", 
+   "oldfieldname": "tolerance", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "is_stock_item", 
+   "fieldname": "valuation_method", 
+   "fieldtype": "Select", 
+   "label": "Valuation Method", 
+   "options": "\nFIFO\nMoving Average", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "default": "0.00", 
+   "depends_on": "is_stock_item", 
+   "description": "", 
+   "fieldname": "min_order_qty", 
+   "fieldtype": "Float", 
+   "hidden": 0, 
+   "label": "Minimum Order Qty", 
+   "oldfieldname": "min_order_qty", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "eval:doc.is_stock_item", 
+   "fieldname": "warranty_period", 
+   "fieldtype": "Data", 
+   "label": "Warranty Period (in days)", 
+   "oldfieldname": "warranty_period", 
+   "oldfieldtype": "Data", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "default": "2099-12-31", 
+   "depends_on": "is_stock_item", 
+   "fieldname": "end_of_life", 
+   "fieldtype": "Date", 
+   "label": "End of Life", 
+   "oldfieldname": "end_of_life", 
+   "oldfieldtype": "Date", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "is_stock_item", 
+   "description": "", 
+   "fieldname": "net_weight", 
+   "fieldtype": "Float", 
+   "label": "Net Weight", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "eval:doc.is_stock_item", 
+   "fieldname": "weight_uom", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Weight UOM", 
+   "options": "UOM", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "eval:doc.is_stock_item", 
+   "description": "", 
+   "fieldname": "reorder_section", 
+   "fieldtype": "Section Break", 
+   "label": "Auto re-order", 
+   "options": "icon-rss", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "eval:(doc.is_stock_item && !doc.apply_warehouse_wise_reorder_level)", 
+   "description": "Automatically create Material Request if quantity falls below this level", 
+   "fieldname": "re_order_level", 
+   "fieldtype": "Float", 
+   "label": "Re-order Level", 
+   "oldfieldname": "re_order_level", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "eval:(doc.is_stock_item && !doc.apply_warehouse_wise_reorder_level)", 
+   "fieldname": "re_order_qty", 
+   "fieldtype": "Float", 
+   "label": "Re-order Qty", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "is_stock_item", 
+   "fieldname": "apply_warehouse_wise_reorder_level", 
+   "fieldtype": "Check", 
+   "label": "Apply Warehouse-wise Reorder Level", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "depends_on": "eval:(doc.is_stock_item && doc.apply_warehouse_wise_reorder_level)", 
+   "fieldname": "section_break_31", 
+   "fieldtype": "Section Break", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
+   "depends_on": "eval:(doc.is_stock_item && doc.apply_warehouse_wise_reorder_level)", 
+   "description": "Will also apply for variants unless overrridden", 
+   "fieldname": "reorder_levels", 
+   "fieldtype": "Table", 
+   "label": "Warehouse-wise Reorder Levels", 
+   "options": "Item Reorder", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
    "depends_on": "eval:!doc.variant_of", 
    "fieldname": "variants_section", 
    "fieldtype": "Section Break", 
-   "label": "Variant", 
+   "label": "Variants", 
    "permlevel": 0, 
    "precision": ""
   }, 
@@ -220,252 +431,33 @@
    "read_only": 1
   }, 
   {
-   "fieldname": "inventory", 
-   "fieldtype": "Section Break", 
-   "label": "Inventory", 
-   "oldfieldtype": "Section Break", 
-   "options": "icon-truck", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "default": "Yes", 
-   "description": "Select \"Yes\" if you are maintaining stock of this item in your Inventory.", 
-   "fieldname": "is_stock_item", 
-   "fieldtype": "Select", 
-   "label": "Is Stock Item", 
-   "oldfieldname": "is_stock_item", 
-   "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
-   "depends_on": "", 
-   "description": "Mandatory if Stock Item is \"Yes\". Also the default warehouse where reserved quantity is set from Sales Order.", 
-   "fieldname": "default_warehouse", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Default Warehouse", 
-   "oldfieldname": "default_warehouse", 
-   "oldfieldtype": "Link", 
-   "options": "Warehouse", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "description": "Percentage variation in quantity to be allowed while receiving or delivering this item.", 
-   "fieldname": "tolerance", 
-   "fieldtype": "Float", 
-   "label": "Allowance Percent", 
-   "oldfieldname": "tolerance", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "valuation_method", 
-   "fieldtype": "Select", 
-   "label": "Valuation Method", 
-   "options": "\nFIFO\nMoving Average", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "default": "0.00", 
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "description": "You can enter the minimum quantity of this item to be ordered.", 
-   "fieldname": "min_order_qty", 
-   "fieldtype": "Float", 
-   "hidden": 0, 
-   "label": "Minimum Order Qty", 
-   "oldfieldname": "min_order_qty", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "column_break1", 
-   "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "width": "50%"
-  }, 
-  {
-   "default": "No", 
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "description": "Select \"Yes\" if this item is used for some internal purpose in your company.", 
-   "fieldname": "is_asset_item", 
-   "fieldtype": "Select", 
-   "label": "Is Fixed Asset Item", 
-   "oldfieldname": "is_asset_item", 
-   "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
-   "default": "No", 
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "has_batch_no", 
-   "fieldtype": "Select", 
-   "label": "Has Batch No", 
-   "oldfieldname": "has_batch_no", 
-   "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
-   "default": "No", 
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "description": "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.", 
-   "fieldname": "has_serial_no", 
-   "fieldtype": "Select", 
-   "in_filter": 1, 
-   "label": "Has Serial No", 
-   "oldfieldname": "has_serial_no", 
-   "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
-   "depends_on": "eval: doc.has_serial_no===\"Yes\"", 
-   "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.", 
-   "fieldname": "serial_no_series", 
-   "fieldtype": "Data", 
-   "label": "Serial Number Series", 
-   "no_copy": 0, 
-   "permlevel": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "warranty_period", 
-   "fieldtype": "Data", 
-   "label": "Warranty Period (in days)", 
-   "oldfieldname": "warranty_period", 
-   "oldfieldtype": "Data", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "description": "Net Weight of each Item", 
-   "fieldname": "net_weight", 
-   "fieldtype": "Float", 
-   "label": "Net Weight", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "weight_uom", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Weight UOM", 
-   "options": "UOM", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "description": "Auto-raise Material Request if quantity goes below re-order level in default warehouse", 
-   "fieldname": "reorder_section", 
-   "fieldtype": "Section Break", 
-   "label": "Re-order", 
-   "options": "icon-rss", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:(doc.is_stock_item==\"Yes\" && !doc.apply_warehouse_wise_reorder_level)", 
-   "fieldname": "re_order_level", 
-   "fieldtype": "Float", 
-   "label": "Re-Order Level", 
-   "oldfieldname": "re_order_level", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:(doc.is_stock_item==\"Yes\" && !doc.apply_warehouse_wise_reorder_level)", 
-   "fieldname": "re_order_qty", 
-   "fieldtype": "Float", 
-   "label": "Re-Order Qty", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_stock_item==\"Yes\"", 
-   "fieldname": "apply_warehouse_wise_reorder_level", 
-   "fieldtype": "Check", 
-   "label": "Apply Warehouse-wise Reorder Level", 
-   "permlevel": 0, 
-   "precision": ""
-  }, 
-  {
-   "depends_on": "eval:(doc.is_stock_item==\"Yes\" && doc.apply_warehouse_wise_reorder_level)", 
-   "fieldname": "section_break_31", 
-   "fieldtype": "Section Break", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:(doc.is_stock_item==\"Yes\" && doc.apply_warehouse_wise_reorder_level)", 
-   "description": "Will also apply for variants unless overrridden", 
-   "fieldname": "reorder_levels", 
-   "fieldtype": "Table", 
-   "label": "Warehouse-wise Reorder Levels", 
-   "options": "Item Reorder", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
    "fieldname": "purchase_details", 
    "fieldtype": "Section Break", 
-   "label": "", 
+   "label": "Purchase Details", 
    "oldfieldtype": "Section Break", 
    "options": "icon-shopping-cart", 
    "permlevel": 0, 
    "read_only": 0
   }, 
   {
-   "default": "Yes", 
-   "description": "Selecting \"Yes\" will allow this item to appear in Purchase Order , Purchase Receipt.", 
+   "default": "1", 
+   "description": "", 
    "fieldname": "is_purchase_item", 
-   "fieldtype": "Select", 
+   "fieldtype": "Check", 
    "label": "Is Purchase Item", 
    "oldfieldname": "is_purchase_item", 
    "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
+   "options": "", 
    "permlevel": 0, 
    "read_only": 0, 
    "reqd": 1
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
-   "fieldname": "default_supplier", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Default Supplier", 
-   "options": "Supplier", 
-   "permlevel": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
-   "description": "Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.", 
+   "depends_on": "is_purchase_item", 
+   "description": "Average time taken by the supplier to deliver", 
    "fieldname": "lead_time_days", 
    "fieldtype": "Int", 
-   "label": "Lead Time Days", 
+   "label": "Lead Time in days", 
    "no_copy": 0, 
    "oldfieldname": "lead_time_days", 
    "oldfieldtype": "Int", 
@@ -473,20 +465,7 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "", 
-   "description": "Default Purchase Account in which cost of the item will be debited.", 
-   "fieldname": "expense_account", 
-   "fieldtype": "Link", 
-   "ignore_user_permissions": 1, 
-   "label": "Default Expense Account", 
-   "oldfieldname": "purchase_account", 
-   "oldfieldtype": "Link", 
-   "options": "Account", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "", 
+   "depends_on": "is_purchase_item", 
    "description": "", 
    "fieldname": "buying_cost_center", 
    "fieldtype": "Link", 
@@ -499,27 +478,28 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
-   "fieldname": "last_purchase_rate", 
-   "fieldtype": "Float", 
-   "label": "Last Purchase Rate", 
-   "no_copy": 1, 
-   "oldfieldname": "last_purchase_rate", 
-   "oldfieldtype": "Currency", 
+   "depends_on": "is_purchase_item", 
+   "description": "", 
+   "fieldname": "expense_account", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Expense Account", 
+   "oldfieldname": "purchase_account", 
+   "oldfieldtype": "Link", 
+   "options": "Account", 
    "permlevel": 0, 
-   "read_only": 1
+   "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
-   "fieldname": "column_break2", 
+   "depends_on": "is_purchase_item", 
+   "fieldname": "unit_of_measure_conversion", 
    "fieldtype": "Column Break", 
-   "oldfieldtype": "Column Break", 
+   "label": "Unit of Measure Conversion", 
    "permlevel": 0, 
-   "read_only": 0, 
-   "width": "50%"
+   "precision": ""
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "depends_on": "is_purchase_item", 
    "description": "Will also apply for variants", 
    "fieldname": "uoms", 
    "fieldtype": "Table", 
@@ -532,7 +512,35 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "depends_on": "is_purchase_item", 
+   "fieldname": "last_purchase_rate", 
+   "fieldtype": "Float", 
+   "label": "Last Purchase Rate", 
+   "no_copy": 1, 
+   "oldfieldname": "last_purchase_rate", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
+   "read_only": 1
+  }, 
+  {
+   "depends_on": "is_purchase_item", 
+   "fieldname": "supplier_details", 
+   "fieldtype": "Section Break", 
+   "label": "Supplier Details", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
+   "depends_on": "eval:doc.is_purchase_item", 
+   "fieldname": "default_supplier", 
+   "fieldtype": "Link", 
+   "ignore_user_permissions": 1, 
+   "label": "Default Supplier", 
+   "options": "Supplier", 
+   "permlevel": 0
+  }, 
+  {
+   "depends_on": "eval:doc.is_purchase_item", 
    "fieldname": "manufacturer", 
    "fieldtype": "Data", 
    "label": "Manufacturer", 
@@ -540,7 +548,7 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "depends_on": "eval:doc.is_purchase_item", 
    "fieldname": "manufacturer_part_no", 
    "fieldtype": "Data", 
    "label": "Manufacturer Part Number", 
@@ -548,7 +556,17 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_purchase_item==\"Yes\"", 
+   "depends_on": "is_purchase_item", 
+   "fieldname": "column_break2", 
+   "fieldtype": "Column Break", 
+   "label": "Item Code for Suppliers", 
+   "oldfieldtype": "Column Break", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "width": "50%"
+  }, 
+  {
+   "depends_on": "is_purchase_item", 
    "fieldname": "supplier_items", 
    "fieldtype": "Table", 
    "label": "Supplier Items", 
@@ -566,30 +584,30 @@
    "read_only": 0
   }, 
   {
-   "default": "Yes", 
-   "description": "Selecting \"Yes\" will allow this item to figure in Sales Order, Delivery Note", 
+   "default": "1", 
+   "description": "", 
    "fieldname": "is_sales_item", 
-   "fieldtype": "Select", 
+   "fieldtype": "Check", 
    "in_filter": 1, 
    "label": "Is Sales Item", 
    "oldfieldname": "is_sales_item", 
    "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
+   "options": "", 
    "permlevel": 0, 
    "read_only": 0, 
    "reqd": 1
   }, 
   {
-   "default": "No", 
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
-   "description": "Select \"Yes\" if this item represents some work like training, designing, consulting etc.", 
+   "default": "", 
+   "depends_on": "eval:doc.is_sales_item", 
+   "description": "Allow in Sales Order of type \"Service\"", 
    "fieldname": "is_service_item", 
-   "fieldtype": "Select", 
+   "fieldtype": "Check", 
    "in_filter": 1, 
    "label": "Is Service Item", 
    "oldfieldname": "is_service_item", 
    "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
+   "options": "", 
    "permlevel": 0, 
    "read_only": 0, 
    "reqd": 1
@@ -614,17 +632,7 @@
    "precision": ""
   }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
-   "fieldname": "max_discount", 
-   "fieldtype": "Float", 
-   "label": "Max Discount (%)", 
-   "oldfieldname": "max_discount", 
-   "oldfieldtype": "Currency", 
-   "permlevel": 0, 
-   "read_only": 0
-  }, 
-  {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "depends_on": "is_sales_item", 
    "fieldname": "income_account", 
    "fieldtype": "Link", 
    "ignore_user_permissions": 1, 
@@ -634,7 +642,7 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "depends_on": "is_sales_item", 
    "fieldname": "selling_cost_center", 
    "fieldtype": "Link", 
    "ignore_user_permissions": 1, 
@@ -644,17 +652,18 @@
    "read_only": 0
   }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
+   "depends_on": "is_sales_item", 
    "fieldname": "column_break3", 
    "fieldtype": "Column Break", 
+   "label": "Customer Item Codes", 
    "oldfieldtype": "Column Break", 
    "permlevel": 0, 
    "read_only": 0, 
    "width": "50%"
   }, 
   {
-   "depends_on": "eval:doc.is_sales_item==\"Yes\"", 
-   "description": "For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes", 
+   "depends_on": "is_sales_item", 
+   "description": "", 
    "fieldname": "customer_items", 
    "fieldtype": "Table", 
    "label": "Customer Items", 
@@ -663,6 +672,16 @@
    "read_only": 0
   }, 
   {
+   "depends_on": "eval:doc.is_sales_item", 
+   "fieldname": "max_discount", 
+   "fieldtype": "Float", 
+   "label": "Max Discount (%)", 
+   "oldfieldname": "max_discount", 
+   "oldfieldtype": "Currency", 
+   "permlevel": 0, 
+   "read_only": 0
+  }, 
+  {
    "fieldname": "item_tax_section_break", 
    "fieldtype": "Section Break", 
    "label": "Item Tax", 
@@ -692,20 +711,20 @@
    "read_only": 0
   }, 
   {
-   "default": "No", 
+   "default": "", 
    "fieldname": "inspection_required", 
-   "fieldtype": "Select", 
+   "fieldtype": "Check", 
    "label": "Inspection Required", 
    "no_copy": 0, 
    "oldfieldname": "inspection_required", 
    "oldfieldtype": "Select", 
-   "options": "\nYes\nNo", 
+   "options": "", 
    "permlevel": 0, 
    "read_only": 0, 
    "reqd": 1
   }, 
   {
-   "depends_on": "eval:doc.inspection_required==\"Yes\"", 
+   "depends_on": "inspection_required", 
    "description": "Will also apply to variants", 
    "fieldname": "quality_parameters", 
    "fieldtype": "Table", 
@@ -726,6 +745,39 @@
    "read_only": 0
   }, 
   {
+   "default": "", 
+   "depends_on": "", 
+   "description": "", 
+   "fieldname": "is_pro_applicable", 
+   "fieldtype": "Check", 
+   "label": "Allow Production Order", 
+   "oldfieldname": "is_pro_applicable", 
+   "oldfieldtype": "Select", 
+   "options": "", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "default": "", 
+   "description": "If subcontracted to a vendor", 
+   "fieldname": "is_sub_contracted_item", 
+   "fieldtype": "Check", 
+   "label": "Supply Raw Materials for Purchase", 
+   "oldfieldname": "is_sub_contracted_item", 
+   "oldfieldtype": "Select", 
+   "options": "", 
+   "permlevel": 0, 
+   "read_only": 0, 
+   "reqd": 1
+  }, 
+  {
+   "fieldname": "column_break_74", 
+   "fieldtype": "Column Break", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "depends_on": "", 
    "fieldname": "default_bom", 
    "fieldtype": "Link", 
@@ -739,33 +791,6 @@
    "read_only": 1
   }, 
   {
-   "default": "No", 
-   "depends_on": "", 
-   "description": "Selecting \"Yes\" will allow you to make a Production Order for this item.", 
-   "fieldname": "is_pro_applicable", 
-   "fieldtype": "Select", 
-   "label": "Allow Production Order", 
-   "oldfieldname": "is_pro_applicable", 
-   "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
-   "default": "No", 
-   "description": "", 
-   "fieldname": "is_sub_contracted_item", 
-   "fieldtype": "Select", 
-   "label": "Supply Raw Materials for Purchase", 
-   "oldfieldname": "is_sub_contracted_item", 
-   "oldfieldtype": "Select", 
-   "options": "Yes\nNo", 
-   "permlevel": 0, 
-   "read_only": 0, 
-   "reqd": 1
-  }, 
-  {
    "fieldname": "customer_code", 
    "fieldtype": "Data", 
    "hidden": 1, 
@@ -803,7 +828,7 @@
   }, 
   {
    "depends_on": "show_in_website", 
-   "description": "Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.", 
+   "description": "Items with higher weightage will be shown higher", 
    "fieldname": "weightage", 
    "fieldtype": "Int", 
    "label": "Weightage", 
@@ -866,6 +891,13 @@
    "read_only": 0
   }, 
   {
+   "fieldname": "website_specifications_cb", 
+   "fieldtype": "Column Break", 
+   "label": "Website Specifications", 
+   "permlevel": 0, 
+   "precision": ""
+  }, 
+  {
    "depends_on": "show_in_website", 
    "fieldname": "copy_from_item_group", 
    "fieldtype": "Button", 
@@ -903,7 +935,7 @@
  "icon": "icon-tag", 
  "idx": 1, 
  "max_attachments": 1, 
- "modified": "2015-07-13 05:28:28.698107", 
+ "modified": "2015-07-24 06:04:28.448050", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Item", 
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index d3d8e9c..608d01a 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -87,7 +87,7 @@
 		return context
 
 	def check_warehouse_is_set_for_stock_item(self):
-		if self.is_stock_item=="Yes" and not self.default_warehouse and frappe.get_all("Warehouse"):
+		if self.is_stock_item==1 and not self.default_warehouse and frappe.get_all("Warehouse"):
 			frappe.msgprint(_("Default Warehouse is mandatory for stock Item."),
 				raise_exception=WarehouseNotSet)
 
@@ -158,13 +158,13 @@
 				frappe.throw(_("Conversion factor for default Unit of Measure must be 1 in row {0}").format(d.idx))
 
 	def validate_item_type(self):
-		if self.is_pro_applicable == 'Yes' and self.is_stock_item == 'No':
+		if self.is_pro_applicable == 1 and self.is_stock_item==0:
 			frappe.throw(_("As Production Order can be made for this item, it must be a stock item."))
 
-		if self.has_serial_no == 'Yes' and self.is_stock_item == 'No':
+		if self.has_serial_no == 1 and self.is_stock_item == 0:
 			msgprint(_("'Has Serial No' can not be 'Yes' for non-stock item"), raise_exception=1)
 
-		if self.has_serial_no == "No" and self.serial_no_series:
+		if self.has_serial_no == 0 and self.serial_no_series:
 			self.serial_no_series = None
 
 
@@ -208,7 +208,7 @@
 			vals = frappe.db.get_value("Item", self.name,
 				["has_serial_no", "is_stock_item", "valuation_method", "has_batch_no"], as_dict=True)
 
-			if vals and ((self.is_stock_item == "No" and vals.is_stock_item == "Yes") or
+			if vals and ((self.is_stock_item == 0 and vals.is_stock_item == 1) or
 				vals.has_serial_no != self.has_serial_no or
 				vals.has_batch_no != self.has_batch_no or
 				cstr(vals.valuation_method) != cstr(self.valuation_method)):
@@ -313,11 +313,11 @@
 	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 
+			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 
+			frappe.db.sql("""update `tabBOM Explosion Item` set description = %s where
 				item_code = %s and docstatus < 2""",(self.description, self.name))
-				
+
 	def update_variants(self):
 		if self.has_variants:
 			updated = []
@@ -327,7 +327,7 @@
 				updated.append(d.item_code)
 			if updated:
 				frappe.msgprint(_("Item Variants {0} updated").format(", ".join(updated)))
-				
+
 	def validate_has_variants(self):
 		if not self.has_variants and frappe.db.get_value("Item", self.name, "has_variants"):
 			if frappe.db.exists("Item", {"variant_of": self.name}):
@@ -336,11 +336,11 @@
 	def validate_stock_for_template_must_be_zero(self):
 		if self.has_variants:
 			stock_in = frappe.db.sql_list("""select warehouse from tabBin
-				where item_code=%s and (ifnull(actual_qty, 0) > 0 or ifnull(ordered_qty, 0) > 0 
+				where item_code=%s and (ifnull(actual_qty, 0) > 0 or ifnull(ordered_qty, 0) > 0
 				or ifnull(reserved_qty, 0) > 0 or ifnull(indented_qty, 0) > 0 or ifnull(planned_qty, 0) > 0)""", self.name)
 			if stock_in:
 				frappe.throw(_("Item Template cannot have stock or Open Sales/Purchase/Production Orders."), ItemTemplateCannotHaveStock)
-	
+
 def validate_end_of_life(item_code, end_of_life=None, verbose=1):
 	if not end_of_life:
 		end_of_life = frappe.db.get_value("Item", item_code, "end_of_life")
@@ -353,7 +353,7 @@
 	if not is_stock_item:
 		is_stock_item = frappe.db.get_value("Item", item_code, "is_stock_item")
 
-	if is_stock_item != "Yes":
+	if is_stock_item != 1:
 		msg = _("Item {0} is not a stock Item").format(item_code)
 
 		_msgprint(msg, verbose)
@@ -445,4 +445,3 @@
 
 	if doc.get("old_item_group") and doc.get("old_item_group") != doc.item_group:
 		invalidate_cache_for(doc, doc.old_item_group)
-
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 9cf3c07..f299c4a 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -21,16 +21,16 @@
 		else:
 			item = frappe.get_doc("Item", item_code)
 		return item
-	
+
 	def test_template_cannot_have_stock(self):
 			item = self.get_item(10)
-			se = make_stock_entry(item_code=item.name, target="Stores - _TC", qty=1, incoming_rate=1)
+			make_stock_entry(item_code=item.name, target="Stores - _TC", qty=1, incoming_rate=1)
 			item.has_variants = 1
 			self.assertRaises(ItemTemplateCannotHaveStock, item.save)
-	
+
 	def test_default_warehouse(self):
 		item = frappe.copy_doc(test_records[0])
-		item.is_stock_item = "Yes"
+		item.is_stock_item = 1
 		item.default_warehouse = None
 		self.assertRaises(WarehouseNotSet, item.insert)
 
diff --git a/erpnext/stock/doctype/item/test_records.json b/erpnext/stock/doctype/item/test_records.json
index 86d581d..5dd63e3 100644
--- a/erpnext/stock/doctype/item/test_records.json
+++ b/erpnext/stock/doctype/item/test_records.json
@@ -5,17 +5,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Item",
   "item_group": "_Test Item Group",
   "item_name": "_Test Item",
@@ -38,17 +38,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Item 2",
   "item_group": "_Test Item Group",
   "item_name": "_Test Item 2",
@@ -62,17 +62,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Item Home Desktop 100",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Item Home Desktop 100",
@@ -92,17 +92,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Item Home Desktop 200",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Item Home Desktop 200",
@@ -113,17 +113,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "No",
-  "is_sub_contracted_item": "No",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 0,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Product Bundle Item",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Product Bundle Item",
@@ -135,17 +135,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "Yes",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "Yes",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 1,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 1,
   "item_code": "_Test FG Item",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test FG Item",
@@ -154,16 +154,16 @@
  {
   "description": "_Test Non Stock Item 7",
   "doctype": "Item",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "No",
-  "is_sub_contracted_item": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 0,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Non Stock Item",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Non Stock Item",
@@ -173,16 +173,16 @@
   "default_warehouse": "_Test Warehouse - _TC",
   "description": "_Test Serialized Item 8",
   "doctype": "Item",
-  "has_batch_no": "No",
-  "has_serial_no": "Yes",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 1,
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Serialized Item",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Serialized Item",
@@ -192,16 +192,16 @@
   "default_warehouse": "_Test Warehouse - _TC",
   "description": "_Test Serialized Item 9",
   "doctype": "Item",
-  "has_batch_no": "No",
-  "has_serial_no": "Yes",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "No",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 1,
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 0,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Serialized Item With Series",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Serialized Item With Series",
@@ -214,16 +214,16 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "No",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 0,
   "item_code": "_Test Item Home Desktop Manufactured",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Item Home Desktop Manufactured",
@@ -235,17 +235,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "Yes",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "Yes",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 1,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 1,
   "item_code": "_Test FG Item 2",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test FG Item 2",
@@ -257,17 +257,17 @@
   "doctype": "Item",
   "expense_account": "_Test Account Cost for Goods Sold - _TC",
   "cost_center": "_Test Cost Center - _TC",
-  "has_batch_no": "No",
-  "has_serial_no": "No",
+  "has_batch_no": 0,
+  "has_serial_no": 0,
   "income_account": "Sales - _TC",
-  "inspection_required": "No",
-  "is_asset_item": "No",
-  "is_pro_applicable": "Yes",
-  "is_purchase_item": "Yes",
-  "is_sales_item": "Yes",
-  "is_service_item": "No",
-  "is_stock_item": "Yes",
-  "is_sub_contracted_item": "Yes",
+  "inspection_required": 0,
+  "is_asset_item": 0,
+  "is_pro_applicable": 1,
+  "is_purchase_item": 1,
+  "is_sales_item": 1,
+  "is_service_item": 0,
+  "is_stock_item": 1,
+  "is_sub_contracted_item": 1,
   "item_code": "_Test Variant Item",
   "item_group": "_Test Item Group Desktops",
   "item_name": "_Test Variant Item",
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
index 221e4eb..3418c9e 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
@@ -15,7 +15,7 @@
 			pr_items = frappe.db.sql("""select pr_item.item_code, pr_item.description,
 				pr_item.qty, pr_item.base_rate, pr_item.base_amount, pr_item.name
 				from `tabPurchase Receipt Item` pr_item where parent = %s
-				and exists(select name from tabItem where name = pr_item.item_code and is_stock_item = 'Yes')""",
+				and exists(select name from tabItem where name = pr_item.item_code and is_stock_item = 1)""",
 				pr.purchase_receipt, as_dict=True)
 
 			for d in pr_items:
@@ -69,7 +69,7 @@
 	def set_applicable_charges_for_item(self):
 		based_on = self.distribute_charges_based_on.lower()
 		total = sum([flt(d.get(based_on)) for d in self.get("items")])
-		
+
 		if not total:
 			frappe.throw(_("Total {0} for all items is zero, may you should change 'Distribute Charges Based On'").format(based_on))
 
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index c1be1fd..0433036 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -152,7 +152,7 @@
 		item_wh_list = []
 		for d in self.get("items"):
 			if (not mr_item_rows or d.name in mr_item_rows) and [d.item_code, d.warehouse] not in item_wh_list \
-					and frappe.db.get_value("Item", d.item_code, "is_stock_item") == "Yes" and d.warehouse:
+					and frappe.db.get_value("Item", d.item_code, "is_stock_item") == 1 and d.warehouse:
 				item_wh_list.append([d.item_code, d.warehouse])
 
 		for item_code, warehouse in item_wh_list:
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 034eb07..53233ce 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -198,10 +198,7 @@
 
 	def validate_inspection(self):
 		for d in self.get('items'):		 #Enter inspection date for all items that require inspection
-			ins_reqd = frappe.db.sql("select inspection_required from `tabItem` where name = %s",
-				(d.item_code,), as_dict = 1)
-			ins_reqd = ins_reqd and ins_reqd[0]['inspection_required'] or 'No'
-			if ins_reqd == 'Yes' and not d.qa_no:
+			if frappe.db.get_value("Item", d.item_code, "inspection_required") and not d.qa_no:
 				frappe.msgprint(_("Quality Inspection required for Item {0}").format(d.item_code))
 				if self.docstatus==1:
 					raise frappe.ValidationError
diff --git a/erpnext/stock/doctype/serial_no/serial_no.js b/erpnext/stock/doctype/serial_no/serial_no.js
index aa4e73b..eea652b 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.js
+++ b/erpnext/stock/doctype/serial_no/serial_no.js
@@ -11,7 +11,7 @@
 
 cur_frm.cscript.onload = function() {
 	cur_frm.set_query("item_code", function() {
-		return erpnext.queries.item({"is_stock_item": "Yes", "has_serial_no": "Yes"})
+		return erpnext.queries.item({"is_stock_item": 1, "has_serial_no": 1})
 	});
 };
 
diff --git a/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py
index 6b5054b..fb15195 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.py
+++ b/erpnext/stock/doctype/serial_no/serial_no.py
@@ -66,7 +66,7 @@
 			Validate whether serial no is required for this item
 		"""
 		item = frappe.get_doc("Item", self.item_code)
-		if item.has_serial_no!="Yes":
+		if item.has_serial_no!=1:
 			frappe.throw(_("Item {0} is not setup for Serial Nos. Check Item master").format(self.item_code))
 
 		self.item_group = item.item_group
@@ -198,7 +198,7 @@
 	update_serial_nos(sle, item_det)
 
 def validate_serial_no(sle, item_det):
-	if item_det.has_serial_no=="No":
+	if item_det.has_serial_no==0:
 		if sle.serial_no:
 			frappe.throw(_("Item {0} is not setup for Serial Nos. Column must be blank").format(sle.item_code),
 				SerialNoNotRequiredError)
@@ -246,7 +246,7 @@
 
 def update_serial_nos(sle, item_det):
 	if sle.is_cancelled == "No" and not sle.serial_no and sle.actual_qty > 0 \
-			and item_det.has_serial_no == "Yes" and item_det.serial_no_series:
+			and item_det.has_serial_no == 1 and item_det.serial_no_series:
 		from frappe.model.naming import make_autoname
 		serial_nos = []
 		for i in xrange(cint(sle.actual_qty)):
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 8526117..5da6e53 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -7,7 +7,7 @@
 erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
 	setup: function() {
 		var me = this;
-		
+
 		this.frm.fields_dict.bom_no.get_query = function() {
 			return {
 				filters:{ 'docstatus': 1 }
@@ -15,7 +15,7 @@
 		};
 
 		this.frm.fields_dict.items.grid.get_field('item_code').get_query = function() {
-			return erpnext.queries.item({is_stock_item: "Yes"});
+			return erpnext.queries.item({is_stock_item: 1});
 		};
 
 		this.frm.set_query("purchase_order", function() {
@@ -252,13 +252,13 @@
 			var filters = {
 				'item_code': item.item_code,
 				'posting_date': me.frm.doc.posting_date || nowdate()
-			}	
+			}
 		} else {
 			var filters = {
 				'item_code': item.item_code
 			}
 		}
-		
+
 
 		if(item.s_warehouse) filters["warehouse"] = item.s_warehouse
 		return {
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 3148455..babe671 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -354,12 +354,12 @@
 			if d.bom_no and flt(d.transfer_qty) != flt(self.fg_completed_qty):
 				frappe.throw(_("Quantity in row {0} ({1}) must be same as manufactured quantity {2}"). \
 					format(d.idx, d.transfer_qty, self.fg_completed_qty))
-					
+
 			if self.production_order and self.purpose == "Manufacture" and d.t_warehouse:
 				items_with_target_warehouse.append(d.item_code)
-				
+
 		if self.production_order and self.purpose == "Manufacture":
-			production_item = frappe.db.get_value("Production Order", 
+			production_item = frappe.db.get_value("Production Order",
 				self.production_order, "production_item")
 			if production_item not in items_with_target_warehouse:
 				frappe.throw(_("Finished Item {0} must be entered for Manufacture type entry")
@@ -427,7 +427,7 @@
 			(args.get('item_code')), as_dict = 1)
 		if not item:
 			frappe.throw(_("Item {0} is not active or end of life has been reached").format(args.get("item_code")))
-			
+
 		item = item[0]
 
 		ret = {
@@ -642,7 +642,7 @@
 				mreq_item.warehouse != (item.s_warehouse if self.purpose== "Material Issue" else item.t_warehouse):
 					frappe.throw(_("Item or Warehouse for row {0} does not match Material Request").format(item.idx),
 						frappe.MappingMismatchError)
-						
+
 	def validate_batch(self):
 		if self.purpose in ["Material Transfer for Manufacture", "Manufacture", "Repack", "Subcontract"]:
 			for item in self.get("items"):
diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index 010f5ea..249815f 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -64,18 +64,18 @@
 
 		item_det = item_det[0]
 
-		if item_det.is_stock_item != 'Yes':
+		if item_det.is_stock_item != 1:
 			frappe.throw(_("Item {0} must be a stock Item").format(self.item_code))
 
 		# check if batch number is required
 		if self.voucher_type != 'Stock Reconciliation':
-			if item_det.has_batch_no =='Yes':
+			if item_det.has_batch_no ==1:
 				if not self.batch_no:
 					frappe.throw(_("Batch number is mandatory for Item {0}").format(self.item_code))
 				elif not frappe.db.get_value("Batch",{"item": self.item_code, "name": self.batch_no}):
 						frappe.throw(_("{0} is not a valid Batch Number for Item {1}").format(self.batch_no, self.item_code))
 
-			elif item_det.has_batch_no =='No' and self.batch_no:
+			elif item_det.has_batch_no ==0 and self.batch_no:
 					frappe.throw(_("The Item {0} cannot have Batch").format(self.item_code))
 
 		if item_det.has_variants:
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index bed8dd7..e178f28 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -134,12 +134,12 @@
 			validate_is_stock_item(item_code, item.is_stock_item, verbose=0)
 
 			# item should not be serialized
-			if item.has_serial_no == "Yes":
+			if item.has_serial_no == 1:
 				raise frappe.ValidationError, _("Serialized Item {0} cannot be updated \
 					using Stock Reconciliation").format(item_code)
 
 			# item managed batch-wise not allowed
-			if item.has_batch_no == "Yes":
+			if item.has_batch_no == 1:
 				raise frappe.ValidationError, _("Item: {0} managed batch-wise, can not be reconciled using \
 					Stock Reconciliation, instead use Stock Entry").format(item_code)
 
@@ -243,7 +243,7 @@
 @frappe.whitelist()
 def get_items(warehouse, posting_date, posting_time):
 	items = frappe.get_list("Item", fields=["name"], filters=
-		{"is_stock_item": "Yes", "has_serial_no": "No", "has_batch_no": "No"})
+		{"is_stock_item": 1, "has_serial_no": 0, "has_batch_no": 0})
 	for item in items:
 		item.item_code = item.name
 		item.warehouse = warehouse
diff --git a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
index 20daf91..eb45ade 100644
--- a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
+++ b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.js
@@ -4,7 +4,7 @@
 $.extend(cur_frm.cscript, {
 	onload: function() {
 		cur_frm.set_query("item_code", function() {
-			return erpnext.queries.item({"is_stock_item": "Yes"});
+			return erpnext.queries.item({"is_stock_item": 1});
 		});
 	},
 
diff --git a/erpnext/stock/doctype/warehouse/warehouse.py b/erpnext/stock/doctype/warehouse/warehouse.py
index 2024ebe..5a39763 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.py
+++ b/erpnext/stock/doctype/warehouse/warehouse.py
@@ -146,7 +146,7 @@
 		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", 1)
 
 		for item in frappe.db.sql("""select distinct item_code from (
-			select name as item_code from `tabItem` where ifnull(is_stock_item, 'Yes')='Yes'
+			select name as item_code from `tabItem` where is_stock_item=1
 			union
 			select distinct item_code from tabBin) a"""):
 				repost_stock(item[0], newdn)
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 399946b..82446ed 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -37,7 +37,6 @@
 	item_doc = frappe.get_doc("Item", args.item_code)
 	item = item_doc
 
-
 	validate_item_details(args, item)
 
 	out = get_basic_details(args, item)
@@ -61,7 +60,7 @@
 	out.update(get_pricing_rule_for_item(args))
 
 	if args.get("parenttype") in ("Sales Invoice", "Delivery Note"):
-		if item_doc.has_serial_no == "Yes" and not args.serial_no:
+		if item_doc.has_serial_no == 1 and not args.serial_no:
 			out.serial_no = get_serial_nos_by_fifo(args, item_doc)
 
 	if args.transaction_date and item.lead_time_days:
@@ -119,10 +118,10 @@
 	if args.transaction_type == "selling":
 		# validate if sales item or service item
 		if args.get("order_type") == "Maintenance":
-			if item.is_service_item != "Yes":
+			if item.is_service_item != 1:
 				throw(_("Item {0} must be a Service Item.").format(item.name))
 
-		elif item.is_sales_item != "Yes":
+		elif item.is_sales_item != 1:
 			throw(_("Item {0} must be a Sales Item").format(item.name))
 
 		if cint(item.has_variants):
@@ -130,10 +129,10 @@
 
 	elif args.transaction_type == "buying" and args.parenttype != "Material Request":
 		# validate if purchase item or subcontracted item
-		if item.is_purchase_item != "Yes":
+		if item.is_purchase_item != 1:
 			throw(_("Item {0} must be a Purchase Item").format(item.name))
 
-		if args.get("is_subcontracted") == "Yes" and item.is_sub_contracted_item != "Yes":
+		if args.get("is_subcontracted") == "Yes" and item.is_sub_contracted_item != 1:
 			throw(_("Item {0} must be a Sub-contracted Item").format(item.name))
 
 def get_basic_details(args, item):
@@ -338,7 +337,7 @@
 	actual_batch_qty = get_actual_batch_qty(batch_no,warehouse,item_code)
 	if batch_no:
 		return {'actual_batch_qty': actual_batch_qty}
-	
+
 @frappe.whitelist()
 def apply_price_list(args):
 	"""
diff --git a/erpnext/stock/reorder_item.py b/erpnext/stock/reorder_item.py
index f739f94..51dd8c1 100644
--- a/erpnext/stock/reorder_item.py
+++ b/erpnext/stock/reorder_item.py
@@ -69,7 +69,7 @@
 		from tabBin where ifnull(item_code, '') != '' and ifnull(warehouse, '') != ''
 		and exists (select name from `tabItem`
 			where `tabItem`.name = `tabBin`.item_code and
-			is_stock_item='Yes' and (is_purchase_item='Yes' or is_sub_contracted_item='Yes') and
+			is_stock_item=1 and (is_purchase_item=1 or is_sub_contracted_item=1) and
 			(ifnull(end_of_life, '0000-00-00')='0000-00-00' or end_of_life > %s))
 		and exists (select name from `tabWarehouse`
 			where `tabWarehouse`.name = `tabBin`.warehouse
diff --git a/erpnext/stock/report/items_to_be_requested/items_to_be_requested.json b/erpnext/stock/report/items_to_be_requested/items_to_be_requested.json
index 463d2e2..340577b 100644
--- a/erpnext/stock/report/items_to_be_requested/items_to_be_requested.json
+++ b/erpnext/stock/report/items_to_be_requested/items_to_be_requested.json
@@ -1,17 +1,17 @@
 {
- "apply_user_permissions": 1, 
- "creation": "2013-08-20 15:08:10", 
- "docstatus": 0, 
- "doctype": "Report", 
- "idx": 1, 
- "is_standard": "Yes", 
- "modified": "2014-06-03 07:18:17.128918", 
- "modified_by": "Administrator", 
- "module": "Stock", 
- "name": "Items To Be Requested", 
- "owner": "Administrator", 
- "query": "SELECT\n    tabBin.item_code as \"Item:Link/Item:120\",\n    tabBin.warehouse as \"Warehouse:Link/Warehouse:120\",\n    tabBin.actual_qty as \"Actual:Float:90\",\n    tabBin.indented_qty as \"Requested:Float:90\",\n    tabBin.reserved_qty as \"Reserved:Float:90\",\n    tabBin.ordered_qty as \"Ordered:Float:90\",\n    tabBin.projected_qty as \"Projected:Float:90\"\nFROM\n    tabBin, tabItem\nWHERE\n    tabBin.item_code = tabItem.name\n    AND tabItem.is_purchase_item = \"Yes\"\n    AND tabBin.projected_qty < 0\nORDER BY\n    tabBin.projected_qty ASC", 
- "ref_doctype": "Item", 
- "report_name": "Items To Be Requested", 
+ "apply_user_permissions": 1,
+ "creation": "2013-08-20 15:08:10",
+ "docstatus": 0,
+ "doctype": "Report",
+ "idx": 1,
+ "is_standard": "Yes",
+ "modified": "2014-06-03 07:18:17.128918",
+ "modified_by": "Administrator",
+ "module": "Stock",
+ "name": "Items To Be Requested",
+ "owner": "Administrator",
+ "query": "SELECT\n    tabBin.item_code as \"Item:Link/Item:120\",\n    tabBin.warehouse as \"Warehouse:Link/Warehouse:120\",\n    tabBin.actual_qty as \"Actual:Float:90\",\n    tabBin.indented_qty as \"Requested:Float:90\",\n    tabBin.reserved_qty as \"Reserved:Float:90\",\n    tabBin.ordered_qty as \"Ordered:Float:90\",\n    tabBin.projected_qty as \"Projected:Float:90\"\nFROM\n    tabBin, tabItem\nWHERE\n    tabBin.item_code = tabItem.name\n    AND tabItem.is_purchase_item = 1\n    AND tabBin.projected_qty < 0\nORDER BY\n    tabBin.projected_qty ASC", 
+ "ref_doctype": "Item",
+ "report_name": "Items To Be Requested",
  "report_type": "Query Report"
-}
\ No newline at end of file
+}
diff --git a/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py b/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py
index f7ea115..78d1c44 100644
--- a/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py
+++ b/erpnext/stock/report/supplier_wise_sales_analytics/supplier_wise_sales_analytics.py
@@ -18,7 +18,7 @@
 		total_qty = total_amount = 0.0
 		if consumed_details.get(item_code):
 			for cd in consumed_details.get(item_code):
-				
+
 				if (cd.voucher_no not in material_transfer_vouchers):
 					if cd.voucher_type=="Delivery Note":
 						delivered_qty += abs(flt(cd.actual_qty))
@@ -40,7 +40,7 @@
 
 def get_columns(filters):
 	"""return columns based on filters"""
-	
+
 	columns = [_("Item") + ":Link/Item:100"] + [_("Item Name") + "::100"] + \
 	[_("Description") + "::150"] + [_("UOM") + ":Link/UOM:90"] + \
 	[_("Consumed Qty") + ":Float:110"] + [_("Consumed Amount") + ":Currency:130"] + \
@@ -64,10 +64,10 @@
 	conditions, values = get_conditions(filters)
 	consumed_details = {}
 
-	for d in frappe.db.sql("""select sle.item_code, i.item_name, i.description, 
-		i.stock_uom, sle.actual_qty, sle.stock_value_difference, 
+	for d in frappe.db.sql("""select sle.item_code, i.item_name, i.description,
+		i.stock_uom, sle.actual_qty, sle.stock_value_difference,
 		sle.voucher_no, sle.voucher_type
-		from `tabStock Ledger Entry` sle, `tabItem` i 
+		from `tabStock Ledger Entry` sle, `tabItem` i
 		where sle.item_code=i.name and sle.actual_qty < 0 %s""" % conditions, values, as_dict=1):
 			consumed_details.setdefault(d.item_code, []).append(d)
 
@@ -77,20 +77,20 @@
 	item_supplier_map = {}
 	supplier = filters.get('supplier')
 
-	for d in frappe.db.sql("""select pr.supplier, pri.item_code from 
-		`tabPurchase Receipt` pr, `tabPurchase Receipt Item` pri 
-		where pr.name=pri.parent and pr.docstatus=1 and 
-		pri.item_code=(select name from `tabItem` where 
-			ifnull(is_stock_item, 'Yes')='Yes' and name=pri.item_code)""", as_dict=1):
+	for d in frappe.db.sql("""select pr.supplier, pri.item_code from
+		`tabPurchase Receipt` pr, `tabPurchase Receipt Item` pri
+		where pr.name=pri.parent and pr.docstatus=1 and
+		pri.item_code=(select name from `tabItem` where
+			is_stock_item=1 and name=pri.item_code)""", as_dict=1):
 			item_supplier_map.setdefault(d.item_code, []).append(d.supplier)
-	
+
 	if supplier:
 		for item_code, suppliers in item_supplier_map.items():
 			if supplier not in suppliers:
 				del item_supplier_map[item_code]
-	
+
 	return item_supplier_map
 
 def get_material_transfer_vouchers():
-	return frappe.db.sql_list("""select name from `tabStock Entry` where 
-		purpose='Material Transfer' and docstatus=1""")
\ No newline at end of file
+	return frappe.db.sql_list("""select name from `tabStock Entry` where
+		purpose='Material Transfer' and docstatus=1""")
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index 1a9e828..ee4303b 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -81,7 +81,7 @@
 
 def update_bin(args, allow_negative_stock=False, via_landed_cost_voucher=False):
 	is_stock_item = frappe.db.get_value('Item', args.get("item_code"), 'is_stock_item')
-	if is_stock_item == 'Yes':
+	if is_stock_item:
 		bin = get_bin(args.get("item_code"), args.get("warehouse"))
 		bin.update_stock(args, allow_negative_stock, via_landed_cost_voucher)
 		return bin
@@ -173,4 +173,3 @@
 	if warehouse_company and warehouse_company != company:
 		frappe.throw(_("Warehouse {0} does not belong to company {1}").format(warehouse, company),
 			InvalidWarehouseCompany)
-
diff --git a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
index 431d8e4..d84dc17 100644
--- a/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/support/doctype/maintenance_schedule/maintenance_schedule.js
@@ -102,7 +102,7 @@
 
 cur_frm.fields_dict['items'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
 	return {
-		filters:{ 'is_service_item': "Yes" }
+		filters:{ 'is_service_item': 1 }
 	}
 }
 
diff --git a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
index 9313a91..c917918 100644
--- a/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
+++ b/erpnext/support/doctype/maintenance_visit/maintenance_visit.js
@@ -77,7 +77,7 @@
 
 cur_frm.fields_dict['purposes'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
 	return{
-    	filters:{ 'is_service_item': "Yes"}
+    	filters:{ 'is_service_item': 1}
   	}
 }
 
diff --git a/erpnext/utilities/repost_stock.py b/erpnext/utilities/repost_stock.py
index 75f3307..52b94ae 100644
--- a/erpnext/utilities/repost_stock.py
+++ b/erpnext/utilities/repost_stock.py
@@ -145,7 +145,7 @@
 
 	bin = frappe.db.sql("""select bin.item_code, bin.warehouse, bin.actual_qty, item.stock_uom
 		from `tabBin` bin, tabItem item
-		where bin.item_code = item.name and item.has_serial_no = 'Yes' %s""" % condition)
+		where bin.item_code = item.name and item.has_serial_no = 1 %s""" % condition)
 
 	for d in bin:
 		serial_nos = frappe.db.sql("""select count(name) from `tabSerial No`
