Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/page/voucher_import_tool/voucher_import_tool.py b/accounts/page/voucher_import_tool/voucher_import_tool.py
index 529f6fc..41d0a9f 100644
--- a/accounts/page/voucher_import_tool/voucher_import_tool.py
+++ b/accounts/page/voucher_import_tool/voucher_import_tool.py
@@ -206,7 +206,7 @@
 				if accounts:
 					total_debit = total_credit = 0
 					for acc_idx in xrange(len(accounts)):
-						col_idx = len(columns) - 1 + acc_idx
+						col_idx = len(columns) + acc_idx
 						if flt(r[col_idx]) != 0:
 							if not acc_dict.get(accounts[acc_idx]):
 								acc_dict[accounts[acc_idx]] = 0
@@ -215,7 +215,7 @@
 							total_debit += flt(r[col_idx])
 						else:
 							total_credit += abs(flt(r[col_idx]))
-					
+							
 					d['total_debit'] = total_debit
 					d['total_credit'] = total_credit
 				
@@ -227,5 +227,9 @@
 				columns = [c.replace(" ", "_").lower() for c in rows[i+1] 
 					if not c.endswith(" - " + company_abbr)]
 				accounts = [c for c in rows[i+1] if c.endswith(" - " + company_abbr)]
-	
+				
+				if accounts and (len(columns) != rows[i+1].index(accounts[0])):
+					raise Exception, """A non-account column cannot be after an account \
+						column. Please rectify it in the file and try again."""
+				
 	return data, start_row_idx
\ No newline at end of file
diff --git a/hr/doctype/appraisal/appraisal.js b/hr/doctype/appraisal/appraisal.js
index 11fa328..f098b80 100644
--- a/hr/doctype/appraisal/appraisal.js
+++ b/hr/doctype/appraisal/appraisal.js
@@ -20,8 +20,9 @@
 cur_frm.cscript.onload = function(doc,cdt,cdn){
 	if(!doc.status) 
 		set_multiple(cdt,cdn,{status:'Draft'});
-	if(doc.amended_from && doc.__islocal) 
-		cur_frm.cscript.refresh_appraisal_details(doc, cdt, cdn);
+	if(doc.amended_from && doc.__islocal) {
+		doc.status = "Draft";
+	}
 }
 
 cur_frm.cscript.onload_post_render = function(doc,cdt,cdn){
@@ -42,17 +43,6 @@
 		});
 }
 
-
-cur_frm.cscript.refresh_appraisal_details = function(doc, cdt, cdn){
-	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
-	for(var i = 0; i<val.length; i++){
-		set_multiple('Appraisal Goal', val[i].name, {'target_achieved':'', 'score':'', 'scored_earned':''}, 'appraisal_details');
-	}
-	doc.total_score = '';
-	refresh_field('appraisal_details');
-	refresh_field('total_score');
-}
-
 cur_frm.cscript.calculate_total_score = function(doc,cdt,cdn){
 	//get_server_fields('calculate_total','','',doc,cdt,cdn,1);
 	var val = getchildren('Appraisal Goal', doc.name, 'appraisal_details', doc.doctype);
@@ -77,7 +67,7 @@
 		refresh_field('score_earned', d.name, 'appraisal_details');
 	}
 	else{
-		d.score_earned = '';
+		d.score_earned = 0;
 		refresh_field('score_earned', d.name, 'appraisal_details');
 	}
 	cur_frm.cscript.calculate_total(doc,cdt,cdn);
diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js
index 65112b5..4807dc1 100644
--- a/selling/doctype/sales_common/sales_common.js
+++ b/selling/doctype/sales_common/sales_common.js
@@ -29,6 +29,8 @@
 		if(callback) {
 			callback(doc, cdt, cdn);
 		}
+	} else if(doc.charge) {
+		cur_frm.cscript.get_charges(doc, cdt, cdn, callback);
 	} else {
 		$c_obj(make_doclist(doc.doctype, doc.name),'load_default_taxes','',function(r,rt){
 			refresh_field('other_charges');
@@ -374,12 +376,14 @@
 }
 
 // ********************* Get Charges ****************************
-cur_frm.cscript.get_charges = function(doc, cdt, cdn) {
+cur_frm.cscript.get_charges = function(doc, cdt, cdn, callback) {
 	$c_obj(make_doclist(doc.doctype,doc.name),
 		'get_other_charges',
 		'', 
-		function(r, rt) { cur_frm.cscript.calculate_charges(doc, cdt, cdn);}
-		,null,null,cur_frm.fields_dict.get_charges.input);
+		function(r, rt) {
+			cur_frm.cscript.calculate_charges(doc, cdt, cdn);
+			if(callback) callback(doc, cdt, cdn);
+		}, null,null,cur_frm.fields_dict.get_charges.input);
 }