fix: group item reorder by (warehouse, material_request_type) (#35818)
* fix: group item reorder by (warehouse, material_request_type)
* fix: update reorder error message
* chore: linter
* fix: correct error message
Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
* chore: linter
---------
Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index ef4155e..aff9587 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -395,16 +395,16 @@
def validate_warehouse_for_reorder(self):
"""Validate Reorder level table for duplicate and conditional mandatory"""
- warehouse = []
+ warehouse_material_request_type: list[tuple[str, str]] = []
for d in self.get("reorder_levels"):
if not d.warehouse_group:
d.warehouse_group = d.warehouse
- if d.get("warehouse") and d.get("warehouse") not in warehouse:
- warehouse += [d.get("warehouse")]
+ if (d.get("warehouse"), d.get("material_request_type")) not in warehouse_material_request_type:
+ warehouse_material_request_type += [(d.get("warehouse"), d.get("material_request_type"))]
else:
frappe.throw(
- _("Row {0}: An Reorder entry already exists for this warehouse {1}").format(
- d.idx, d.warehouse
+ _("Row #{0}: A reorder entry already exists for warehouse {1} with reorder type {2}.").format(
+ d.idx, d.warehouse, d.material_request_type
),
DuplicateReorderRows,
)