Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index a3dae8e..4ee7e53 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -291,7 +291,12 @@
 		current_tax_amount = flt(current_tax_amount, self.precision("tax_amount", tax))
 		
 		# store tax breakup for each item
-		tax.item_wise_tax_detail[item.item_code or item.item_name] = [tax_rate, current_tax_amount]
+		key = item.item_code or item.item_name
+		if tax.item_wise_tax_detail.get(key):
+			item_wise_tax_amount = tax.item_wise_tax_detail[key][1] + current_tax_amount
+			tax.item_wise_tax_detail[key] = [tax_rate, item_wise_tax_amount]
+		else:
+			tax.item_wise_tax_detail[key] = [tax_rate, current_tax_amount]
 
 		return current_tax_amount
 		
diff --git a/patches/patch_list.py b/patches/patch_list.py
index f587563..3c13e0e 100644
--- a/patches/patch_list.py
+++ b/patches/patch_list.py
@@ -261,6 +261,6 @@
 	"execute:webnotes.reload_doc('accounts', 'Print Format', 'POS Invoice') # 2013-09-02",
 	"patches.september_2013.p01_fix_buying_amount_gl_entries",
 	"patches.september_2013.p01_update_communication",
-	"patches.september_2013.p02_make_pos_view_checked_in_features_setup",
+	"execute:webnotes.reload_doc('setup', 'doctype', 'features_setup') # 2013-09-05",
 	"patches.september_2013.p02_fix_serial_no_status",
 ]
\ No newline at end of file
diff --git a/patches/september_2013/p02_make_pos_view_checked_in_features_setup.py b/patches/september_2013/p02_make_pos_view_checked_in_features_setup.py
deleted file mode 100644
index c5e2c7b..0000000
--- a/patches/september_2013/p02_make_pos_view_checked_in_features_setup.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
-# License: GNU General Public License v3. See license.txt
-
-from __future__ import unicode_literals
-import webnotes
-
-def execute():
-	webnotes.reload_doc("setup", "doctype", "features_setup")
-	fs = webnotes.bean("Features Setup")
-	fs.doc.fs_pos_view = 1
-	fs.save()
\ No newline at end of file
diff --git a/public/js/transaction.js b/public/js/transaction.js
index 1d06a9f..0ff957a 100644
--- a/public/js/transaction.js
+++ b/public/js/transaction.js
@@ -338,8 +338,19 @@
 		
 		var headings = $.map([wn._("Item Name")].concat($.map(tax_accounts, function(head) { return head[1]; })), 
 			function(head) { return '<th style="min-width: 100px;">' + (head || "") + "</th>" }).join("\n");
+			
+		var distinct_item_names = [];
+		var distinct_items = [];
+		$.each(this.get_item_doclist(), function(i, item) {
+			if(distinct_item_names.indexOf(item.item_code || item.item_name)===-1) {
+				distinct_item_names.push(item.item_code || item.item_name);
+				distinct_items.push(item);
+			}
+		});
 		
-		var rows = $.map(this.get_item_doclist(), function(item) {
+		console.log(distinct_items);
+		
+		var rows = $.map(distinct_items, function(item) {
 			var item_tax_record = item_tax[item.item_code || item.item_name];
 			if(!item_tax_record) { return null; }
 			return repl("<tr><td>%(item_name)s</td>%(taxes)s</tr>", {
diff --git a/selling/doctype/opportunity/opportunity.py b/selling/doctype/opportunity/opportunity.py
index a3ef197..b265356 100644
--- a/selling/doctype/opportunity/opportunity.py
+++ b/selling/doctype/opportunity/opportunity.py
@@ -160,6 +160,11 @@
 def make_quotation(source_name, target_doclist=None):
 	from webnotes.model.mapper import get_mapped_doclist
 	
+	def set_missing_values(source, target):
+		quotation = webnotes.bean(target)
+		quotation.run_method("onload_post_render")
+		quotation.run_method("calculate_taxes_and_totals")
+	
 	doclist = get_mapped_doclist("Opportunity", source_name, {
 		"Opportunity": {
 			"doctype": "Quotation", 
@@ -181,6 +186,6 @@
 			},
 			"add_if_empty": True
 		}
-	}, target_doclist)
+	}, target_doclist, set_missing_values)
 		
 	return [d.fields for d in doclist]
\ No newline at end of file
diff --git a/stock/doctype/purchase_receipt/test_purchase_receipt.py b/stock/doctype/purchase_receipt/test_purchase_receipt.py
index e303d79..af04023 100644
--- a/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -95,9 +95,6 @@
 
 		self.assertFalse(webnotes.conn.get_value("Serial No", pr.doclist[1].serial_no, 
 			"warehouse"))
-
-		self.assertEqual(webnotes.conn.get_value("Serial No", pr.doclist[1].serial_no, 
-			"status"), "Not Available")