diff --git a/erpnext/hr/doctype/appraisal/appraisal.js b/erpnext/hr/doctype/appraisal/appraisal.js
index a71486a..02f1557 100644
--- a/erpnext/hr/doctype/appraisal/appraisal.js
+++ b/erpnext/hr/doctype/appraisal/appraisal.js
@@ -9,12 +9,14 @@
 			return{	query: "erpnext.controllers.queries.employee_query" }
 		};
 	},
-	onload: function(frm) {
+
+  onload: function(frm) {
 		if(!frm.doc.status) {
 			frm.set_value('status', 'Draft');
 		}
 	},
-	kra_template: function(frm) {
+	
+  kra_template: function(frm) {
 		frm.doc.goals = [];
 		erpnext.utils.map_current_doc({
 			method: "erpnext.hr.doctype.appraisal.appraisal.fetch_appraisal_template",
@@ -22,7 +24,8 @@
 			frm: frm
 		});
 	},
-	calculate_total: function(frm) {
+	
+  calculate_total: function(frm) {
 		let goals = frm.doc.goals || [];
 		let total =0;
 		for(let i = 0; i<goals.length; i++){
@@ -35,20 +38,17 @@
 frappe.ui.form.on('Appraisal Goal', {
 	score: function(frm, cdt, cdn) {
 		var d = locals[cdt][cdn];
-		if (d.score){
+		if (d.score) {
 			if (flt(d.score) > 5) {
 				frappe.msgprint(__("Score must be less than or equal to 5"));
 				d.score = 0;
 				refresh_field('score', d.name, 'goals');
 			}
-			var total = flt(d.per_weightage*d.score)/100;
-			d.score_earned = total.toPrecision(2);
-			refresh_field('score_earned', d.name, 'goals');
-		}
-		else{
+			d.score_earned = flt(d.per_weightage*d.score, precision("score_earned", d))/100;
+		} else {
 			d.score_earned = 0;
-			refresh_field('score_earned', d.name, 'goals');
 		}
-		frm.trigger('calculate_total');
+		refresh_field('score_earned', d.name, 'goals');
+    frm.trigger('calculate_total');
 	}
 });
\ No newline at end of file
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 7de0e62..329695e 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -756,7 +756,11 @@
 
 			this.get_exchange_rate(transaction_date, this.frm.doc.currency, company_currency,
 				function(exchange_rate) {
-					me.frm.set_value("conversion_rate", exchange_rate);
+					if(exchange_rate != me.frm.doc.conversion_rate) {
+						me.set_margin_amount_based_on_currency(exchange_rate);
+						me.set_actual_charges_based_on_currency(exchange_rate);
+						me.frm.set_value("conversion_rate", exchange_rate);
+					}
 				});
 		} else {
 			this.conversion_rate();
@@ -777,7 +781,6 @@
 			if(this.frm.doc.ignore_pricing_rule) {
 				this.calculate_taxes_and_totals();
 			} else if (!this.in_apply_price_list){
-				this.set_actual_charges_based_on_currency();
 				this.apply_price_list();
 			}
 
@@ -804,12 +807,24 @@
 		}
 	},
 
-	set_actual_charges_based_on_currency: function() {
+	set_margin_amount_based_on_currency: function(exchange_rate) {
+		if (in_list(["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]), this.frm.doc.doctype) {
+			var me = this;
+			$.each(this.frm.doc.items || [], function(i, d) {
+				if(d.margin_type == "Amount") {
+					frappe.model.set_value(d.doctype, d.name, "margin_rate_or_amount",
+						flt(d.margin_rate_or_amount) / flt(exchange_rate));
+				}
+			});
+		}
+	},
+
+	set_actual_charges_based_on_currency: function(exchange_rate) {
 		var me = this;
 		$.each(this.frm.doc.taxes || [], function(i, d) {
 			if(d.charge_type == "Actual") {
 				frappe.model.set_value(d.doctype, d.name, "tax_amount",
-					flt(d.tax_amount) / flt(me.frm.doc.conversion_rate));
+					flt(d.tax_amount) / flt(exchange_rate));
 			}
 		});
 	},
