[fixes] multi-currency via payment request
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index e910f54..f11a16c 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -551,7 +551,7 @@
 		}
 
 @frappe.whitelist()
-def get_payment_entry_against_order(dt, dn, base_rounded_total=None, rounded_total=None, journal_entry=False, bank_account=None):
+def get_payment_entry_against_order(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None):
 	ref_doc = frappe.get_doc(dt, dn)
 
 	if flt(ref_doc.per_billed, 2) > 0:
@@ -569,7 +569,7 @@
 	party_account = get_party_account(party_type, ref_doc.get(party_type.lower()), ref_doc.company)
 	party_account_currency = get_account_currency(party_account)
 
-	if not base_rounded_total or not rounded_total:
+	if not amount:
 		if party_account_currency == ref_doc.company_currency:
 			amount = flt(ref_doc.base_grand_total) - flt(ref_doc.advance_paid)
 		else:
@@ -581,8 +581,8 @@
 		"party_account_currency": party_account_currency,
 		"amount_field_party": amount_field_party,
 		"amount_field_bank": amount_field_bank,
-		"amount": base_rounded_total or amount,
-		"rounded_total": rounded_total,
+		"amount": amount,
+		"debit_in_account_currency": debit_in_account_currency,
 		"remarks": 'Advance Payment received against {0} {1}'.format(dt, dn),
 		"is_advance": "Yes",
 		"bank_account": bank_account,
@@ -590,7 +590,7 @@
 	})
 
 @frappe.whitelist()
-def get_payment_entry_against_invoice(dt, dn, base_rounded_total=None, rounded_total=None, journal_entry=False, bank_account=None):
+def get_payment_entry_against_invoice(dt, dn, amount=None,  debit_in_account_currency=None, journal_entry=False, bank_account=None):
 	ref_doc = frappe.get_doc(dt, dn)
 	if dt == "Sales Invoice":
 		party_type = "Customer"
@@ -614,8 +614,8 @@
 		"party_account_currency": ref_doc.party_account_currency,
 		"amount_field_party": amount_field_party,
 		"amount_field_bank": amount_field_bank,
-		"amount": base_rounded_total if base_rounded_total else abs(ref_doc.outstanding_amount),
-		"rounded_total": rounded_total,
+		"amount": amount if amount else abs(ref_doc.outstanding_amount),
+		"debit_in_account_currency": debit_in_account_currency,
 		"remarks": 'Payment received against {0} {1}. {2}'.format(dt, dn, ref_doc.remarks),
 		"is_advance": "No",
 		"bank_account": bank_account,
@@ -626,6 +626,8 @@
 	cost_center = frappe.db.get_value("Company", ref_doc.company, "cost_center")
 	exchange_rate = 1
 	if args.get("party_account"):
+		print "here..."
+		print args.get("party_account"), args.get("party_account_currency")
 		exchange_rate = get_exchange_rate(args.get("party_account"), args.get("party_account_currency"),
 			ref_doc.company, ref_doc.doctype, ref_doc.name)
 
@@ -664,7 +666,8 @@
 
 	bank_row.cost_center = cost_center
 
-	amount = args.get("rounded_total") or args.get("amount")
+	amount = args.get("debit_in_account_currency") or args.get("amount")
+	
 	if bank_row.account_currency == args.get("party_account_currency"):
 		bank_row.set(args.get("amount_field_bank"), amount)
 	else:
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.json b/erpnext/accounts/doctype/payment_request/payment_request.json
index 55c6524..39330a5 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.json
+++ b/erpnext/accounts/doctype/payment_request/payment_request.json
@@ -62,7 +62,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "fieldname": "rounded_total", 
-   "fieldtype": "Data", 
+   "fieldtype": "Float", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
    "in_filter": 0, 
@@ -71,7 +71,7 @@
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
-   "precision": "", 
+   "precision": "2", 
    "print_hide": 0, 
    "print_hide_if_no_value": 0, 
    "read_only": 0, 
@@ -603,8 +603,8 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2016-02-09 21:15:55.153924", 
- "modified_by": "Administrator", 
+ "modified": "2016-02-16 12:29:45.290729", 
+ "modified_by": "saurabh@erpnext.com", 
  "module": "Accounts", 
  "name": "Payment Request", 
  "name_case": "", 
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 2faa586..0115072 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -8,7 +8,7 @@
 from frappe.model.document import Document
 from frappe.utils import flt, nowdate, get_url, cstr
 from erpnext.accounts.party import get_party_account
-from erpnext.accounts.utils import get_balance_on
+from erpnext.accounts.utils import get_account_currency
 from erpnext.accounts.doctype.journal_entry.journal_entry import (get_payment_entry_against_invoice, 
 get_payment_entry_against_order)
 
@@ -82,16 +82,31 @@
 	def create_journal_entry(self):
 		"""create entry"""
 		frappe.flags.ignore_account_permission = True
+		
+		ref_doc = frappe.get_doc(self.reference_doctype, self.reference_name)
+		
+		party_account = get_party_account("Customer", ref_doc.get("customer"), ref_doc.company)
+		party_account_currency = get_account_currency(party_account)
+		
+		debit_in_account_currency = 0.0
+		
+		if party_account_currency == ref_doc.company_currency:
+			amount = self.base_rounded_total
+			if self.currency != ref_doc.company_currency:
+				debit_in_account_currency = self.rounded_total
+			
+		else:
+			amount = self.rounded_total
 				
 		if self.reference_doctype == "Sales Order":
-			jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,\
-			 base_rounded_total=self.base_rounded_total, rounded_total= self.rounded_total,\
-			 journal_entry=True, bank_account=self.payment_account)
+			jv = get_payment_entry_against_order(self.reference_doctype, self.reference_name,
+			 amount=amount, debit_in_account_currency=debit_in_account_currency , journal_entry=True, 
+			 bank_account=self.payment_account)
 			
 		if self.reference_doctype == "Sales Invoice":
-			jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,\
-			 base_rounded_total=self.base_rounded_total, rounded_total= self.rounded_total, \
-			 journal_entry=True, bank_account=self.payment_account)
+			jv = get_payment_entry_against_invoice(self.reference_doctype, self.reference_name,
+			 amount=amount, debit_in_account_currency=debit_in_account_currency, journal_entry=True,
+			 bank_account=self.payment_account)
 			
 		jv.update({
 			"voucher_type": "Journal Entry",