From 38b501e0041328cb77f59b971a4faf56955b27e3 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Mon, 24 Jul 2023 12:13:47 +0530 Subject: [PATCH] fix: make party type filter mandatory --- .../tds_payable_monthly.js | 6 +++- .../tds_payable_monthly.py | 33 ++++++++++--------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js index d7f396d298..11b80aab07 100644 --- a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js +++ b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js @@ -15,7 +15,11 @@ frappe.query_reports["TDS Payable Monthly"] = { "fieldname":"party_type", "label": __("Party Type"), "fieldtype": "Select", - "options": ["Supplier", "Customer"] + "options": ["Supplier", "Customer"], + "reqd": 1, + "on_change": function(){ + frappe.query_report.set_filter_value("party", ""); + } }, { "fieldname":"party", diff --git a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py index b1a112ad55..ce1297b49d 100644 --- a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py +++ b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py @@ -33,7 +33,7 @@ def validate_filters(filters): def get_result( filters, tds_docs, tds_accounts, tax_category_map, journal_entry_party_map, invoice_net_total_map ): - party_map = get_party_pan_map() + party_map = get_party_pan_map(filters.get("party_type")) tax_rate_map = get_tax_rate_map(filters) gle_map = get_gle_map(tds_docs) @@ -103,23 +103,23 @@ def get_result( return out -def get_party_pan_map(): +def get_party_pan_map(party_type): party_map = frappe._dict() - fields = ["name", "supplier_type", "supplier_name", "tax_withholding_category"] - if frappe.db.has_column("Supplier", "pan"): - fields.append("pan") - suppliers = frappe.db.get_all("Supplier", fields=fields) - fields = ["name", "customer_type", "customer_name", "tax_withholding_category"] - if frappe.db.has_column("Customer", "pan"): + fields = ["name", "tax_withholding_category"] + if party_type == "Supplier": + fields += ["supplier_type", "supplier_name"] + else: + fields += ["customer_type", "customer_name"] + + if frappe.db.has_column(party_type, "pan"): fields.append("pan") - customers = frappe.db.get_all("Customer", fields=fields) - for d in suppliers: - d.party_type = "Supplier" - party_map[d.name] = d - for d in customers: - d.party_type = "Customer" - party_map[d.name] = d + + party_details = frappe.db.get_all(party_type, fields=fields) + + for party in party_details: + party.party_type = party_type + party_map[party.name] = party return party_map @@ -233,6 +233,9 @@ def get_tds_docs(filters): "against": ("not in", bank_accounts), } + party = frappe.get_all(filters.get("party_type"), pluck="name") + query_filters.update({"against": ("in", party)}) + if filters.get("party"): del query_filters["account"] del query_filters["against"]