From 0aadd1e3a50689218286560f6e2c05f0082afaef Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Mon, 27 Apr 2026 13:58:55 +0530 Subject: [PATCH] fix: make inv dimen reqd only in delivery note (#54546) --- erpnext/patches.txt | 1 + .../patches/v16_0/packed_item_inv_dimen.py | 27 +++++++++++++++++++ .../inventory_dimension.py | 5 +++- .../doctype/packed_item/packed_item.json | 7 ++--- 4 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 erpnext/patches/v16_0/packed_item_inv_dimen.py diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 93b02e0fbfa..c4529e576e9 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -479,3 +479,4 @@ erpnext.patches.v16_0.uom_category erpnext.patches.v16_0.merge_repost_settings_to_accounts_settings erpnext.patches.v16_0.set_root_type_in_account_categories erpnext.patches.v16_0.scr_inv_dimension +erpnext.patches.v16_0.packed_item_inv_dimen \ No newline at end of file diff --git a/erpnext/patches/v16_0/packed_item_inv_dimen.py b/erpnext/patches/v16_0/packed_item_inv_dimen.py new file mode 100644 index 00000000000..38dd2007045 --- /dev/null +++ b/erpnext/patches/v16_0/packed_item_inv_dimen.py @@ -0,0 +1,27 @@ +import frappe + +from erpnext.stock.doctype.inventory_dimension.inventory_dimension import get_inventory_dimensions + + +def execute(): + for dimension in get_inventory_dimensions(): + if frappe.db.exists( + "Custom Field", + { + "fieldname": dimension.source_fieldname, + "dt": "Packed Item", + "reqd": 1, + }, + ): + frappe.set_value( + "Custom Field", + { + "fieldname": dimension.source_fieldname, + "dt": "Packed Item", + "reqd": 1, + }, + { + "reqd": 0, + "mandatory_depends_on": "eval:doc.parent_detail_docname && ['Delivery Note', 'Sales Invoice', 'POS Invoice'].includes(parent.doctype)", + }, + ) diff --git a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py index acb0c2c64d8..4a3c89d8eae 100644 --- a/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py +++ b/erpnext/stock/doctype/inventory_dimension/inventory_dimension.py @@ -175,6 +175,8 @@ class InventoryDimension(Document): mandatory_depends_on = "eval:doc.s_warehouse" elif doctype == "Subcontracting Receipt Supplied Item": mandatory_depends_on = "eval:doc.reference_name" + elif doctype == "Packed Item": + mandatory_depends_on = "eval:doc.parent_detail_docname && ['Delivery Note', 'Sales Invoice', 'POS Invoice'].includes(parent.doctype)" dimension_fields = [ dict( @@ -195,7 +197,8 @@ class InventoryDimension(Document): reqd=1 if self.reqd and not self.mandatory_depends_on - and doctype not in ["Stock Entry Detail", "Subcontracting Receipt Supplied Item"] + and doctype + not in ["Stock Entry Detail", "Subcontracting Receipt Supplied Item", "Packed Item"] else 0, mandatory_depends_on=mandatory_depends_on, ), diff --git a/erpnext/stock/doctype/packed_item/packed_item.json b/erpnext/stock/doctype/packed_item/packed_item.json index 1614bfe2ab7..f7ff0a921be 100644 --- a/erpnext/stock/doctype/packed_item/packed_item.json +++ b/erpnext/stock/doctype/packed_item/packed_item.json @@ -8,6 +8,7 @@ "parent_item", "item_code", "item_name", + "delivered_by_supplier", "column_break_5", "description", "section_break_6", @@ -23,7 +24,6 @@ "use_serial_batch_fields", "column_break_11", "serial_and_batch_bundle", - "delivered_by_supplier", "section_break_bgys", "serial_no", "column_break_qlha", @@ -119,6 +119,7 @@ "read_only": 1 }, { + "depends_on": "eval:parent.doctype !== \"Sales Order\"", "fieldname": "section_break_9", "fieldtype": "Section Break" }, @@ -285,7 +286,7 @@ "label": "Use Serial No / Batch Fields" }, { - "depends_on": "eval:doc.use_serial_batch_fields === 1", + "depends_on": "eval:doc.use_serial_batch_fields === 1 && parent.doctype !== \"Sales Order\"", "fieldname": "section_break_bgys", "fieldtype": "Section Break" }, @@ -314,7 +315,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2026-03-16 18:10:47.511381", + "modified": "2026-04-27 13:00:22.949296", "modified_by": "Administrator", "module": "Stock", "name": "Packed Item",