Outstanding Amount not getting updated in Payment Entry #12713 (#12975)
* allow to `set_missing_ref_details` by force
* update payment entry references during submit and cancel
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index c32acc1..e19295c 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -58,16 +58,21 @@
if self.difference_amount:
frappe.throw(_("Difference Amount must be zero"))
self.make_gl_entries()
+ self.update_outstanding_amounts()
self.update_advance_paid()
self.update_expense_claim()
def on_cancel(self):
self.setup_party_account_field()
self.make_gl_entries(cancel=1)
+ self.update_outstanding_amounts()
self.update_advance_paid()
self.update_expense_claim()
self.delink_advance_entry_references()
+ def update_outstanding_amounts(self):
+ self.set_missing_ref_details(force=True)
+
def validate_duplicate_entry(self):
reference_names = []
for d in self.get("references"):
@@ -129,14 +134,14 @@
self.set_missing_ref_details()
- def set_missing_ref_details(self):
+ def set_missing_ref_details(self, force=False):
for d in self.get("references"):
if d.allocated_amount:
ref_details = get_reference_details(d.reference_doctype,
d.reference_name, self.party_account_currency)
for field, value in ref_details.items():
- if not d.get(field):
+ if not d.get(field) or force:
d.set(field, value)
def validate_payment_type(self):