mirror of
https://github.com/frappe/erpnext.git
synced 2026-04-10 07:33:17 +02:00
feat: Allow Editing of Items and Quantities in Work Order
This commit is contained in:
committed by
Smit Vora
parent
3fbfad1b9b
commit
1d36cb55cd
@@ -15,6 +15,7 @@
|
||||
"bom_section",
|
||||
"update_bom_costs_automatically",
|
||||
"column_break_lhyt",
|
||||
"allow_editing_of_items_and_quantities_in_work_order",
|
||||
"section_break_6",
|
||||
"default_wip_warehouse",
|
||||
"default_fg_warehouse",
|
||||
@@ -243,13 +244,20 @@
|
||||
"fieldname": "enforce_time_logs",
|
||||
"fieldtype": "Check",
|
||||
"label": "Enforce Time Logs"
|
||||
},
|
||||
{
|
||||
"default": "0",
|
||||
"description": "If enabled, the system will allow users to edit the raw materials and their quantities in the Work Order. The system will not reset the quantities as per the BOM, if the user has changed them.",
|
||||
"fieldname": "allow_editing_of_items_and_quantities_in_work_order",
|
||||
"fieldtype": "Check",
|
||||
"label": "Allow Editing of Items and Quantities in Work Order"
|
||||
}
|
||||
],
|
||||
"icon": "icon-wrench",
|
||||
"index_web_pages_for_search": 1,
|
||||
"issingle": 1,
|
||||
"links": [],
|
||||
"modified": "2025-05-16 11:23:16.916512",
|
||||
"modified": "2025-11-07 14:52:56.241459",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Manufacturing",
|
||||
"name": "Manufacturing Settings",
|
||||
|
||||
@@ -18,6 +18,7 @@ class ManufacturingSettings(Document):
|
||||
from frappe.types import DF
|
||||
|
||||
add_corrective_operation_cost_in_finished_good_valuation: DF.Check
|
||||
allow_editing_of_items_and_quantities_in_work_order: DF.Check
|
||||
allow_overtime: DF.Check
|
||||
allow_production_on_holidays: DF.Check
|
||||
backflush_raw_materials_based_on: DF.Literal["BOM", "Material Transferred for Manufacture"]
|
||||
|
||||
@@ -243,6 +243,11 @@ frappe.ui.form.on("Work Order", {
|
||||
|
||||
frm.trigger("add_custom_button_to_return_components");
|
||||
frm.trigger("allow_alternative_item");
|
||||
frm.trigger("toggle_items_editable");
|
||||
},
|
||||
|
||||
toggle_items_editable(frm) {
|
||||
frm.toggle_enable("required_items", frm.doc.__onload?.allow_editing_items === 1 ? 1 : 0);
|
||||
},
|
||||
|
||||
add_custom_button_to_return_components: function (frm) {
|
||||
|
||||
@@ -141,6 +141,7 @@ class WorkOrder(Document):
|
||||
|
||||
def onload(self):
|
||||
ms = frappe.get_doc("Manufacturing Settings")
|
||||
self.set_onload("allow_editing_items", ms.allow_editing_of_items_and_quantities_in_work_order)
|
||||
self.set_onload("material_consumption", ms.material_consumption)
|
||||
self.set_onload("backflush_raw_materials_based_on", ms.backflush_raw_materials_based_on)
|
||||
self.set_onload("overproduction_percentage", ms.overproduction_percentage_for_work_order)
|
||||
@@ -167,7 +168,11 @@ class WorkOrder(Document):
|
||||
|
||||
validate_uom_is_integer(self, "stock_uom", ["required_qty"])
|
||||
|
||||
self.set_required_items(reset_only_qty=len(self.get("required_items")))
|
||||
if not len(self.get("required_items")) or not frappe.db.get_single_value(
|
||||
"Manufacturing Settings", "allow_editing_of_items_and_quantities_in_work_order"
|
||||
):
|
||||
self.set_required_items(reset_only_qty=len(self.get("required_items")))
|
||||
|
||||
self.validate_operations_sequence()
|
||||
|
||||
def validate_operations_sequence(self):
|
||||
|
||||
Reference in New Issue
Block a user