From 361d7f1ba539f670b87dfb00493d6a165b4d5c7c Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 16 Apr 2024 08:53:29 +0530 Subject: [PATCH] fix: incorrect exc gain/loss for PE against JE for payable accounts (cherry picked from commit 81b574053ffc15c4337fbe497c53d8696d26f878) --- erpnext/controllers/accounts_controller.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 884312f75c6..f161583458b 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1437,7 +1437,8 @@ class AccountsController(TransactionBase): dr_or_cr = "debit" if d.exchange_gain_loss > 0 else "credit" - if d.reference_doctype == "Purchase Invoice": + # Inverse debit/credit for payable accounts + if self.is_payable_account(d.reference_doctype, party_account): dr_or_cr = "debit" if dr_or_cr == "credit" else "credit" reverse_dr_or_cr = "debit" if dr_or_cr == "credit" else "credit" @@ -1471,6 +1472,14 @@ class AccountsController(TransactionBase): ) ) + def is_payable_account(self, reference_doctype, account): + if reference_doctype == "Purchase Invoice" or ( + reference_doctype == "Journal Entry" + and frappe.get_cached_value("Account", account, "account_type") == "Payable" + ): + return True + return False + def update_against_document_in_jv(self): """ Links invoice and advance voucher: