fix: update payment entry references (#33274)
* fix: set_amounts after deductions and losses are set
* test: difference_amount changes after update_references_in_payment_entry
* chore: linter
* fix: use kwargs instad of destructing a dict
[skip ci]
* fix(test): test payment entry difference_amount after payment reconciliation.
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 1e573b0..445dcc5 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -611,11 +611,6 @@
new_row.docstatus = 1
new_row.update(reference_details)
- payment_entry.flags.ignore_validate_update_after_submit = True
- payment_entry.setup_party_account_field()
- payment_entry.set_missing_values()
- payment_entry.set_amounts()
-
if d.difference_amount and d.difference_account:
account_details = {
"account": d.difference_account,
@@ -627,6 +622,11 @@
payment_entry.set_gain_or_loss(account_details=account_details)
+ payment_entry.flags.ignore_validate_update_after_submit = True
+ payment_entry.setup_party_account_field()
+ payment_entry.set_missing_values()
+ payment_entry.set_amounts()
+
if not do_not_save:
payment_entry.save(ignore_permissions=True)