refactor: update manufacturing module onboarding (#26945)

* refactor: updated manufacturing onboarding cards

* refactor: added form tours

* refactor: updated form tours and card descriptions

* Fix: Case of description

Co-authored-by: Nabin Hait <nabinhait@gmail.com>
This commit is contained in:
Noah Jacob 2021-08-26 21:40:48 +05:30 committed by GitHub
parent f91faac7cd
commit 422f67a4c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 303 additions and 31 deletions

View File

@ -661,6 +661,29 @@ frappe.ui.form.on("BOM", "with_operations", function(frm) {
} }
}); });
frappe.tour['BOM'] = [
{
fieldname: "item",
title: "Item",
description: __("Select the Item to be manufactured. The Item name, UoM, Company, and Currency will be fetched automatically.")
},
{
fieldname: "quantity",
title: "Quantity",
description: __("Enter the quantity of the Item that will be manufactured from this Bill of Materials.")
},
{
fieldname: "with_operations",
title: "With Operations",
description: __("To add Operations tick the 'With Operations' checkbox.")
},
{
fieldname: "items",
title: "Raw Materials",
description: __("Select the raw materials (Items) required to manufacture the Item")
}
];
frappe.ui.form.on("BOM Scrap Item", { frappe.ui.form.on("BOM Scrap Item", {
item_code(frm, cdt, cdn) { item_code(frm, cdt, cdn) {
const { item_code } = locals[cdt][cdn]; const { item_code } = locals[cdt][cdn];
@ -691,4 +714,4 @@ function trigger_process_loss_qty_prompt(frm, cdt, cdn, item_code) {
__("Set Process Loss Item Quantity"), __("Set Process Loss Item Quantity"),
__("Set Quantity") __("Set Quantity")
); );
} }

View File

@ -12,3 +12,21 @@ frappe.ui.form.on('Operation', {
}); });
} }
}); });
frappe.tour['Operation'] = [
{
fieldname: "__newname",
title: "Operation Name",
description: __("Enter a name for the Operation, for example, Cutting.")
},
{
fieldname: "workstation",
title: "Default Workstation",
description: __("Select the Default Workstation where the Operation will be performed. This will be fetched in BOMs and Work Orders.")
},
{
fieldname: "sub_operations",
title: "Sub Operations",
description: __("If an operation is divided into sub operations, they can be added here.")
}
];

View File

@ -428,3 +428,36 @@ cur_frm.fields_dict['sales_orders'].grid.get_field("sales_order").get_query = fu
] ]
} }
}; };
frappe.tour['Production Plan'] = [
{
fieldname: "get_items_from",
title: "Get Items From",
description: __("Select whether to get items from a Sales Order or a Material Request. For now select <b>Sales Order</b>.\n A Production Plan can also be created manually where you can select the Items to manufacture.")
},
{
fieldname: "get_sales_orders",
title: "Get Sales Orders",
description: __("Click on Get Sales Orders to fetch sales orders based on the above filters.")
},
{
fieldname: "get_items",
title: "Get Finished Goods for Manufacture",
description: __("Click on 'Get Finished Goods for Manufacture' to fetch the items from the above Sales Orders. Items only for which a BOM is present will be fetched.")
},
{
fieldname: "po_items",
title: "Finished Goods",
description: __("On expanding a row in the Items to Manufacture table, you'll see an option to 'Include Exploded Items'. Ticking this includes raw materials of the sub-assembly items in the production process.")
},
{
fieldname: "include_non_stock_items",
title: "Include Non Stock Items",
description: __("To include non-stock items in the material request planning. i.e. Items for which 'Maintain Stock' checkbox is unticked.")
},
{
fieldname: "include_subcontracted_items",
title: "Include Subcontracted Items",
description: __("To add subcontracted Item's raw materials if include exploded items is disabled.")
}
];

View File

@ -69,3 +69,17 @@ frappe.ui.form.on('BOM Operation', {
frm.events.calculate_operating_cost(frm, d); frm.events.calculate_operating_cost(frm, d);
} }
}); });
frappe.tour['Routing'] = [
{
fieldname: "routing_name",
title: "Routing Name",
description: __("Enter a name for Routing.")
},
{
fieldname: "operations",
title: "BOM Operations",
description: __("Enter the Operation, the table will fetch the Operation details like Hourly Rate, Workstation automatically.\n\n After that, set the Operation Time in minutes and the table will calculate the Operation Costs based on the Hourly Rate and Operation Time.")
}
];

View File

@ -731,3 +731,63 @@ erpnext.work_order = {
}); });
} }
}; };
frappe.tour['Work Order'] = [
{
fieldname: "production_item",
title: "Item to Manufacture",
description: __("Select the Item to be manufactured.")
},
{
fieldname: "bom_no",
title: "BOM No",
description: __("The default BOM for that item will be fetched by the system. You can also change the BOM.")
},
{
fieldname: "qty",
title: "Qty to Manufacture",
description: __("Enter the quantity to manufacture. Raw material Items will be fetched only when this is set.")
},
{
fieldname: "use_multi_level_bom",
title: "Use Multi-Level BOM",
description: __("This is enabled by default. If you want to plan materials for sub-assemblies of the Item you're manufacturing leave this enabled. If you plan and manufacture the sub-assemblies separately, you can disable this checkbox.")
},
{
fieldname: "source_warehouse",
title: "Source Warehouse",
description: __("The warehouse where you store your raw materials. Each required item can have a separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of the Work Order, the raw materials will be reserved in these warehouses for production usage.")
},
{
fieldname: "fg_warehouse",
title: "Target Warehouse",
description: __("The warehouse where you store finished Items before they are shipped.")
},
{
fieldname: "wip_warehouse",
title: "Work-in-Progress Warehouse",
description: __("The warehouse where your Items will be transferred when you begin production. Group Warehouse can also be selected as a Work in Progress warehouse.")
},
{
fieldname: "scrap_warehouse",
title: "Scrap Warehouse",
description: __("If the BOM results in Scrap material, the Scrap Warehouse needs to be selected.")
},
{
fieldname: "required_items",
title: "Required Items",
description: __("All the required items (raw materials) will be fetched from BOM and populated in this table. Here you can also change the Source Warehouse for any item. And during the production, you can track transferred raw materials from this table.")
},
{
fieldname: "planned_start_date",
title: "Planned Start Date",
description: __("Set the Planned Start Date (an Estimated Date at which you want the Production to begin)")
},
{
fieldname: "operations",
title: "Operations",
description: __("If the selected BOM has Operations mentioned in it, the system will fetch all Operations from BOM, these values can be changed.")
},
];

View File

@ -16,4 +16,29 @@ frappe.ui.form.on("Workstation", {
}) })
} }
} }
}) });
frappe.tour['Workstation'] = [
{
fieldname: "workstation_name",
title: "Workstation Name",
description: __("You can set it as a machine name or operation type. For example, stiching machine 12")
},
{
fieldname: "production_capacity",
title: "Production Capacity",
description: __("No. of parallel job cards which can be allowed on this workstation. Example: 2 would mean this workstation can process production for two Work Orders at a time.")
},
{
fieldname: "holiday_list",
title: "Holiday List",
description: __("A Holiday List can be added to exclude counting these days for the Workstation.")
},
{
fieldname: "working_hours",
title: "Working Hours",
description: __("Under Working Hours table, you can add start and end times for a Workstation. For example, a Workstation may be active from 9 am to 1 pm, then 2 pm to 5 pm. You can also specify the working hours based on shifts. While scheduling a Work Order, the system will check for the availability of the Workstation based on the working hours specified.")
},
];

View File

@ -19,14 +19,14 @@
"documentation_url": "https://docs.erpnext.com/docs/user/manual/en/manufacturing", "documentation_url": "https://docs.erpnext.com/docs/user/manual/en/manufacturing",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"modified": "2020-06-29 20:25:36.899106", "modified": "2021-08-13 16:04:34.333812",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Manufacturing", "module": "Manufacturing",
"name": "Manufacturing", "name": "Manufacturing",
"owner": "Administrator", "owner": "Administrator",
"steps": [ "steps": [
{ {
"step": "Warehouse" "step": "Explore Manufacturing Settings"
}, },
{ {
"step": "Workstation" "step": "Workstation"
@ -35,22 +35,22 @@
"step": "Operation" "step": "Operation"
}, },
{ {
"step": "Create Product" "step": "Routing"
}, },
{ {
"step": "Create Raw Materials" "step": "Create Product"
}, },
{ {
"step": "Create BOM" "step": "Create BOM"
}, },
{ {
"step": "Work Order" "step": "Production Planning"
}, },
{ {
"step": "Explore Manufacturing Settings" "step": "Work Order"
} }
], ],
"subtitle": "Products, Raw Materials, BOM, Work Order, and more.", "subtitle": "Products, Raw Materials, BOM, Work Order, and more.",
"success_message": "Manufacturing module is all set up!", "success_message": "Manufacturing module is all set up!",
"title": "Let's Set Up the Manufacturing Module." "title": "Let's Set Up the Manufacturing Module."
} }

View File

@ -1,19 +1,21 @@
{ {
"action": "Create Entry", "action": "Create Entry",
"action_label": "Create your first Bill of Materials",
"creation": "2020-05-05 16:41:20.239696", "creation": "2020-05-05 16:41:20.239696",
"description": "# Create a Bill of Materials\n\nA Bill of Materials (BOM) is a list of items and sub-assemblies with quantities required to manufacture an Item.\n\nBOM also provides cost estimation for the production of the item. It takes raw-materials cost based on valuation and operations to cost based on routing, which gives total costing for a BOM.",
"docstatus": 0, "docstatus": 0,
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 1,
"is_single": 0, "is_single": 0,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-19 12:51:31.315686", "modified": "2021-08-13 16:00:51.092671",
"modified_by": "Administrator", "modified_by": "Administrator",
"name": "Create BOM", "name": "Create BOM",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "BOM", "reference_document": "BOM",
"show_form_tour": 1,
"show_full_form": 1, "show_full_form": 1,
"title": "Create a BOM (Bill of Material)", "title": "Bill of Materials",
"validate_action": 1 "validate_action": 1
} }

View File

@ -1,19 +1,21 @@
{ {
"action": "Create Entry", "action": "Create Entry",
"action_label": "Create an Item",
"creation": "2020-05-05 16:42:31.476275", "creation": "2020-05-05 16:42:31.476275",
"description": "# Create Items for Bill of Materials\n\nOne of the prerequisites of a BOM is the creation of raw materials, sub-assembly, and finished items. Once these items are created, you will be able to proceed to the Bill of Materials master, which is composed of items and routing.\n",
"docstatus": 0, "docstatus": 0,
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 1,
"is_single": 0, "is_single": 0,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-19 12:50:59.010439", "modified": "2021-08-13 16:00:22.407811",
"modified_by": "Administrator", "modified_by": "Administrator",
"name": "Create Product", "name": "Create Product",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "Item", "reference_document": "Item",
"show_full_form": 0, "show_form_tour": 1,
"title": "Create a Finished Good", "show_full_form": 1,
"title": "Finished Items",
"validate_action": 1 "validate_action": 1
} }

View File

@ -5,7 +5,6 @@
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 0,
"is_single": 0, "is_single": 0,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-19 11:53:25.147837", "modified": "2020-05-19 11:53:25.147837",
@ -13,6 +12,7 @@
"name": "Create Raw Materials", "name": "Create Raw Materials",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "Item", "reference_document": "Item",
"show_form_tour": 0,
"show_full_form": 0, "show_full_form": 0,
"title": "Create Raw Materials", "title": "Create Raw Materials",
"validate_action": 1 "validate_action": 1

View File

@ -1,20 +1,22 @@
{ {
"action": "Show Form Tour", "action": "Show Form Tour",
"action_label": "Take a walk-through of Manufacturing Settings",
"creation": "2020-05-19 11:55:11.378374", "creation": "2020-05-19 11:55:11.378374",
"description": "# Review Manufacturing Settings\n\nIn ERPNext, the Manufacturing module\u2019s features are configurable as per your business needs. Manufacturing Settings is the place where you can set your preferences for:\n\n- Capacity planning for allocating jobs to workstations\n- Raw-material consumption based on BOM or actual\n- Default values and over-production allowance\n",
"docstatus": 0, "docstatus": 0,
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 0,
"is_single": 1, "is_single": 1,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-26 20:28:03.558199", "modified": "2021-08-13 15:59:32.145655",
"modified_by": "Administrator", "modified_by": "Administrator",
"name": "Explore Manufacturing Settings", "name": "Explore Manufacturing Settings",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "Manufacturing Settings", "reference_document": "Manufacturing Settings",
"show_form_tour": 0,
"show_full_form": 0, "show_full_form": 0,
"title": "Explore Manufacturing Settings", "title": "Manufacturing Settings",
"validate_action": 0, "validate_action": 0,
"video_url": "https://www.youtube.com/watch?v=UVGfzwOOZC4" "video_url": "https://www.youtube.com/watch?v=UVGfzwOOZC4"
} }

View File

@ -1,19 +1,21 @@
{ {
"action": "Create Entry", "action": "Create Entry",
"action_label": "Let\u2019s create an Operation",
"creation": "2020-05-12 16:15:31.706756", "creation": "2020-05-12 16:15:31.706756",
"description": "# Create Operations\n\nAn Operation refers to any manufacturing operation performed on the raw materials to process it further in the manufacturing path. As an example, if you are into garments manufacturing, you will create Operations like fabric cutting, stitching, and washing as some of the operations.",
"docstatus": 0, "docstatus": 0,
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 0,
"is_single": 0, "is_single": 0,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-19 12:50:41.642754", "modified": "2021-08-13 15:59:53.313532",
"modified_by": "Administrator", "modified_by": "Administrator",
"name": "Operation", "name": "Operation",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "Operation", "reference_document": "Operation",
"show_full_form": 0, "show_form_tour": 1,
"title": "Create a Operation", "show_full_form": 1,
"title": "Operation",
"validate_action": 1 "validate_action": 1
} }

View File

@ -0,0 +1,21 @@
{
"action": "Create Entry",
"action_label": "Learn more about Production Planning",
"creation": "2021-08-04 17:33:06.551077",
"description": "# How Production Planning Works\n\nProduction Plan helps in production and material planning for the Items planned for manufacturing. These production items can be committed via Sales Order (to Customers) or Material Requests (internally).\n",
"docstatus": 0,
"doctype": "Onboarding Step",
"idx": 0,
"is_complete": 0,
"is_single": 0,
"is_skipped": 0,
"modified": "2021-08-13 16:04:15.491414",
"modified_by": "Administrator",
"name": "Production Planning",
"owner": "Administrator",
"reference_document": "Production Plan",
"show_form_tour": 0,
"show_full_form": 1,
"title": "Production Planning",
"validate_action": 1
}

View File

@ -0,0 +1,21 @@
{
"action": "Create Entry",
"action_label": "Check help to setup Routing",
"creation": "2021-08-04 11:56:42.455758",
"description": "# Setup Routing\n\nA Routing stores all Operations along with the description, hourly rate, operation time, batch size, etc. Click below to learn how the Routing template can be created, for quick selection in the BOM.",
"docstatus": 0,
"doctype": "Onboarding Step",
"idx": 0,
"is_complete": 0,
"is_single": 0,
"is_skipped": 0,
"modified": "2021-08-13 16:00:07.391563",
"modified_by": "Administrator",
"name": "Routing",
"owner": "Administrator",
"reference_document": "Routing",
"show_form_tour": 1,
"show_full_form": 1,
"title": "Routing",
"validate_action": 1
}

View File

@ -1,19 +1,21 @@
{ {
"action": "Create Entry", "action": "Create Entry",
"action_label": "Create your first Work Order",
"creation": "2020-05-12 16:15:56.084682", "creation": "2020-05-12 16:15:56.084682",
"description": "# Create a Work Order\n\nA Work Order or a Job order is given to the manufacturing shop floor by the Production Manager to initiate the manufacturing of a certain quantity of an item. Work Order carriers details of production Item, its BOM, quantities to be manufactured, and operations.\n\nThrough Work Order, you can track various production status like:\n\n- Issue of raw-material to shop material\n- Progress on each Workstation via Job Card\n- Manufactured Quantity against Work Order\n",
"docstatus": 0, "docstatus": 0,
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 0,
"is_single": 0, "is_single": 0,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-19 12:51:38.133150", "modified": "2021-08-13 16:02:04.223536",
"modified_by": "Administrator", "modified_by": "Administrator",
"name": "Work Order", "name": "Work Order",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "Work Order", "reference_document": "Work Order",
"show_form_tour": 1,
"show_full_form": 1, "show_full_form": 1,
"title": "Create a Work Order", "title": "Work Order",
"validate_action": 1 "validate_action": 1
} }

View File

@ -1,19 +1,21 @@
{ {
"action": "Create Entry", "action": "Create Entry",
"action_label": "Let\u2019s create a Workstation",
"creation": "2020-05-12 16:14:14.930214", "creation": "2020-05-12 16:14:14.930214",
"description": "# Create Workstations\n\nA Workstation stores information regarding the place where the workstation operations are performed. As an example, if you have ten sewing machines doing stitching jobs, each machine will be added as a workstation.",
"docstatus": 0, "docstatus": 0,
"doctype": "Onboarding Step", "doctype": "Onboarding Step",
"idx": 0, "idx": 0,
"is_complete": 0, "is_complete": 0,
"is_mandatory": 0,
"is_single": 0, "is_single": 0,
"is_skipped": 0, "is_skipped": 0,
"modified": "2020-05-19 12:50:33.938176", "modified": "2021-08-13 15:59:59.634802",
"modified_by": "Administrator", "modified_by": "Administrator",
"name": "Workstation", "name": "Workstation",
"owner": "Administrator", "owner": "Administrator",
"reference_document": "Workstation", "reference_document": "Workstation",
"show_full_form": 0, "show_form_tour": 1,
"title": "Create a Workstation / Machine", "show_full_form": 1,
"title": "Workstation",
"validate_action": 1 "validate_action": 1
} }

View File

@ -792,3 +792,48 @@ frappe.ui.form.on("UOM Conversion Detail", {
} }
} }
}); });
frappe.tour['Item'] = [
{
fieldname: "item_code",
title: "Item Code",
description: __("Enter an Item Code, the name will be auto-filled the same as Item Code on clicking inside the Item Name field.")
},
{
fieldname: "item_group",
title: "Item Group",
description: __("Select an Item Group.")
},
{
fieldname: "is_stock_item",
title: "Maintain Stock",
description: __("If you are maintaining stock of this Item in your Inventory, ERPNext will make a stock ledger entry for each transaction of this item.")
},
{
fieldname: "include_item_in_manufacturing",
title: "Include Item in Manufacturing",
description: __("This is for raw material Items that'll be used to create finished goods. If the Item is an additional service like 'washing' that'll be used in the BOM, keep this unchecked.")
},
{
fieldname: "opening_stock",
title: "Opening Stock",
description: __("Enter the opening stock units.")
},
{
fieldname: "valuation_rate",
title: "Valuation Rate",
description: __("There are two options to maintain valuation of stock. FIFO (first in - first out) and Moving Average. To understand this topic in detail please visit <a href='https://docs.erpnext.com/docs/v13/user/manual/en/stock/articles/item-valuation-fifo-and-moving-average' target='_blank'>Item Valuation, FIFO and Moving Average.</a>")
},
{
fieldname: "standard_rate",
title: "Standard Selling Rate",
description: __("When creating an Item, entering a value for this field will automatically create an Item Price at the backend.")
},
{
fieldname: "item_defaults",
title: "Item Defaults",
description: __("In this section, you can define Company-wide transaction-related defaults for this Item. Eg. Default Warehouse, Default Price List, Supplier, etc.")
}
];