Added patch, fixed codacy issue
diff --git a/erpnext/accounts/doctype/pos_settings/pos_settings.js b/erpnext/accounts/doctype/pos_settings/pos_settings.js
index fab766b..1a14618 100644
--- a/erpnext/accounts/doctype/pos_settings/pos_settings.js
+++ b/erpnext/accounts/doctype/pos_settings/pos_settings.js
@@ -2,7 +2,7 @@
 // For license information, please see license.txt
 
 frappe.ui.form.on('POS Settings', {
-	refresh: function(frm) {
+	refresh: function() {
 
 	}
 });
diff --git a/erpnext/accounts/doctype/pos_settings/pos_settings.json b/erpnext/accounts/doctype/pos_settings/pos_settings.json
index cdd1865..a04558d 100644
--- a/erpnext/accounts/doctype/pos_settings/pos_settings.json
+++ b/erpnext/accounts/doctype/pos_settings/pos_settings.json
@@ -18,7 +18,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "default": "0", 
+   "default": "1", 
    "fieldname": "is_online", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -55,7 +55,7 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2017-08-29 14:34:36.166049", 
+ "modified": "2017-08-30 18:34:58.960276", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "POS Settings", 
diff --git a/erpnext/accounts/doctype/pos_settings/pos_settings.py b/erpnext/accounts/doctype/pos_settings/pos_settings.py
index c978a4e..736d36e 100644
--- a/erpnext/accounts/doctype/pos_settings/pos_settings.py
+++ b/erpnext/accounts/doctype/pos_settings/pos_settings.py
@@ -3,7 +3,6 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
-import frappe
 from frappe.model.document import Document
 
 class POSSettings(Document):
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 35958e3..4e25a94 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -435,4 +435,4 @@
 erpnext.patches.v8_7.add_more_gst_fields
 erpnext.patches.v8_7.fix_purchase_receipt_status
 erpnext.patches.v8_6.rename_bom_update_tool
-
+erpnext.patches.v8_7.set_offline_in_pos_settings
diff --git a/erpnext/patches/v8_7/set_offline_in_pos_settings.py b/erpnext/patches/v8_7/set_offline_in_pos_settings.py
new file mode 100644
index 0000000..64a3a7c
--- /dev/null
+++ b/erpnext/patches/v8_7/set_offline_in_pos_settings.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.reload_doc('accounts', 'doctype', 'pos_settings')
+
+	doc = frappe.get_doc('POS Settings')
+	doc.is_online = 0
+	doc.save()
\ No newline at end of file
diff --git a/erpnext/public/js/utils/serial_no_batch_selector.js b/erpnext/public/js/utils/serial_no_batch_selector.js
index ed5a0f6..3e2414e 100644
--- a/erpnext/public/js/utils/serial_no_batch_selector.js
+++ b/erpnext/public/js/utils/serial_no_batch_selector.js
@@ -146,7 +146,7 @@
 			this.map_row_values(this.item, this.values, 'serial_no', 'qty');
 		}
 		refresh_field("items");
-		this.callback && this.callback(this.item)
+		this.callback && this.callback(this.item);
 	},
 
 	map_row_values: function(row, values, number, qty_field, warehouse) {
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js
index 4ce1ca1..6bbb267 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.js
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.js
@@ -1,7 +1,7 @@
 /* global Clusterize */
 
 frappe.pages['point-of-sale'].on_page_load = function(wrapper) {
-	var page = frappe.ui.make_app_page({
+	frappe.ui.make_app_page({
 		parent: wrapper,
 		title: 'Point of Sale',
 		single_column: true
@@ -156,7 +156,7 @@
 					.then(() => {
 						// update cart
 						this.update_cart_data(item);
-					})
+					});
 			}
 			return;
 		}
@@ -172,12 +172,12 @@
 			.trigger('item_code', item.doctype, item.name)
 			.then(() => {
 				// update cart
-				this.update_cart_data(item)
+				this.update_cart_data(item);
 			});
 	}
 
 	select_batch_and_serial_no(item) {
-		let dialog = new erpnext.SerialNoBatchSelector({
+		new erpnext.SerialNoBatchSelector({
 			frm: this.frm,
 			item: item,
 			warehouse_details: {
@@ -189,9 +189,9 @@
 					.then(() => {
 						// update cart
 						this.update_cart_data(item);
-					})
+					});
 			}
-		}, true)
+		}, true);
 	}
 
 	update_cart_data(item) {
@@ -202,7 +202,7 @@
 
 	update_item_in_frm(item, field, value) {
 		if (field) {
-			frappe.model.set_value(item.doctype, item.name, field, value)
+			frappe.model.set_value(item.doctype, item.name, field, value);
 		}
 
 		return this.frm.script_manager
@@ -219,7 +219,7 @@
 			frm: this.frm,
 			events: {
 				submit_form: () => {
-					this.submit_sales_invoice()
+					this.submit_sales_invoice();
 				}
 			}
 		});
@@ -323,7 +323,7 @@
 		// }).addClass('visible-xs');
 
 		this.page.add_menu_item(__("Form View"), function () {
-			var doc = frappe.model.sync(me.frm.doc);
+			frappe.model.sync(me.frm.doc);
 			frappe.set_route("Form", me.frm.doc.doctype, me.frm.doc.name);
 		});
 
@@ -376,7 +376,7 @@
 				<div class="cart-wrapper">
 					<div class="list-item-table">
 						<div class="list-item list-item--head">
-							<div class="list-item__content list-item__content--flex-2 text-muted">${__('Item Name')}</div>
+							<div class="list-item__content list-item__content--flex-1.5 text-muted">${__('Item Name')}</div>
 							<div class="list-item__content text-muted text-right">${__('Quantity')}</div>
 							<div class="list-item__content text-muted text-right">${__('Discount')}</div>
 							<div class="list-item__content text-muted text-right">${__('Rate')}</div>
@@ -610,8 +610,8 @@
 	get_item_html(item) {
 		const rate = format_currency(item.rate, this.frm.doc.currency);
 		return `
-			<div class="list-item" data-item-code="${item.item_code}">
-				<div class="item-name list-item__content list-item__content--flex-2 ellipsis">
+			<div class="list-item" data-item-code="${item.item_code}" title="${item.item_name}">
+				<div class="item-name list-item__content list-item__content--flex-1.5 ellipsis">
 					${item.item_name}
 				</div>
 				<div class="quantity list-item__content text-right">
@@ -824,9 +824,9 @@
 				options: 'Item Group',
 				default: 'All Item Groups',
 				onchange: () => {
-					const item_group = this.item_group_field.get_value()
+					const item_group = this.item_group_field.get_value();
 					if (item_group) {
-						this.filter_items({ item_group: item_group })
+						this.filter_items({ item_group: item_group });
 					}
 				},
 			},
@@ -907,7 +907,7 @@
 
 	bind_events() {
 		var me = this;
-		this.wrapper.on('click', '.pos-item-wrapper', function(e) {
+		this.wrapper.on('click', '.pos-item-wrapper', function() {
 			const $item = $(this);
 			const item_code = $item.attr('data-item-code');
 			me.events.update_cart(item_code, 'qty', '+1');
@@ -1100,7 +1100,7 @@
 		this.set_flag();
 
 		let title = __('Total Amount {0}',
-			[format_currency(this.frm.doc.grand_total, this.frm.doc.currency)])
+			[format_currency(this.frm.doc.grand_total, this.frm.doc.currency)]);
 
 		this.dialog = new frappe.ui.Dialog({
 			title: title,
@@ -1153,7 +1153,7 @@
 				options: me.frm.doc.currency,
 				fieldname: p.mode_of_payment,
 				default: p.amount,
-				onchange: (e) => {
+				onchange: () => {
 					const value = this.dialog.get_value(this.fieldname);
 					me.update_payment_value(this.fieldname, value);
 				}
@@ -1180,7 +1180,7 @@
 				onchange: () => {
 					me.update_cur_frm_value('write_off_amount', () => {
 						frappe.flags.change_amount = false;
-						me.update_change_amount()
+						me.update_change_amount();
 					});
 				}
 			},
@@ -1237,8 +1237,8 @@
 			const value = this.dialog.get_value(fieldname);
 			this.frm.set_value(fieldname, value)
 				.then(() => {
-					callback()
-				})
+					callback();
+				});
 		}
 
 		frappe.flags[fieldname] = true;
@@ -1252,22 +1252,22 @@
 					.then(() => {
 						me.update_change_amount();
 						me.update_write_off_amount();
-					})
+					});
 			}
 		});
 	}
 
 	update_change_amount() {
-		this.dialog.set_value("change_amount", this.frm.doc.change_amount)
-		this.show_paid_amount()
+		this.dialog.set_value("change_amount", this.frm.doc.change_amount);
+		this.show_paid_amount();
 	}
 
 	update_write_off_amount() {
-		this.dialog.set_value("write_off_amount", this.frm.doc.write_off_amount)
+		this.dialog.set_value("write_off_amount", this.frm.doc.write_off_amount);
 	}
 
 	show_paid_amount() {
-		this.dialog.set_value("paid_amount", this.frm.doc.paid_amount)
-		this.dialog.set_value("outstanding_amount", this.frm.doc.outstanding_amount)
+		this.dialog.set_value("paid_amount", this.frm.doc.paid_amount);
+		this.dialog.set_value("outstanding_amount", this.frm.doc.outstanding_amount);
 	}
 }
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.py b/erpnext/selling/page/point_of_sale/point_of_sale.py
index 4e2b1b1..8ed288b 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.py
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.py
@@ -3,17 +3,9 @@
 
 from __future__ import unicode_literals
 import frappe, json
-from frappe import _
-from frappe.utils import nowdate
-from erpnext.setup.utils import get_exchange_rate
-from frappe.core.doctype.communication.email import make
-from erpnext.stock.get_item_details import get_pos_profile
-from erpnext.accounts.party import get_party_account_currency
-from erpnext.controllers.accounts_controller import get_taxes_and_charges
 
 @frappe.whitelist()
 def get_items(start, page_length, price_list, item_group, search_value=""):
-	condition = ""
 	serial_no = ""
 	batch_no = ""
 	item_code = search_value
@@ -42,7 +34,7 @@
 			i.disabled = 0 and i.has_variants = 0
 			and i.item_group in (select name from `tabItem Group` where lft >= {lft} and rgt <= {rgt})
 			and (i.item_code like %(item_code)s
-			or i.item_name like %(item_code)s)
+			or i.item_name like %(item_code)s or i.barcode like %(item_code)s)
 		limit {start}, {page_length}""".format(start=start, page_length=page_length, lft=lft, rgt=rgt),
 		{
 			'item_code': '%%%s%%'%(frappe.db.escape(item_code)),