From 548dbb33eb0ce911aef70efdf686338185575620 Mon Sep 17 00:00:00 2001 From: ljain112 Date: Tue, 19 Nov 2024 14:32:43 +0530 Subject: [PATCH] fix: validate sales team to ensure all sales person are enabled --- erpnext/controllers/selling_controller.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 146e451934d..1a65b7a4e3f 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -167,6 +167,9 @@ class SellingController(StockController): total = 0.0 sales_team = self.get("sales_team") + + self.validate_sales_team(sales_team) + for sales_person in sales_team: self.round_floats_in(sales_person) @@ -186,6 +189,20 @@ class SellingController(StockController): if sales_team and total != 100.0: throw(_("Total allocated percentage for sales team should be 100")) + def validate_sales_team(self, sales_team): + sales_persons = [d.sales_person for d in sales_team] + + if not sales_persons: + return + + sales_person_status = frappe.db.get_all( + "Sales Person", filters={"name": ["in", sales_persons]}, fields=["name", "enabled"] + ) + + for row in sales_person_status: + if not row.enabled: + frappe.throw(_("Sales Person {0} is disabled.").format(row.name)) + def validate_max_discount(self): for d in self.get("items"): if d.item_code: