diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py
index 0538323..ad7ebd9 100644
--- a/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -62,19 +62,20 @@
 			"purchase_receipt_details")
 
 	def get_credit_to(self):
-		acc_head = sql("""select name, credit_days from `tabAccount` 
-			where (name = %s or (master_name = %s and master_type = 'supplier')) 
-			and docstatus != 2 and company = %s""", 
-			(cstr(self.doc.supplier) + " - " + self.company_abbr, 
-			self.doc.supplier, self.doc.company))
-
 		ret = {}
-		if acc_head and acc_head[0][0]:
-			ret['credit_to'] = acc_head[0][0]
-			if not self.doc.due_date:
-				ret['due_date'] = add_days(cstr(self.doc.posting_date), acc_head and cint(acc_head[0][1]) or 0)
-		elif not acc_head:
-			msgprint("%s does not have an Account Head in %s. You must first create it from the Supplier Master" % (self.doc.supplier, self.doc.company))
+		if self.doc.supplier:
+			acc_head = sql("""select name, credit_days from `tabAccount` 
+				where (name = %s or (master_name = %s and master_type = 'supplier')) 
+				and docstatus != 2 and company = %s""", 
+				(cstr(self.doc.supplier) + " - " + self.company_abbr, 
+				self.doc.supplier, self.doc.company))
+
+			if acc_head and acc_head[0][0]:
+				ret['credit_to'] = acc_head[0][0]
+				if not self.doc.due_date:
+					ret['due_date'] = add_days(cstr(self.doc.posting_date), acc_head and cint(acc_head[0][1]) or 0)
+			elif not acc_head:
+				msgprint("%s does not have an Account Head in %s. You must first create it from the Supplier Master" % (self.doc.supplier, self.doc.company))
 		return ret
 		
 	def set_supplier_defaults(self):
diff --git a/accounts/doctype/sales_invoice/pos.js b/accounts/doctype/sales_invoice/pos.js
index 4ef2397..ca5618b 100644
--- a/accounts/doctype/sales_invoice/pos.js
+++ b/accounts/doctype/sales_invoice/pos.js
@@ -132,7 +132,7 @@
 				"options": "Item Group",
 				"label": "Item Group",
 				"fieldname": "pos_item_group",
-				"placeholder": "Filter by Item Group"
+				"placeholder": "Item Group"
 			},
 			parent: this.wrapper.find(".item-group-area")
 		});
@@ -150,7 +150,7 @@
 				"options": "Item",
 				"label": "Item",
 				"fieldname": "pos_item",
-				"placeholder": "Select Item"
+				"placeholder": "Item"
 			},
 			parent: this.wrapper.find(".search-area")
 		});
@@ -167,7 +167,7 @@
 				"fieldtype": "Data",
 				"label": "Barcode",
 				"fieldname": "pos_barcode",
-				"placeholder": "Select Barcode"
+				"placeholder": "Barcode"
 			},
 			parent: this.wrapper.find(".barcode-area")
 		});
@@ -215,7 +215,9 @@
 				// if form is local then allow this function
 				if (cur_frm.doc.docstatus===0) {
 					$("div.pos-item").on("click", function() {
-						if(!cur_frm.doc[me.party.toLowerCase()]) {
+						if(!cur_frm.doc[me.party.toLowerCase()] && ((me.frm.doctype == "Quotation" && 
+								cur_frm.doc.quotation_to == "Customer") 
+								|| me.frm.doctype != "Quotation")) {
 							msgprint("Please select " + me.party + " first.");
 							return;
 						}
@@ -282,6 +284,16 @@
 
 		$.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" \
@@ -292,8 +304,8 @@
 					item_code: d.item_code,
 					item_name: d.item_name===d.item_code ? "" : ("<br>" + d.item_name),
 					qty: d.qty,
-					rate: format_currency(d.ref_rate, cur_frm.doc.currency),
-					amount: format_currency(d.export_amount, cur_frm.doc.currency)
+					rate: format_currency(rate, cur_frm.doc.currency),
+					amount: format_currency(item_amount, cur_frm.doc.currency)
 				}
 			)).appendTo($items);
 		});
@@ -312,15 +324,24 @@
 			<tr>', {
 				description: d.description,
 				rate: d.rate,
-				tax_amount: format_currency(d.tax_amount, me.frm.doc.currency)
+				tax_amount: format_currency(flt(d.tax_amount)/flt(me.frm.doc.conversion_rate), 
+					me.frm.doc.currency)
 			})).appendTo(".tax-table tbody");
 		});
 
 		// set totals
-		this.wrapper.find(".net-total").text(format_currency(this.frm.doc.net_total_export, 
-			cur_frm.doc.currency));
-		this.wrapper.find(".grand-total").text(format_currency(this.frm.doc.grand_total_export, 
-			cur_frm.doc.currency));
+		if (this.sales_or_purchase == "Sales") {
+			this.wrapper.find(".net-total").text(format_currency(this.frm.doc.net_total_export, 
+				cur_frm.doc.currency));
+			this.wrapper.find(".grand-total").text(format_currency(this.frm.doc.grand_total_export, 
+				cur_frm.doc.currency));
+		}
+		else {
+			this.wrapper.find(".net-total").text(format_currency(this.frm.doc.net_total_import, 
+				cur_frm.doc.currency));
+			this.wrapper.find(".grand-total").text(format_currency(this.frm.doc.grand_total_import, 
+				cur_frm.doc.currency));
+		}
 
 		// if form is local then only run all these functions
 		if (cur_frm.doc.docstatus===0) {
@@ -366,9 +387,12 @@
 		if (this.frm.doctype != "Sales Invoice")
 			$(".make-payment").hide();
 
-		if (this.frm.doctype == "Quotation")
-			if (cur_frm.doc.quotation_to=="Customer")
-				this.party_field.remove();
+		// If quotation to is not Customer then remove party
+		if (this.frm.doctype == "Quotation") {
+			this.party_field.$wrapper.remove();
+			if (cur_frm.doc.quotation_to == "Customer")
+				this.make_party();
+		}
 	},
 	refresh_delete_btn: function() {
 		$(".delete-items").toggle($(".item-cart .warning").length ? true : false);		
diff --git a/accounts/doctype/sales_invoice/pos.py b/accounts/doctype/sales_invoice/pos.py
index d919c1b..44fe40d 100644
--- a/accounts/doctype/sales_invoice/pos.py
+++ b/accounts/doctype/sales_invoice/pos.py
@@ -3,7 +3,6 @@
 
 from __future__ import unicode_literals
 import webnotes
-from webnotes import msgprint, errprint
 
 @webnotes.whitelist()
 def get_items(price_list, sales_or_purchase, item=None, item_group=None):
@@ -37,5 +36,10 @@
 		(barcode), as_dict=1)
 
 @webnotes.whitelist()
+def get_item_from_serial_no(serial_no):
+	return webnotes.conn.sql("""select name, item_code from `tabSerial No` where 
+		name=%s""", (serial_no), as_dict=1)
+
+@webnotes.whitelist()
 def get_mode_of_payment():
 	return webnotes.conn.sql("""select name from `tabMode of Payment`""", as_dict=1)
\ No newline at end of file
diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js
index 2dfe655..433a76f 100644
--- a/buying/doctype/purchase_common/purchase_common.js
+++ b/buying/doctype/purchase_common/purchase_common.js
@@ -108,8 +108,7 @@
 		var item = wn.model.get_doc(cdt, cdn);
 		if(item.item_code) {
 			if(!this.validate_company_and_party("supplier")) {
-				item.item_code = null;
-				refresh_field("item_code", item.name, item.parentfield);
+				cur_frm.fields_dict[me.frm.cscript.fname].grid.grid_rows[item.idx - 1].remove();
 			} else {
 				return this.frm.call({
 					method: "buying.utils.get_item_details",
diff --git a/public/js/transaction.js b/public/js/transaction.js
index 1a1c98c..e12d108 100644
--- a/public/js/transaction.js
+++ b/public/js/transaction.js
@@ -232,6 +232,29 @@
 	tax_rate: function(doc, cdt, cdn) {
 		this.calculate_taxes_and_totals();
 	},
+
+	// serial_no: function(doc, cdt, cdn) {
+	// 	var me = this;
+	// 	var item = wn.model.get_doc(cdt, cdn);
+	// 	if (!item.item_code) {
+	// 		wn.call({
+	// 			method: 'accounts.doctype.sales_invoice.pos.get_item_from_serial_no',
+	// 			args: {serial_no: this.serial_no.$input.val()},
+	// 			callback: function(r) {
+	// 				if (r.message) {
+	// 					var item_code = r.message[0].item_code;
+	// 					var child = wn.model.add_child(me.frm.doc, this.frm.doctype + " Item", 
+	// 						this.frm.cscript.fname);
+	// 							child.item_code = item_code;
+	// 							me.frm.cscript.item_code(me.frm.doc, child.doctype, child.name);
+	// 				}
+	// 				else
+	// 					msgprint(wn._("Invalid Serial No."));
+	// 				me.refresh();
+	// 			}
+	// 		});
+	// 	}
+	// },
 	
 	row_id: function(doc, cdt, cdn) {
 		var tax = wn.model.get_doc(cdt, cdn);
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index dc58377..c87e823 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -162,8 +162,7 @@
 		var item = wn.model.get_doc(cdt, cdn);
 		if(item.item_code || item.barcode) {
 			if(!this.validate_company_and_party("customer")) {
-				item.item_code = null;
-				refresh_field("item_code", item.name, item.parentfield);
+				cur_frm.fields_dict[me.frm.cscript.fname].grid.grid_rows[item.idx - 1].remove();
 			} else {
 				return this.frm.call({
 					method: "selling.utils.get_item_details",
diff --git a/selling/utils/__init__.py b/selling/utils/__init__.py
index 224944d..801d82b 100644
--- a/selling/utils/__init__.py
+++ b/selling/utils/__init__.py
@@ -34,6 +34,7 @@
 			"plc_conversion_rate": 1.0
 		}
 	"""
+
 	if isinstance(args, basestring):
 		args = json.loads(args)
 	args = webnotes._dict(args)
diff --git a/utilities/transaction_base.py b/utilities/transaction_base.py
index 2535db7..57591fd 100644
--- a/utilities/transaction_base.py
+++ b/utilities/transaction_base.py
@@ -425,6 +425,7 @@
 	
 def validate_conversion_rate(currency, conversion_rate, conversion_rate_label, company):
 	"""common validation for currency and price list currency"""
+
 	if conversion_rate == 0:
 		msgprint(conversion_rate_label + _(' cannot be 0'), raise_exception=True)
 	
