fix: use reference type name to update exc rate
(cherry picked from commit c15690e475)
This commit is contained in:
@@ -338,7 +338,7 @@ class PaymentEntry(AccountsController):
|
||||
self,
|
||||
force: bool = False,
|
||||
update_ref_details_only_for: list | None = None,
|
||||
ref_exchange_rate: float | None = None,
|
||||
reference_exchange_details: dict | None = None,
|
||||
) -> None:
|
||||
for d in self.get("references"):
|
||||
if d.allocated_amount:
|
||||
@@ -352,8 +352,12 @@ class PaymentEntry(AccountsController):
|
||||
)
|
||||
|
||||
# Only update exchange rate when the reference is Journal Entry
|
||||
if ref_exchange_rate and d.reference_doctype == "Journal Entry":
|
||||
ref_details.update({"exchange_rate": ref_exchange_rate})
|
||||
if (
|
||||
reference_exchange_details
|
||||
and d.reference_doctype == reference_exchange_details.reference_doctype
|
||||
and d.reference_name == reference_exchange_details.reference_name
|
||||
):
|
||||
ref_details.update({"exchange_rate": reference_exchange_details.exchange_rate})
|
||||
|
||||
for field, value in ref_details.items():
|
||||
if d.exchange_gain_loss:
|
||||
|
||||
@@ -682,7 +682,19 @@ def update_reference_in_payment_entry(
|
||||
payment_entry.setup_party_account_field()
|
||||
payment_entry.set_missing_values()
|
||||
if not skip_ref_details_update_for_pe:
|
||||
payment_entry.set_missing_ref_details(ref_exchange_rate=d.exchange_rate or None)
|
||||
reference_exchange_details = frappe._dict()
|
||||
if d.against_voucher_type == "Journal Entry" and d.exchange_rate:
|
||||
reference_exchange_details.update(
|
||||
{
|
||||
"reference_doctype": d.against_voucher_type,
|
||||
"reference_name": d.against_voucher,
|
||||
"exchange_rate": d.exchange_rate,
|
||||
}
|
||||
)
|
||||
payment_entry.set_missing_ref_details(
|
||||
update_ref_details_only_for=[(d.against_voucher_type, d.against_voucher)],
|
||||
reference_exchange_details=reference_exchange_details,
|
||||
)
|
||||
payment_entry.set_amounts()
|
||||
|
||||
payment_entry.make_exchange_gain_loss_journal(
|
||||
|
||||
Reference in New Issue
Block a user