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"