From 11440cca4c066969a2f04d82d4c93245eab5b62b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 29 May 2023 09:52:48 +0530 Subject: [PATCH] fix: Show future payments in accounts receivable summary (#35416) fix: Show future payments in accounts receivable summary (#35416) (cherry picked from commit 3504bf7f6250a23f4033df7e68f9c820286f7a6f) Co-authored-by: Nabin Hait --- erpnext/accounts/party.py | 8 +++++--- .../accounts_receivable_summary.py | 10 +++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py index 30d949b73b6..946170340ee 100644 --- a/erpnext/accounts/party.py +++ b/erpnext/accounts/party.py @@ -880,18 +880,21 @@ def get_party_shipping_address(doctype, name): 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 @@ def get_partywise_advanced_payment_amount( ), 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 29217b04be2..9c01b1a4980 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 @@ class AccountsReceivableSummary(ReceivablePayableReport): def get_data(self, args): self.data = [] - self.receivables = ReceivablePayableReport(self.filters).run(args)[1] self.get_party_total(args) @@ -42,6 +41,7 @@ class AccountsReceivableSummary(ReceivablePayableReport): 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 @@ class AccountsReceivableSummary(ReceivablePayableReport): 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 @@ class AccountsReceivableSummary(ReceivablePayableReport): "range4": 0.0, "range5": 0.0, "total_due": 0.0, + "future_amount": 0.0, "sales_person": [], } ), @@ -151,6 +155,10 @@ class AccountsReceivableSummary(ReceivablePayableReport): 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"