diff --git a/content/applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.rst b/content/applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.rst index ccfc7ad57..d7b0902fb 100644 --- a/content/applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.rst +++ b/content/applications/inventory_and_mrp/manufacturing/advanced_configuration/work_order_dependencies.rst @@ -30,7 +30,7 @@ new one by clicking :guilabel:`New`. .. admonition:: Learn more For a complete guide on how to properly configure a new |BOM|, see the documentation on - :ref:`creating a bill of materials `. + :doc:`creating a bill of materials <../basic_setup/bill_configuration>`. On the |BOM|, click on the :guilabel:`Miscellaneous` tab, then enable the :guilabel:`Operation Dependencies` checkbox. This makes a new :guilabel:`Blocked By` option available in the settings of diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.rst b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.rst index b41046eb1..d367c2a0a 100644 --- a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.rst +++ b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration.rst @@ -2,98 +2,258 @@ Bill of materials ================= -.. _manufacturing/management/bill-configuration: +.. |BOM| replace:: :abbr:`BoM (Bill of Materials)` +.. |BOMs| replace:: :abbr:`BoMs (Bills of Materials)` +.. |MO| replace:: :abbr:`MO (Manufacturing Order)` -A *bill of materials* (or *BoM* for short) is a document that defines the quantity of each component -required to make or deliver a finished product. It can also include various operations and the -individual step guidelines needed to complete a production process. +A *bill of materials* (or *BoM* for short) documents specific components, along with their +respective quantities, that are needed to produce or repair a product. In Odoo, |BoMs| as blueprints +for manufactured goods and kits, and often include production operations and step-by-step +guidelines, as well. -In Odoo Manufacturing, multiple :abbr:`BoMs (Bills of Materials)` can be linked to each product, so -even product variants can have their own tailored :abbr:`BoMs (Bills of Materials)`. +BoM setup +========= -Correctly setting up a :abbr:`BoM (Bill of Materials)` helps optimize the manufacturing process and -save time. +To create a |BOM|, go to :menuselection:`Manufacturing app --> Products --> Bills of Materials` and +click :guilabel:`New`. -Set up a bill of materials (BoM) -================================ +Next, set the :guilabel:`BoM Type` to :guilabel:`Manufacture this Product`. -The simplest :abbr:`BoM (Bill of Materials)` setup is one without operations or instructions, only -components. In this case, the production is solely managed using *Manufacturing Orders*. +Then, specify :ref:`required components ` and, if +necessary, define any :ref:`manufacturing operations `. -To create a :abbr:`BoM (Bill of Materials)` from the :guilabel:`Manufacturing` module, go to -:menuselection:`Products --> Bills of Materials`. Then, click :guilabel:`Create`. Next, specify the -:guilabel:`Product`. +.. tip:: + Individual |BOMs| can also be quickly accessed or created by clicking the :guilabel:`Bill of + Materials` smart button on any product form, as accessible through the *Sales*, *Inventory*, and + *Manufacturing* apps, as well as through any internal links where a product is referenced (such + as in a field or a line item). + +.. figure:: bill_configuration/bom-example.png + :align: center + :alt: Show BoM for a product, with components listed. + + BoM for `Drawer`, displaying the **Components** tab. + +.. seealso:: + - :doc:`../advanced_configuration/kit_shipping` + - :doc:`../subcontracting/subcontracting_basic` + +.. _manufacturing/basic_setup/setup-components: + +Components +---------- + +In the :guilabel:`Components` tab of a |BOM|, specify components used to manufacture the product by +clicking :guilabel:`Add a line`. From the :guilabel:`Components` drop-down menu, select from +existing products or create a new product by typing the name and selecting either the +:guilabel:`Create " "` option to quickly add the line item, or the :guilabel:`Create and edit...` +option to add the component and continue to its configuration form. + +.. image:: bill_configuration/component.png + :align: center + :alt: Add a component by selecting it from the drop-down menu. + +Optionally, access additional fields by clicking the :icon:`oi-settings-adjust` :guilabel:`(settings +adjust)` icon to the far-right of the :guilabel:`Components` tab. Tick the checkboxes for the +following features to enable these columns: + +- :guilabel:`Apply on Variants`: specify which :doc:`product variant + <../advanced_configuration/product_variants>` each component is used in. When the field is left + blank, the component is used in all product variants. + +.. _manufacturing/basic_setup/consumed-in-operation: + +- :guilabel:`Consumed in Operation`: specify the operation using the component. Useful for + determining :ref:`manufacturing readiness `. +- :guilabel:`Manual Consumption`: tick the checkbox to force operators to check the + :guilabel:`Consumed` checkbox on a manufacturing order (MO). + + .. image:: bill_configuration/consumed-field.png + :align: center + :alt: Show a manufacturing order, highlighting the *Consumed* field. + + Not doing so triggers the :guilabel:`Consumption Warning` error message, where the consumed + component quantity must be manually inputted. Otherwise, the operation cannot be completed. + + .. image:: bill_configuration/consumption-warning.png + :align: center + :alt: Show the consumption warning error message. + +.. _manufacturing/basic_setup/setup-operations: + +Operations +---------- + +Add an *operation* to a |BOM| to specify instructions for production and register time spent on an +operation. To use this feature, first enable the *Work Orders* feature by going to +:menuselection:`Manufacturing app --> Configuration --> Settings`. In the :guilabel:`Operations` +section, tick the :guilabel:`Work Orders` checkbox to enable the feature. + +.. seealso:: + :doc:`../advanced_configuration/work_order_dependencies` + +.. image:: bill_configuration/enable-work-orders.png + :align: center + :alt: "Work Orders" feature in the Settings page. + +Next, navigate to the |BOM| by going to :menuselection:`Manufacturing app --> Products --> Bill of +Materials` and selecting the desired |BOM|. To add a new operation, go to the :guilabel:`Operations` +tab, and click :guilabel:`Add a line`. + +Doing so opens the :guilabel:`Create Operations` pop-up window, where the various fields of the +operation are configured: + +- :guilabel:`Operation`: name of the operation. +- :guilabel:`Work Center`: select existing locations to perform the operation, or create a new work + center by typing the name and selecting the :guilabel:`Create " "` option. +- :guilabel:`Apply on Variants`: specify if this operation is only available for certain product + variants. If the operation applies to all product variants, leave this field blank. + + .. seealso:: + :doc:`Configuring BoMs for product variants <../advanced_configuration/product_variants>` + +- :guilabel:`Duration Computation`: choose how time spent on the operation is tracked. Opt for + :guilabel:`Compute based on tracked time` to use the operation's time tracker or :guilabel:`Set + duration manually` if operators can record and modify time themselves. + + Choosing the :guilabel:`Compute based on tracked time` option enables the :guilabel:`Based on last + __ work orders` option, which automatically estimates the time to complete this operation based on + the last few operations. Choosing :guilabel:`Set duration manually` enables the :guilabel:`Default + Duration` field instead. +- :guilabel:`Default Duration`: estimated amount of time to complete the operation; used for + `planning manufacturing orders `_ and determining + `work center availability `_. +- :guilabel:`Company`: specify the company the |BOM| is available in. + +Include operation details in the :guilabel:`Work Sheet` tab. Choose :guilabel:`PDF` to attach a file +or :guilabel:`Google Slide` with *public* access to share a link. Select :guilabel:`Text` to type +instructions in the :guilabel:`Description` text field. + +.. tip:: + Type `/` for a list of formatting options and features, including ChatGPT. + + .. image:: bill_configuration/description.png + :align: center + :alt: Show ChatGPT feature to generate instructions for a work order. + +.. image:: bill_configuration/create-operations.png + :align: center + :alt: Fill out the Create Operations pop-up window. + +Finally, click :guilabel:`Save \& Close` to close the pop-up window. To add more operations, click +:guilabel:`Save & New` and repeat the same steps above to configure another operation. .. note:: - A :abbr:`BoM (Bill of Materials)` can also be created directly from the product form, in which - case the :guilabel:`Product` field is pre-filled. + Each operation is unique, as it is always exclusively linked to one |BOM|. -For a standard :abbr:`BoM (Bill of Materials)`, set the :guilabel:`BoM Type` to -:guilabel:`Manufacture this Product`. Then, click :guilabel:`Add a Line` to specify the various -components that make up the production of the final product and their respective quantities. New -components can be created quickly through the :abbr:`BoM (Bill of Materials)`, or can be created -beforehand in :menuselection:`Manufacturing --> Products --> Products --> Create`. Finally, click -:guilabel:`Save` to finish creating the :abbr:`BoM (Bill of Materials)`. +.. tip:: + After creating an operation, click the :guilabel:`Copy Existing Operations` button to choose an + operation to duplicate. -.. image:: bill_configuration/bom-form.png + .. image:: bill_configuration/copy-existing-operations.png + :align: center + :alt: Show Operation tab, highlighting the "Copy Existing Operations" field. + +Instructions +~~~~~~~~~~~~ + +.. important:: + To add detailed instructions to operations, the *Quality* app must be installed. + +Add specific instructions to an existing operation by clicking the operation's :icon:`fa-list-ul` +:guilabel:`(list)` icon in the :guilabel:`Instructions` column. The number in the +:guilabel:`Instructions` column shows the number of existing detailed instructions there are for the +operation. + +.. image:: bill_configuration/add-instructions.png :align: center - :alt: Set up a Bill of Materials. + :alt: Show the Instructions column, and list icon. -Specify a bill of materials (BoM) for a product variant -------------------------------------------------------- - -:abbr:`BoMs (Bills of Materials)` can also be assigned to specific *Product Variants*, with two -setup options available to choose from. +On the :guilabel:`Steps` dashboard, click :guilabel:`New` to open a blank quality control point form +where the new manufacturing step can be created. Here, give the specific instruction a +:guilabel:`Title` and set the :guilabel:`Type` to :guilabel:`Instructions`. In the +:guilabel:`Instructions` tab of the form, write out the directions for the step in the operation. .. note:: - In order to assign :abbr:`BoMs (Bills of Materials)` to product variants, the product's variant - attributes must already be configured on the product form. + Further customizations can be made here on this form, beyond ordinary instructions, to also + include specific types of quality control points that carry specific (or complex) conditions. For + more details about quality control points refer the :doc:`Instruction check + <../../quality/quality_check_types/instructions_check>` documentation. -The first method is to create one :abbr:`BoM (Bill of Materials)` per variant by creating a new -:abbr:`BoM (Bill of Materials)` and specifying the :guilabel:`Product Variant`. The second method -is to create one master :abbr:`BoM (Bill of Materials)` that contains all of the components, and -specify which variant each component applies to using the :guilabel:`Apply on Variants` column. - -.. image:: bill_configuration/bom-variants.png +.. image:: bill_configuration/steps.png :align: center - :alt: Product Variants in the Bill of Materials. + :alt: Show the page to add a quality check. -Set up operations -================= +Miscellaneous +------------- -Add an :guilabel:`Operation` to a :abbr:`BoM (Bill of Materials)` to specify instructions for -production and register time spent on an operation. To use this feature, first enable the -:guilabel:`Work Orders` feature in :menuselection:`Manufacturing --> Configuration --> Settings --> -Operations`. +The :guilabel:`Miscellaneous` tab contains more |BoM| configurations to customize procurement, +calculate costs, and define how components are consumed. -Then, when creating a new :abbr:`BoM (Bill of Materials)`, click on the :guilabel:`Operations` tab -and click :guilabel:`Add a line` to add a new operation. In the :guilabel:`Create Operations` box, -give the operation a name, specify the :guilabel:`Work Center` and duration settings. Like -components, Odoo gives the option to specify a product variant in the :guilabel:`Apply on Variants` -field so the operation only applies to that variant. Finally, click :guilabel:`Save & Close`. +.. _manufacturing/basic_setup/manufacturing-readiness: -.. note:: - Each operation is unique, as it is always exclusively linked to one :abbr:`BoM (Bill of - Materials)`. Operations can be reused when configuring a new :abbr:`BoM (Bill of Materials)`, - with the :guilabel:`Copy Existing Operations` feature. +- :guilabel:`Manufacturing Readiness`: choosing :guilabel:`When components for the 1st operation are + available` shows the :guilabel:`Component Status` as a **green** :guilabel:`Not Available`, when + only the components that are consumed in the first operation are in stock. This indicates that + although not all components are available, operators can at least begin with the first operation. + Choosing :guilabel:`When all components are available` displays a **red** :guilabel:`Not + Available` component status unless all components are in available. -.. image:: bill_configuration/copy-existing-operations.png + .. tip:: + Specify which operation consumes each component on the |BoM| in the :ref:`Manual Consumption + field `. + + .. image:: bill_configuration/component-status.png + :align: center + :alt: Show the *Component Status* field on the manufacturing order dashboard. + +- :guilabel:`Version`: displays the current |BoM| version, visible with the Odoo *PLM* app installed + for managing |BoM| changes. +- :guilabel:`Flexible Consumption`: specifies if components used can deviate from the quantity + defined on the |BoM|. Choose :guilabel:`Blocked` if operators **must** adhere strictly to the + |BoM| quantity. Otherwise, choose :guilabel:`Allowed` or :guilabel:`Allowed with Warning`. +- :guilabel:`Routing`: select the preferred warehouse's manufacturing operation type for products + produced in multiple warehouses. If left blank, this warehouse's `Manufacturing` operation type is + used by default. +- :guilabel:`Analytic Distribution`: select pre-created :doc:`analytic distribution models + <../../../finance/accounting/reporting/analytic_accounting>` from the list to automatically record + the cost of manufacturing products in the chosen journal. +- :guilabel:`Manuf Lead Time`: define the number of days needed to complete a |MO| from the date of + confirmation. +- :guilabel:`Days to prepare Manufacturing Order`: number of days needed to replenish components, or + manufacture sub-assemblies of the product. + +.. seealso:: + - :doc:`Analytic distribution <../../../finance/accounting/reporting/analytic_accounting>` + - :doc:`Lead times + <../../inventory/shipping_receiving/advanced_operations_shipping/scheduled_dates>` + +.. image:: bill_configuration/misc-tab.png :align: center - :alt: Copy Existing Operations feature. + :alt: Show the *Miscellaneous* tab of the BoM. -Add by-products to a bill of materials (BoM) -============================================ +Add by-products to BoMs +======================= -A *By-Product* is a residual product that is created during production in addition to the main -product of a :abbr:`BoM (Bill of Materials)`. Unlike the primary product, there can be more than -one by-product on a :abbr:`BoM (Bill of Materials)`. +A *by-product* is a residual product that is created during production in addition to the main +product of a |BOM|. Unlike the primary product, there can be more than one by-product on a |BOM|. -To add by-products to a :abbr:`BoM (Bill of Materials)`, first enable the :guilabel:`By-Products` -feature in :menuselection:`Manufacturing --> Configuration --> Settings --> Operations`. +To add by-products to a |BOM|, first enable the *By-Products* feature in +:menuselection:`Manufacturing app --> Configuration --> Settings`. In the :guilabel:`Operations` +section, tick the checkbox for :guilabel:`By-Products` to enable the feature. -Once the feature is enabled, you can add by-products to a :abbr:`BoM (Bill of Materials)` by -clicking on the :guilabel:`Operations` tab and clicking :guilabel:`Add a line`. Then, name the -by-product and indicate the :guilabel:`Quantity` and the :guilabel:`Unit of Measure`. If the -:abbr:`BoM (Bill of Materials)` has configured operations, specify exactly which operation the -by-product is produced from in the :guilabel:`Produced in Operation` field. Finally, click -:guilabel:`Save`. +.. image:: bill_configuration/by-products.png + :align: center + :alt: "By Products" feature in the settings page. + +Once the feature is enabled, add by-products to a |BOM| by clicking the :guilabel:`By-products` tab. +Click :guilabel:`Add a line`, and fill in the :guilabel:`By-product`, :guilabel:`Quantity`, and +:guilabel:`Unit of Measure`. Optionally, specify a :guilabel:`Produced in Operation` for the +by-product. + +.. example:: + The by-product, `Mush`, is created in the `Grind grapes` operation when producing `Red Wine`. + + .. image:: bill_configuration/add-by-product.png + :align: center + :alt: Show sample by-product in the BoM. diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/add-by-product.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/add-by-product.png new file mode 100644 index 000000000..d0149a790 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/add-by-product.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/add-instructions.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/add-instructions.png new file mode 100644 index 000000000..c0e8c7e55 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/add-instructions.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-example.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-example.png new file mode 100644 index 000000000..4dd95df48 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-example.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-form.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-form.png deleted file mode 100644 index 421165bca..000000000 Binary files a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-form.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-variants.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-variants.png deleted file mode 100644 index 30efcee6f..000000000 Binary files a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/bom-variants.png and /dev/null differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/by-products.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/by-products.png new file mode 100644 index 000000000..847ee92b8 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/by-products.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/component-status.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/component-status.png new file mode 100644 index 000000000..cf1822cad Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/component-status.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/component.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/component.png new file mode 100644 index 000000000..ad4066550 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/component.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/consumed-field.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/consumed-field.png new file mode 100644 index 000000000..6dcd46491 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/consumed-field.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/consumption-warning.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/consumption-warning.png new file mode 100644 index 000000000..5e9927fa7 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/consumption-warning.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/copy-existing-operations.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/copy-existing-operations.png index 022a58d50..7712741b9 100644 Binary files a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/copy-existing-operations.png and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/copy-existing-operations.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/create-operations.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/create-operations.png new file mode 100644 index 000000000..b93ecfb5b Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/create-operations.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/description.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/description.png new file mode 100644 index 000000000..b38dbdad2 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/description.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/enable-work-orders.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/enable-work-orders.png new file mode 100644 index 000000000..ca594690e Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/enable-work-orders.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/misc-tab.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/misc-tab.png new file mode 100644 index 000000000..ea7c96f70 Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/misc-tab.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/steps.png b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/steps.png new file mode 100644 index 000000000..2a9ed2efa Binary files /dev/null and b/content/applications/inventory_and_mrp/manufacturing/basic_setup/bill_configuration/steps.png differ diff --git a/content/applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.rst b/content/applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.rst index ee61d4449..587f58d84 100644 --- a/content/applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.rst +++ b/content/applications/inventory_and_mrp/manufacturing/basic_setup/configure_manufacturing_product.rst @@ -70,5 +70,4 @@ to finish adding operations, or :guilabel:`Save & New` to add more. The section above provides instructions for creating a basic |BOM| that allows a product to be manufactured in Odoo. However, it is by no means an exhaustive summary of all the options available when configuring a |BOM|. For more information about bills of materials, see the - documentation on how to :ref:`create a bill of materials - `. + documentation on how to :doc:`create a bill of materials `. diff --git a/content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst b/content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst index 4b5ab1dc7..c357405b4 100644 --- a/content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst +++ b/content/applications/inventory_and_mrp/plm/manage_changes/engineering_change_orders.rst @@ -10,7 +10,7 @@ Engineering change orders .. _plm/eco: Utilize *engineering change orders* (*ECOs*) to track, implement, and revert change versions made to -products, and :ref:`bills of materials `. +products, and :doc:`bills of materials <../../manufacturing/basic_setup/bill_configuration>`. Engineering change orders can be created: