feat: two new filters for gross profit
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.js b/erpnext/accounts/report/gross_profit/gross_profit.js
index 21205c3..ffbe9ad 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.js
+++ b/erpnext/accounts/report/gross_profit/gross_profit.js
@@ -38,6 +38,18 @@
"options": "Invoice\nItem Code\nItem Group\nBrand\nWarehouse\nCustomer\nCustomer Group\nTerritory\nSales Person\nProject\nMonthly\nPayment Term",
"default": "Invoice"
},
+ {
+ "fieldname":"item_group",
+ "label": __("Item Group"),
+ "fieldtype": "Link",
+ "options": "Item Group"
+ },
+ {
+ "fieldname":"sales_person",
+ "label": __("Sales Person"),
+ "fieldtype": "Link",
+ "options": "Sales Person"
+ },
],
"tree": true,
"name_field": "parent",
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 526ea9d..264fcd3 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -8,6 +8,7 @@
from erpnext.controllers.queries import get_match_cond
from erpnext.stock.utils import get_incoming_rate
+from erpnext.stock.report.stock_ledger.stock_ledger import get_item_group_condition
def execute(filters=None):
@@ -676,6 +677,17 @@
if self.filters.to_date:
conditions += " and posting_date <= %(to_date)s"
+ if self.filters.item_group:
+ conditions += " and {0}".format(get_item_group_condition(self.filters.item_group))
+
+ if self.filters.sales_person:
+ conditions += """
+ and exists(select 1
+ from `tabSales Team` st
+ where st.parent = `tabSales Invoice`.name
+ and st.sales_person = %(sales_person)s)
+ """
+
if self.filters.group_by == "Sales Person":
sales_person_cols = ", sales.sales_person, sales.allocated_amount, sales.incentives"
sales_team_table = "left join `tabSales Team` sales on sales.parent = `tabSales Invoice`.name"
@@ -723,6 +735,7 @@
from
`tabSales Invoice` inner join `tabSales Invoice Item`
on `tabSales Invoice Item`.parent = `tabSales Invoice`.name
+ join `tabItem` item on item.name = `tabSales Invoice Item`.item_code
{sales_team_table}
{payment_term_table}
where