mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-29 18:04:46 +00:00
Merge pull request #30235 from frappe/mergify/bp/version-13-pre-release/pr-30216
fix: max_qty validation condition in WO (backport #30216)
This commit is contained in:
@@ -605,6 +605,17 @@ class TestProductionPlan(ERPNextTestCase):
|
|||||||
]
|
]
|
||||||
self.assertFalse(pp.all_items_completed())
|
self.assertFalse(pp.all_items_completed())
|
||||||
|
|
||||||
|
def test_production_plan_planned_qty(self):
|
||||||
|
pln = create_production_plan(item_code="_Test FG Item", planned_qty=0.55)
|
||||||
|
pln.make_work_order()
|
||||||
|
work_order = frappe.db.get_value('Work Order', {'production_plan': pln.name}, 'name')
|
||||||
|
wo_doc = frappe.get_doc('Work Order', work_order)
|
||||||
|
wo_doc.update({
|
||||||
|
'wip_warehouse': 'Work In Progress - _TC',
|
||||||
|
'fg_warehouse': 'Finished Goods - _TC'
|
||||||
|
})
|
||||||
|
wo_doc.submit()
|
||||||
|
self.assertEqual(wo_doc.qty, 0.55)
|
||||||
|
|
||||||
def create_production_plan(**args):
|
def create_production_plan(**args):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -635,12 +635,12 @@ class WorkOrder(Document):
|
|||||||
if self.production_plan and self.production_plan_item:
|
if self.production_plan and self.production_plan_item:
|
||||||
qty_dict = frappe.db.get_value("Production Plan Item", self.production_plan_item, ["planned_qty", "ordered_qty"], as_dict=1)
|
qty_dict = frappe.db.get_value("Production Plan Item", self.production_plan_item, ["planned_qty", "ordered_qty"], as_dict=1)
|
||||||
|
|
||||||
allowance_qty =flt(frappe.db.get_single_value("Manufacturing Settings",
|
allowance_qty = flt(frappe.db.get_single_value("Manufacturing Settings",
|
||||||
"overproduction_percentage_for_work_order"))/100 * qty_dict.get("planned_qty", 0)
|
"overproduction_percentage_for_work_order"))/100 * qty_dict.get("planned_qty", 0)
|
||||||
|
|
||||||
max_qty = qty_dict.get("planned_qty", 0) + allowance_qty - qty_dict.get("ordered_qty", 0)
|
max_qty = qty_dict.get("planned_qty", 0) + allowance_qty - qty_dict.get("ordered_qty", 0)
|
||||||
|
|
||||||
if max_qty < 1:
|
if not max_qty > 0:
|
||||||
frappe.throw(_("Cannot produce more item for {0}")
|
frappe.throw(_("Cannot produce more item for {0}")
|
||||||
.format(self.production_item), OverProductionError)
|
.format(self.production_item), OverProductionError)
|
||||||
elif self.qty > max_qty:
|
elif self.qty > max_qty:
|
||||||
|
|||||||
Reference in New Issue
Block a user