diff --git a/accounts/doctype/sales_invoice/pos.js b/accounts/doctype/sales_invoice/pos.js
index 492eb5e..dabfb97 100644
--- a/accounts/doctype/sales_invoice/pos.js
+++ b/accounts/doctype/sales_invoice/pos.js
@@ -29,7 +29,7 @@
 							</table>\
 						</div>\
 						<br>\
-						<div class="net-total-area" style="margin-left: 40%;">\
+						<div class="totals-area" style="margin-left: 40%;">\
 							<table class="table table-condensed">\
 								<tr>\
 									<td><b>Net Total</b></td>\
@@ -48,13 +48,15 @@
 									</tbody>\
 								</table>\
 							</div>\
-							<table class="table table-condensed">\
-								<tr>\
-									<td style="vertical-align: middle;"><b>Grand Total</b></td>\
-									<td style="text-align: right; font-size: 200%; \
-										font-size: bold;" class="grand-total"></td>\
-								</tr>\
-							</table>\
+							<div class="grand-total-area">\
+								<table class="table table-condensed">\
+									<tr>\
+										<td style="vertical-align: middle;"><b>Grand Total</b></td>\
+										<td style="text-align: right; font-size: 200%; \
+											font-size: bold;" class="grand-total"></td>\
+									</tr>\
+								</table>\
+							</div>\
 						</div>\
 					</div>\
 					<br><br>\
@@ -72,17 +74,7 @@
 				</div>\
 			</div></div>');
 		
-		if (wn.meta.has_field(cur_frm.doc.doctype, "customer")) {
-			this.party = "Customer";
-			this.price_list = this.frm.doc.selling_price_list;
-			this.sales_or_purchase = "Sales";
-		}
-		else if (wn.meta.has_field(cur_frm.doc.doctype, "supplier")) {
-			this.party = "Supplier";
-			this.price_list = this.frm.doc.buying_price_list;
-			this.sales_or_purchase = "Purchase";
-		}
-		
+		this.check_transaction_type();
 		this.make();
 
 		var me = this;
@@ -90,13 +82,33 @@
 			me.refresh();
 		});
 
-		this.wrapper.find(".delete-items").on("click", function() {
-			me.remove_selected_item();
-		});
+		this.call_function("delete-items", function() {me.remove_selected_item();});
+		this.call_function("make-payment", function() {me.make_payment();});
+	},
+	check_transaction_type: function() {
+		var me = this;
 
-		this.wrapper.find(".make-payment").on("click", function() {
-			me.make_payment();
-		});
+		// Check whether the transaction is "Sales" or "Purchase"
+		if (wn.meta.has_field(cur_frm.doc.doctype, "customer")) {
+			this.set_transaction_defaults("Customer", "export");
+		}
+		else if (wn.meta.has_field(cur_frm.doc.doctype, "supplier")) {
+			this.set_transaction_defaults("Supplier", "import");
+		}
+	},
+	set_transaction_defaults: function(party, export_or_import) {
+		var me = this;
+		this.party = party;
+		this.price_list = (party == "Customer" ? 
+			this.frm.doc.selling_price_list : this.frm.doc.buying_price_list);
+		this.sales_or_purchase = (party == "Customer" ? "Sales" : "Purchase");
+		this.net_total = "net_total_" + export_or_import;
+		this.grand_total = "grand_total_" + export_or_import;
+		this.amount = export_or_import + "_amount";
+		this.rate = export_or_import + "_rate";
+	},
+	call_function: function(class_name, fn, event_name) {
+		this.wrapper.find("." + class_name).on(event_name || "click", fn);
 	},
 	make: function() {
 		this.make_party();
@@ -148,19 +160,20 @@
 		var me = this;
 		this.search = wn.ui.form.make_control({
 			df: {
-				"fieldtype": "Link",
-				"options": "Item",
+				"fieldtype": "Data",
 				"label": "Item",
 				"fieldname": "pos_item",
-				"placeholder": "Item"
+				"placeholder": "Search Item"
 			},
 			parent: this.wrapper.find(".search-area"),
 			only_input: true,
 		});
 		this.search.make_input();
-		this.search.$input.on("change", function() {
+		this.search.$input.on("keypress", function() {
 			if(!me.search.autocomplete_open)
-				me.make_item_list();
+				if(me.item_timeout)
+					clearTimeout(me.item_timeout);
+				me.item_timeout = setTimeout(function() { me.make_item_list(); }, 1000);
 		});
 	},
 	make_barcode: function() {
@@ -184,6 +197,7 @@
 	},
 	make_item_list: function() {
 		var me = this;
+		me.item_timeout = null;
 		wn.call({
 			method: 'accounts.doctype.sales_invoice.pos.get_items',
 			args: {
@@ -195,26 +209,28 @@
 			callback: function(r) {
 				var $wrap = me.wrapper.find(".item-list");
 				me.wrapper.find(".item-list").empty();
-				$.each(r.message, function(index, obj) {
-					if (obj.image)
-						image = '<img src="' + obj.image + '" class="img-responsive" \
-								style="border:1px solid #eee; max-height: 140px;">';
-					else
-						image = '<div class="missing-image"><i class="icon-camera"></i></div>';
+				if (r.message) {
+					$.each(r.message, function(index, obj) {
+						if (obj.image)
+							image = '<img src="' + obj.image + '" class="img-responsive" \
+									style="border:1px solid #eee; max-height: 140px;">';
+						else
+							image = '<div class="missing-image"><i class="icon-camera"></i></div>';
 
-					$(repl('<div class="col-xs-3 pos-item" data-item_code="%(item_code)s">\
-								<div style="height: 140px; overflow: hidden;">%(item_image)s</div>\
-								<div class="small">%(item_code)s</div>\
-								<div class="small">%(item_name)s</div>\
-								<div class="small">%(item_price)s</div>\
-							</div>', 
-						{
-							item_code: obj.name,
-							item_price: format_currency(obj.ref_rate, obj.currency),
-							item_name: obj.name===obj.item_name ? "" : obj.item_name,
-							item_image: image
-						})).appendTo($wrap);
-				});
+						$(repl('<div class="col-xs-3 pos-item" data-item_code="%(item_code)s">\
+									<div style="height: 140px; overflow: hidden;">%(item_image)s</div>\
+									<div class="small">%(item_code)s</div>\
+									<div class="small">%(item_name)s</div>\
+									<div class="small">%(item_price)s</div>\
+								</div>', 
+							{
+								item_code: obj.name,
+								item_price: format_currency(obj.ref_rate, obj.currency),
+								item_name: obj.name===obj.item_name ? "" : obj.item_name,
+								item_image: image
+							})).appendTo($wrap);
+					});
+				}
 
 				// if form is local then allow this function
 				$(me.wrapper).find("div.pos-item").on("click", function() {
@@ -259,25 +275,42 @@
 		
 		// if item not found then add new item
 		if (!caught) {
-			var child = wn.model.add_child(me.frm.doc, this.frm.doctype + " Item", 
-				this.frm.cscript.fname);
-			child.item_code = item_code;
-
-			if (serial_no)
-				child.serial_no = serial_no;
-
-			me.frm.script_manager.trigger("item_code", child.doctype, child.name);
+			this.add_new_item_to_grid(item_code, serial_no);
 		}
-		me.refresh();
+
+		this.refresh();
+		this.refresh_search_box();
+	},
+	add_new_item_to_grid: function(item_code, serial_no) {
+		var me = this;
+
+		var child = wn.model.add_child(me.frm.doc, this.frm.doctype + " Item", 
+			this.frm.cscript.fname);
+		child.item_code = item_code;
+
+		if (serial_no)
+			child.serial_no = serial_no;
+
+		this.frm.script_manager.trigger("item_code", child.doctype, child.name);
+	},
+	refresh_search_box: function() {
+		var me = this;
+
+		// Clear Item Box and remake item list
+		if (this.search.$input.val()) {
+			this.search.set_input("");
+			this.make_item_list();
+		}
 	},
 	update_qty: function(item_code, qty) {
 		var me = this;
 		$.each(wn.model.get_children(this.frm.doctype + " Item", this.frm.doc.name, 
 			this.frm.cscript.fname, this.frm.doctype), function(i, d) {
 			if (d.item_code == item_code) {
-				if (qty == 0)
+				if (qty == 0) {
 					wn.model.clear_doc(d.doctype, d.name);
-				else {
+					me.refresh_grid();
+				} else {
 					d.qty = qty;
 					me.frm.script_manager.trigger("qty", d.doctype, d.name);
 				}
@@ -289,22 +322,34 @@
 		var me = this;
 		this.party_field.set_input(this.frm.doc[this.party.toLowerCase()]);
 		this.barcode.set_input("");
+		this.total_flat_discount = 0.0;
 
-		// add items
-		var $items = me.wrapper.find("#cart tbody").empty();
+		this.show_items_in_item_cart();
+		this.show_taxes();
+		this.set_totals();
+
+		// if form is local then only run all these functions
+		if (this.frm.doc.docstatus===0) {
+			this.call_when_local();
+		}
+
+		this.disable_text_box_and_button();
+		this.make_payment_button();
+
+		// If quotation to is not Customer then remove party
+		if (this.frm.doctype == "Quotation") {
+			this.party_field.$wrapper.remove();
+			if (this.frm.doc.quotation_to == "Customer")
+				this.make_party();
+		}
+	},
+	show_items_in_item_cart: function() {
+		var me = this;
+		var $items = this.wrapper.find("#cart tbody").empty();
 
 		$.each(wn.model.get_children(this.frm.doctype + " Item", this.frm.doc.name, 
 			this.frm.cscript.fname, this.frm.doctype), function(i, d) {
 
-			if (me.sales_or_purchase == "Sales") {
-				item_amount = d.export_amount;
-				rate = d.export_rate;
-			}
-			else {
-				item_amount = d.import_amount;
-				rate = d.import_rate;
-			}
-
 			$(repl('<tr id="%(item_code)s" data-selected="false">\
 					<td>%(item_code)s%(item_name)s</td>\
 					<td><input type="text" value="%(qty)s" \
@@ -315,76 +360,73 @@
 					item_code: d.item_code,
 					item_name: d.item_name===d.item_code ? "" : ("<br>" + d.item_name),
 					qty: d.qty,
-					rate: format_currency(rate, me.frm.doc.currency),
-					amount: format_currency(item_amount, me.frm.doc.currency)
+					rate: format_currency(d[me.rate], me.frm.doc.currency),
+					amount: format_currency(d[me.amount], me.frm.doc.currency)
 				}
 			)).appendTo($items);
 		});
-
-		// taxes
+	},
+	show_taxes: function() {
+		var me = this;
 		var taxes = wn.model.get_children(this.sales_or_purchase + " Taxes and Charges", 
 			this.frm.doc.name, this.frm.cscript.other_fname, this.frm.doctype);
 		$(this.wrapper).find(".tax-table")
-			.toggle((taxes && taxes.length) ? true : false)
+			.toggle((taxes && taxes.length && 
+				flt(me.frm.doc.other_charges_total_export || 
+					me.frm.doc.other_charges_added_import) != 0.0) ? true : false)
 			.find("tbody").empty();
 		
 		$.each(taxes, function(i, d) {
-			$(repl('<tr>\
-				<td>%(description)s (%(rate)s%)</td>\
-				<td style="text-align: right;">%(tax_amount)s</td>\
-			<tr>', {
-				description: d.description,
-				rate: d.rate,
-				tax_amount: format_currency(flt(d.tax_amount)/flt(me.frm.doc.conversion_rate), 
-					me.frm.doc.currency)
-			})).appendTo(".tax-table tbody");
+			if (d.charge_type == "Discount Amount") {
+				me.total_flat_discount += flt(d.rate);
+			} else {
+				$(repl('<tr>\
+					<td>%(description)s %(rate)s</td>\
+					<td style="text-align: right;">%(tax_amount)s</td>\
+				<tr>', {
+					description: d.description,
+					rate: ((d.charge_type == "Actual") ? '' : ("(" + d.rate + "%)")),
+					tax_amount: format_currency(flt(d.tax_amount)/flt(me.frm.doc.conversion_rate), 
+						me.frm.doc.currency)
+				})).appendTo(".tax-table tbody");
+			}
+		});
+	},
+	set_totals: function() {
+		var me = this;
+		this.wrapper.find(".net-total").text(format_currency(this.frm.doc[this.net_total], 
+			me.frm.doc.currency));
+		this.wrapper.find(".grand-total").text(format_currency(this.frm.doc[this.grand_total], 
+			me.frm.doc.currency));
+	},
+	call_when_local: function() {
+		var me = this;
+
+		// append quantity to the respective item after change from input box
+		$(this.wrapper).find("input.qty").on("change", function() {
+			var item_code = $(this).closest("tr")[0].id;
+			me.update_qty(item_code, $(this).val());
 		});
 
-		// set totals
-		if (this.sales_or_purchase == "Sales") {
-			this.wrapper.find(".net-total").text(format_currency(this.frm.doc.net_total_export, 
-				me.frm.doc.currency));
-			this.wrapper.find(".grand-total").text(format_currency(this.frm.doc.grand_total_export, 
-				me.frm.doc.currency));
-		}
-		else {
-			this.wrapper.find(".net-total").text(format_currency(this.frm.doc.net_total_import, 
-				me.frm.doc.currency));
-			this.wrapper.find(".grand-total").text(format_currency(this.frm.doc.grand_total_import, 
-				me.frm.doc.currency));
-		}
-
-		// if form is local then only run all these functions
-		if (this.frm.doc.docstatus===0) {
-			$(this.wrapper).find("input.qty").on("focus", function() {
-				$(this).select();
-			});
-
-			// append quantity to the respective item after change from input box
-			$(this.wrapper).find("input.qty").on("change", function() {
-				var item_code = $(this).closest("tr")[0].id;
-				me.update_qty(item_code, $(this).val());
-			});
-
-			// on td click toggle the highlighting of row
-			$(this.wrapper).find("#cart tbody tr td").on("click", function() {
-				var row = $(this).closest("tr");
-				if (row.attr("data-selected") == "false") {
-					row.attr("class", "warning");
-					row.attr("data-selected", "true");
-				}
-				else {
-					row.prop("class", null);
-					row.attr("data-selected", "false");
-				}
-				me.refresh_delete_btn();
-				
-			});
-
+		// on td click toggle the highlighting of row
+		$(this.wrapper).find("#cart tbody tr td").on("click", function() {
+			var row = $(this).closest("tr");
+			if (row.attr("data-selected") == "false") {
+				row.attr("class", "warning");
+				row.attr("data-selected", "true");
+			}
+			else {
+				row.prop("class", null);
+				row.attr("data-selected", "false");
+			}
 			me.refresh_delete_btn();
-			this.barcode.$input.focus();
-		}
+		});
 
+		me.refresh_delete_btn();
+		this.barcode.$input.focus();
+	},
+	disable_text_box_and_button: function() {
+		var me = this;
 		// if form is submitted & cancelled then disable all input box & buttons
 		if (this.frm.doc.docstatus>=1) {
 			$(this.wrapper).find('input, button').each(function () {
@@ -399,17 +441,12 @@
 			});
 			$(this.wrapper).find(".make-payment").show();
 		}
-
+	},
+	make_payment_button: function() {
+		var me = this;
 		// Show Make Payment button only in Sales Invoice
 		if (this.frm.doctype != "Sales Invoice")
 			$(this.wrapper).find(".make-payment").hide();
-
-		// If quotation to is not Customer then remove party
-		if (this.frm.doctype == "Quotation") {
-			this.party_field.$wrapper.remove();
-			if (this.frm.doc.quotation_to == "Customer")
-				this.make_party();
-		}
 	},
 	refresh_delete_btn: function() {
 		$(this.wrapper).find(".delete-items").toggle($(".item-cart .warning").length ? true : false);		
@@ -455,9 +492,12 @@
 				}
 			}
 		});
+		this.refresh_grid();
+	},
+	refresh_grid: function() {
 		this.frm.fields_dict[this.frm.cscript.fname].grid.refresh();
 		this.frm.script_manager.trigger("calculate_taxes_and_totals");
-		me.refresh();
+		this.refresh();
 	},
 	make_payment: function() {
 		var me = this;
@@ -489,8 +529,6 @@
 						"total_amount": $(".grand-total").text()
 					});
 					dialog.show();
-					me.barcode.$input.focus();
-					
 					dialog.get_input("total_amount").prop("disabled", true);
 					
 					dialog.fields_dict.pay.input.onclick = function() {
diff --git a/accounts/doctype/sales_invoice/pos.py b/accounts/doctype/sales_invoice/pos.py
index 3b47c05..e35d64b 100644
--- a/accounts/doctype/sales_invoice/pos.py
+++ b/accounts/doctype/sales_invoice/pos.py
@@ -7,6 +7,7 @@
 @webnotes.whitelist()
 def get_items(price_list, sales_or_purchase, item=None, item_group=None):
 	condition = ""
+	args = {"price_list": price_list}
 	
 	if sales_or_purchase == "Sales":
 		condition = "i.is_sales_item='Yes'"
@@ -17,7 +18,8 @@
 		condition += " and i.item_group='%s'" % item_group
 
 	if item:
-		condition += " and i.name='%s'" % item
+		condition += " and CONCAT(i.name, i.item_name) like %(name)s"
+		args["name"] = "%%%s%%" % item
 
 	return webnotes.conn.sql("""select i.name, i.item_name, i.image, 
 		item_det.ref_rate, item_det.currency 
@@ -27,7 +29,7 @@
 		ON
 			item_det.item_code=i.name
 		where
-			%s""" % ('%s', condition), (price_list), as_dict=1)
+			%s""" % ('%(price_list)s', condition), args, as_dict=1)
 
 @webnotes.whitelist()
 def get_item_code(barcode_serial_no):
diff --git a/utilities/demo/demo_docs/Fiscal_Year.csv b/utilities/demo/demo_docs/Fiscal_Year.csv
index 9cc6036..d56b1b9 100644
--- a/utilities/demo/demo_docs/Fiscal_Year.csv
+++ b/utilities/demo/demo_docs/Fiscal_Year.csv
@@ -14,9 +14,9 @@
 DocType:,Fiscal Year,,,
 Column Labels:,ID,Year Name,Year Start Date,Year Closed
 Column Name:,name,year,year_start_date,year_end_date,is_fiscal_year_closed
-Mandatory:,Yes,Yes,Yes,No
-Type:,Data (text),Data,Date,Select
-Info:,,,,"One of: No, Yes"
+Mandatory:,Yes,Yes,Yes,Yes,No
+Type:,Data (text),Data,Date,Date,Select
+Info:,,,,,"One of: No, Yes"
 Start entering data below this line,,,,
 ,,2009,01-01-2009,31-12-2009,No
 ,,2010,01-01-2010,31-12-2010,No
diff --git a/utilities/demo/make_demo.py b/utilities/demo/make_demo.py
index 2605fe3..67e163f 100644
--- a/utilities/demo/make_demo.py
+++ b/utilities/demo/make_demo.py
@@ -380,7 +380,8 @@
 	setup_account({
 		"first_name": "Test",
 		"last_name": "User",
-		"fy_start": "1st Jan",
+		"fy_start_date": "2013-01-01",
+		"fy_end_date": "2013-12-31",
 		"industry": "Manufacturing",
 		"company_name": company,
 		"company_abbr": company_abbr,
