[fix] [minor] trigger grid_fieldname_remove function on removing grid row
diff --git a/public/js/transaction.js b/public/js/transaction.js
index 118594c..9bc9f33 100644
--- a/public/js/transaction.js
+++ b/public/js/transaction.js
@@ -6,9 +6,9 @@
 
 erpnext.TransactionController = erpnext.stock.StockController.extend({
 	onload: function() {
+		var me = this;
 		if(this.frm.doc.__islocal) {
-			var me = this,
-				today = get_today(),
+			var today = get_today(),
 				currency = wn.defaults.get_default("currency");
 			
 			$.each({
@@ -30,6 +30,10 @@
 			
 			me.frm.script_manager.trigger("company");
 		}
+		
+		if(this.other_fname) {
+			this[this.fname + "_remove"] = this[this.other_fname + "_remove"] = this.calculate_taxes_and_totals;
+		}
 	},
 	
 	onload_post_render: function() {
@@ -311,9 +315,14 @@
 				function(item_code, tax_data) {
 					if(!item_tax[item_code]) item_tax[item_code] = {};
 					if($.isArray(tax_data)) {
-						var tax_rate = tax_data[0] == null ? "" : (flt(tax_data[0], tax_rate_precision) + "%"),
-							tax_amount = format_currency(flt(tax_data[1], tax_amount_precision), company_currency,
-								tax_amount_precision);
+						var tax_rate = "";
+						if(tax_data[0] != null) {
+							tax_rate = (tax.charge_type === "Actual") ?
+								format_currency(flt(tax_data[0], tax_amount_precision), company_currency, tax_amount_precision) :
+								(flt(tax_data[0], tax_rate_precision) + "%");
+						}
+						var tax_amount = format_currency(flt(tax_data[1], tax_amount_precision), company_currency,
+							tax_amount_precision);
 						
 						item_tax[item_code][tax.name] = [tax_rate, tax_amount];
 					} else {