Trigger receive/paid amount on change of paid from/to
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js
index 2fa627f..9b1ed38 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.js
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js
@@ -278,7 +278,11 @@
 
 		frm.events.set_account_currency_and_balance(frm, frm.doc.paid_from,
 			"paid_from_account_currency", "paid_from_account_balance", function(frm) {
-				if(frm.doc.payment_type == "Receive") frm.events.get_outstanding_documents(frm);
+				if (frm.doc.payment_type == "Receive") {
+					frm.events.get_outstanding_documents(frm);
+				} else if (frm.doc.payment_type == "Pay") {
+					frm.events.paid_amount(frm);
+				}
 			}
 		);
 	},
@@ -288,7 +292,11 @@
 
 		frm.events.set_account_currency_and_balance(frm, frm.doc.paid_to,
 			"paid_to_account_currency", "paid_to_account_balance", function(frm) {
-				if(frm.doc.payment_type == "Pay") frm.events.get_outstanding_documents(frm);
+				if(frm.doc.payment_type == "Pay") {
+					frm.events.get_outstanding_documents(frm);
+				} else if (frm.doc.payment_type == "Receive") {
+					frm.events.received_amount(frm);
+				}
 			}
 		);
 	},
@@ -407,16 +415,7 @@
 	paid_amount: function(frm) {
 		frm.set_value("base_paid_amount", flt(frm.doc.paid_amount) * flt(frm.doc.source_exchange_rate));
 
-		if(!frm.set_paid_amount_based_on_received_amount &&
-				(frm.doc.paid_from_account_currency == frm.doc.paid_to_account_currency)) {
-			frm.set_value("received_amount", frm.doc.paid_amount);
-			frm.set_value("target_exchange_rate", frm.doc.source_exchange_rate);
-			frm.set_value("base_received_amount", frm.doc.base_paid_amount);
-		}
-		if(frm.doc.payment_type == "Receive")
-			frm.events.allocate_party_amount_against_ref_docs(frm, frm.doc.paid_amount);
-		else
-			frm.events.set_difference_amount(frm);
+		frm.trigger("reset_received_amount");
 
 		frm.set_paid_amount_based_on_received_amount = false;
 	},
@@ -438,6 +437,26 @@
 		else
 			frm.events.set_difference_amount(frm);
 	},
+	
+	reset_received_amount: function(frm) {
+		if(!frm.set_paid_amount_based_on_received_amount &&
+				(frm.doc.paid_from_account_currency == frm.doc.paid_to_account_currency)) {
+			
+			// var total_deductions = frappe.utils.sum($.map(frm.doc.deductions || [],
+			// 	function(d) { return d.amount}));
+			//
+			// var received_amount = frm.doc.paid_amount +
+			// 	flt(total_deductions) / flt(frm.doc.source_exchange_rate);
+			//
+			frm.set_value("received_amount", frm.doc.paid_amount);
+			frm.set_value("target_exchange_rate", frm.doc.source_exchange_rate);
+			frm.set_value("base_received_amount", frm.doc.base_paid_amount);
+		}
+		if(frm.doc.payment_type == "Receive")
+			frm.events.allocate_party_amount_against_ref_docs(frm, frm.doc.paid_amount);
+		else
+			frm.events.set_difference_amount(frm);
+	},
 
 	get_outstanding_documents: function(frm) {
 		frm.clear_table("references");
diff --git a/erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json b/erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json
index 082ab04..6441748 100644
--- a/erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json
+++ b/erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json
@@ -116,7 +116,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "fieldname": "total_amount", 
-   "fieldtype": "Currency", 
+   "fieldtype": "Float", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
@@ -141,7 +141,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "fieldname": "outstanding_amount", 
-   "fieldtype": "Currency", 
+   "fieldtype": "Float", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
@@ -166,7 +166,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "fieldname": "allocated_amount", 
-   "fieldtype": "Currency", 
+   "fieldtype": "Float", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
@@ -222,7 +222,7 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2016-07-11 07:55:04.131655", 
+ "modified": "2016-07-14 14:48:13.356944", 
  "modified_by": "Administrator", 
  "module": "Accounts", 
  "name": "Payment Entry Reference",