mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-03 05:28:27 +00:00
* fix: avoid double reduction of pe reference outstanding (#54193)
Co-authored-by: diptanilsaha <diptanil@frappe.io>
(cherry picked from commit d1a80d40c4)
# Conflicts:
# erpnext/accounts/utils.py
* chore: remove type hints for function parameters
---------
Co-authored-by: Ravibharathi <131471282+ravibharathi656@users.noreply.github.com>
Co-authored-by: diptanilsaha <diptanil@frappe.io>
This commit is contained in:
@@ -195,6 +195,30 @@ class TestPaymentEntry(ERPNextTestSuite):
|
|||||||
outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount"))
|
outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount"))
|
||||||
self.assertEqual(outstanding_amount, 100)
|
self.assertEqual(outstanding_amount, 100)
|
||||||
|
|
||||||
|
def test_reference_outstanding_amount_on_advance_pull(self):
|
||||||
|
from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
|
||||||
|
|
||||||
|
so = make_sales_order(qty=1, rate=1000)
|
||||||
|
pe = get_payment_entry("Sales Order", so.name, bank_account="_Test Cash - _TC")
|
||||||
|
pe.paid_amount = pe.received_amount = 500
|
||||||
|
pe.references[0].allocated_amount = 500
|
||||||
|
pe.insert()
|
||||||
|
pe.submit()
|
||||||
|
|
||||||
|
so.reload()
|
||||||
|
self.assertEqual(so.advance_paid, 500)
|
||||||
|
|
||||||
|
si = make_sales_invoice(so.name)
|
||||||
|
si.allocate_advances_automatically = 1
|
||||||
|
si.save()
|
||||||
|
self.assertEqual(si.get("advances")[0].allocated_amount, 500)
|
||||||
|
self.assertEqual(si.get("advances")[0].reference_name, pe.name)
|
||||||
|
si.submit()
|
||||||
|
|
||||||
|
pe.load_from_db()
|
||||||
|
self.assertEqual(pe.references[0].reference_name, si.name)
|
||||||
|
self.assertEqual(pe.references[0].outstanding_amount, si.outstanding_amount)
|
||||||
|
|
||||||
def test_payment_entry_against_pi(self):
|
def test_payment_entry_against_pi(self):
|
||||||
pi = make_purchase_invoice(
|
pi = make_purchase_invoice(
|
||||||
supplier="_Test Supplier USD",
|
supplier="_Test Supplier USD",
|
||||||
|
|||||||
@@ -546,7 +546,7 @@ def reconcile_against_document(
|
|||||||
skip_ref_details_update_for_pe=skip_ref_details_update_for_pe,
|
skip_ref_details_update_for_pe=skip_ref_details_update_for_pe,
|
||||||
dimensions_dict=dimensions_dict,
|
dimensions_dict=dimensions_dict,
|
||||||
)
|
)
|
||||||
if referenced_row.get("outstanding_amount"):
|
if referenced_row.get("outstanding_amount") and entry.get("outstanding_amount") is None:
|
||||||
referenced_row.outstanding_amount -= flt(entry.allocated_amount)
|
referenced_row.outstanding_amount -= flt(entry.allocated_amount)
|
||||||
|
|
||||||
reposting_rows.append(referenced_row)
|
reposting_rows.append(referenced_row)
|
||||||
|
|||||||
Reference in New Issue
Block a user