fix(Asset Repair): Compute total_value instantly
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.js b/erpnext/assets/doctype/asset_repair/asset_repair.js
index ced3dad..91bed4f 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.js
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.js
@@ -35,6 +35,13 @@
 	}
 });
 
+frappe.ui.form.on('Asset Repair Consumed Item', {
+	consumed_quantity: function(frm, cdt, cdn) {
+		var row = locals[cdt][cdn];
+		frappe.model.set_value(cdt, cdn, 'total_value', row.consumed_quantity * row.valuation_rate);
+	},
+});
+
 cur_frm.fields_dict.cost_center.get_query = function(doc) {
 	return {
 		filters: {
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py
index 5fccfb7..79b9a6a 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.py
@@ -14,8 +14,6 @@
 	def validate(self):
 		self.asset_doc = frappe.get_doc('Asset', self.asset)
 		self.update_status()
-		if self.get('stock_items'):
-			self.set_total_value()		# change later
 		self.calculate_total_repair_cost()
 		
 	def update_status(self):
@@ -24,10 +22,6 @@
 		else:
 			self.asset_doc.set_status()
 
-	def set_total_value(self):
-		for item in self.get('stock_items'):
-			item.total_value = flt(item.valuation_rate) * flt(item.consumed_quantity)
-
 	def calculate_total_repair_cost(self):
 		self.total_repair_cost = self.repair_cost
 		if self.get('stock_items'):