From 2136a7bded628d01b23b03e784e4ef55a779dcc0 Mon Sep 17 00:00:00 2001 From: Aditya Duggal Date: Wed, 24 Jan 2018 18:16:08 +0530 Subject: [PATCH 1/3] Resolves Issue #12630 -Added Filters to AR - Added Territory Filter to AR report - Added Sales partner filter - Added Sales person filter -Terrtory filter is needed since if you need to see AR in North Inda you get with filter not with column -Similarly there was a need for Sales Partner and sales person filter in the AR report which is being fulfilled now. --- .../accounts_receivable/accounts_receivable.js | 18 ++++++++++++++++++ .../accounts_receivable/accounts_receivable.py | 16 ++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.js b/erpnext/accounts/report/accounts_receivable/accounts_receivable.js index fd5241b1ff..ac641c29cc 100644 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.js +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.js @@ -28,6 +28,24 @@ frappe.query_reports["Accounts Receivable"] = { "fieldtype": "Link", "options": "Payment Terms Template" }, + { + "fieldname":"territory", + "label": __("Territory"), + "fieldtype": "Link", + "options": "Territory" + }, + { + "fieldname":"sales_partner", + "label": __("Sales Partner"), + "fieldtype": "Link", + "options": "Sales Partner" + }, + { + "fieldname":"sales_person", + "label": __("Sales Person"), + "fieldtype": "Link", + "options": "Sales Person" + }, { "fieldtype": "Break", }, diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py index 0732b7dc09..374f9da6a8 100644 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py @@ -282,11 +282,27 @@ class ReceivablePayableReport(object): conditions.append("""party in (select name from tabCustomer where exists(select name from `tabCustomer Group` where lft >= {0} and rgt <= {1} and name=tabCustomer.customer_group))""".format(lft, rgt)) + + if self.filters.get("territory"): + lft, rgt = frappe.db.get_value("Territory", + self.filters.get("territory"), ["lft", "rgt"]) + + conditions.append("""party in (select name from tabCustomer + where exists(select name from `tabTerritory` where lft >= {0} and rgt <= {1} + and name=tabCustomer.territory))""".format(lft, rgt)) if self.filters.get("payment_terms_template"): conditions.append("party in (select name from tabCustomer where payment_terms=%s)") values.append(self.filters.get("payment_terms_template")) + if self.filters.get("sales_partner"): + conditions.append("party in (select name from tabCustomer where default_sales_partner=%s)") + values.append(self.filters.get("sales_partner")) + + if self.filters.get("sales_person"): + conditions.append("party in (select parent from `tabSales Team` where sales_person=%s and \ + parenttype = 'Customer')") + values.append(self.filters.get("sales_person")) return " and ".join(conditions), values def get_gl_entries_for(self, party, party_type, against_voucher_type, against_voucher): From 62b31bf708b8648aad4d5555a834e9b36b082ce9 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 29 Jan 2018 12:34:19 +0530 Subject: [PATCH 2/3] Update accounts_receivable.py --- .../report/accounts_receivable/accounts_receivable.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py index 374f9da6a8..8a67bd2b29 100644 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py @@ -281,7 +281,7 @@ class ReceivablePayableReport(object): conditions.append("""party in (select name from tabCustomer where exists(select name from `tabCustomer Group` where lft >= {0} and rgt <= {1} - and name=tabCustomer.customer_group))""".format(lft, rgt)) + and name=tabCustomer.customer_group))""".format(lft, rgt)) if self.filters.get("territory"): lft, rgt = frappe.db.get_value("Territory", @@ -300,8 +300,8 @@ class ReceivablePayableReport(object): values.append(self.filters.get("sales_partner")) if self.filters.get("sales_person"): - conditions.append("party in (select parent from `tabSales Team` where sales_person=%s and \ - parenttype = 'Customer')") + conditions.append("""party in (select parent + from `tabSales Team` where sales_person=%s and parenttype = 'Customer')""") values.append(self.filters.get("sales_person")) return " and ".join(conditions), values From d36ac27f946b44a71b743c451c93d4abb8464887 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Mon, 29 Jan 2018 12:35:19 +0530 Subject: [PATCH 3/3] Update accounts_receivable.py --- .../accounts/report/accounts_receivable/accounts_receivable.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py index 8a67bd2b29..14fdbbd6ce 100644 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py @@ -281,7 +281,7 @@ class ReceivablePayableReport(object): conditions.append("""party in (select name from tabCustomer where exists(select name from `tabCustomer Group` where lft >= {0} and rgt <= {1} - and name=tabCustomer.customer_group))""".format(lft, rgt)) + and name=tabCustomer.customer_group))""".format(lft, rgt)) if self.filters.get("territory"): lft, rgt = frappe.db.get_value("Territory",