fix: multiple Work Orders agaist same production plan
This commit is contained in:
parent
c51e6dba8d
commit
80fffbd64b
@ -99,7 +99,7 @@ frappe.ui.form.on('Production Plan', {
|
|||||||
}, __('Create'));
|
}, __('Create'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frm.doc.mr_items && !in_list(['Material Requested', 'Closed'], frm.doc.status)) {
|
if (frm.doc.mr_items && frm.doc.mr_items.length && !in_list(['Material Requested', 'Closed'], frm.doc.status)) {
|
||||||
frm.add_custom_button(__("Material Request"), ()=> {
|
frm.add_custom_button(__("Material Request"), ()=> {
|
||||||
frm.trigger("make_material_request");
|
frm.trigger("make_material_request");
|
||||||
}, __('Create'));
|
}, __('Create'));
|
||||||
|
@ -515,6 +515,9 @@ class ProductionPlan(Document):
|
|||||||
self.show_list_created_message("Work Order", wo_list)
|
self.show_list_created_message("Work Order", wo_list)
|
||||||
self.show_list_created_message("Purchase Order", po_list)
|
self.show_list_created_message("Purchase Order", po_list)
|
||||||
|
|
||||||
|
if not wo_list:
|
||||||
|
frappe.msgprint(_("No Work Orders were created"))
|
||||||
|
|
||||||
def make_work_order_for_finished_goods(self, wo_list, default_warehouses):
|
def make_work_order_for_finished_goods(self, wo_list, default_warehouses):
|
||||||
items_data = self.get_production_items()
|
items_data = self.get_production_items()
|
||||||
|
|
||||||
@ -618,6 +621,9 @@ class ProductionPlan(Document):
|
|||||||
def create_work_order(self, item):
|
def create_work_order(self, item):
|
||||||
from erpnext.manufacturing.doctype.work_order.work_order import OverProductionError
|
from erpnext.manufacturing.doctype.work_order.work_order import OverProductionError
|
||||||
|
|
||||||
|
if item.get("qty") <= 0:
|
||||||
|
return
|
||||||
|
|
||||||
wo = frappe.new_doc("Work Order")
|
wo = frappe.new_doc("Work Order")
|
||||||
wo.update(item)
|
wo.update(item)
|
||||||
wo.planned_start_date = item.get("planned_start_date") or item.get("schedule_date")
|
wo.planned_start_date = item.get("planned_start_date") or item.get("schedule_date")
|
||||||
|
@ -76,6 +76,13 @@ class TestProductionPlan(FrappeTestCase):
|
|||||||
"Work Order", fields=["name"], filters={"production_plan": pln.name}, as_list=1
|
"Work Order", fields=["name"], filters={"production_plan": pln.name}, as_list=1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
pln.make_work_order()
|
||||||
|
nwork_orders = frappe.get_all(
|
||||||
|
"Work Order", fields=["name"], filters={"production_plan": pln.name}, as_list=1
|
||||||
|
)
|
||||||
|
|
||||||
|
self.assertTrue(len(work_orders), len(nwork_orders))
|
||||||
|
|
||||||
self.assertTrue(len(work_orders), len(pln.po_items))
|
self.assertTrue(len(work_orders), len(pln.po_items))
|
||||||
|
|
||||||
for name in material_requests:
|
for name in material_requests:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user