diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json index f528e07391d..8c5f2acd694 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.json +++ b/erpnext/buying/doctype/purchase_order/purchase_order.json @@ -9,6 +9,7 @@ "engine": "InnoDB", "field_order": [ "supplier_section", + "company", "title", "naming_series", "supplier", @@ -19,7 +20,6 @@ "transaction_date", "schedule_date", "column_break1", - "company", "is_subcontracted", "has_unit_price_items", "supplier_warehouse", @@ -1318,7 +1318,7 @@ "idx": 105, "is_submittable": 1, "links": [], - "modified": "2026-02-04 13:01:36.628472", + "modified": "2026-02-06 17:07:24.249692", "modified_by": "Administrator", "module": "Buying", "name": "Purchase Order", diff --git a/erpnext/manufacturing/doctype/bom/bom.json b/erpnext/manufacturing/doctype/bom/bom.json index a3c4515bc9e..491920a0f29 100644 --- a/erpnext/manufacturing/doctype/bom/bom.json +++ b/erpnext/manufacturing/doctype/bom/bom.json @@ -7,9 +7,8 @@ "engine": "InnoDB", "field_order": [ "production_item_tab", - "item", "company", - "uom", + "item", "quantity", "cb0", "is_active", @@ -17,8 +16,6 @@ "allow_alternative_item", "set_rate_of_sub_assembly_item_based_on_bom", "is_phantom_bom", - "project", - "image", "currency_detail", "rm_cost_as_per", "buying_price_list", @@ -33,11 +30,9 @@ "column_break_23", "transfer_material_against", "routing", - "fg_based_operating_cost", - "column_break_joxb", - "default_source_warehouse", - "default_target_warehouse", "fg_based_section_section", + "fg_based_operating_cost", + "column_break_omye", "operating_cost_per_bom_quantity", "operations_section", "operations", @@ -61,15 +56,25 @@ "column_break_26", "total_cost", "base_total_cost", - "more_info_tab", - "item_name", - "column_break_27", - "description", - "has_variants", + "quality_inspection_tab", "quality_inspection_section_break", "inspection_required", "column_break_dxp7", "quality_inspection_template", + "more_info_tab", + "production_item_info_section", + "item_name", + "uom", + "image", + "column_break_27", + "description", + "has_variants", + "default_warehouse_section", + "default_source_warehouse", + "column_break_inep", + "default_target_warehouse", + "section_break_ouuf", + "project", "section_break0", "exploded_items", "website_section", @@ -451,7 +456,8 @@ "allow_on_submit": 1, "fieldname": "route", "fieldtype": "Small Text", - "label": "Route" + "label": "Route", + "read_only": 1 }, { "allow_on_submit": 1, @@ -651,15 +657,11 @@ { "default": "0", "depends_on": "with_operations", - "description": "Users can consume raw materials and add semi-finished goods or final finished goods against the operation using job cards.", + "description": "Users can make manufacture entry against Job Cards", "fieldname": "track_semi_finished_goods", "fieldtype": "Check", "label": "Track Semi Finished Goods" }, - { - "fieldname": "column_break_joxb", - "fieldtype": "Column Break" - }, { "fieldname": "default_source_warehouse", "fieldtype": "Link", @@ -677,6 +679,33 @@ "fieldname": "is_phantom_bom", "fieldtype": "Check", "label": "Is Phantom BOM" + }, + { + "fieldname": "default_warehouse_section", + "fieldtype": "Section Break", + "label": "Default Warehouse" + }, + { + "fieldname": "column_break_inep", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_omye", + "fieldtype": "Column Break" + }, + { + "fieldname": "production_item_info_section", + "fieldtype": "Section Break", + "label": "Production Item Info" + }, + { + "fieldname": "section_break_ouuf", + "fieldtype": "Section Break" + }, + { + "fieldname": "quality_inspection_tab", + "fieldtype": "Tab Break", + "label": "Quality Inspection" } ], "icon": "fa fa-sitemap", @@ -684,7 +713,7 @@ "image_field": "image", "is_submittable": 1, "links": [], - "modified": "2025-11-19 16:17:15.925156", + "modified": "2026-02-06 17:23:15.255301", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM", diff --git a/erpnext/manufacturing/doctype/job_card/job_card.js b/erpnext/manufacturing/doctype/job_card/job_card.js index 3048af60308..8dc10b701e0 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.js +++ b/erpnext/manufacturing/doctype/job_card/job_card.js @@ -633,16 +633,6 @@ frappe.ui.form.on("Job Card", { } }, - validate: function (frm) { - if ((!frm.doc.time_logs || !frm.doc.time_logs.length) && frm.doc.started_time) { - frm.trigger("reset_timer"); - } - }, - - reset_timer: function (frm) { - frm.set_value("started_time", ""); - }, - make_dashboard: function (frm) { if (frm.doc.__islocal) return; var section = ""; @@ -797,10 +787,6 @@ frappe.ui.form.on("Job Card Time Log", { frm.events.set_total_completed_qty(frm); }, - to_time: function (frm) { - frm.set_value("started_time", ""); - }, - time_in_mins(frm, cdt, cdn) { let d = locals[cdt][cdn]; if (d.time_in_mins) { diff --git a/erpnext/manufacturing/doctype/job_card/job_card.json b/erpnext/manufacturing/doctype/job_card/job_card.json index 6488a54308a..6b34eb7711a 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.json +++ b/erpnext/manufacturing/doctype/job_card/job_card.json @@ -6,15 +6,15 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ + "company", "naming_series", "work_order", "employee", - "is_subcontracted", "column_break_4", "posting_date", - "company", "project", "bom_no", + "is_subcontracted", "semi_finished_good__finished_good_section", "finished_good", "production_item", @@ -70,22 +70,24 @@ "more_information", "item_name", "requested_qty", - "status", - "operation_row_id", "is_paused", "track_semi_finished_goods", "column_break_20", + "remarks", + "section_break_dfoc", + "status", + "operation_row_id", + "amended_from", + "column_break_xhzg", "operation_row_number", "operation_id", "sequence_id", - "remarks", - "serial_and_batch_bundle", - "batch_no", + "section_break_jcmx", "serial_no", + "serial_and_batch_bundle", + "column_break_swqr", "barcode", - "started_time", - "current_time", - "amended_from", + "batch_no", "connections_tab" ], "fields": [ @@ -210,7 +212,7 @@ "collapsible": 1, "fieldname": "more_information", "fieldtype": "Tab Break", - "label": "More Information" + "label": "More Info" }, { "fieldname": "operation_id", @@ -259,16 +261,6 @@ "options": "Open\nWork In Progress\nMaterial Transferred\nOn Hold\nSubmitted\nCancelled\nCompleted", "read_only": 1 }, - { - "allow_on_submit": 1, - "fieldname": "started_time", - "fieldtype": "Datetime", - "hidden": 1, - "label": "Started Time", - "no_copy": 1, - "print_hide": 1, - "read_only": 1 - }, { "fieldname": "amended_from", "fieldtype": "Link", @@ -315,16 +307,7 @@ "fetch_if_empty": 1, "fieldname": "item_name", "fieldtype": "Read Only", - "label": "Item Name" - }, - { - "allow_on_submit": 1, - "fieldname": "current_time", - "fieldtype": "Int", - "hidden": 1, - "label": "Current Time", - "no_copy": 1, - "print_hide": 1, + "label": "Item Name", "read_only": 1 }, { @@ -466,7 +449,8 @@ "label": "Serial and Batch Bundle", "no_copy": 1, "options": "Serial and Batch Bundle", - "print_hide": 1 + "print_hide": 1, + "read_only": 1 }, { "depends_on": "process_loss_qty", @@ -621,12 +605,30 @@ "fieldname": "track_semi_finished_goods", "fieldtype": "Check", "label": "Track Semi Finished Goods" + }, + { + "fieldname": "section_break_jcmx", + "fieldtype": "Section Break", + "label": "Serial / Batch" + }, + { + "fieldname": "column_break_swqr", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_dfoc", + "fieldtype": "Section Break", + "label": "Status and Reference" + }, + { + "fieldname": "column_break_xhzg", + "fieldtype": "Column Break" } ], "grid_page_length": 50, "is_submittable": 1, "links": [], - "modified": "2025-12-22 14:20:07.817118", + "modified": "2026-02-06 18:27:03.178783", "modified_by": "Administrator", "module": "Manufacturing", "name": "Job Card", diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index f46db6e6d3a..46209c88117 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -82,7 +82,6 @@ class JobCard(Document): batch_no: DF.Link | None bom_no: DF.Link | None company: DF.Link - current_time: DF.Int employee: DF.TableMultiSelect[JobCardTimeLog] expected_end_date: DF.Datetime | None expected_start_date: DF.Datetime | None @@ -118,7 +117,6 @@ class JobCard(Document): serial_no: DF.SmallText | None skip_material_transfer: DF.Check source_warehouse: DF.Link | None - started_time: DF.Datetime | None status: DF.Literal[ "Open", "Work In Progress", diff --git a/erpnext/manufacturing/doctype/work_order/work_order.json b/erpnext/manufacturing/doctype/work_order/work_order.json index 29266ddb25b..4365a501ae3 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.json +++ b/erpnext/manufacturing/doctype/work_order/work_order.json @@ -8,29 +8,23 @@ "engine": "InnoDB", "field_order": [ "item", - "naming_series", - "status", - "production_item", - "item_name", - "image", - "bom_no", - "mps", - "subcontracting_inward_order", - "subcontracting_inward_order_item", - "sales_order", - "column_break1", "company", + "naming_series", + "production_item", + "bom_no", + "column_break1", "qty", - "project", + "sales_order", "track_semi_finished_goods", "reserve_stock", - "column_break_agjv", + "section_break_vrpa", "max_producible_qty", "material_transferred_for_manufacturing", "additional_transferred_qty", + "column_break_ezmq", "produced_qty", - "disassembled_qty", "process_loss_qty", + "disassembled_qty", "warehouses", "source_warehouse", "wip_warehouse", @@ -65,22 +59,34 @@ "column_break_24", "corrective_operation_cost", "total_operating_cost", + "more_info", + "production_item_info_section", + "image", + "item_name", + "stock_uom", + "column_break2", + "description", "serial_no_and_batch_for_finished_good_section", "has_serial_no", "has_batch_no", "column_break_18", "batch_size", - "more_info", - "description", - "stock_uom", - "column_break2", - "material_request", - "material_request_item", - "sales_order_item", + "reference_section", + "project", + "subcontracting_inward_order", "production_plan", - "production_plan_item", + "mps", + "material_request", + "column_break_xbhk", + "material_request_item", + "subcontracting_inward_order_item", + "sales_order_item", "production_plan_sub_assembly_item", + "production_plan_item", "product_bundle_item", + "section_break_ynih", + "status", + "column_break_cvuw", "amended_from", "connections_tab" ], @@ -149,6 +155,7 @@ { "fieldname": "bom_no", "fieldtype": "Link", + "in_list_view": 1, "label": "BOM No", "oldfieldname": "bom_no", "oldfieldtype": "Link", @@ -198,6 +205,7 @@ "default": "1.0", "fieldname": "qty", "fieldtype": "Float", + "in_list_view": 1, "label": "Qty To Manufacture", "oldfieldname": "qty", "oldfieldtype": "Currency", @@ -431,7 +439,8 @@ "fieldname": "material_request", "fieldtype": "Link", "label": "Material Request", - "options": "Material Request" + "options": "Material Request", + "read_only": 1 }, { "fieldname": "material_request_item", @@ -516,7 +525,7 @@ }, { "collapsible": 1, - "depends_on": "eval:!doc.__islocal", + "depends_on": "eval:!doc.__islocal && doc.track_semi_finished_goods === 0 && (doc.has_serial_no === 1 || doc.has_batch_no === 1)", "fieldname": "serial_no_and_batch_for_finished_good_section", "fieldtype": "Section Break", "label": "Finished Good Serial / Batch" @@ -624,10 +633,8 @@ "read_only": 1 }, { - "fieldname": "column_break_agjv", - "fieldtype": "Column Break" - }, - { + "default": "0", + "depends_on": "eval:doc.docstatus==1 && doc.skip_transfer==0", "fieldname": "additional_transferred_qty", "fieldtype": "Float", "label": "Additional Transferred Qty", @@ -659,6 +666,36 @@ "no_copy": 1, "non_negative": 1, "read_only": 1 + }, + { + "fieldname": "section_break_vrpa", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_ezmq", + "fieldtype": "Column Break" + }, + { + "fieldname": "section_break_ynih", + "fieldtype": "Section Break" + }, + { + "fieldname": "reference_section", + "fieldtype": "Section Break", + "label": "Reference" + }, + { + "fieldname": "column_break_cvuw", + "fieldtype": "Column Break" + }, + { + "fieldname": "column_break_xbhk", + "fieldtype": "Column Break" + }, + { + "fieldname": "production_item_info_section", + "fieldtype": "Section Break", + "label": "Production Item Info" } ], "grid_page_length": 50, @@ -667,7 +704,7 @@ "image_field": "image", "is_submittable": 1, "links": [], - "modified": "2025-10-12 14:24:57.699749", + "modified": "2026-02-06 17:53:11.295600", "modified_by": "Administrator", "module": "Manufacturing", "name": "Work Order", diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 912131e2825..34f5e252752 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -869,6 +869,9 @@ class WorkOrder(Document): ).run() def create_serial_no_batch_no(self): + if self.track_semi_finished_goods: + return + if not (self.has_serial_no or self.has_batch_no): return @@ -2351,7 +2354,11 @@ def set_work_order_ops(name): @frappe.whitelist() def make_stock_entry( - work_order_id, purpose, qty=None, target_warehouse=None, is_additional_transfer_entry=False + work_order_id: str, + purpose: str, + qty: float | None = None, + target_warehouse: str | None = None, + is_additional_transfer_entry: bool = False, ): work_order = frappe.get_doc("Work Order", work_order_id) if not frappe.db.get_value("Warehouse", work_order.wip_warehouse, "is_group"): @@ -2373,9 +2380,6 @@ def make_stock_entry( qty if qty is not None else (flt(work_order.qty) - flt(work_order.produced_qty)) ) - if work_order.bom_no: - stock_entry.inspection_required = frappe.db.get_value("BOM", work_order.bom_no, "inspection_required") - if purpose == "Material Transfer for Manufacture": stock_entry.to_warehouse = wip_warehouse stock_entry.project = work_order.project @@ -2387,6 +2391,10 @@ def make_stock_entry( ) stock_entry.to_warehouse = work_order.fg_warehouse stock_entry.project = work_order.project + if work_order.bom_no: + stock_entry.inspection_required = frappe.db.get_value( + "BOM", work_order.bom_no, "inspection_required" + ) if purpose == "Disassemble": stock_entry.from_warehouse = work_order.fg_warehouse diff --git a/erpnext/manufacturing/doctype/workstation/workstation.py b/erpnext/manufacturing/doctype/workstation/workstation.py index 1f4621f1a34..f9427049f15 100644 --- a/erpnext/manufacturing/doctype/workstation/workstation.py +++ b/erpnext/manufacturing/doctype/workstation/workstation.py @@ -233,7 +233,7 @@ class Workstation(Document): @frappe.whitelist() -def get_job_cards(workstation, job_card=None): +def get_job_cards(workstation: str): if frappe.has_permission("Job Card", "read"): jc_data = frappe.get_all( "Job Card", @@ -264,6 +264,7 @@ def get_job_cards(workstation, job_card=None): "status": ["not in", ["Completed", "Stopped"]], }, order_by="expected_start_date, expected_end_date", + limit=10, ) job_cards = [row.name for row in jc_data] @@ -517,7 +518,7 @@ def get_color_map(): @frappe.whitelist() -def update_job_card(job_card, method, **kwargs): +def update_job_card(job_card: str, method: str, **kwargs): if isinstance(kwargs, dict): kwargs = frappe._dict(kwargs) @@ -527,7 +528,6 @@ def update_job_card(job_card, method, **kwargs): if kwargs.qty and isinstance(kwargs.qty, str): kwargs.qty = flt(kwargs.qty) - print(method) doc = frappe.get_doc("Job Card", job_card) doc.run_method(method, **kwargs) diff --git a/erpnext/stock/doctype/pick_list/pick_list.json b/erpnext/stock/doctype/pick_list/pick_list.json index 4b46f4ecd82..9ee1b7a1922 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.json +++ b/erpnext/stock/doctype/pick_list/pick_list.json @@ -6,19 +6,18 @@ "editable_grid": 1, "engine": "InnoDB", "field_order": [ - "naming_series", "company", + "naming_series", "purpose", "customer", - "customer_name", - "work_order", - "material_request", - "for_qty", "column_break_4", + "for_qty", "parent_warehouse", "consider_rejected_warehouses", "get_item_locations", + "section_break_cfiw", "pick_manually", + "column_break_nwpf", "ignore_pricing_rule", "section_break_6", "scan_barcode", @@ -27,14 +26,21 @@ "prompt_qty", "section_break_15", "locations", - "amended_from", + "other_info_tab", "print_settings_section", "group_same_items", "status_section", - "status", - "column_break_qyam", + "per_delivered", "delivery_status", - "per_delivered" + "column_break_refl", + "status", + "reference_section", + "work_order", + "customer_name", + "column_break_feoy", + "material_request", + "amended_from", + "connections_tab" ], "fields": [ { @@ -213,11 +219,9 @@ "label": "Ignore Pricing Rule" }, { - "collapsible": 1, "fieldname": "status_section", "fieldtype": "Section Break", - "label": "Status", - "print_hide": 1 + "label": "Status" }, { "fieldname": "delivery_status", @@ -240,13 +244,41 @@ "read_only": 1 }, { - "fieldname": "column_break_qyam", + "fieldname": "section_break_cfiw", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_nwpf", "fieldtype": "Column Break" + }, + { + "fieldname": "other_info_tab", + "fieldtype": "Tab Break", + "label": "More Info" + }, + { + "fieldname": "column_break_refl", + "fieldtype": "Column Break" + }, + { + "fieldname": "reference_section", + "fieldtype": "Section Break", + "label": "Reference" + }, + { + "fieldname": "column_break_feoy", + "fieldtype": "Column Break" + }, + { + "fieldname": "connections_tab", + "fieldtype": "Tab Break", + "label": "Connections", + "show_dashboard": 1 } ], "is_submittable": 1, "links": [], - "modified": "2025-10-03 18:36:52.282355", + "modified": "2026-02-06 18:14:18.361039", "modified_by": "Administrator", "module": "Stock", "name": "Pick List", diff --git a/erpnext/stock/doctype/pick_list/pick_list_dashboard.py b/erpnext/stock/doctype/pick_list/pick_list_dashboard.py index 8900385c265..b6159d2d70c 100644 --- a/erpnext/stock/doctype/pick_list/pick_list_dashboard.py +++ b/erpnext/stock/doctype/pick_list/pick_list_dashboard.py @@ -1,3 +1,6 @@ +from frappe import _ + + def get_data(): return { "fieldname": "pick_list", @@ -9,6 +12,17 @@ def get_data(): "Sales Order": ["locations", "sales_order"], }, "transactions": [ - {"items": ["Stock Entry", "Sales Order", "Delivery Note", "Stock Reservation Entry"]}, + { + "label": _("Sales"), + "items": ["Sales Order", "Delivery Note"], + }, + { + "label": _("Manufacturing"), + "items": ["Stock Entry"], + }, + { + "label": _("Reference"), + "items": ["Stock Reservation Entry"], + }, ], } diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 6155d2e5f77..94b396e996a 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -156,7 +156,6 @@ frappe.ui.form.on("Stock Entry", { }; }); - frm.add_fetch("bom_no", "inspection_required", "inspection_required"); erpnext.accounts.dimensions.setup_dimension_filters(frm, frm.doctype); frappe.db.get_single_value("Stock Settings", "disable_serial_no_and_batch_selector").then((value) => { @@ -245,6 +244,7 @@ frappe.ui.form.on("Stock Entry", { refresh: function (frm) { frm.trigger("get_items_from_transit_entry"); + frm.trigger("toggle_warehouse_fields"); if (!frm.doc.docstatus && !frm.doc.subcontracting_inward_order) { frm.trigger("validate_purpose_consumption"); @@ -534,6 +534,7 @@ frappe.ui.form.on("Stock Entry", { frm.remove_custom_button("Bill of Materials", "Get Items From"); frm.events.show_bom_custom_button(frm); frm.trigger("add_to_transit"); + frm.trigger("toggle_warehouse_fields"); frm.fields_dict.items.grid.update_docfield_property( "basic_rate", @@ -542,6 +543,22 @@ frappe.ui.form.on("Stock Entry", { ); }, + toggle_warehouse_fields(frm) { + frm.fields_dict["items"].grid.update_docfield_property( + "s_warehouse", + "in_list_view", + !["Material Receipt", "Receive from Customer"].includes(frm.doc.purpose) + ); + + frm.fields_dict["items"].grid.update_docfield_property( + "t_warehouse", + "in_list_view", + !["Material Issue"].includes(frm.doc.purpose) + ); + + frm.fields_dict["items"].grid.reset_grid(); + }, + purpose: function (frm) { frm.trigger("validate_purpose_consumption"); frm.fields_dict.items.grid.refresh(); diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.json b/erpnext/stock/doctype/stock_entry/stock_entry.json index 23c393bbca9..7f889b04610 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.json +++ b/erpnext/stock/doctype/stock_entry/stock_entry.json @@ -8,30 +8,22 @@ "engine": "InnoDB", "field_order": [ "stock_entry_details_tab", + "company", "naming_series", "stock_entry_type", - "outgoing_stock_entry", "purpose", - "add_to_transit", - "work_order", - "job_card", - "purchase_order", - "subcontracting_order", - "subcontracting_inward_order", - "delivery_note_no", - "sales_invoice_no", - "pick_list", - "purchase_receipt_no", - "asset_repair", "col2", - "company", + "set_posting_time", "posting_date", "posting_time", - "column_break_eaoa", - "set_posting_time", - "inspection_required", + "reference_section", + "add_to_transit", "apply_putaway_rule", - "is_additional_transfer_entry", + "inspection_required", + "column_break_jabv", + "work_order", + "subcontracting_order", + "outgoing_stock_entry", "bom_info_section", "from_bom", "use_multi_level_bom", @@ -78,6 +70,17 @@ "select_print_heading", "print_settings_col_break", "letter_head", + "reference_details_section", + "delivery_note_no", + "sales_invoice_no", + "job_card", + "pick_list", + "column_break_qpvo", + "asset_repair", + "purchase_receipt_no", + "purchase_order", + "subcontracting_inward_order", + "is_additional_transfer_entry", "more_info", "is_opening", "remarks", @@ -168,7 +171,8 @@ "fieldname": "subcontracting_order", "fieldtype": "Link", "label": "Subcontracting Order", - "options": "Subcontracting Order" + "options": "Subcontracting Order", + "read_only": 1 }, { "depends_on": "eval:doc.purpose==\"Sales Return\"", @@ -180,6 +184,7 @@ "oldfieldtype": "Link", "options": "Delivery Note", "print_hide": 1, + "read_only": 1, "search_index": 1 }, { @@ -189,7 +194,8 @@ "label": "Sales Invoice No", "no_copy": 1, "options": "Sales Invoice", - "print_hide": 1 + "print_hide": 1, + "read_only": 1 }, { "depends_on": "eval:doc.purpose==\"Purchase Return\"", @@ -201,6 +207,7 @@ "oldfieldtype": "Link", "options": "Purchase Receipt", "print_hide": 1, + "read_only": 1, "search_index": 1 }, { @@ -240,13 +247,14 @@ }, { "default": "0", + "depends_on": "eval: doc.purpose === \"Manufacture\"", "fieldname": "inspection_required", "fieldtype": "Check", "label": "Inspection Required" }, { "default": "0", - "depends_on": "eval:in_list([\"Material Issue\", \"Material Transfer\", \"Manufacture\", \"Repack\", \"Send to Subcontractor\", \"Material Transfer for Manufacture\", \"Material Consumption for Manufacture\", \"Disassemble\"], doc.purpose)", + "depends_on": "eval:in_list([\"Material Issue\", \"Manufacture\", \"Repack\", \"Send to Subcontractor\", \"Material Transfer for Manufacture\", \"Material Consumption for Manufacture\", \"Disassemble\"], doc.purpose)", "fieldname": "from_bom", "fieldtype": "Check", "label": "From BOM", @@ -623,6 +631,7 @@ }, { "collapsible": 1, + "depends_on": "eval:in_list([\"Material Issue\", \"Manufacture\", \"Repack\", \"Send to Subcontractor\", \"Material Transfer for Manufacture\", \"Material Consumption for Manufacture\", \"Disassemble\"], doc.purpose)", "fieldname": "bom_info_section", "fieldtype": "Section Break", "label": "BOM Info" @@ -677,10 +686,6 @@ "fieldtype": "Section Break", "label": "Items" }, - { - "fieldname": "column_break_eaoa", - "fieldtype": "Column Break" - }, { "depends_on": "eval:doc.asset_repair", "fieldname": "asset_repair", @@ -704,9 +709,9 @@ }, { "default": "0", - "depends_on": "eval:doc.purpose == \"Material Transfer for Manufacture\"", "fieldname": "is_additional_transfer_entry", "fieldtype": "Check", + "hidden": 1, "label": "Is Additional Transfer Entry", "read_only": 1 }, @@ -717,6 +722,23 @@ "label": "Subcontracting Inward Order", "options": "Subcontracting Inward Order", "read_only": 1 + }, + { + "fieldname": "reference_section", + "fieldtype": "Section Break" + }, + { + "fieldname": "column_break_jabv", + "fieldtype": "Column Break" + }, + { + "fieldname": "reference_details_section", + "fieldtype": "Section Break", + "label": "Reference" + }, + { + "fieldname": "column_break_qpvo", + "fieldtype": "Column Break" } ], "grid_page_length": 50, @@ -725,7 +747,7 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], - "modified": "2025-10-13 15:09:23.905118", + "modified": "2026-02-06 19:26:59.518312", "modified_by": "Administrator", "module": "Stock", "name": "Stock Entry",