mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-16 08:05:00 +00:00
Merge pull request #52508 from rohitwaghchaure/form-cleanup-stock-manufacturing
refactor: form cleanup for stock and manufacturing doctypes
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user