Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py
index 76e87b6..3859595 100644
--- a/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/accounts/doctype/sales_invoice/sales_invoice.py
@@ -91,7 +91,7 @@
 		self.validate_c_form()
 		self.validate_time_logs_are_submitted()
 		self.validate_recurring_invoice()
-		self.validate_multiple_billing("Delivered Note", "dn_detail", "export_amount")
+		self.validate_multiple_billing("Delivery Note", "dn_detail", "export_amount")
 
 	def on_submit(self):
 		if cint(self.doc.update_stock) == 1:
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.js b/accounts/page/voucher_import_tool/voucher_import_tool.js
index 48216b8..ffa230d 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.js
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.js
@@ -30,7 +30,7 @@
 		args: {
 			method: "accounts.page.voucher_import_tool.voucher_import_tool.upload"
 		},
-		callback: function(r) {
+		callback: function(fid, filename, r) {
 			wrapper.waiting.toggle(false);
 			$(wrapper).find(".messages").toggle(true).html(
 				r.join("<div style='margin:4px; border-top:1px solid #aaa;'></div>"))
diff --git a/controllers/accounts_controller.py b/controllers/accounts_controller.py
index acb6077..abefb9b 100644
--- a/controllers/accounts_controller.py
+++ b/controllers/accounts_controller.py
@@ -17,7 +17,7 @@
 from __future__ import unicode_literals
 import webnotes
 from webnotes import _, msgprint
-from webnotes.utils import flt, cint, today
+from webnotes.utils import flt, cint, today, cstr
 from setup.utils import get_company_currency, get_price_list_currency
 from accounts.utils import get_fiscal_year, validate_fiscal_year
 from utilities.transaction_base import TransactionBase, validate_conversion_rate
@@ -375,15 +375,15 @@
 				already_billed = webnotes.conn.sql("""select sum(%s) from `tab%s` 
 					where %s=%s and docstatus=1""" % (based_on, self.tname, item_ref_dn, '%s'), 
 					item.fields[item_ref_dn])[0][0]
-				if already_billed:
-					max_allowed_amt = webnotes.conn.get_value(ref_dt + " Item", 
-						item.fields[item_ref_dn], based_on)
-					
-					if flt(already_billed) + flt(item.fields[based_on]) > max_allowed_amt:
-						webnotes.msgprint(_("Row ")+ item.idx + ": " + item.item_code + 
-							_(" will be over-billed against mentioned ") + ref_dt +  
-							_(". Max allowed " + based_on + ": " + max_allowed_amt), 
-							raise_exception=1)
+
+				max_allowed_amt = webnotes.conn.get_value(ref_dt + " Item", 
+					item.fields[item_ref_dn], based_on)
+				
+				if flt(already_billed) + flt(item.fields[based_on]) > max_allowed_amt:
+					webnotes.msgprint(_("Row ")+ cstr(item.idx) + ": " + cstr(item.item_code) + 
+						_(" will be over-billed against mentioned ") + cstr(ref_dt) +  
+						_(". Max allowed " + cstr(based_on) + ": " + cstr(max_allowed_amt)), 
+						raise_exception=1)
 		
 	def get_company_default(self, fieldname):
 		from accounts.utils import get_company_default
diff --git a/hr/doctype/upload_attendance/upload_attendance.js b/hr/doctype/upload_attendance/upload_attendance.js
index 4e5b47f..db97714 100644
--- a/hr/doctype/upload_attendance/upload_attendance.js
+++ b/hr/doctype/upload_attendance/upload_attendance.js
@@ -52,13 +52,13 @@
 				method: 'hr.doctype.upload_attendance.upload_attendance.upload'
 			},
 			sample_url: "e.g. http://example.com/somefile.csv",
-			callback: function(r) {
+			callback: function(fid, filename, r) {
 				var $log_wrapper = $(cur_frm.fields_dict.import_log.wrapper).empty();
-				
+
 				if(!r.messages) r.messages = [];
 				// replace links if error has occured
 				if(r.exc || r.error) {
-					r.messages = $.map(r.messages, function(v) {
+					r.messages = $.map(r.message.messages, function(v) {
 						var msg = v.replace("Inserted", "Valid")
 							.replace("Updated", "Valid").split("<");
 						if (msg.length > 1) {
@@ -73,7 +73,7 @@
 						.concat(r.messages)
 				} else {
 					r.messages = ["<h4 style='color:green'>Import Successful!</h4>"].
-						concat(r.messages)
+						concat(r.message.messages)
 				}
 				
 				$.each(r.messages, function(i, v) {
diff --git a/stock/doctype/stock_reconciliation/stock_reconciliation.js b/stock/doctype/stock_reconciliation/stock_reconciliation.js
index b003e05..2e0efd8 100644
--- a/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -108,8 +108,8 @@
 				method: 'stock.doctype.stock_reconciliation.stock_reconciliation.upload'
 			},
 			sample_url: "e.g. http://example.com/somefile.csv",
-			callback: function(r) {
-				me.frm.set_value("reconciliation_json", JSON.stringify(r));
+			callback: function(fid, filename, r) {
+				me.frm.set_value("reconciliation_json", JSON.stringify(r.message));
 				me.show_reconciliation_data();
 				me.frm.save();
 			}
diff --git a/utilities/doctype/rename_tool/rename_tool.js b/utilities/doctype/rename_tool/rename_tool.js
index 9c93622..66a4399 100644
--- a/utilities/doctype/rename_tool/rename_tool.js
+++ b/utilities/doctype/rename_tool/rename_tool.js
@@ -28,9 +28,9 @@
 			select_doctype: cur_frm.doc.select_doctype
 		},
 		sample_url: "e.g. http://example.com/somefile.csv",
-		callback: function(r) {
+		callback: function(fid, filename, r) {
 			$log.empty().html("<hr>");
-			$.each(r, function(i, v) {
+			$.each(r.message, function(i, v) {
 				$("<div>" + v + "</div>").appendTo($log);
 			});
 		}