fix: Show future payments in accounts receivable summary (#35416)
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index 7747042..f86dd8f 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -880,18 +880,21 @@
def get_partywise_advanced_payment_amount(
- party_type, posting_date=None, future_payment=0, company=None
+ party_type, posting_date=None, future_payment=0, company=None, party=None
):
cond = "1=1"
if posting_date:
if future_payment:
- cond = "posting_date <= '{0}' OR DATE(creation) <= '{0}' " "".format(posting_date)
+ cond = "(posting_date <= '{0}' OR DATE(creation) <= '{0}')" "".format(posting_date)
else:
cond = "posting_date <= '{0}'".format(posting_date)
if company:
cond += "and company = {0}".format(frappe.db.escape(company))
+ if party:
+ cond += "and party = {0}".format(frappe.db.escape(party))
+
data = frappe.db.sql(
""" SELECT party, sum({0}) as amount
FROM `tabGL Entry`
@@ -903,7 +906,6 @@
),
party_type,
)
-
if data:
return frappe._dict(data)
diff --git a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
index 29217b0..9c01b1a 100644
--- a/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
+++ b/erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
@@ -31,7 +31,6 @@
def get_data(self, args):
self.data = []
-
self.receivables = ReceivablePayableReport(self.filters).run(args)[1]
self.get_party_total(args)
@@ -42,6 +41,7 @@
self.filters.report_date,
self.filters.show_future_payments,
self.filters.company,
+ party=self.filters.get(scrub(self.party_type)),
)
or {}
)
@@ -74,6 +74,9 @@
row.gl_balance = gl_balance_map.get(party)
row.diff = flt(row.outstanding) - flt(row.gl_balance)
+ if self.filters.show_future_payments:
+ row.remaining_balance = flt(row.outstanding) - flt(row.future_amount)
+
self.data.append(row)
def get_party_total(self, args):
@@ -106,6 +109,7 @@
"range4": 0.0,
"range5": 0.0,
"total_due": 0.0,
+ "future_amount": 0.0,
"sales_person": [],
}
),
@@ -151,6 +155,10 @@
self.setup_ageing_columns()
+ if self.filters.show_future_payments:
+ self.add_column(label=_("Future Payment Amount"), fieldname="future_amount")
+ self.add_column(label=_("Remaining Balance"), fieldname="remaining_balance")
+
if self.party_type == "Customer":
self.add_column(
label=_("Territory"), fieldname="territory", fieldtype="Link", options="Territory"