From 988c5b95e6bd8595a5d8de07de01841065d2673b Mon Sep 17 00:00:00 2001 From: Maharshi Patel <39730881+maharshivpatel@users.noreply.github.com> Date: Tue, 27 Sep 2022 22:21:14 +0530 Subject: [PATCH] fix: GST Itemised Sales Register GSTIN filter (#32367) fix: GST Itemised Sales Register GSTIN filte --- .../item_wise_sales_register.py | 18 +++-- .../gst_itemised_sales_register.js | 6 -- .../gst_itemised_sales_register.py | 65 ++++++++++++------- 3 files changed, 54 insertions(+), 35 deletions(-) diff --git a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py index c987231fe17..dd9c0736128 100644 --- a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py +++ b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py @@ -19,14 +19,19 @@ def execute(filters=None): return _execute(filters) -def _execute(filters=None, additional_table_columns=None, additional_query_columns=None): +def _execute( + filters=None, + additional_table_columns=None, + additional_query_columns=None, + additional_conditions=None, +): if not filters: filters = {} columns = get_columns(additional_table_columns, filters) company_currency = frappe.get_cached_value("Company", filters.get("company"), "default_currency") - item_list = get_items(filters, additional_query_columns) + item_list = get_items(filters, additional_query_columns, additional_conditions) if item_list: itemised_tax, tax_columns = get_tax_accounts(item_list, columns, company_currency) @@ -328,7 +333,7 @@ def get_columns(additional_table_columns, filters): return columns -def get_conditions(filters): +def get_conditions(filters, additional_conditions=None): conditions = "" for opts in ( @@ -341,6 +346,9 @@ def get_conditions(filters): if filters.get(opts[0]): conditions += opts[1] + if additional_conditions: + conditions += additional_conditions + if filters.get("mode_of_payment"): conditions += """ and exists(select name from `tabSales Invoice Payment` where parent=`tabSales Invoice`.name @@ -376,8 +384,8 @@ def get_group_by_conditions(filters, doctype): return "ORDER BY `tab{0}`.{1}".format(doctype, frappe.scrub(filters.get("group_by"))) -def get_items(filters, additional_query_columns): - conditions = get_conditions(filters) +def get_items(filters, additional_query_columns, additional_conditions=None): + conditions = get_conditions(filters, additional_conditions) if additional_query_columns: additional_query_columns = ", " + ", ".join(additional_query_columns) diff --git a/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.js b/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.js index 3a0f0c966d6..d5e832a83f4 100644 --- a/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.js +++ b/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.js @@ -15,12 +15,6 @@ filters = filters.concat({ "placeholder":"Company GSTIN", "options": [""], "width": "80" -}, { - "fieldname":"invoice_type", - "label": __("Invoice Type"), - "fieldtype": "Select", - "placeholder":"Invoice Type", - "options": ["", "Regular", "SEZ", "Export", "Deemed Export"] }); // Handle company on change diff --git a/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py b/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py index bb1843f1bd9..aef69b17868 100644 --- a/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py +++ b/erpnext/regional/report/gst_itemised_sales_register/gst_itemised_sales_register.py @@ -5,31 +5,48 @@ from erpnext.accounts.report.item_wise_sales_register.item_wise_sales_register import _execute +def get_conditions(filters, additional_query_columns): + conditions = "" + + for opts in additional_query_columns: + if filters.get(opts): + conditions += f" and {opts}=%({opts})s" + + return conditions + + def execute(filters=None): + additional_table_columns = [ + dict(fieldtype="Data", label="Customer GSTIN", fieldname="customer_gstin", width=120), + dict( + fieldtype="Data", label="Billing Address GSTIN", fieldname="billing_address_gstin", width=140 + ), + dict(fieldtype="Data", label="Company GSTIN", fieldname="company_gstin", width=120), + dict(fieldtype="Data", label="Place of Supply", fieldname="place_of_supply", width=120), + dict(fieldtype="Data", label="Reverse Charge", fieldname="reverse_charge", width=120), + dict(fieldtype="Data", label="GST Category", fieldname="gst_category", width=120), + dict(fieldtype="Data", label="Export Type", fieldname="export_type", width=120), + dict(fieldtype="Data", label="E-Commerce GSTIN", fieldname="ecommerce_gstin", width=130), + dict(fieldtype="Data", label="HSN Code", fieldname="gst_hsn_code", width=120), + ] + + additional_query_columns = [ + "customer_gstin", + "billing_address_gstin", + "company_gstin", + "place_of_supply", + "reverse_charge", + "gst_category", + "export_type", + "ecommerce_gstin", + "gst_hsn_code", + ] + + additional_conditions = get_conditions(filters, additional_query_columns) + return _execute( filters, - additional_table_columns=[ - dict(fieldtype="Data", label="Customer GSTIN", fieldname="customer_gstin", width=120), - dict( - fieldtype="Data", label="Billing Address GSTIN", fieldname="billing_address_gstin", width=140 - ), - dict(fieldtype="Data", label="Company GSTIN", fieldname="company_gstin", width=120), - dict(fieldtype="Data", label="Place of Supply", fieldname="place_of_supply", width=120), - dict(fieldtype="Data", label="Reverse Charge", fieldname="reverse_charge", width=120), - dict(fieldtype="Data", label="GST Category", fieldname="gst_category", width=120), - dict(fieldtype="Data", label="Export Type", fieldname="export_type", width=120), - dict(fieldtype="Data", label="E-Commerce GSTIN", fieldname="ecommerce_gstin", width=130), - dict(fieldtype="Data", label="HSN Code", fieldname="gst_hsn_code", width=120), - ], - additional_query_columns=[ - "customer_gstin", - "billing_address_gstin", - "company_gstin", - "place_of_supply", - "reverse_charge", - "gst_category", - "export_type", - "ecommerce_gstin", - "gst_hsn_code", - ], + additional_table_columns=additional_table_columns, + additional_query_columns=additional_query_columns, + additional_conditions=additional_conditions, )