From e61891ab69cdb0f0aaaabf4874e37f1d10336753 Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Mon, 13 Jan 2025 12:30:01 +0530 Subject: [PATCH 1/2] chore: field rename and patch entry --- .../manufacturing_settings.json | 18 +++++++++--------- .../manufacturing_settings.py | 2 +- .../doctype/work_order/test_work_order.py | 4 ++-- erpnext/patches.txt | 3 ++- ...et_op_cost_and_scrap_from_sub_assemblies.py | 9 +++++++++ .../stock/doctype/stock_entry/stock_entry.py | 4 ++-- 6 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 erpnext/patches/v15_0/rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py diff --git a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json index a03f82e9e303..b17589fbeecc 100644 --- a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json +++ b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json @@ -37,7 +37,7 @@ "capacity_planning_for_days", "mins_between_operations", "other_settings_section", - "set_op_cost_and_scrape_from_sub_assemblies", + "set_op_cost_and_scrap_from_sub_assemblies", "column_break_23", "make_serial_no_batch_from_work_order" ], @@ -202,13 +202,6 @@ "fieldtype": "Check", "label": "Allow Excess Material Transfer" }, - { - "default": "0", - "description": "In the case of 'Use Multi-Level BOM' in a work order, if the user wishes to add sub-assembly costs to Finished Goods items without using a job card as well the scrap items, then this option needs to be enable.", - "fieldname": "set_op_cost_and_scrape_from_sub_assemblies", - "fieldtype": "Check", - "label": "Set Operating Cost / Scrap Items From Sub-assemblies" - }, { "default": "0", "depends_on": "eval: doc.material_consumption", @@ -243,13 +236,20 @@ "fieldname": "validate_components_quantities_per_bom", "fieldtype": "Check", "label": "Validate Components and Quantities Per BOM" + }, + { + "default": "0", + "description": "In the case of 'Use Multi-Level BOM' in a work order, if the user wishes to add sub-assembly costs to Finished Goods items without using a job card as well the scrap items, then this option needs to be enable.", + "fieldname": "set_op_cost_and_scrap_from_sub_assemblies", + "fieldtype": "Check", + "label": "Set Operating Cost / Scrap Items From Sub-assemblies" } ], "icon": "icon-wrench", "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2025-01-09 16:02:23.326763", + "modified": "2025-01-13 12:07:03.089977", "modified_by": "Administrator", "module": "Manufacturing", "name": "Manufacturing Settings", diff --git a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.py b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.py index cb2916c8ac59..04aebf23743a 100644 --- a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.py +++ b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.py @@ -34,7 +34,7 @@ class ManufacturingSettings(Document): mins_between_operations: DF.Int overproduction_percentage_for_sales_order: DF.Percent overproduction_percentage_for_work_order: DF.Percent - set_op_cost_and_scrape_from_sub_assemblies: DF.Check + set_op_cost_and_scrap_from_sub_assemblies: DF.Check update_bom_costs_automatically: DF.Check validate_components_quantities_per_bom: DF.Check # end: auto-generated types diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index e19277475387..2481c01935b4 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -2088,7 +2088,7 @@ def test_operating_cost_account(self): def test_op_cost_and_scrap_based_on_sub_assemblies(self): # Make Sub Assembly BOM 1 - frappe.db.set_single_value("Manufacturing Settings", "set_op_cost_and_scrape_from_sub_assemblies", 1) + frappe.db.set_single_value("Manufacturing Settings", "set_op_cost_and_scrap_from_sub_assemblies", 1) items = { "Test Final FG Item": 0, @@ -2129,7 +2129,7 @@ def test_op_cost_and_scrap_based_on_sub_assemblies(self): for row in se_doc.additional_costs: self.assertEqual(row.amount, 3000) - frappe.db.set_single_value("Manufacturing Settings", "set_op_cost_and_scrape_from_sub_assemblies", 0) + frappe.db.set_single_value("Manufacturing Settings", "set_op_cost_and_scrap_from_sub_assemblies", 0) @IntegrationTestCase.change_settings( "Manufacturing Settings", {"material_consumption": 1, "get_rm_cost_from_consumption_entry": 1} diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 29739a4e01f6..390cd5983b74 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -394,4 +394,5 @@ erpnext.patches.v14_0.update_stock_uom_in_work_order_item erpnext.patches.v15_0.enable_allow_existing_serial_no erpnext.patches.v15_0.update_cc_in_process_statement_of_accounts erpnext.patches.v15_0.refactor_closing_stock_balance #5 -erpnext.patches.v15_0.update_asset_status_to_work_in_progress \ No newline at end of file +erpnext.patches.v15_0.update_asset_status_to_work_in_progress +erpnext.patches.v15_0.rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies \ No newline at end of file diff --git a/erpnext/patches/v15_0/rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py b/erpnext/patches/v15_0/rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py new file mode 100644 index 000000000000..af178753a738 --- /dev/null +++ b/erpnext/patches/v15_0/rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py @@ -0,0 +1,9 @@ +from frappe.model.utils.rename_field import rename_field + + +def execute(): + rename_field( + "Manufacturing Settings", + "set_op_cost_and_scrape_from_sub_assemblies", + "set_op_cost_and_scrap_from_sub_assemblies", + ) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index a4e22a041a6d..e499b37be2fe 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -2062,7 +2062,7 @@ def get_bom_scrap_material(self, qty): from erpnext.manufacturing.doctype.bom.bom import get_bom_items_as_dict if ( - frappe.db.get_single_value("Manufacturing Settings", "set_op_cost_and_scrape_from_sub_assemblies") + frappe.db.get_single_value("Manufacturing Settings", "set_op_cost_and_scrap_from_sub_assemblies") and self.work_order and frappe.get_cached_value("Work Order", self.work_order, "use_multi_level_bom") ): @@ -2869,7 +2869,7 @@ def get_operating_cost_per_unit(work_order=None, bom_no=None): if ( bom_no and frappe.db.get_single_value( - "Manufacturing Settings", "set_op_cost_and_scrape_from_sub_assemblies" + "Manufacturing Settings", "set_op_cost_and_scrap_from_sub_assemblies" ) and frappe.get_cached_value("Work Order", work_order, "use_multi_level_bom") ): From 7716260d029ac236789a2d91a6be7c2b9def7a38 Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Mon, 13 Jan 2025 12:51:22 +0530 Subject: [PATCH 2/2] chore: patch file rename and description improvement --- .../doctype/manufacturing_settings/manufacturing_settings.json | 2 +- erpnext/patches.txt | 2 +- ...sub_assemblies.py => rename_manufacturing_settings_field.py} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename erpnext/patches/v15_0/{rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py => rename_manufacturing_settings_field.py} (100%) diff --git a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json index b17589fbeecc..8d1f36ee8638 100644 --- a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json +++ b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json @@ -239,7 +239,7 @@ }, { "default": "0", - "description": "In the case of 'Use Multi-Level BOM' in a work order, if the user wishes to add sub-assembly costs to Finished Goods items without using a job card as well the scrap items, then this option needs to be enable.", + "description": "To include sub-assembly costs and scrap items in Finished Goods on a work order without using a job card, when the 'Use Multi-Level BOM' option is enabled.", "fieldname": "set_op_cost_and_scrap_from_sub_assemblies", "fieldtype": "Check", "label": "Set Operating Cost / Scrap Items From Sub-assemblies" diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 390cd5983b74..c4bbfc023e98 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -395,4 +395,4 @@ erpnext.patches.v15_0.enable_allow_existing_serial_no erpnext.patches.v15_0.update_cc_in_process_statement_of_accounts erpnext.patches.v15_0.refactor_closing_stock_balance #5 erpnext.patches.v15_0.update_asset_status_to_work_in_progress -erpnext.patches.v15_0.rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies \ No newline at end of file +erpnext.patches.v15_0.rename_manufacturing_settings_field \ No newline at end of file diff --git a/erpnext/patches/v15_0/rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py b/erpnext/patches/v15_0/rename_manufacturing_settings_field.py similarity index 100% rename from erpnext/patches/v15_0/rename_set_op_cost_and_scrape_from_sub_assemblies_to_set_op_cost_and_scrap_from_sub_assemblies.py rename to erpnext/patches/v15_0/rename_manufacturing_settings_field.py