diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index 1481f1c54f..05123d5f85 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -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", { item_code(frm, 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 Quantity") ); -} +} \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/operation/operation.js b/erpnext/manufacturing/doctype/operation/operation.js index 2936e33b11..95643bf49f 100644 --- a/erpnext/manufacturing/doctype/operation/operation.js +++ b/erpnext/manufacturing/doctype/operation/operation.js @@ -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.") + } +]; \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.js b/erpnext/manufacturing/doctype/production_plan/production_plan.js index d198a6962a..847004fc47 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.js +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.js @@ -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 Sales Order.\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.") + } +]; diff --git a/erpnext/manufacturing/doctype/routing/routing.js b/erpnext/manufacturing/doctype/routing/routing.js index 032c9cd9a2..c17a8e959d 100644 --- a/erpnext/manufacturing/doctype/routing/routing.js +++ b/erpnext/manufacturing/doctype/routing/routing.js @@ -69,3 +69,17 @@ frappe.ui.form.on('BOM Operation', { 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.") + } +]; + diff --git a/erpnext/manufacturing/doctype/work_order/work_order.js b/erpnext/manufacturing/doctype/work_order/work_order.js index 512048512e..51c46f63ab 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.js +++ b/erpnext/manufacturing/doctype/work_order/work_order.js @@ -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.") + }, + + +]; diff --git a/erpnext/manufacturing/doctype/workstation/workstation.js b/erpnext/manufacturing/doctype/workstation/workstation.js index d8d25fc6f8..4f5231e449 100644 --- a/erpnext/manufacturing/doctype/workstation/workstation.js +++ b/erpnext/manufacturing/doctype/workstation/workstation.js @@ -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.") + }, + + +]; \ No newline at end of file diff --git a/erpnext/manufacturing/module_onboarding/manufacturing/manufacturing.json b/erpnext/manufacturing/module_onboarding/manufacturing/manufacturing.json index 7317152565..032091f67e 100644 --- a/erpnext/manufacturing/module_onboarding/manufacturing/manufacturing.json +++ b/erpnext/manufacturing/module_onboarding/manufacturing/manufacturing.json @@ -19,14 +19,14 @@ "documentation_url": "https://docs.erpnext.com/docs/user/manual/en/manufacturing", "idx": 0, "is_complete": 0, - "modified": "2020-06-29 20:25:36.899106", + "modified": "2021-08-13 16:04:34.333812", "modified_by": "Administrator", "module": "Manufacturing", "name": "Manufacturing", "owner": "Administrator", "steps": [ { - "step": "Warehouse" + "step": "Explore Manufacturing Settings" }, { "step": "Workstation" @@ -35,22 +35,22 @@ "step": "Operation" }, { - "step": "Create Product" + "step": "Routing" }, { - "step": "Create Raw Materials" + "step": "Create Product" }, { "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.", "success_message": "Manufacturing module is all set up!", "title": "Let's Set Up the Manufacturing Module." -} +} \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json b/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json index 84b4088f23..9d7a58c121 100644 --- a/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json +++ b/erpnext/manufacturing/onboarding_step/create_bom/create_bom.json @@ -1,19 +1,21 @@ { "action": "Create Entry", + "action_label": "Create your first Bill of Materials", "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, "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 1, "is_single": 0, "is_skipped": 0, - "modified": "2020-05-19 12:51:31.315686", + "modified": "2021-08-13 16:00:51.092671", "modified_by": "Administrator", "name": "Create BOM", "owner": "Administrator", "reference_document": "BOM", + "show_form_tour": 1, "show_full_form": 1, - "title": "Create a BOM (Bill of Material)", + "title": "Bill of Materials", "validate_action": 1 } \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/create_product/create_product.json b/erpnext/manufacturing/onboarding_step/create_product/create_product.json index 0ffa30158b..ad7345234d 100644 --- a/erpnext/manufacturing/onboarding_step/create_product/create_product.json +++ b/erpnext/manufacturing/onboarding_step/create_product/create_product.json @@ -1,19 +1,21 @@ { "action": "Create Entry", + "action_label": "Create an Item", "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, "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 1, "is_single": 0, "is_skipped": 0, - "modified": "2020-05-19 12:50:59.010439", + "modified": "2021-08-13 16:00:22.407811", "modified_by": "Administrator", "name": "Create Product", "owner": "Administrator", "reference_document": "Item", - "show_full_form": 0, - "title": "Create a Finished Good", + "show_form_tour": 1, + "show_full_form": 1, + "title": "Finished Items", "validate_action": 1 } \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/create_raw_materials/create_raw_materials.json b/erpnext/manufacturing/onboarding_step/create_raw_materials/create_raw_materials.json index 0764f2e44a..3f94764f08 100644 --- a/erpnext/manufacturing/onboarding_step/create_raw_materials/create_raw_materials.json +++ b/erpnext/manufacturing/onboarding_step/create_raw_materials/create_raw_materials.json @@ -5,7 +5,6 @@ "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 0, "is_single": 0, "is_skipped": 0, "modified": "2020-05-19 11:53:25.147837", @@ -13,6 +12,7 @@ "name": "Create Raw Materials", "owner": "Administrator", "reference_document": "Item", + "show_form_tour": 0, "show_full_form": 0, "title": "Create Raw Materials", "validate_action": 1 diff --git a/erpnext/manufacturing/onboarding_step/explore_manufacturing_settings/explore_manufacturing_settings.json b/erpnext/manufacturing/onboarding_step/explore_manufacturing_settings/explore_manufacturing_settings.json index 7ef202ee4e..1d2c27e379 100644 --- a/erpnext/manufacturing/onboarding_step/explore_manufacturing_settings/explore_manufacturing_settings.json +++ b/erpnext/manufacturing/onboarding_step/explore_manufacturing_settings/explore_manufacturing_settings.json @@ -1,20 +1,22 @@ { "action": "Show Form Tour", + "action_label": "Take a walk-through of Manufacturing Settings", "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, "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 0, "is_single": 1, "is_skipped": 0, - "modified": "2020-05-26 20:28:03.558199", + "modified": "2021-08-13 15:59:32.145655", "modified_by": "Administrator", "name": "Explore Manufacturing Settings", "owner": "Administrator", "reference_document": "Manufacturing Settings", + "show_form_tour": 0, "show_full_form": 0, - "title": "Explore Manufacturing Settings", + "title": "Manufacturing Settings", "validate_action": 0, "video_url": "https://www.youtube.com/watch?v=UVGfzwOOZC4" } \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/operation/operation.json b/erpnext/manufacturing/onboarding_step/operation/operation.json index b532e6778c..2e9592185e 100644 --- a/erpnext/manufacturing/onboarding_step/operation/operation.json +++ b/erpnext/manufacturing/onboarding_step/operation/operation.json @@ -1,19 +1,21 @@ { "action": "Create Entry", + "action_label": "Let\u2019s create an Operation", "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, "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 0, "is_single": 0, "is_skipped": 0, - "modified": "2020-05-19 12:50:41.642754", + "modified": "2021-08-13 15:59:53.313532", "modified_by": "Administrator", "name": "Operation", "owner": "Administrator", "reference_document": "Operation", - "show_full_form": 0, - "title": "Create a Operation", + "show_form_tour": 1, + "show_full_form": 1, + "title": "Operation", "validate_action": 1 } \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/production_planning/production_planning.json b/erpnext/manufacturing/onboarding_step/production_planning/production_planning.json new file mode 100644 index 0000000000..ff9fdb9fd0 --- /dev/null +++ b/erpnext/manufacturing/onboarding_step/production_planning/production_planning.json @@ -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 +} \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/routing/routing.json b/erpnext/manufacturing/onboarding_step/routing/routing.json new file mode 100644 index 0000000000..be4fbff171 --- /dev/null +++ b/erpnext/manufacturing/onboarding_step/routing/routing.json @@ -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 +} \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/work_order/work_order.json b/erpnext/manufacturing/onboarding_step/work_order/work_order.json index c63363e7cb..d2756c9275 100644 --- a/erpnext/manufacturing/onboarding_step/work_order/work_order.json +++ b/erpnext/manufacturing/onboarding_step/work_order/work_order.json @@ -1,19 +1,21 @@ { "action": "Create Entry", + "action_label": "Create your first Work Order", "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, "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 0, "is_single": 0, "is_skipped": 0, - "modified": "2020-05-19 12:51:38.133150", + "modified": "2021-08-13 16:02:04.223536", "modified_by": "Administrator", "name": "Work Order", "owner": "Administrator", "reference_document": "Work Order", + "show_form_tour": 1, "show_full_form": 1, - "title": "Create a Work Order", + "title": "Work Order", "validate_action": 1 } \ No newline at end of file diff --git a/erpnext/manufacturing/onboarding_step/workstation/workstation.json b/erpnext/manufacturing/onboarding_step/workstation/workstation.json index df244bb494..67dd52eba2 100644 --- a/erpnext/manufacturing/onboarding_step/workstation/workstation.json +++ b/erpnext/manufacturing/onboarding_step/workstation/workstation.json @@ -1,19 +1,21 @@ { "action": "Create Entry", + "action_label": "Let\u2019s create a Workstation", "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, "doctype": "Onboarding Step", "idx": 0, "is_complete": 0, - "is_mandatory": 0, "is_single": 0, "is_skipped": 0, - "modified": "2020-05-19 12:50:33.938176", + "modified": "2021-08-13 15:59:59.634802", "modified_by": "Administrator", "name": "Workstation", "owner": "Administrator", "reference_document": "Workstation", - "show_full_form": 0, - "title": "Create a Workstation / Machine", + "show_form_tour": 1, + "show_full_form": 1, + "title": "Workstation", "validate_action": 1 } \ No newline at end of file diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 3de35e6062..752a1fe732 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -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 Item Valuation, FIFO and Moving Average.") + }, + { + 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.") + } + + +];